From Silicon
     to
          Software


     Aanjhan Ranganathan & Sudarshan S
So whats the agenda . . .
For the perspective . . .


●   Cray 1 Specs
    ●   64 Mb memory
    ●   ~1 million gates
    ●   80 Mhz clock, 115kW
    ●   700,000 $
Some modern art
Chips are pieces of artwork too




 Intel Pentium 4, 2000
                         Intel dual core , 2007
VLSI Design flow
Chip to System on Chip (SoC)
Embedded Systems
Embedded Development Boards
Importance of Embedded Software


●   Therac 25
       –   Overdose of radiations for therapy of cancer patients
●   Ariane 5 failure
       –   Launch failed, exploded just 40 secs after take off
A typical embedded system
            build . . .

                         Mapping soft, games?,
                           Dialer, Phonebook
Application Software


 System Software
                          RTOS, Task manager,
                         Device management etc
 Core        I/O
 Proc

           Peripherals
Memory
             Hardware     Target Board
Terminologies
●   Cross compilation
       –   Build , Target, Host
       –   Reasons for this?
●   Bootloader
●   Target architecture
●   Board Support Package
RTEMS
●   Real Time Executive for Multiprocessor
    Systems
●   Since late 1980's (under contract with US Army
    Missile Command.
●   Ported to few ESA and NASA space hardened
    procs in the late 1990s
RTEMS in Use
●   Space and Aviation
       –   ESA's Herschel and Planck, LISA Pathfinder,
           NASA ST5 satellite
●   Scientific – EPICS labs
●   Military and defense – Air defense systems,
    Flight data recorders
●   Industrial, Robotics, Medical and
    Communication fields
    http://www.rtems.com/wiki/index.php/RTEMSApplications
RTEMS features

➔   RTEMS is a full featured Real-Time Operating System
➔   Commercial grade
➔   All source code for OS, support components, tests, documentation,
    development environment, and project website is provided
➔   Truly free in price, liberty, and end user requirements
➔   High performance, deterministic behavior
➔   Standards compliant environment
➔   Highly portable across CPU architectures
➔   Many Board Support Packages available
➔   Prebuilt development toolsets for GNU/Linux and MS-Windows
Motivation for RTEMS developers

                         Open
          Incremental   Standards
                                    Pet Projects
         Improvements



     Scientific                                Space
    Community                                Community



          Student
                                    Commercial
          Projects
                        Research      Users
RTEMS - Architecture
Demo based on a GsoC project
●   MMU – Memory Management Unit
●   PowerPC simulator PSIM
●   Memory region protection (SUPERVISOR
    access only etc)
Cross Debugging

GUI Front end (DDD)



  Cross debugger
                        Target system
(powerpc-rtems-gdb)




Other debugging ways
JTAG, BDM
In the end, it all boils down to User
   space applications (or in other
    words the icing on the cake)
Different Hardwares with different
               capabilities

●   Make phone calls
●   Send Text messages
●   Receive emails
●   Know your current location
●   Listen to Music
     and much much more
'nuff said
We solve problems with
                abstractions
●   Symbian
●   Android
●   J2ME
●   Blackberry
●   Iphone SDK
Freesmartphone.org Framework
What is FSO?


●   freesmartphone.org is a collaboration platform
    for open source and open discussion software
    projects working on interoperability and
    shared technology for Linux-based
    SmartPhones
Inter Process Communication
●   Files
●   Anonymous pipes
●   CORBA (really really painful)
●   Java RMI (Language specific)
●   Shared Memory
..all of which has a potential to make
              you suicidal
DBus
●   IPC done right
●   Method: Which can be invoked
●   Signals: Broadcast messages which an
    observer can listen to
●   Bus: Session or System
Everybody loves Dilbert
Under the hood



Pidgin's Dbus service                          Our Evil Script
                        Request a proxy from
                        the bus
Under the hood



Pidgin's Dbus service                          Our Evil Script




        We now have a copy of the “remote” object with methods
        from im.pidgin.purple.PurpleService
FSO + Dbus + Python = 42



         ... almost
Neo Freerunner. Be in control
Enough Talk, show me the code!
       Talk              code
Thanks!




To all the cool FOSS developers. So long and
             thanks for all the fish

