Global Sources
EE Times-India
Stay in touch with EE Times India
EE Times-India > Embedded

Is source code really necessary?

Posted: 27 Aug 2014     Print Version  Bookmark and Share

Keywords:embedded  software  real time operating system  high-level design languages  VHDL 

If you ask any embedded software developer whether they would like access to the source code for their chosen real time operating system, the answer would almost certainly be yes. Likewise for any other software IP. This article investigates whether this is a sensible answer in all cases and looks at when and why source code is needed and why sometimes it may be less useful than anticipated.

Why source code?
There are a number of key criteria that engineers apply when selecting a real time operating system (RTOS). Many of them – cost, functionality, licensing, support – make a lot of sense. However, another one – availability of source code – may be less logical, but is always rated as a strong factor.

Source code being available does not mean that it is supplied automatically and free of charge. This may be the case with some commercial products, and, of course, open source products intrinsically include source code. However, other vendors may choose to charge for source code or not make it available at all.

The reasons for wanting source code need to be examined in some detail so its suitability as a selection criterion may be assessed.

The Hardware example. There are many similarities between the way hardware developers operate and how software development is performed. This is particularly true in an age when most electronic design is done using high-level design languages (HDL), like VHDL and Verlog. So, where do they stand on source code?

Historically, a hardware engineer would have selected an integrated circuit to incorporate into their design. That selection would have been based on the data sheet, which specified functionality, pin-out, power requirements, etc. There would have been no expectation that a complete circuit diagram for the IC would be provided.

An engineer today who is developing an ASIC or deploying an FPGA is likely to employ some licensed intellectual property (IP) – a pre-packaged functional unit that provides a specified set of capabilities. Once again, the selection would be based on the data sheet with no expectation that the original HDL for the IP would be supplied. The approach of using "black boxes" is well established in the world of hardware design.

Security. Any technology that is incorporated into a product needs to be selected with future supply and support possibilities in mind. Again, hardware designers have a clear view: sourcing ICs from single suppliers is avoided whenever possible, as multiple sources mitigate against an interruption in supply.

The issue is different when using IP, whether hardware IP or software IP (like an RTOS). Ongoing supply is not a concern, but continuing support must be considered. Clearly, diligent assessment of the vendor is necessary. Are they going to continue to support the IP? Indeed, are they likely to be still in business throughout the lifetime of your product?

If the source code for the IP is available, this gives the possibility of addressing any problems with the software even if the vendor is no longer able to offer support. For this reason, many purchasers of RTOSes, etc., like to have the source code on the shelf, even if they never look at it, "just in case".

Software configuration. A key difference between embedded systems and desktop computers is variability. Most PCs are similar to numerous others: Windows, Mac, or Linux. Embedded systems, on the other hand, are incredibly variable – different CPUs, memory configurations, and peripherals. As a result, software IP needs to be flexible so that it may be deployed on as many different systems as possible. Although many products like RTOSes are supplied in binary form – typically a library that is linked with the application code – it can be challenging for a vendor to maintain and support numerous variations.

Supplying the IP in source form addresses many of these issues. The user can build the code for the specific CPU, link for the memory map of the device, and add in custom device drivers, as necessary. In some cases, the IP is configured by conditional compilation – typically a header file is edited to define the configuration.

1 • 2 Next Page Last Page

Comment on "Is source code really necessary?"
*  You can enter [0] more charecters.
*Verify code:


Visit Asia Webinars to learn about the latest in technology and get practical design tips.


Go to top             Connect on Facebook      Follow us on Twitter      Follow us on Orkut

Back to Top