skip to main content
article

The use of compiler optimizations for embedded systems software

Published:01 September 2008Publication History
Skip Abstract Section

Abstract

Optimizing embedded applications using a compiler can generally be broken down into two major categories: hand-optimizing code to take advantage of a particular processor's compiler and applying built-in optimization options to proven and well-polished code. The former is well documented for different processors, but little has been done to find generalized methods for optimal sets of compiler options based on common goal criteria such as application code size, execution speed, power consumption, and build time. This article discusses the fundamental differences between these two general categories of optimizations using the compiler. Examples of common, built-in compiler options are presented using a simulated ARM processor and C compiler, along with a simple methodology that can be applied to any embedded compiler for finding an optimal set of compiler options.

References

  1. ARM, Ltd. 2007. Procedure Call Standard for the ARM Architecture. ARM Ltd., Cambridge, UK.Google ScholarGoogle Scholar
  2. ARM, Ltd. 2007. RealView Compilation Tools for uVision v3.1 Compiler Reference Guide. ARM Ltd., Cambridge, UK.Google ScholarGoogle Scholar
  3. Atmel. 2001. Atmel's ARM-based microcontroller--Low power for portable systems. White Paper. Atmel, San Jose, CA.Google ScholarGoogle Scholar
  4. Faggin, F., Hoff, M. E., Mazor, S., and Shima, M. 1996. The history of the 4004. IEEE Micro 16, 12. 10-20. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Furber, S. 2000. ARM System On-chip Architecture. Addison-Wesley Professional, Harlow, UK. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Hall, S. 1996. Journey to the Moon: The History of the Apollo Guidance Computer. American Institute of Aeronautics & Astronautics, Reston, VA. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Hennessy, J. and Patterson, D. 2002. Computer Architecture: A Quantitative Approach. Morgan Kaufmann, San Francisco, CA. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Lupers, R. 2000. Code Optimization Techniques for Embedded Processors . Kluwer Academic Publishers, Dordrecht, The Netherlands. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Martin, T. 2005. Insider's Guide to Philips ARM7 Microcontrollers. Hitex (UK) Ltd., Coventry, UK.Google ScholarGoogle Scholar
  10. Muchnick, S. 1997. Advanced Compiler Design and Implementation. Morgan Kaufmann, San Francisco, CA. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Seal, D. 2001. ARM Architecture Reference Manual (2nd ed.). Addison-Wesley, Harlow, UK. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Shen, J. 2004. Modern Processor Design: Fundamentals of Superscalar Processors. McGraw-Hill, New York, NY.Google ScholarGoogle Scholar
  13. Sloss, A., Symes, S., and Wright, C. 2004. ARM Architecture Reference Manual 2nd Ed. ARM System Developer's Guide. Morgan Kaufmann, San Francisco, CA. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. York, R. 2002. Benchmarking in context: Dhrystone. White Paper. ARM Ltd., Cambridge, UK.Google ScholarGoogle Scholar

Index Terms

  1. The use of compiler optimizations for embedded systems software

          Recommendations

          Comments

          Login options

          Check if you have access through your login credentials or your institution to get full access on this article.

          Sign in

          Full Access

          • Published in

            cover image XRDS: Crossroads, The ACM Magazine for Students
            XRDS: Crossroads, The ACM Magazine for Students  Volume 15, Issue 1
            September 2008
            26 pages
            ISSN:1528-4972
            EISSN:1528-4980
            DOI:10.1145/1452012
            Issue’s Table of Contents

            Copyright © 2008 ACM

            Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

            Publisher

            Association for Computing Machinery

            New York, NY, United States

            Publication History

            • Published: 1 September 2008

            Permissions

            Request permissions about this article.

            Request Permissions

            Check for updates

            Qualifiers

            • article

          PDF Format

          View or Download as a PDF file.

          PDF

          eReader

          View online with eReader.

          eReader

          HTML Format

          View this article in HTML Format .

          View HTML Format