Over 20 Years of Embedded
   Software Development –
      A Third Way Emerges


                                                               Colin Walls
               colin_walls@mentor.com




  Android is a trademark of Google Inc. Use of this trademark is subject to Google Permissions.
  Linux® is the registered trademark of Linus Torvalds in the U.S. and other countries.
“Software is eating the world”
              Marc Andreessen, co-founder of Netscape




            Mentor Graphics Confidential Information
                                                       2
Software is eating the world
 Contribution of software to product success is
 increasing
 How will you cope?
 Is there a path forward that will prevent hungry
 software from eating up the entire product budget?




                    $$$




                          Mentor Graphics Confidential Information
                                                                     3
Embedded Software is Ubiquitous

 Embedded software is
 everywhere

                                                               Consumer      Telcom



    (Even if most people
     don’t know what
     Embedded means …)                                        Automotive     Medical




                                                                  Home     White Goods

                           Mentor Graphics Confidential Information
                                                                      4
Trends: Microprocessor Technology



 8 bits           16 bits
                                               32 bits                      RISC



               8 bit mcu

                                 16 bit
                                 mcu
                                                                       32 bit
  Soft Cores                                                           mcu




                            Mentor Graphics Confidential Information
                            5
Trends: Design Composition



                                                    Hardware
                 Hardware
      Hardware

      Software
                 Software




                                                    Software




                 Mentor Graphics Confidential Information
                 6
Trends: Software Content



                                                                   In-house
                                      In-house
             In-house
  In-house
              RTOS
                                       RTOS +
                                       comms

                                                                    RTOS +
                                                                   comms +
                                                                    other IP




                        Mentor Graphics Confidential Information
                        7
Trends: Software Team Size




    /2


                Mentor Graphics Confidential Information
                8
Embedded Software
 Dominant value generator for technology
 enterprises
 Low cost of entry
 Great time for start-ups
 Danger of “hardware myopia”




                        Mentor Graphics Confidential Information
                                                                   9
“Most of the new, innovative companies
 are focusing on the software. I think
 there will be lots of innovation in the
 areas of software, but not in hardware.”

                                                                  Steve Jobs
                                                                 February 1985




                 Mentor Graphics Confidential Information
                                                            10
Embedded Software
 Software innovation is strategic
 9 month cycle is typical
 You get fixed number of “spins”
 Software is not “free” except for headcount
 Fixing one bug is cheap, but 1000 can kill a project




                        Mentor Graphics Confidential Information
                                                                   11
Pre-requisites to Software Success
 The right runtime software
 The right tools
 Pre-silicon prototyping
   – Buys more cycles




                        Mentor Graphics Confidential Information
                                                                   12
Embedded Software Development

Runtime – 3 options:               Tools – 2 options:
 Commercial                           Commercial
 In-house                             Open source
 Open source




                       Mentor Graphics Confidential Information
                                                                  13
Commercial Runtime Software

Pros                                   Cons
 Established, reliable                    On-going license costs
 Long-term commitment                     No internal knowledge
 Documented                               Vendor lock-in
 OS-aware debug support                   Excess functionality
 Middleware
 Hardware drivers




                           Mentor Graphics Confidential Information
                                                                      14
Commercial Runtime Software

Pros                                   Cons
 Established, reliable                    On-going license costs
 Long-term commitment                     No internal knowledge
 Documented                               Vendor lock-in
 OS-aware debug support                   Excess functionality
 Middleware
 Hardware drivers




                           Mentor Graphics Confidential Information
                                                                      15
In-house Runtime Software

Pros                                      Cons
 Control                                     Development costs
 No on-going license costs                   Long-term support
 Exact match to needs                        No debug support
                                              Multiple implementations
                                              No middleware
                                              New architecture support
                                              Core competencies



                              Mentor Graphics Confidential Information
                                                                         16
In-house Runtime Software

Pros                                      Cons
 Control                                     Development costs
 No on-going license costs                   Long-term support
 Exact match to needs                        No debug support
                                              Multiple implementations
                                              No middleware
                                              New architecture support
                                              Core competencies



                              Mentor Graphics Confidential Information
                                                                         17
Open Source Runtime Software

Pros                               Cons
 Readily available                    Nobody responsible
 Wide user base                       Integration takes time and
 Support from users                    effort
 “Free”                               Version issues
                                       Fit for purpose




                       Mentor Graphics Confidential Information
                                                                  18
Open Source Runtime Software

Pros                               Cons
 Readily available                    Nobody responsible
 Wide user base                       Integration takes time and
 Support from users                    effort
 “Free”                               Version issues
                                       Fit for purpose




                       Mentor Graphics Confidential Information
                                                                  19
Commercial Tools

Pros                                 Cons
 High functionality                     Cost
 Fully integrated                       Vendor lock-in
 Technical support                      Not comparable to
 Wide range available                    desktop tools




                         Mentor Graphics Confidential Information
                                                                    20
Commercial Tools

Pros                                 Cons
 High functionality                     Cost
 Fully integrated                       Vendor lock-in
 Technical support                      Not comparable to
 Wide range available                    desktop tools




                         Mentor Graphics Confidential Information
                                                                    21
