Download presentation
Presentation is loading. Please wait.
Published byFay Lang Modified over 9 years ago
1
A life in Engineering 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 RWE NPower Hewlett Packard Hewlett Packard Miranda Technologies Miranda Technologies
4
About Miranda Product Ranges Master Control & Branding Master Control & Branding Facility Monitoring & Control Facility Monitoring & Control Signal Processing and Distribution Signal Processing and Distribution Multi Image Display Processors Multi Image Display Processors Routing Switchers Routing Switchers Playout Servers Playout Servers Production and Post-Production Interfaces Production and Post-Production Interfaces
5
My role at Miranda Presmaster Control System Configuration tools Configuration tools Router driver Router driver Imagestore / Intuition Kernel & Drivers Kernel & Drivers Audio Audio Clip Playback Clip Playback IS750 Hardware Bring-up IS750 Hardware Bring-up New design New design R&D Responsibilities Configuration Management System Configuration Management System R&D Servers R&D Servers R&D Racks R&D Racks
6
Real Time Systems What are they? Hard real time Hard real time Operation depends on correctness and time constraints Soft real time 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 Deterministic response times Low interrupt latency Low interrupt latency Preemptible kernel Preemptible kernel Scheduler (FIFO) Scheduler (FIFO) And more… (Priority inversion resolution, deadlock detection etc.) 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 MontaVista Linux FSMLabs RTLinux FSMLabs RTLinux Windows CE Windows CE VXWorks VXWorks BUT – they none of them guarantee determinism Remember – If you’re in R&D – the ‘R’ is important!!!
9
IS750 / Presmaster Demo
10
Crashing nightmares What do you do when? System runs okay for 99.9% of the time System runs okay for 99.9% of the time System hangs after 3 weeks System hangs after 3 weeks No log entries No log entries Imagestore 300 Nightmare Simple CPU change Simple CPU change
11
Fault finding Look for the source Is it in kernel or user space? Is it firmware or hardware? Is it in kernel or user space? Is it firmware or hardware? List the possibilities – no matter how improbable! List the possibilities – no matter how improbable! Think about what may be aggravating the problem Think about what may be aggravating the problem Try and make the problem worse Try and make the problem worse Is there more than one problem? Is there more than one problem? Get pointers/help Use your colleagues! Use your colleagues! Internet Internet
12
Fault Finding Reproduce it Kernel/JTAG debugger Kernel/JTAG debugger Logic analyser / FPGA scope tools 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(0x80, 0x80); outb(0x30, 0x30); outb(0x30, 0x30); Incorrectly configured south bridge (BIOS bug) Incorrectly configured south bridge (BIOS bug)
14
Programming Real Time Systems Make effective use of drivers/interrupts Top and bottom halves Top and bottom halves FIFO Scheduler Don’t poll or sleep; Use interrupts Don’t poll or sleep; Use interrupts CPU vs I/O bound Get your priorities sorted Get your priorities sorted Process affinity Plan and experiment Plan and experiment Hardware Settings Wrongly set BIOS settings can RUIN your performance! 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 / Sales Product Development / Sales Senior Managers Senior Managers Support Support Peers Peers Your immediate manager/supervisor Your immediate manager/supervisor External vendors/suppliers External vendors/suppliers
18
Dealing with People Management Be respectful, but fight your corner Be respectful, but fight your corner Cover yourself Cover yourself A good programmer is a team player A good programmer is a team player Learning to deal with awkward people Learning to deal with awkward people Accept it when you’re wrong! 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! What would happen if someone in your team left?
20
Finding your job! Know what you want Produce a good CV The Interview 2 way process 2 way process Don’t lie/blag – for the most part it’s transparent! Don’t lie/blag – for the most part it’s transparent! Be honest and upfront with your skill set Be honest and upfront with your skill set Sell yourself – but don’t be arrogant Sell yourself – but don’t be arrogant Look for ways to enhance your skills Look for a challenge!
21
A job with Miranda Miranda is recruiting! Software engineers for embedded systems Software engineers for embedded systems Software engineers for desktop tools Software engineers for desktop tools Hardware/Firmware engineers Hardware/Firmware engineers QA/RnD Test engineers QA/RnD Test engineers Send your CV
22
Q&A
23
Chris Pringle Software Engineer Embedded Systems Group Miranda Technologies Ltd. chris.pringle@miranda.com
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.