第一天
1. VxWorks下BSP基本知识的介绍
1.1 VxWorks下BSP的职责,组成及开发流程综述
1.2 VxWorks下系统启动流程
1.3 BSP及操作系统的文件组织结构
2. BSP需要关注的嵌入式系统的硬件
2.1 各种CPU体系架构所需要关注的:指令集,MMU的支持,CACHE,中断处理,硬浮点的支持,大小字序
2.2 总线:总线周期,仲裁,数据传输,中断策略
2.3 存储器:各种存储介质的配置及访问
2.4 设备:Timer,串口,网口
3. 开发环境及策略
3.1 BSP的开发流程及方法
3.2 开发环境的搭建,各种调试工具
3.3 调试BootRom的方法及技巧
4. 系统启动流程概述
4.1 系统启动流程介绍,启动流程图
4.2 BSP目录下各文件的属性及用途
4.3 编译满足要求的各种BootRom及VxWorks程序映像,反汇编,生成map文件
5. BootRom启动流程分析
5.1 单板相关的文件
5.2 系统启动后一个文件romInit.s的组成及功能
5.3 调试BootRom需要注意的问题:汇编指令,PIC,关于栈
6. 启动kernel前对硬件的初始化
6.1 启动kernel之前代码流程介绍
6.2 硬件的初始化,sysHwInit(),重要API的实现
6.3 内核的激活
6.4 VxWorks内核的调试:启动WDB,调试通道的配置:串口,网口
【辅助实验】
1. Tornado的目录结构的熟悉,通过一个BSP实例,熟悉BSP的文件组成;
2. 通过一个单板实例,掌握如何根据现有资源获得单板的信息,满足BSP开发的需要;
3. 通过一个处理器实例,掌握如何从芯片资料中获取BSP开发有用的信息的方法;
4. BSP开发环境的搭建以及各种软件调试工具的使用;
5. 通过一个BSP实例,分析系统的启动,使学员清晰VxWorks的启动流程;
6. 通过BSP实例,使学员熟悉BSP工程的搭建方法,makefile及romInit.s文件的设计;
7. 通过BSP实例,分析sysHwInit()及重要API的实现;
8. 通过BSP实例,使学员掌握如何启动WDB,如何配置调试通道。
第二天
7.存储管理
7.1 内存的分配,BSP中各种地址的意义
7.2 MMU:MMU的使能,配置以及操作系统的接口
7.3 CACHE: CACHE的使能,配置以及操作系统的接口
8. 中断管理
8.1 中断管理概述:中断向量,中断栈,实现中断管理的函数
8.2 中断服务程序的连接
8.3 操作系统关于中断管理的库介绍
8.4 中断控制器的初始化
9. 时钟和定时器
9.1 系统时钟的初始化及配置,中断的连接,服务程序的实现,使能及关闭
9.2 关于辅助时钟及其与系统时钟实现的差异
9.3 时间戳:时间戳的用途,实现
10. BSP相关的设备驱动程序
10.1 串口驱动程序的设计及加载
10.2 END型驱动的设计及加载
10.3 标准USB接口驱动的实现
10.4 TFFS的实现及使用
11. VxWorks 6.x新的技术的介绍及移植方法
11.1 VxWorks 6.x BSP引入的新技术:VxBus,存储保护,错误监测及报告,共享内存
11.2 VxWorks 5.5.1到VxWorks 6.x BSP的移植
11.3 BSP开发中信息的获取以及求助渠道
11.4 BSP开发经验的总结
【辅助实验】
1. 通过一个BSP实例,分析使学员熟悉VxWorks下内存的分配;
2. 通过PPC BSP实例,分析使学员熟悉MMU及CACHE的配置以及操作系统的接口;
3. 通过一个具体的单板,分析使学员熟悉如何配置中断控制器完成中断的挂接及使能,并熟悉操作系统的相关接口;
4. 通过一个BSP实例,分析使学员熟悉系统时钟的实现及配置以及如何实现时间戳;
5. 以NS16550的sio驱动为例,通过分析使学员掌握串口驱动的开发方法;
6. 通过一个具体的END型驱动,分析使学员掌握以太网口驱动的开发方法;
7. 以Intel 28F128J3X型Flash为例,通过分析使学员掌握TFFS的实现;
8. 以一个具体的VxBus设备驱动为例,通过学习使学员掌握VxBus下驱动的开发方法。