嵌入式编程笔记

来源:互联网 发布:smtp.sina.com 端口 编辑:程序博客网 时间:2024/06/03 21:23

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(时钟)