From Silicon to Software - IIT Madras

  • 1.
    From Silicon to Software Aanjhan Ranganathan & Sudarshan S
  • 2.
    So whats theagenda . . .
  • 3.
    For the perspective. . . ● Cray 1 Specs ● 64 Mb memory ● ~1 million gates ● 80 Mhz clock, 115kW ● 700,000 $
  • 4.
  • 5.
    Chips are piecesof artwork too Intel Pentium 4, 2000 Intel dual core , 2007
  • 6.
  • 7.
    Chip to Systemon Chip (SoC)
  • 8.
  • 9.
  • 10.
    Importance of EmbeddedSoftware ● Therac 25 – Overdose of radiations for therapy of cancer patients ● Ariane 5 failure – Launch failed, exploded just 40 secs after take off
  • 11.
    A typical embeddedsystem build . . . Mapping soft, games?, Dialer, Phonebook Application Software System Software RTOS, Task manager, Device management etc Core I/O Proc Peripherals Memory Hardware Target Board
  • 12.
    Terminologies ● Cross compilation – Build , Target, Host – Reasons for this? ● Bootloader ● Target architecture ● Board Support Package
  • 13.
    RTEMS ● Real Time Executive for Multiprocessor Systems ● Since late 1980's (under contract with US Army Missile Command. ● Ported to few ESA and NASA space hardened procs in the late 1990s
  • 14.
    RTEMS in Use ● Space and Aviation – ESA's Herschel and Planck, LISA Pathfinder, NASA ST5 satellite ● Scientific – EPICS labs ● Military and defense – Air defense systems, Flight data recorders ● Industrial, Robotics, Medical and Communication fields http://www.rtems.com/wiki/index.php/RTEMSApplications
  • 15.
    RTEMS features ➔ RTEMS is a full featured Real-Time Operating System ➔ Commercial grade ➔ All source code for OS, support components, tests, documentation, development environment, and project website is provided ➔ Truly free in price, liberty, and end user requirements ➔ High performance, deterministic behavior ➔ Standards compliant environment ➔ Highly portable across CPU architectures ➔ Many Board Support Packages available ➔ Prebuilt development toolsets for GNU/Linux and MS-Windows
  • 16.
    Motivation for RTEMSdevelopers Open Incremental Standards Pet Projects Improvements Scientific Space Community Community Student Commercial Projects Research Users
  • 17.
  • 18.
    Demo based ona GsoC project ● MMU – Memory Management Unit ● PowerPC simulator PSIM ● Memory region protection (SUPERVISOR access only etc)
  • 19.
    Cross Debugging GUI Frontend (DDD) Cross debugger Target system (powerpc-rtems-gdb) Other debugging ways JTAG, BDM
  • 20.
    In the end,it all boils down to User space applications (or in other words the icing on the cake)
  • 21.
    Different Hardwares withdifferent capabilities ● Make phone calls ● Send Text messages ● Receive emails ● Know your current location ● Listen to Music and much much more
  • 22.
  • 23.
    We solve problemswith abstractions ● Symbian ● Android ● J2ME ● Blackberry ● Iphone SDK
  • 24.
  • 25.
    What is FSO? ● freesmartphone.org is a collaboration platform for open source and open discussion software projects working on interoperability and shared technology for Linux-based SmartPhones
  • 28.
    Inter Process Communication ● Files ● Anonymous pipes ● CORBA (really really painful) ● Java RMI (Language specific) ● Shared Memory
  • 29.
    ..all of whichhas a potential to make you suicidal
  • 30.
    DBus ● IPC done right ● Method: Which can be invoked ● Signals: Broadcast messages which an observer can listen to ● Bus: Session or System
  • 31.
  • 32.
    Under the hood Pidgin'sDbus service Our Evil Script Request a proxy from the bus
  • 33.
    Under the hood Pidgin'sDbus service Our Evil Script We now have a copy of the “remote” object with methods from im.pidgin.purple.PurpleService
  • 34.
    FSO + Dbus+ Python = 42 ... almost
  • 35.
  • 36.
    Enough Talk, showme the code! Talk code
  • 37.
    Thanks! To all thecool FOSS developers. So long and thanks for all the fish