1. 嵌入式编程 VS 桌面(PC)编程 :
嵌入式编程环境的主要特性:
(1)对成本更敏感,要求更严格;
(2)ROM、RAM和栈空间大小都是较小(有限制)的;
(3)功耗是较小(有限制)的;
(4)运算能力是有限的;
(5)是多事件并发的事件驱动模型;
(6)有严格的实时反应和控制要求;
(7)可靠性(更高);
(8)是基于硬件编程的;
2. 嵌入式编程需要优化的使用资源
(1)执行时间(MIPS);
(2)内存;
(3)功耗;
(4)开发和维护时间;
3. 使用高级语言(HLL)的好处
(1)缩短开发周期:能对一些编译好的模块进行代码重用,能够直接调用标准函数库的一些功能函数;
(2)支持基本数据类型、控制结构和条件语句;
(3)支持类型检查:能在编译时进行类型检查以减少程序的错误;
4. 常见算术运算的速度快慢排序(从高到低)
整型运算 --》硬件中浮点型运算 --》软件中的浮点型运算 --》加减 --》乘 --》除 --》开方等运算
使用建议:
(1)尽量使用整型加减运算;
(2)除非有硬件(带乘法器),否则,避免使用乘法运算;
(3)避免使用除法运算;
(4)除非有硬件(带VFP单元),否则,避免使用浮点型运算;
(5)避免调用数学库函数的运算(指令可能较为复杂);
5. 位操作运算(运算符介绍)
& 按位与操作符 -------- 将操作数转化为二进制数,按bit位对应相与,同真为真;
| 按位或操作符 -------- 将操作数转化为二进制数,按bit位对应相或,有真为真;
^ 按位异或操作符 -------- 将操作数转化为二进制数,按bit位对应异或,相异为真;
~ 按位取反操作符 -------- 将操作数转化为二进制数,按bit位对应取反,真假易位;
>> n 向右移位n个bit位 -------- 将操作数转化为二进制数,依次向右移位n个bit位;
<< n 向左移位n个bit位 -------- 将操作数转化为二进制数,依次向左移位n个bit位;
以上操作符即可与赋值语句结合使用,在嵌入式系统中常常会被用到。
小练习:在不影响其他位的情况下将一个32位控制寄存器(reg)的第三位设置为1和清为0
(1)置1 :reg |(1<<2)
(2)清0 ÿ

本文详细介绍了嵌入式编程的特点和挑战,包括资源限制、实时性要求、事件驱动模型等,并强调了优化资源使用的重要性。讨论了高级语言的优势、算术运算效率、位操作、结构体位域、共用体、惰性逻辑操作符、分支结构的比较以及内存管理。此外,还涉及了中断服务程序、线程安全、交叉编译和中断处理等核心概念,为嵌入式开发提供了实用的指导和技巧。
最低0.47元/天 解锁文章
539

被折叠的 条评论
为什么被折叠?



