a life in engineering miranda technologies chris pringle

23
A life in A life in Engineering Engineering Miranda Technologies Miranda Technologies Chris Pringle Chris Pringle

Upload: fay-lang

Post on 04-Jan-2016

215 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: A life in Engineering Miranda Technologies Chris Pringle

A life in EngineeringA life in Engineering

Miranda TechnologiesMiranda Technologies

Chris PringleChris Pringle

Page 2: A life in Engineering Miranda Technologies Chris 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!

Page 3: A life in Engineering Miranda Technologies Chris Pringle

IntroductionIntroduction

About meAbout me

2+2 CRTS Degree2+2 CRTS Degree

Career HistoryCareer History RWE NPowerRWE NPower Hewlett PackardHewlett Packard Miranda TechnologiesMiranda Technologies

Page 4: A life in Engineering Miranda Technologies Chris Pringle

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

Page 5: A life in Engineering Miranda Technologies Chris Pringle

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 IS750 Hardware Bring-upIS750 Hardware Bring-up New designNew design

R&D ResponsibilitiesR&D Responsibilities Configuration Management SystemConfiguration Management System R&D ServersR&D Servers R&D RacksR&D Racks

Page 6: A life in Engineering Miranda Technologies Chris Pringle

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

Page 7: A life in Engineering Miranda Technologies Chris Pringle

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.)

Page 8: A life in Engineering Miranda Technologies Chris Pringle

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 determinismBUT – they none of them guarantee determinism

Remember – If you’re in R&D – the ‘R’ is Remember – If you’re in R&D – the ‘R’ is important!!!important!!!

Page 9: A life in Engineering Miranda Technologies Chris Pringle

IS750 / Presmaster DemoIS750 / Presmaster Demo

Page 10: A life in Engineering Miranda Technologies Chris Pringle

Crashing nightmaresCrashing 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

Page 11: A life in Engineering Miranda Technologies Chris Pringle

Fault findingFault finding

Look for the sourceLook for the source Is it in kernel or user space? Is it firmware or Is it in kernel or user space? Is it firmware or

hardware?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 Is there more than one problem?Is there more than one problem?

Get pointers/helpGet pointers/help Use your colleagues!Use your colleagues! InternetInternet

Page 12: A life in Engineering Miranda Technologies Chris Pringle

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

Page 13: A life in Engineering Miranda Technologies Chris Pringle

What was it?What was it?

Imagestore 300:Imagestore 300: outb(0x80, 0x80); outb(0x80, 0x80); outb(0x30, 0x30); outb(0x30, 0x30); Incorrectly configured south bridge (BIOS Incorrectly configured south bridge (BIOS

bug)bug)

Page 14: A life in Engineering Miranda Technologies Chris Pringle

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 interruptsDon’t poll or sleep; Use interrupts

CPU vs I/O boundCPU vs I/O bound Get your priorities sortedGet 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!

Page 15: A life in Engineering Miranda Technologies Chris Pringle

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!

Page 16: A life in Engineering Miranda Technologies Chris Pringle

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

Page 17: A life in Engineering Miranda Technologies Chris Pringle

People SkillsPeople Skills

Dealing with?Dealing with? Product Development / SalesProduct Development / Sales Senior ManagersSenior Managers SupportSupport PeersPeers Your immediate manager/supervisorYour immediate manager/supervisor External vendors/suppliersExternal vendors/suppliers

Page 18: A life in Engineering Miranda Technologies Chris Pringle

Dealing with PeopleDealing with People

ManagementManagement Be respectful, but fight your cornerBe respectful, but fight your corner Cover yourselfCover yourself A good programmer is a team playerA 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!

Page 19: A life in Engineering Miranda Technologies Chris Pringle

CommunicationCommunication

Team MeetingsTeam Meetings

Code ReviewsCode Reviews

Email / DocumentationEmail / Documentation

Log book!Log book!

What would happen if someone in your What would happen if someone in your team left?team left?

Page 20: A life in Engineering Miranda Technologies Chris Pringle

Finding your job!Finding your job!

Know what you wantKnow what you want

Produce a good CVProduce a good CV

The InterviewThe Interview 2 way process2 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 setBe honest and upfront with your skill set Sell yourself – but don’t be arrogantSell 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!

Page 21: A life in Engineering Miranda Technologies Chris Pringle

A job with MirandaA job with Miranda

Miranda is recruiting!Miranda is recruiting! Software engineers for embedded systemsSoftware engineers for embedded systems Software engineers for desktop toolsSoftware engineers for desktop tools Hardware/Firmware engineersHardware/Firmware engineers QA/RnD Test engineersQA/RnD Test engineers

Send your CVSend your CV

Page 22: A life in Engineering Miranda Technologies Chris Pringle

Q&AQ&A

Page 23: A life in Engineering Miranda Technologies Chris Pringle

Chris PringleChris PringleSoftware EngineerSoftware Engineer

Embedded Systems GroupEmbedded Systems GroupMiranda Technologies Ltd.Miranda Technologies [email protected]@miranda.com