Benefits of Source Code
Having full source code for software libraries you use promotes self-sufficiency. It gives you the control to fix, improve, and extend the code as needed.
- It aids in debugging by making it possible to trace into the code or add markers to it to
find out why a function is not acting as expected. This may allow you to solve a problem
more quickly or during hours when technical support is
unavailable.
- It helps you to learn the code. Manuals are never perfect. Whereas we make
a major effort to make our manuals complete and up to date, some vendors'
manuals are woefully inadequate. This shortcoming may not be obvious until
you get into a difficult spot.
- It allows you to rename or change anything that conflicts with other libraries for which you do not have source code.
- It allows fixing problems in the code independently of vendor support. This may be necessary if,
for example, your management will not renew support, the vendor abandons the
product, or the vendor disappears.
- It makes it easier to incorporate fixes and enhancements released by the vendor. You can apply just the fixes without having to get complete new libraries which may make changes you don't want or that cause more work for you to integrate.
- It permits optimizing the code for your particular
processor, for size rather than speed, etc. Typically,
compilers have switches to target specific processors, but it is typical for pre-built libraries to be built for the generic processor architecture, so it runs on all of them (e.g. ColdFire). With source code, you
can recompile with the switch for your specific processor
to achieve better performance. Also, you can try different optimization levels or specific optimizations.
- It allows you to further reduce memory usage for small SoCs with severely limited memory, by removing code and data you don't need within functions. (The linker should deadstrip whole functions you don't need.)
- It allows you to extend the libraries, such as by adding new system calls (kernel), new media drivers (file system), class/function drivers (USB), etc. The existing code serves as a good example of how to create a new one.
- It satisfies the requirement of certification agencies
that require a project to have source code for all components.
Generally speaking, not having the source code for libraries you buy makes you more dependent upon good support from the vendor. Whereas we provide extremely good support, many of our competitors do not, and they do not include source code or charge more for it. This is an important tradeoff to make with many low-cost, library-only solutions flooding the market. It is important to remember that one of the reasons for buying commercial solutions is to save you time and your company money.
You should choose software that includes full source code, such as SMX® products.
back to White Papers page
|