|
摘要 |
3-4 |
|
ABSTRACT |
4-5 |
|
目录 |
5-8 |
|
第一章 绪论 |
8-10 |
|
1.1 前言 |
8-9 |
|
1.2 本论文的主要工作 |
9-10 |
|
第二章 ATMEGA128内核 |
10-22 |
|
2.1 ATmega128内核 |
11-14 |
|
2.1.1 算术逻辑单元(ALU) |
12 |
|
2.1.2 状态寄存器(SREG) |
12-13 |
|
2.1.3 通用工作寄存器组 |
13-14 |
|
2.2 程序存储器flash |
14 |
|
2.3 数据存储空间(仅内部) |
14-15 |
|
2.4 堆栈 |
15-16 |
|
2.4.1 堆栈指针(stack pointer) |
15-16 |
|
2.5 中断处理 |
16-22 |
|
2.5.1 ATmega128的中断响应机制 |
16-17 |
|
2.5.2 中断响应时间 |
17-18 |
|
2.5.3 ATmega128的定时器中断 |
18 |
|
2.5.4 时钟 |
18-19 |
|
2.5.4.1 时钟系统 |
18-19 |
|
2.5.4.2 时钟源 |
19 |
|
2.5.5 8位定时器/计数器T/C(TCNTO) |
19-22 |
|
2.5.5.1 T/C(TCNTO)寄存器 |
19 |
|
2.5.5.2 T/C控制寄存器TCCRO |
19-21 |
|
2.5.5.3 T/C(TCNTO)的工作模式 |
21-22 |
|
第三章 MC/OS-Ⅱ |
22-29 |
|
3.1 μC/OS-Ⅱ的特点 |
22-23 |
|
3.2 μC/OS-Ⅱ中的重要概念 |
23-29 |
|
3.2.1 代码的临界段 |
23 |
|
3.2.2 资源 |
23 |
|
3.2.3 内核(Kernel) |
23-24 |
|
3.2.4 调度(Scheduler) |
24 |
|
3.2.5 可剥夺型内核 |
24 |
|
3.2.6 中断 |
24-26 |
|
3.2.6.1 中断延迟 |
24-25 |
|
3.2.6.2 中断响应 |
25 |
|
3.2.6.3 中断恢复时间(Interrupt Recovery) |
25-26 |
|
3.2.6.4 中断处理时间 |
26 |
|
3.2.7 时钟节拍(Clock Tick) |
26 |
|
3.2.8 任务 |
26-27 |
|
3.2.8.1 多任务 |
27 |
|
3.2.8.2 任务切换(Context Switch or Task Switch) |
27 |
|
3.2.8.3 任务优先级分配 |
27 |
|
3.2.9 关中断和开中断 |
27-29 |
|
第四章 MC/OS-Ⅱ的移植 |
29-61 |
|
4.1 移植条件 |
29 |
|
4.2 μC/OS-Ⅱ操作系统移植的开发工具 |
29-30 |
|
4.2.1 ICCAVR6.30简介 |
29-30 |
|
4.2.2 AVR Studio4.12简介 |
30 |
|
4.3 移植的实现 |
30-50 |
|
4.3.1 INCLUDES.H文件 |
31 |
|
4.3.2 OS_CPU.H文件 |
31-34 |
|
4.3.2.1 OS_CPU.H外部宏定义 |
31-32 |
|
4.3.2.2 与处理器相关的常量、宏和类型定义 |
32 |
|
4.3.2.3 进入临界代码段(critical code section)的方法 |
32-33 |
|
4.3.2.4 OS_CPU.H,堆栈的增长方向 |
33 |
|
4.3.2.5 OS_CPU.H,任务切换函数OS_TASK_SW() |
33-34 |
|
4.3.2.6 OS_CPU.H,全局变量 |
34 |
|
4.3.2.7 OS_CPO.H,函数原型定义 |
34 |
|
4.3.3 OS_CPU_C.C文件 |
34-41 |
|
4.3.3.1 OS_CPU_C.C,OSTaskStkInit() |
35-39 |
|
4.3.3.2 OS_CPU_C.C,OSTaskCreateHook() |
39-40 |
|
4.3.3.3 OS_CPU_C.C,OSTaskSwHook() |
40 |
|
4.3.3.4 OS_CPU_C.C,OSTimeTickHook() |
40-41 |
|
4.3.4 OS_CPU_A.S文件 |
41-50 |
|
4.3.4.1 OSStartHighRdy() |
41-44 |
|
4.3.4.2 OSCtxSw() |
44-47 |
|
4.3.4.3 OSIntCtxSw() |
47-48 |
|
4.3.4.4 OSTickISR() |
48-50 |
|
4.4 应用代码 |
50-56 |
|
4.4.1 includes.h |
50 |
|
4.4.2 创建任务 |
50-51 |
|
4.4.2.1 用OSTaskCreate()函数创建任务 |
50-51 |
|
4.4.2.2 用OSTaskCreateExt()函数创建任务 |
51 |
|
4.4.3 时钟节拍的实现 |
51-52 |
|
4.4.4 应用程序app.c |
52-54 |
|
4.4.5 任务调度 |
54-56 |
|
4.5 移植代码测试 |
56-61 |
|
4.5.1 编译 |
56-58 |
|
4.5.2 调试和软件仿真 |
58-59 |
|
4.5.3 在SL-MEGA128系统上的运行实验 |
59-61 |
|
第五章 结论 |
61-63 |
|
致谢 |
63-64 |
|
参考文献 |
64-66 |
|
附录A |
66 |