Beyond CRTS Miranda Technologies Chris Pringle. Agenda Introduction About Miranda My Role Real Time...
-
Upload
vincent-murphy -
Category
Documents
-
view
214 -
download
1
Transcript of Beyond CRTS Miranda Technologies Chris Pringle. Agenda Introduction About Miranda My Role Real Time...
Beyond CRTSBeyond CRTS
Miranda TechnologiesMiranda Technologies
Chris PringleChris Pringle
AgendaAgenda
IntroductionIntroductionAbout MirandaAbout MirandaMy RoleMy RoleReal Time SystemsReal Time SystemsCrashing NightmaresCrashing NightmaresSoftware Design in the Real WorldSoftware Design in the Real WorldSoftware ManagementSoftware ManagementPeople SkillsPeople SkillsFinding your job!Finding your job!
IntroductionIntroduction
About meAbout me
2+2 CRTS Degree2+2 CRTS Degree
Career HistoryCareer History RWE NPowerRWE NPower Hewlett PackardHewlett Packard Miranda TechnologiesMiranda Technologies
About MirandaAbout Miranda
Product RangesProduct Ranges Master Control & BrandingMaster Control & Branding Facility Monitoring & ControlFacility Monitoring & Control Signal Processing and DistributionSignal Processing and Distribution Multi Image Display ProcessorsMulti Image Display Processors Routing SwitchersRouting Switchers Playout ServersPlayout Servers Production and Post-Production InterfacesProduction and Post-Production Interfaces
My role at MirandaMy role at Miranda
Presmaster Control SystemPresmaster Control System Configuration toolsConfiguration tools Router driverRouter driver
Imagestore / IntuitionImagestore / Intuition Kernel & DriversKernel & Drivers AudioAudio Clip PlaybackClip Playback
R&D ResponsibilitiesR&D Responsibilities Configuration Management SystemConfiguration Management System R&D ServersR&D Servers R&D RacksR&D Racks
Real Time SystemsReal Time Systems
What are they?What are they? Hard real timeHard real time
Operation depends on correctness and time Operation depends on correctness and time constraintsconstraints
Soft real timeSoft real timeAs above, but some toleration of latenessAs above, but some toleration of lateness
Real Time Linux/Windows?Real Time Linux/Windows?
What constitutes a Real Time O/S?What constitutes a Real Time O/S? Deterministic response timesDeterministic response times Low interrupt latencyLow interrupt latency Preemptible kernelPreemptible kernel Scheduler (FIFO)Scheduler (FIFO) And more… (Priority inversion resolution, And more… (Priority inversion resolution,
deadlock detection etc.)deadlock detection etc.)
Real Time Linux/Windows?Real Time Linux/Windows?
Are Linux and Windows Real Time?Are Linux and Windows Real Time?Can they be made Real Time?Can they be made Real Time? MontaVista LinuxMontaVista Linux FSMLabs RTLinuxFSMLabs RTLinux Windows CEWindows CE VXWorksVXWorks
BUT – they none of them guarantee BUT – they none of them guarantee determinism!determinism!Remember – If you’re in R&D – the ‘R’ is Remember – If you’re in R&D – the ‘R’ is important!!!important!!!
IS300 / Presmaster DemoIS300 / Presmaster Demo
Crashing nightmares!Crashing nightmares!
What do you do when?What do you do when? System runs okay for 99.9% of the timeSystem runs okay for 99.9% of the time System hangs after 3 weeksSystem hangs after 3 weeks No log entriesNo log entries
Imagestore 300 NightmareImagestore 300 Nightmare Simple CPU changeSimple CPU change
Intuition NightmareIntuition Nightmare
Fault findingFault finding
Look for the sourceLook for the source Is it in kernel or user space? Is it hardware?Is it in kernel or user space? Is it hardware? List the possibilities – no matter how improbable!List the possibilities – no matter how improbable! Think about what may be aggravating the problemThink about what may be aggravating the problem Try and make the problem worseTry and make the problem worse
Get pointers/helpGet pointers/help Use your colleagues!Use your colleagues! InternetInternet
Fault FindingFault Finding
Reproduce itReproduce it Kernel/JTAG debuggerKernel/JTAG debugger Logic analyser / FPGA scope toolsLogic analyser / FPGA scope tools
Isolate the problem in softwareIsolate the problem in software
If necessary, isolate the problem in If necessary, isolate the problem in hardwarehardware
Learn when it’s time to change your Learn when it’s time to change your approachapproach
What was it?What was it?
Imagestore 300:Imagestore 300: outb(0x80, 0x80); outb(0x80, 0x80); outb(0x30, 0x30);outb(0x30, 0x30);
IntuitionIntuition We’ll never know!We’ll never know!
Programming Real Time SystemsProgramming Real Time Systems
Make effective use of drivers/interruptsMake effective use of drivers/interrupts Top and bottom halvesTop and bottom halves
FIFO SchedulerFIFO Scheduler Don’t poll or sleep! Use interrupts!Don’t poll or sleep! Use interrupts!
CPU vs I/O boundCPU vs I/O bound Get your priorities sorted!Get your priorities sorted!
Process affinityProcess affinity Plan and experimentPlan and experiment
Hardware SettingsHardware Settings Wrongly set BIOS settings can RUIN your Wrongly set BIOS settings can RUIN your
performance!performance!
Software Development in the Real Software Development in the Real WorldWorld
Build on your skills – Research!Build on your skills – Research!
Learn when to compromiseLearn when to compromise
The most elegant solution isn’t always the The most elegant solution isn’t always the right oneright one
Accept you’re sometimes wrong!Accept you’re sometimes wrong!
Software ManagementSoftware Management
Configuration ManagementConfiguration Management
Issue TrackingIssue Tracking
The dreaded “D” word!The dreaded “D” word!
Project Plan & ResourcesProject Plan & Resources
Code ReviewsCode Reviews
People SkillsPeople Skills
Dealing with?Dealing with? Product DevelopmentProduct Development Senior ManagersSenior Managers SupportSupport PeersPeers Your immediate manager/supervisorYour immediate manager/supervisor
Dealing with PeopleDealing with People
ManagementManagement Be respectful, but fight your cornerBe respectful, but fight your corner Cover your back side!Cover your back side!
A good programmer is a team player!A good programmer is a team player! Learning to deal with awkward peopleLearning to deal with awkward people Accept it when you’re wrong!Accept it when you’re wrong!
Don’t make recommendations to Don’t make recommendations to management if you’re not sure!management if you’re not sure!
CommunicationCommunication
Team MeetingsTeam Meetings
Code ReviewsCode Reviews
Email / DocumentationEmail / Documentation
Log book!Log book!
Finding your job!Finding your job!
Know what you wantKnow what you want
The InterviewThe Interview 2 way process2 way process Don’t lie/blag – it’s transparent!Don’t lie/blag – it’s transparent! Be honest and upfront with your skill setBe 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 skillsLook for ways to enhance your skills
Look for a challenge!Look for a challenge!
Q&AQ&A
Chris PringleChris PringleSoftware EngineerSoftware Engineer
Miranda Technologies Ltd.Miranda Technologies [email protected]@miranda.com