Open Source Tools

Pros                               Cons
 Readily available                    Nobody responsible
 Wide user base                       Integration takes time and
 Support from users                    effort
 “Free”                               Version issues




                       Mentor Graphics Confidential Information
                                                                  22
Open Source Tools

Pros                               Cons
 Readily available                    Nobody responsible
 Wide user base                       Integration takes time and
 Support from users                    effort
 “Free”                               Version issues




                       Mentor Graphics Confidential Information
                                                                  23
Deployment of open source tools
 Open source tools “out of the box” ...
 Which tools?
   – C/C++ Compilers
   – Assembler
   – Linker
   – Runtime Libraries
   – Debugger
   – Debug Stub(s)
   – Integrated Development Environment



                         Mentor Graphics Confidential Information
                                                                    24
Deployment of open source tools
 Do you have the right tools to build the toolchain?
 What versions of the various toolchain components
 will you use?
  – What patches should be applied?
 How should you configure the various toolchain
 components?
  – The configure scripts have thousands of options




                         Mentor Graphics Confidential Information
                                                                    25
Deployment of open source tools
 What CPUs will be used on your target systems?
  – Will both big-endian and little-endian code be required?
  – e.g. “bare metal” ARM runtime libraries are optimized for
    little-endian ARM V5
     –   this will not work with ARM V4
     –   ARM V6 architecture would not be used efficiently




                                Mentor Graphics Confidential Information
                                                                           26
Deployment of open source tools
 Toolchain validation
  – Compiling programs and running those programs in the
    target environment
  – Compiling programs and inspecting the generated object
    file or executable image, without running the generated
    code
  – Compiling fragments of a program with multiple
    compilers and linking the fragments together
  – Compiling invalid program fragments and checking for
    appropriate error messages
  – Testsuites ...


                         Mentor Graphics Confidential Information
                                                                    27
Embedded Software Development

Runtime – 3 options:               Tools – 2 options:
 Commercial                           Commercial
 In-house                             Open source
 Open source




                       Mentor Graphics Confidential Information
                                                                  28
Embedded Software Development

Runtime – 3 options:               Tools – 2 options:
 Commercial                           Commercial
 In-house                             Open source
 Open source




             There is another way ...


                       Mentor Graphics Confidential Information
                                                                  29
Embedded Software Development
 Recognize that open source does not mean “free”
 Do not underestimate the configuration and
 deployment challenges [= costs]
 Consider using a specialist vendor
  – Tools [and OS] packaged and ready to use
  – Costs well defined and contained
  – Additional support [with open source community there
    for you as well]
  – Additional value-added components
 This if The Third Way

                         Mentor Graphics Confidential Information
                                                                    30
Thank you

                                                      Colin Walls
                               colin_walls@mentor.com
          http://blogs.mentor.com/colinwalls




Android is a trademark of Google Inc. Use of this trademark is subject to Google Permissions.
Linux® is the registered trademark of Linus Torvalds in the U.S. and other countries.

