1 / 22

Beyond CRTS

Beyond CRTS. Miranda Technologies Chris Pringle. Agenda. Introduction About Miranda My Role Real Time Systems Crashing Nightmares Software Design in the Real World Software Management People Skills Finding your job!. Introduction. About me 2+2 CRTS Degree Career History RWE NPower

alamea
Download Presentation

Beyond CRTS

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Beyond CRTS Miranda Technologies Chris Pringle

  2. Agenda • Introduction • About Miranda • My Role • Real Time Systems • Crashing Nightmares • Software Design in the Real World • Software Management • People Skills • Finding your job!

  3. Introduction • About me • 2+2 CRTS Degree • Career History • RWE NPower • Hewlett Packard • Miranda Technologies

  4. About Miranda • Product Ranges • Master Control & Branding • Facility Monitoring & Control • Signal Processing and Distribution • Multi Image Display Processors • Routing Switchers • Playout Servers • Production and Post-Production Interfaces

  5. My role at Miranda • Presmaster Control System • Configuration tools • Router driver • Imagestore / Intuition • Kernel & Drivers • Audio • Clip Playback • R&D Responsibilities • Configuration Management System • R&D Servers • R&D Racks

  6. Real Time Systems • What are they? • Hard real time • Operation depends on correctness and time constraints • Soft real time • As above, but some toleration of lateness

  7. Real Time Linux/Windows? • What constitutes a Real Time O/S? • Deterministic response times • Low interrupt latency • Preemptible kernel • Scheduler (FIFO) • And more… (Priority inversion resolution, deadlock detection etc.)

  8. Real Time Linux/Windows? • Are Linux and Windows Real Time? • Can they be made Real Time? • MontaVista Linux • FSMLabs RTLinux • Windows CE • VXWorks • BUT – they none of them guarantee determinism! • Remember – If you’re in R&D – the ‘R’ is important!!!

  9. IS300 / Presmaster Demo

  10. Crashing nightmares! • What do you do when? • System runs okay for 99.9% of the time • System hangs after 3 weeks • No log entries • Imagestore 300 Nightmare • Simple CPU change • Intuition Nightmare

  11. Fault finding • Look for the source • Is it in kernel or user space? Is it hardware? • List the possibilities – no matter how improbable! • Think about what may be aggravating the problem • Try and make the problem worse • Get pointers/help • Use your colleagues! • Internet

  12. Fault Finding • Reproduce it • Kernel/JTAG debugger • Logic analyser / FPGA scope tools • Isolate the problem in software • If necessary, isolate the problem in hardware • Learn when it’s time to change your approach

  13. What was it? • Imagestore 300: • outb(0x80, 0x80); • outb(0x30, 0x30); • Intuition • We’ll never know!

  14. Programming Real Time Systems • Make effective use of drivers/interrupts • Top and bottom halves • FIFO Scheduler • Don’t poll or sleep! Use interrupts! • CPU vs I/O bound • Get your priorities sorted! • Process affinity • Plan and experiment • Hardware Settings • Wrongly set BIOS settings can RUIN your performance!

  15. Software Development in the Real World • Build on your skills – Research! • Learn when to compromise • The most elegant solution isn’t always the right one • Accept you’re sometimes wrong!

  16. Software Management • Configuration Management • Issue Tracking • The dreaded “D” word! • Project Plan & Resources • Code Reviews

  17. People Skills • Dealing with? • Product Development • Senior Managers • Support • Peers • Your immediate manager/supervisor

  18. Dealing with People • Management • Be respectful, but fight your corner • Cover your back side! • A good programmer is a team player! • Learning to deal with awkward people • Accept it when you’re wrong! • Don’t make recommendations to management if you’re not sure!

  19. Communication • Team Meetings • Code Reviews • Email / Documentation • Log book!

  20. Finding your job! • Know what you want • The Interview • 2 way process • Don’t lie/blag – it’s transparent! • Be honest and upfront with your skill set • Sell yourself – but don’t be arrogant! • Look for ways to enhance your skills • Look for a challenge!

  21. Q&A

  22. Chris PringleSoftware EngineerMiranda Technologies Ltd.chris.pringle@miranda.com

More Related