文档介绍:Π
2
Π 2
Π
ARM3 3 嵌入式系统 C 语言编程
姜换新
(惠普中国软件研发中心上海 201206)
摘要无操作系统支持的嵌入式系统软件,包括系统引导(BOOT) 、驱动程序、动态内存管理、I O、通信以及应用软件等方面。
本文详细介绍了嵌入式平台上用 C 语言编写系统软件和应用软件的方法。虽然是针对 ARM 平台介绍的,但基本经验和算法也适
合于其他嵌入式平台的软件设计。
关键词嵌入式系统软件 C 语言 ARM
PROGRAMMING C ON ARM EMBEDDED PLATFORM
Jiang Huanxin
( China Software Solutions Center , Hewlett - pany , Shanghai 201206)
Abstract Programming C on ARM embedded platform is plicated project. Modules including system boot ,drivers ,dynamic memory manage
ment ,I O interface ,communications and applications should be considered carefully. With an excellent experience on ARM embedded system ,the au
thor gives a detailed description in this paper on the methods and algorithms about programming ARM. Though ARM is the only discussed item ,this
paper is useful for programming on any other embedded platforms.
Keywords Embedded system Software C programming language ARM
是没有意义的(如果返回,表明系统出现严重错误) 。另外,为
1 引言了避免产生混淆,我们还必须给 main 函数另外取一个名字,比
如 Main。否则,编译器将会给 main 函数生成一大堆初始化代
码,导致 C 程序的主入口与系统引导模块的接口错误。
无操作系统支持的嵌入式软件包括系统引导(BOOT) 、外
系统引导模块完成各种初始化工作后,用一条跳转指令进
围驱动程序、存储管理、系统 I O、通信、应用程序等方面,需要
入 C 的主入口 Main ,控制权从此移交给了 C 应用程序。
结合采用汇编语言(约占 10 %) 和 C 语言(约占 90 %) 。本文结
合作者实践,详细介绍 ARM 嵌入式平台的 C 编程方法。考虑
到通信软件涉及范围较大,本文不进行讨论。 3 存储管理
存储管理是一个复杂的课题。从广义的角度来说磁盘文
2 系统引导与 main 函数,
件系统、内存、片内高速 Cache 等都属于这个范畴。嵌入式系统
中较有意义的是内存的动态分配与释放及存储器管理
通常 C 语言是从 main 函数开