嵌入式编程相关概念学习笔记汇总

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

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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 ÿ

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值