武汉大学软件工程大三嵌入式系统课程笔记。
Bootloader 的作用
Bootloader 是"在操作系统运行之前执行的小程序",用于初始化硬件并准备系统环境。分两个阶段运行:
第一阶段(汇编)
- 初始化硬件
- 准备 RAM 空间
- 复制第二阶段到 RAM
- 设置栈
第二阶段(C语言)
- 初始化硬件设备
- 从 Flash 加载内核和文件系统映像到 RAM
- 启动内核
简化功能:将OS映像文件移动到RAM并执行。附加功能包括FLASH编程、硬件诊断和Logo显示。
操作系统服务
三种通信机制:
1. 消息队列(Message Queues)
按顺序存储数据;通过错误码或任务阻塞处理满/空条件。
2. 邮箱(Mailboxes)
类似于队列但对消息进行优先级排序。
3. 管道(Pipes)
面向字节;使用标准读/写函数工作。
系统设计考虑
潜在安全隐患:
- 任务对通信通道的无限制访问
- 数据解释风险
- 缓冲区溢出隐患
- 在任务间传递指针时的共享数据问题