嵌入式C语言
位域
一个整数按位分成几个部分,例子时分秒的分割。
保留位
强制访问
- 强制类型转换:&取地址后可以任意转换(xxxx*)&var;
使用Union
I/O速度匹配(对时序编程)
- Delay
Sleep
C语言反思
- 推荐看高质量C++编程
中断编程
- 建立中断向量表
- 设置中断源
- 中断控制初始化
- 中断服务程序
系统实现
I/O映射
#define base #define A (base+1) #define B (base+)
存储器测试
- 在处理器与存储设备之间的连线问题(短路 开路)
- 数据总线 地址总线 设备的测试
- 数据总线测试方式: 走“1”测试;
- 地址总线测试方式:
设备测试:本身的完整性,确认的设备中每一位都能保持住 0
短路 开路 会出现什么状况。回去重新理解着三个测试 下节课考点验证存储器内容
- 校验和
CRC校验
实时系统的概念
- 嵌入式实时操作系统的重要指标:实时性、尺寸、可扩展性(内核、中间件);
- 硬件抽象层HAL:是体系结构相关的底层程序
处理系统启动 、硬件初始化及中断与异常
μC/OS-II
自己尝试“写”RTOS
代码的临界段
也叫临界区,指处理时不可分割的代码,运行代码不允许被打断
调度
- 不可剥夺
- 可剥夺
- 可重入函数:任何时候都可以被打断!
任务切换
- 任务运行环境:
- 处理器中的运行环境:Pc、SP
- 内存中的运行环境:任务代码、任务堆栈
- 处理器通过两个指针寄存器(PC和SP)来与任务代码和任务堆栈建立联系并运行它。
- PC 程序的断点地址
SP 任务堆栈指针
总结
本次课程中,上半节课接着上次课程讲了位域,下半节课讲述了实时系统。从中反思了一下自己的C语言能力有哪些不足,对实时系统有了一定的了解,怎样去写一个简单的实时系统操作系统。老师页给出建议