Over 20 years of embedded software development a third way emerges

  • 1.
    Over 20 Yearsof Embedded Software Development – A Third Way Emerges Colin Walls colin_walls@mentor.com Android is a trademark of Google Inc. Use of this trademark is subject to Google Permissions. Linux® is the registered trademark of Linus Torvalds in the U.S. and other countries.
  • 2.
    “Software is eatingthe world” Marc Andreessen, co-founder of Netscape Mentor Graphics Confidential Information 2
  • 3.
    Software is eatingthe world  Contribution of software to product success is increasing  How will you cope?  Is there a path forward that will prevent hungry software from eating up the entire product budget? $$$ Mentor Graphics Confidential Information 3
  • 4.
    Embedded Software isUbiquitous  Embedded software is everywhere Consumer Telcom (Even if most people don’t know what Embedded means …) Automotive Medical Home White Goods Mentor Graphics Confidential Information 4
  • 5.
    Trends: Microprocessor Technology 8 bits 16 bits 32 bits RISC 8 bit mcu 16 bit mcu 32 bit Soft Cores mcu Mentor Graphics Confidential Information 5
  • 6.
    Trends: Design Composition Hardware Hardware Hardware Software Software Software Mentor Graphics Confidential Information 6
  • 7.
    Trends: Software Content In-house In-house In-house In-house RTOS RTOS + comms RTOS + comms + other IP Mentor Graphics Confidential Information 7
  • 8.
    Trends: Software TeamSize /2 Mentor Graphics Confidential Information 8
  • 9.
    Embedded Software  Dominantvalue generator for technology enterprises  Low cost of entry  Great time for start-ups  Danger of “hardware myopia” Mentor Graphics Confidential Information 9
  • 10.
    “Most of thenew, innovative companies are focusing on the software. I think there will be lots of innovation in the areas of software, but not in hardware.” Steve Jobs February 1985 Mentor Graphics Confidential Information 10
  • 11.
    Embedded Software  Softwareinnovation is strategic  9 month cycle is typical  You get fixed number of “spins”  Software is not “free” except for headcount  Fixing one bug is cheap, but 1000 can kill a project Mentor Graphics Confidential Information 11
  • 12.
    Pre-requisites to SoftwareSuccess  The right runtime software  The right tools  Pre-silicon prototyping – Buys more cycles Mentor Graphics Confidential Information 12
  • 13.
    Embedded Software Development Runtime– 3 options: Tools – 2 options:  Commercial  Commercial  In-house  Open source  Open source Mentor Graphics Confidential Information 13
  • 14.
    Commercial Runtime Software Pros Cons  Established, reliable  On-going license costs  Long-term commitment  No internal knowledge  Documented  Vendor lock-in  OS-aware debug support  Excess functionality  Middleware  Hardware drivers Mentor Graphics Confidential Information 14
  • 15.
    Commercial Runtime Software Pros Cons  Established, reliable  On-going license costs  Long-term commitment  No internal knowledge  Documented  Vendor lock-in  OS-aware debug support  Excess functionality  Middleware  Hardware drivers Mentor Graphics Confidential Information 15
  • 16.
    In-house Runtime Software Pros Cons  Control  Development costs  No on-going license costs  Long-term support  Exact match to needs  No debug support  Multiple implementations  No middleware  New architecture support  Core competencies Mentor Graphics Confidential Information 16
  • 17.
    In-house Runtime Software Pros Cons  Control  Development costs  No on-going license costs  Long-term support  Exact match to needs  No debug support  Multiple implementations  No middleware  New architecture support  Core competencies Mentor Graphics Confidential Information 17
  • 18.
    Open Source RuntimeSoftware Pros Cons  Readily available  Nobody responsible  Wide user base  Integration takes time and  Support from users effort  “Free”  Version issues  Fit for purpose Mentor Graphics Confidential Information 18
  • 19.
    Open Source RuntimeSoftware Pros Cons  Readily available  Nobody responsible  Wide user base  Integration takes time and  Support from users effort  “Free”  Version issues  Fit for purpose Mentor Graphics Confidential Information 19
  • 20.
    Commercial Tools Pros Cons  High functionality  Cost  Fully integrated  Vendor lock-in  Technical support  Not comparable to  Wide range available desktop tools Mentor Graphics Confidential Information 20
  • 21.
    Commercial Tools Pros Cons  High functionality  Cost  Fully integrated  Vendor lock-in  Technical support  Not comparable to  Wide range available desktop tools Mentor Graphics Confidential Information 21
  • 22.
    Open Source Tools Pros Cons  Readily available  Nobody responsible  Wide user base  Integration takes time and  Support from users effort  “Free”  Version issues Mentor Graphics Confidential Information 22
  • 23.
    Open Source Tools Pros Cons  Readily available  Nobody responsible  Wide user base  Integration takes time and  Support from users effort  “Free”  Version issues Mentor Graphics Confidential Information 23
  • 24.
    Deployment of opensource tools  Open source tools “out of the box” ...  Which tools? – C/C++ Compilers – Assembler – Linker – Runtime Libraries – Debugger – Debug Stub(s) – Integrated Development Environment Mentor Graphics Confidential Information 24
  • 25.
    Deployment of opensource tools  Do you have the right tools to build the toolchain?  What versions of the various toolchain components will you use? – What patches should be applied?  How should you configure the various toolchain components? – The configure scripts have thousands of options Mentor Graphics Confidential Information 25
  • 26.
    Deployment of opensource tools  What CPUs will be used on your target systems? – Will both big-endian and little-endian code be required? – e.g. “bare metal” ARM runtime libraries are optimized for little-endian ARM V5 – this will not work with ARM V4 – ARM V6 architecture would not be used efficiently Mentor Graphics Confidential Information 26
  • 27.
    Deployment of opensource tools  Toolchain validation – Compiling programs and running those programs in the target environment – Compiling programs and inspecting the generated object file or executable image, without running the generated code – Compiling fragments of a program with multiple compilers and linking the fragments together – Compiling invalid program fragments and checking for appropriate error messages – Testsuites ... Mentor Graphics Confidential Information 27
  • 28.
    Embedded Software Development Runtime– 3 options: Tools – 2 options:  Commercial  Commercial  In-house  Open source  Open source Mentor Graphics Confidential Information 28
  • 29.
    Embedded Software Development Runtime– 3 options: Tools – 2 options:  Commercial  Commercial  In-house  Open source  Open source There is another way ... Mentor Graphics Confidential Information 29
  • 30.
    Embedded Software Development Recognize that open source does not mean “free”  Do not underestimate the configuration and deployment challenges [= costs]  Consider using a specialist vendor – Tools [and OS] packaged and ready to use – Costs well defined and contained – Additional support [with open source community there for you as well] – Additional value-added components  This if The Third Way Mentor Graphics Confidential Information 30
  • 31.
    Thank you Colin Walls colin_walls@mentor.com http://blogs.mentor.com/colinwalls Android is a trademark of Google Inc. Use of this trademark is subject to Google Permissions. Linux® is the registered trademark of Linus Torvalds in the U.S. and other countries.