Skip to main content

Building and Deployment

  • Chapter
  • First Online:
Building Embedded Systems
  • 3442 Accesses

Abstract

When the scale of your system grows, two things will likely happen.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 59.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 79.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Notes

  1. 1.

    The Make utility will check the timestamps to determine whether targets are older than any of the prerequisites.

  2. 2.

    Another way to process the return value is to use the $? variable, which will be demonstrated in later sections.

  3. 3.

    Nested includes are also covered in this list.

  4. 4.

    Mutual or cyclic dependency could happen under complex circumstances. For example, both module A and module B could reference each other's configuration header files config_A.h and config_B.h, while these configuration header files are supposed to be generated dynamically during the build process. Due to their complexity, mutual dependency and cyclic dependency are usually solved on an ad hoc basis, and they will not be discussed in this book.

  5. 5.

    The renowned Android OS is also based on the Linux kernel.

  6. 6.

    Here I take the liberty of assuming that PC is the standard service rifle for embedded developers. Apple fans, feel free to replace it with iMAC.  :-)

  7. 7.

    Of course, you can always use JTAG ICE. But ICE is an expensive piece of equipment, and it might be overkill if all you need is to load something into memory and run it.

  8. 8.

    As you can imagine, I am no expert on emacs.

References

  1. Learning Perl on Win32 Systems. Randal L. Schwartz, Erik Olson, Tom Christiansen, O'Reilly Media, August, 1997

    Google Scholar 

  2. Learning Python, 3rd Edition. Mark Lutz, O’Reilly Media, 2008

    Google Scholar 

  3. Managing Projects with GNU Make, Third Edition. Robert Mecklenburg, O'Reilly Media, November, 2004

    Google Scholar 

  4. “Recursive Make Considered Harmful.” Peter Miller, AUUGN Journal of AUUG Inc., 1997

    Google Scholar 

  5. Cx51 Compiler User’s Guide, “Optimizing C Compiler and Library Reference for Classic and Extended 8051 Microcontrollers,” Keil Software Inc., September, 2011

    Google Scholar 

  6. “The Kernel Configuration and Build Process.” Greg Kroah-Hartman, Linux Journal, Issue #109, May, 2003

    Google Scholar 

  7. kconfig-language.txt, ( http://www.kernel.org/doc/Documentation/kbuild/kconfig-language.txt )

  8. GNU Automake, version 1.11.1, David MacKenzie, Tom Tromey, Alexandre Duret-Lutz, Free Software Foundation, Inc., December 8, 2009

    Google Scholar 

  9. Autoconf, Creating Automatic Configuration Scripts, version 2.68, David MacKenzie, September, 2010

    Google Scholar 

  10. GNU M4, version 1.4.16, Rene Seindal, Francois Pinard, Gary V. Vaughan, and Eric Blake, Free Software Foundation, Inc., February, 28, 2011

    Google Scholar 

  11. CMake 2.8 Documentation ( http://www.cmake.org ), Kitware, Inc., Insight Software Consortium., 2009

  12. JAM Product Information ( http://www.perforce.com/documentation/jam )

  13. Boost C++ Library ( http://www.boost.org )

  14. Boost.Build V2 User Manual, Vladimir Prus, 2009

    Google Scholar 

  15. SCons: A Software Construction Tool ( http://www.scons.org )

  16. SCons User Guide 2.4.1, Steven Knight and the SCons Development Team, 2015

    Google Scholar 

  17. Ant: The Definitive Guide, 2nd Edition. Steve Holzner, O'Reilly Media, April, 2005

    Google Scholar 

  18. Maven by Example, Sonatype Inc., 2011

    Google Scholar 

  19. Embedded Android—Porting, Extending, and Customizing. Karim Yaghmour, O'Reilly Media, October, 2011

    Google Scholar 

  20. ELDK 5.1 Documentation ( http://www.denx.de/wiki/ELDK-5/WebHome )

  21. Pre-built GNU cross toolchain ( ftp://ecos.sourceware.org/pub/ecos/gnutools/ ), contributed by eCosCentric Limited

  22. Buildroot: Making Embedded Linux easy ( http://buildroot.uclibc.org )

  23. Building and Testing gcc/glibc cross toolchains ( http://kegel.com/crosstool )

  24. RedBoot ( http://ecos.sourceware.org/redboot )

  25. Das U-Boot: The Universal Boot Loader ( http://www.denx.de/wiki/U-Boot/WebHome )

  26. Linux Kernel Development, 3rd Edition. Pearson Education, Inc., 2010

    Google Scholar 

  27. Linux Device Drivers, 3rd Edition. Jonathan Corbet, Alessandro Rubini, Greg Kroah-Hartman, O'Reilly Media, February, 2005

    Google Scholar 

  28. Embedded Linux, Hardware, Software, and Interfacing. Craig Hollabaugh, Ph.D., Pearson Education, 2002

    Google Scholar 

  29. Linaro ( https://www.linaro.org/ )

Download references

Author information

Authors and Affiliations

Authors

Rights and permissions

Reprints and permissions

Copyright information

© 2016 Changyi Gu

About this chapter

Cite this chapter

Gu, C. (2016). Building and Deployment. In: Building Embedded Systems. Apress, Berkeley, CA. https://doi.org/10.1007/978-1-4842-1919-5_8

Download citation

Publish with us

Policies and ethics