Chris_Pringle.ppt - Skills you d

Document Sample
Chris_Pringle.ppt - Skills you d Powered By Docstoc
					A life in Engineering
   Miranda Technologies
       Chris Pringle
About Miranda
My Role
Real Time Systems
Crashing Nightmares
Software Design in the Real World
Software Management
People Skills
Finding your job!
About me
2+2 CRTS Degree
Career History
   RWE NPower
   Hewlett Packard
   Miranda Technologies
            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
            My role at Miranda
Presmaster Control System
   Configuration tools
   Router driver
Imagestore / Intuition
   Kernel & Drivers
   Audio
   Clip Playback
   IS750 Hardware Bring-up
   New design
R&D Responsibilities
   Configuration Management System
   R&D Servers
   R&D Racks
         Real Time Systems
What are they?
   Hard real time
      Operation depends on correctness and time
   Soft real time
      As above, but some toleration of lateness
    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.)
    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
IS750 / Presmaster Demo
        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
                Fault finding
Look for the source
   Is it in kernel or user space? Is it firmware or
   List the possibilities – no matter how improbable!
   Think about what may be aggravating the problem
   Try and make the problem worse
   Is there more than one problem?
Get pointers/help
   Use your colleagues!
   Internet
              Fault Finding
Reproduce it
   Kernel/JTAG debugger
   Logic analyser / FPGA scope tools
Isolate the problem in software
If necessary, isolate the problem in
Learn when it‟s time to change your
              What was it?
Imagestore 300:
   outb(0x80, 0x80);
   outb(0x30, 0x30);
   Incorrectly configured south bridge (BIOS
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
Software Development in the Real
Build on your skills – Research!
Learn when to compromise
The most elegant solution isn‟t always the
right one
Accept you‟re sometimes wrong!
    Software Management
Configuration Management
Issue Tracking
The dreaded “D” word!
Project Plan & Resources
Code Reviews
             People Skills
Dealing with?
   Product Development / Sales
   Senior Managers
   Support
   Peers
   Your immediate manager/supervisor
   External vendors/suppliers
        Dealing with People
   Be respectful, but fight your corner
   Cover yourself
   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!
Team Meetings
Code Reviews
Email / Documentation
Log book!
What would happen if someone in your
team left?
             Finding your job!
Know what you want
Produce a good CV
The Interview
   2 way process
   Don‟t lie/blag – for the most part 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!
         A job with Miranda
Miranda is recruiting!
   Software engineers for embedded systems
   Software engineers for desktop tools
   Hardware/Firmware engineers
   QA/RnD Test engineers
Send your CV
    Chris Pringle
     Software Engineer
Embedded Systems Group
Miranda Technologies Ltd.

Shared By: