嵌入式软件课程笔记

武汉大学软件工程大三嵌入式系统课程笔记。

Bootloader 的作用

Bootloader 是"在操作系统运行之前执行的小程序",用于初始化硬件并准备系统环境。分两个阶段运行:

第一阶段(汇编)

  • 初始化硬件
  • 准备 RAM 空间
  • 复制第二阶段到 RAM
  • 设置栈

第二阶段(C语言)

  • 初始化硬件设备
  • 从 Flash 加载内核和文件系统映像到 RAM
  • 启动内核

简化功能:将OS映像文件移动到RAM并执行。附加功能包括FLASH编程、硬件诊断和Logo显示。

操作系统服务

三种通信机制:

1. 消息队列(Message Queues)

按顺序存储数据;通过错误码或任务阻塞处理满/空条件。

2. 邮箱(Mailboxes)

类似于队列但对消息进行优先级排序。

3. 管道(Pipes)

面向字节;使用标准读/写函数工作。

系统设计考虑

潜在安全隐患:

  • 任务对通信通道的无限制访问
  • 数据解释风险
  • 缓冲区溢出隐患
  • 在任务间传递指针时的共享数据问题