Computer Education
教育与教学研究
文章编号:1672-5913(2008)06-0098-02
基于C语言的ARM嵌入式程序设计教学探讨
郭 群
(辽宁对外经贸学院 信息技术系,大连 116052)
摘 要:本文探讨了基于C语言的ARM嵌入式程序设计课程中学生反映不好掌握的一些知识点。 关键词:ARM嵌入式;C语言;程序设计;技巧 中图分类号:G642 文献标识码:B
引言
嵌入式C语言程序设计是利用基本的C语言知识,面向嵌入式工程实际应用进行程序设计语言。如何能够在嵌入式系统开发中熟练、正确地运用C语言开发出高质量的应用程序,是学习嵌入式程序设计的关键。下面介绍基于C语言的ARM嵌入式程序设计课程中学生反映不好掌握的一些难点。
1 变量定义
先看下面一个例子:
char a; char a; short b; char c; char c; short b; int d; int d;
这里定义的4个变量形式都一样,只是次序不同,却导致了在最终映像中不同的数据布局,如图1所示。显然,第2种方式节约了更多的存储空间(Pad为无意义的填充数据)。
由此可见,在变量声明时,最好把所有相同类型的变量放在一起定义,这样可以优化存储器布局。
对于局部变量类型的定义,一般情况下,人们总是设法使用short或char来定义变量,以节省存储空间;但是,当一个函数的局部变量数目有限时,其结果恰恰相反。因为编译器会把局部变量分配给内部寄存器,每个变量占用一个寄存器,如图2所示。假定a1是任意可能的寄存器存储函数的局部变量,同样完成加1的操作,32位的int型变量最快,只用1条加法指令。而8位和16位变量,完成加法操作后,还需要在32位的寄存器中进行括号扩展,其中有符号的变量,要用逻辑左移(LSL)和算术右移(ASR)2条指令才能完成符号扩展;无符号的变量,要使用1条逻辑“与”(AND)指令对符号位进行清0。所以,使用32位int或unsingedint局部变量最有效率。
图2 不同类型局部变量的编译结果
图1 变量在数据区里的布局
变量定义中,为了精简程序,程序员总是竭力避免使用冗余变量。通常情况下这是正确的,但也有例外。
例如:冗余变量的使用与否比较。 int f(void); int g(void); int errs;
收稿日期:2007-12-15
作者简介:郭群(1964-),女(汉),辽宁省新民市,副教授,从事计算机软件方面教学及科研工作。
98








探讨ARM嵌入式系统C语言编程_计算机硬件及网络_IT/计算机_专业资料。Embedded Technology...用程序 多数 都需 要 c语 言来编程 ,因此,下面分析 ARM 嵌入式系统 和...
ARM嵌入式系统C语言编程 摘要 无操作系统支持的ARM嵌入式平台软件编程包括系统引导(BOOT)、驱动程序、动态内存管理、系统I/O设计、通信以及应用软件等方面。本文结合...
实验二 1 2 3 4 5 6 ARM嵌入式 C语言程序设计 嵌入式 语言程序设计 实验目的 实验设备 实验原理 实验内容 实验操作步骤 注意事项 一、实验目的 学会使用?...
计算 机光 盘软 件 与应 用21 年第 101 8期 Cmue DSfwr n plctosoptrC otaeadAp ain i 软件设计开发 AM 嵌入式系统 C语言编程分析 R孙婧 ( 乡广播 电视...
ARM系统中高效C语言程序设计探析_专业资料。社会进步...从软件工程师的角度来看,程序员在嵌入式软件系统开发...小学英语教学教研工作总结20份文档 乘机安全小贴士 ...
本文详细介绍了嵌入式平台上用 C 语言编写系统软件和应用软件的方法 。虽然是针对 ARM 平台介绍的 ,但基本经验和算法也适 合于其他嵌入式平台的软件设计 。 关键...
ARM 嵌入式系统 C 语言编程姜 换新 ( 惠普中国软件研发中心 上海 201206) 摘...2013年注会设计统考真题及答案 1028988份文档 教学总结精品范文 小学五年级英语教...
实验二 基于arm的嵌入式c... 7页 1财富值 ARM嵌入式 C语言程序设计实......嵌入 式 系统 已经广 泛渗 透到 科学 研究 、 工程设 计、 事技 军 别...
.虽然是针对ARM平台介绍的,但基本经验和算法也适合于其他嵌入式平台的软件设计....“工程实践”的嵌入式系统教学模式,并介绍了课程的目标和考核体系,以及具体的 ...
ARM嵌入式系统C语言编程_韩语学习_外语学习_教育专区。ARM嵌入式系统C语言编程件...虽然是针对ARM平台介绍的,但基本经验和算法也适合于其他嵌入式平台的软件设计。 ...
热门文档