C语言编程程序优化方案,如何选择一个ARM品牌核心处理器操作系统
特点有很大关系。我们通常要对硬件寄存器进行位设置,譬如,我们通过将AM186ER型80186处理器的中断屏蔽控制寄存器的第低6位设置为0(开中断2),最通用的做法是:
#define INT_I2_MASK 0x0040
wTemp = inword(INT_MASK);
outword(INT_MASK, wTemp &~INT_I2_MASK);
而将该位设置为1的做法是:
#define INT_I2_MASK 0x0040
wTemp = inword(INT_MASK);
outword(INT_MASK, wTemp | INT_I2_MASK);
判断该位是否为1的做法是:
#define INT_I2_MASK 0x0040
wTemp = inword(INT_MASK);
if(wTemp & INT_I2_MASK)
{
… /* 该位为1 */
}
上述方法在嵌入式系统的编程中是非常常见的,我们需要牢固掌握。
总结
在性能优化方面永远注意80-20准备,不要优化程序中开销不大的那80%,这是劳而无功的。
宏定义是C语言中实现类似函数功能而又不具函数调用和返回开销的较好方法,但宏在本质上不是函数,因而要防止宏展开后出现不可预料的结果,对宏的定义和使用要慎而处之。很遗憾,标准C至今没有包括C++中inline函数的功能,inline函数兼具无调用开销和安全的优点。
使用寄存器变量、内嵌汇编和活用位操作也是提高程序效率的有效方法。

除了编程上的技巧外,为提高系统的运行效率,我们通常也需要最大可能地利用各种硬件设备自身的特点来减小其运转开销,例如减小中断次数、利用DMA传输方式等。
如何选择一个ARM品牌核心处理器操作系统
ARM公司是世界最大的半导体知识产权供应商,拥有全球近200家半导体公司的客户。目前,80%的GSM手机,99%的CDMA手机,以及未来3G手机也都是采用基于ARM核的嵌入式处理器。提供研究分析信息的机构Gartner Inc,2003年6月份统计,2002年ARM在全球半导体IP供应商中排名第一,占市场份额的19.8%,销售收入达1.8亿美圆,比2001年增长10%。
目前,除了像TI OMAP, Intel的Xscale和Motorola的IMX系列这样的移动终端处理器采用ARM核外,也还有象Samsung, Atmel, Sharp, OKI和Philip等半导体公司设计一些通用ARM核的处理器,可以广泛应用在各种嵌入式系统,现在在市场上看到比较多的有S3C44B0, 4510,2410,AT91系列和Intel PXA255等。
ARM处理器是32位设计,同时也配置了16位指令集,软件可以以16位编码与等价32位代码相比,占用的存储器空间可以节省约35%。ARM处理器目前有ARM7, ARM9, ARM9E, ARM10, ARM11系列产品和来自合作伙伴Intel Xscale和Strong ARM系列ARM7,适合于中低端的网络设备、终端、各种通用型的嵌入式应用和工业控制等领域。ARM9适合于智能手机、PDA和先进的控制管理和仪器仪表应用。Intel Xscale系列产品提供了高性能价格比、低功耗、适用于智能无线终端、PDA、家庭网络和网络存储器设备等应用。
嵌入式操作系统是ARM CPU重要的软件基础
从8位/16位单片机发展到以ARM CPU核为代表的32位嵌入式处理器,嵌入式操作系统将替代传统的由手工编制的监控程序或调度程序,成为重要的基础组件。嵌入式操作系统可以提供ARM CPU核和外设的设备管理,如核的初始化、MMU(内存管理单元)、定时器、中断、串口、SPI、GPIO、以太网、图形接口等,嵌入式操作系统提供任务调度、内存管理、中断处理、同步互斥机制、文件系统和网络功能,更重要的一点是嵌入式操作系统对应用程序可以起到屏蔽的作用,让应用程序员面向操作系统级开发应用软件,并易于在不同的基于ARM核的嵌入式处理器上移植。
嵌入式操作系统都一般具有一定的实时性,易于裁剪和伸缩,可以适合于从ARM7到Xscale各种ARM CPU和各种档次的应用,嵌入式操作系统可以使用广泛流行的ARM开发工具,如ARM公司的SDT/ADS和Real View、IAR EW等也可以使用开源的软件,如GCC/GDB、KDE或Eclipe开发环境,市场上还有商业厂商的专用的开发工具,如Tornado、μC/View、μC/KA、CODE/Lab、Metroworks等。
本文就目前国内在ARM CPU上广泛采用的三种嵌入式操作系统做个分析,μC/OS-II、μCLinux和嵌入式Linux。后两种同属于Linux,前者是针对没有MMU的微处理器,如ARM7 TDMI核,后者可适用于绝大多数有MMU的微处理器中,如ARM920T,当然,文章也会涉及到其它支持ARM CPU的嵌入式操作系统。
μC/OS-II嵌入式实时内核
由Jean Labrosse先生著,邵贝贝老师翻译的《嵌入式实时操作系统μC/OS-II》先后由电力出版社(第一版)和航空航天大学出版社出版(第二版)发行了近万册,相信有数以千计的学生、老师
- 工控机在IC卡加油工程中的应用(05-13)
- 联网汽车为什么选择Linux开源平台?(07-10)
- 多网络和Linux代理的Android无线远程控制系统(02-02)
- 基于嵌入式Linux的家居监控系统设计(02-22)
- 基于嵌入式Linux系统的导航软件设计思路(03-17)
- 新型嵌入式机器视觉系统的设计研究(04-21)
