1. 嵌入式系统包括两种模块:
a.硬件驱动模块;
b.软件功能模块。
2. 嵌入式多任务OS的典型例子有Vxworks、ucLinux等。
3. 单任务程序典型框架:
(1)从CPU复位时的指定地址开始执行;
(2)跳转至汇编代码startup处执行;
(3)跳转至用户主程序main执行,在main中完成:
a.初试化各硬件设备;
b.初始化各软件模块;
c.进入死循环(无限循环),调用各模块的处理函数
4. 中断服务程序:
a. 没有参数;
b. 没有返回值;
c. 不能调用printf等影响性能的东东;
d. 尽量短小。
5. 近指令,远指令,巨指针:
char near *p;
char far *p;
char huge *p;
背景:8086,16位处理器。
设定了四个段寄存器:
CS(Code Segment)代码段寄存器
DS(Data Segment)数据段寄存器
SS(Stack Segment)
ES(Extra Segment)附加段寄存器
近指针:只能访问本段,只包含本段偏移的,位宽为16位的指针;(只能对64k段内地址存取)
远指针:能访问非本段,包含段偏移和段地址的,位宽位32位的指针;(可访问整个内存的地址)
远指针p,指向0x1000段的0x2号地址 p=(char far *)0x10000002;
近指针,远指针,巨指针,都是段寻址的16bit处理器的产物。
6.I2C协议。
I2C地址: 7位、10位 两种
GND、SDA(数据)、SCL(时钟)