第一天
1. 实时嵌入式系统、VxWorks和Tornado开发环境
1.1 实时嵌入式系统介绍: 实时嵌入式系统,实时嵌入式操作系统,VxWorks概述
1.2 Tornado2.x与VxWorks系统组成:Tornado2.x集成开发环境,VxWorks系统结构,WIND内核,BSP,应用编程接口,shell,TCP/IP协议栈,文件系统
2. Tornado工程的创建和使用
2.1 bootable工程:工程创建, BSP选择,VxWorks裁减,工程编译/链接
2.2 downloadable工程:工程创建,BSP选择,程序管理,工程编译/链接
2.3 工程调试:断点介绍,任务级断点/全局断点的设置,程序单步/多步调试方式
第3章.浏览Linux内核源码
3. 开发和仿真工具介绍
3.1 VxSim仿真工具:VxSim的启动,同tagert server的连接, 仿真运行用户程序
3.2 图形化的交叉调试器和工程配置工具(CrossWind、WindConfig)
3.3 目标机工具集:目标机shell,目标机符号表,显示VxWorks系统信息的函数
3.4 Tornado常用辅助工具介绍
实验:
1、Tornado和各种工具的操作;指导学员熟识Tornado的界面风格,了解菜单、命令的作用和功能;
2、创建downloadable工程;指导学员创建downloadable工程;
3、创建bootable工程;指导学员使用BSP并创建bootable工程
4、编写一段小应用程序仿真并调试;通过实验掌握仿真工具的使用和断点的使用;
5、裁剪VxWorks生成目标映像;通过实验掌握如何裁剪自己需要的VxWorks并生成自己的映像;
6、仿真下载、启动系统映像;通过此实验使学员掌握嵌入式VxWorks系统的开发和使用流程。
第二天
4. VxWorks多任务程序设计
4.1 VxWorks任务基础:任务的状态,任务状态切换
4.2 多任务调度方式:抢占式调度,轮转式调度,抢占上锁,优先级和任务调度
4.3 任务编程:任务创建/删除,任务控制, 任务相关函数介绍, 调度控制
4.4 多任务与函数重入
4.5 VxWorks系统任务
4.6 VxWorks任务异常处理:Task错误状态,用户error扩展
5. VxWorks任务间通信
5.1 共享数据结构、共享内存
5.2 信号量:二进制信号量,互斥信号量,计数信号量,共享内存信号量
5.3 消息队列:消息队列状态,消息队列建立/删除,消息队列的发送和接收
5.4 管道
5.5 信号
6. VxWorks内存管理
6.1 VxWorks内存空间布局
6.2 动态内存分配管理
6.3 虚拟内存接口:MMU,虚拟内存配置
6.4 VxWorks中的Cache一致性
实验:
1、编写一个用户任务;通过实验学员掌握VxWorks下任务的创建方法,充分认识优先级和抢占式的意义;
2、查看各任务状态;通过实验学员熟悉和认识VxWorks下的任务状态和关系,理解时间片的意义;
3、编写双任务互相通信程序;通过实验学员熟悉任务间通信的方式,认识死锁和互斥、同步;
4、修改、编写看门狗程序:认识和使用看门狗程序,认识和理解时间片的意义和VxWorks的调度机制;
5、以一个嵌入式系统实例为对象,剖析地址空间分配:认识一个系统中的地址空间是如何划分的。
第三天
7. VxWorks中断,异常和看门狗
7.1 VxWorks的中断和异常
7.2 VxWorks中断服务:中断连接、使能、禁止,中断服务程序,ISR的特殊限制
7.3 VxWorks 异常服务
7.4 Watchdog定时器
8.VxWorks I/O和文件系统
8.1 VxWorks I/O系统概述:I/O系统接口,文件和文件名
8.2 基本I/O:基本I/O接口,标准输入输出,ioctl(),等待在多个fd上的select( )
8.3 有缓冲和格式化的I/O
8.4 本地文件系统
9.VxWorks配置和映像的生成及其启动
9.1 裁剪VxWorks,编译、链接生成映像
9.2 VxWorks启动顺序概述
9.3 VxWorks引导:romInit(),romStart();sysInit()
9.4 激活内核:usrInit();sysHwInit();kernelInit
9.5 根任务:tUsrRoot
10. VxWorks BSP
10.1 BSP介绍
10.2 BSP的组成
10.3 交叉开发、编译
10.4 bootline 的设计
10.5 PCI以及网卡设备初始化
10.6 设备驱动开发中注重的问题
实验:
1、以串口驱动程序为例,剖析中断机制、中断处理和中断服务例程:使学员掌握VxWorks中断的处理和使用,认识中断和任务间的关系;
2、以一个嵌入式系统实例为对象,分析VxWorks BSP的实现,剖析组成和系统启动流程;
3、裁减、编译一个嵌入式系统所需要的bootRom映像;
4、裁减、编译一个嵌入式系统所需要的VxWorks映像;
5、创建一个嵌入系统,编译、裁剪生成一套VxWorks系统。