logo资料库

vxworks BSP 移植 ARM.doc

第1页 / 共28页
第2页 / 共28页
第3页 / 共28页
第4页 / 共28页
第5页 / 共28页
第6页 / 共28页
第7页 / 共28页
第8页 / 共28页
资料共28页,剩余部分请下载后查看
1.适用范围
2.BSP分析
2.1BSP的文件构成
1.all目录:
2.bspname目录:
2.2BSP的执行逻辑
2.2.1BootROM image
1.bootrom的执行逻辑:
2.2.2VxWorks image
1.不带ROM引导功能的VxWorks镜像
2.带ROM引导功能的VxWorks镜像
2.2.3Driver加载的时机
3.移植要点
3.1异常处理
3.2中断处理
3.3时钟
3.4串口驱动
3.4.1概述
3.4.2ttyDrv(包括tyLib)
1.ttyDrv()
2.ttyDevCreat()
3.write( )( tyWrite( )( xxDrv
4.read( )( tyRead( )( xxDrv
5.ioctl()
3.4.3xxDrv驱动的实现
1.初始化过程的概述
2.编写entry point函数
3.修改sysSerial.c文件
4.对target agent的支持
5.总结
3.5编译链接
4.参考资料
VxWorks BSP 移植技术笔记 V0.01 VxWorks 技术笔记 Technical Note 基于 s3c2440a 的 VxWorks BSP 移植 TN01010101 Date:2009/04/08 类别 关键词 摘 要 内容 VxWorsk BSP s3c2440a VxWorks 的 BSP 开发 广州致远电子有限公司
广州致远电子有限公司 VxWorks BSP 移植技术笔记 VxWorks 技术笔记 修订历史 版本 V0.01 日期 2009/04/08 原因 创建文档 VxWorks 技术笔记 ©2009 Guangzhou ZHIYUAN Electronics CO., LTD. i
广州致远电子有限公司 VxWorks BSP 移植技术笔记 VxWorks 技术笔记 销售与服务网络(一) 广州周立功单片机发展有限公司 地址:广州市天河北路 689 号光大银行大厦 12 楼 F4 邮编:510630 电话:(020)38730916 38730917 38730972 38730976 38730977 传真:(020)38730925 网址:www.zlgmcu.com 广州专卖店 南京周立功 地址:广州市天河区新赛格电子城 203-204 室 电话:(020)87578634 87569917 传真:(020)87578842 地址:南京市珠江路 280 号珠江大厦 2006 室 电话:(025)83613221 83613271 83603500 传真:(025)83613271 北京周立功 重庆周立功 地址:北京市海淀区知春路 113 号银网中心 A 座 1207-1208 室(中发电子市场斜对面) 电话:(010)62536178 62536179 82628073 传真:(010)82614433 地址:重庆市石桥铺科园一路二号大西洋国际大厦 (赛格电子市场)1611 室 电话:(023)68796438 68796439 传真:(023)68796439 杭州周立功 成都周立功 地址:杭州市天目山路 217 号江南电子大厦 502 室 电话:(0571) 28139611 28139612 28139613 28139615 28139616 28139618 传真:(0571) 28139621 地址:成都市一环路南二段 1 号数码同人港 401 室 (磨子桥立交西北角) 电话:(028)85439836 85437446 传真:(028)85437896 深圳周立功 武汉周立功 地址:深圳市深南中路 2070 号电子科技大厦 C 座 4 楼 D 室 电话:(0755)83781788(5 线) 传真:(0755)83793285 地址:武汉市洪山区广埠屯珞瑜路 158 号 12128 室 (华中电脑数码市场) 电话:(027)87168497 87168297 87168397 传真:(027)87163755 上海周立功 西安办事处 地址:上海市北京东路 668 号科技京城东座 7E 室 电话:(021)53083452 53083453 53083496 传真:(021)53083491 地址:西安市长安北路 54 号太平洋大厦 1201 室 电话:(029)87881296 83063000 87881295 传真:(029)87880865 VxWorks 技术笔记 ©2009 Guangzhou ZHIYUAN Electronics CO., LTD. ii
广州致远电子有限公司 VxWorks BSP 移植技术笔记 VxWorks 技术笔记 销售与服务网络(二) 广州致远电子有限公司 地址:广州市天河区车陂路黄洲工业区 3 栋 2 楼 邮编:510660 传真:(020)38601859 网址:www.embedtools.com (嵌入式系统事业部) www.embedcontrol.com (工控网络事业部) www.ecardsys.com (楼宇自动化事业部) 技术支持: CAN-bus: 电话:(020)22644381 22644382 22644253 邮箱:can.support@embedcontrol.com MiniARM: 电话:(020)28872684 28267813 邮箱:miniarm.support@embedtools.com 无线通讯: 电话:(020) 22644386 邮箱:wireless@embedcontrol.com iCAN 及数据采集: 电话:(020)28872344 22644373 邮箱:ican@embedcontrol.com 以太网: 电话:(020)22644380 22644385 邮箱:ethernet.support@embedcontrol.com 串行通讯: 电话:(020)28267800 22644385 邮箱:serial@embedcontrol.com 编程器: 分析仪器: 电话:(020)22644371 邮箱:programmer@embedtools.com 电话:(020)22644375 28872624 28872345 邮箱:tools@embedtools.com ARM 嵌入式系统: 电话:(020)28872347 28872377 22644383 22644384 邮箱:arm.support@zlgmcu.com 楼宇自动化: 电话:(020)22644376 22644389 28267806 邮箱:mjs.support@ecardsys.com mifare.support@zlgmcu.com 销售: 电话:(020)22644249 22644399 22644372 22644261 28872524 28872342 28872349 28872569 28872573 38601786 维修: 电话:(020)22644245 VxWorks 技术笔记 ©2009 Guangzhou ZHIYUAN Electronics CO., LTD. iii
广州致远电子有限公司 VxWorks BSP 移植技术笔记 VxWorks 技术笔记 目 录 2.2.1 2.2.2 2.2.3 1. 适用范围.................................................................................................................. 1 2. BSP 分析................................................................................................................... 2 BSP 的文件构成........................................................................................................2 BSP 的执行逻辑........................................................................................................3 BootROM image ................................................................................................ 3 VxWorks image..................................................................................................4 Driver 加载的时机.............................................................................................5 3. 移植要点.................................................................................................................. 6 异常处理 .................................................................................................................... 6 中断处理 .................................................................................................................... 9 时钟 .......................................................................................................................... 11 串口驱动 .................................................................................................................. 11 概述 .................................................................................................................. 11 ttyDrv(包括 tyLib)......................................................................................12 xxDrv 驱动的实现 ...........................................................................................15 编译链接 .................................................................................................................. 22 4. 参考资料................................................................................................................ 23 3.4.1 3.4.2 3.4.3 2.1 2.2 3.1 3.2 3.3 3.4 3.5 移植技术笔记 ©2009 Guangzhou ZHIYUAN Electronics CO., LTD. 1
广州致远电子有限公司 VxWorks BSP 移植技术笔记 VxWorks 技术笔记 1. 适用范围 主要从几个关键主题描述 s3c2440a 的 VxWorks BSP 定制工作, 对整个过程作了详细 描述。另外提供一些开发中需要使用的参考资源,包括手册、文档、代码和工具等。 适用于基于 ARM 的 VxWorks 的 BSP 开发。 此次移植的 VxWorks BSP 基于 Tornado 2.2,适用于 EPC6000,MiniHMI-1000 等基于 s3c2440a 的工控板上。实现了向量表映射,中断异常管理,系统时钟,辅助时钟,Uart 等最 基本的驱动与功能。可用于生成 VxWorks 的 bootrom 和 VxWorks 镜像。 移植技术笔记 ©2009 Guangzhou ZHIYUAN Electronics CO., LTD. 1
广州致远电子有限公司 VxWorks BSP 移植技术笔记 VxWorks 技术笔记 2. BSP 分析 2.1 BSP 的文件构成 VxWorks 的 BSP 组成文件主要包含在四个目录下:  Tornado\target\config\all :所有 BSP 的公共部分;  Tornado\target\config\comps\vxworks:基本模块描述文件(*.cdf);  Tornado\target\config\comps\src:模块配置文件(被 usrConfig.c 使用);  Tornado\target\config\bspname:与目标板相关的部分。 通常将\target\config\all 下的文件拷贝到\target\config\bspname\all,同时修改 makefile 文 件中的“CONFIG_ALL”项,设置为正确的路径。这样做的目的是为了在修改 all 目录下文 件时不影响其它的 BSP。 all 目录: 下面分别介绍这些文件: 1. 在该目录下主要有如下几个文件: bootConfig.c:是 bootrom 的主要初始化与控制文件。BootConfig.c 是 usrConfig.c 的一个 子集,所以 bootrom 只能提供完整 VxWorks Image 中的部分功能。bootrom 不使用 MMU 库 (SPARC 除外)。在集成环境下修改工程相关的配置信息不会影响 bootrom,只有直接修改 config.h,configAll.h,bootConfig.c 和 bootInit.c 文件才会影响到 bootrom; bootInit.c:定义了 romStart()函数,用于 bootrom 的第二阶段初始化。首先把 text 和 data 段从 ROM 拷到 RAM 中,然后初始化部分 RAM,进行解压; usrConfig.c:包含 VxWorks 镜像的主要初始化代码。在 Tornado 集成环境下生成 VxWorks 镜像时会用到此文件。 bspname 目录: 2. 在该目录下主要有如下几个文件: Makefile:bootrom 的 Makefile 文件。其中定义了一些宏,如:ROM_TEXT_ADRS, ROM_SIZE,RAM_LOW_ADRS,RAM_HIGH_ADRS;这些宏定义应该与 config.h 下的定 义相一致; config.h:包含所有的头文件和与 CPU 及系统相关的宏定义,如:对 Cache 和 MMU 的 配置,RAM 和 ROM 的定位以及大小配置; romInit.s:该文件是 bootrom 和带 ROM 启动功能的 VxWorks 镜像的初始化入口汇编 代码,即实现了 romInit()。目标板一上电就开始执行 romInit(),主要完成三部分工作:  关看门狗,屏蔽中断,禁能 MMU,Cache,配置处理器时钟;  初始化内存控制器;  初始化堆栈指针和其它寄存器以执行 C 语言,然后调用 romStart(). 注意:romInit()中的函数或变量必须设计成与内存地址无关的代码(PIC),如程序清单 2.1 所示: 移植技术笔记 ©2009 Guangzhou ZHIYUAN Electronics CO., LTD. 2
广州致远电子有限公司 VxWorks BSP 移植技术笔记 VxWorks 技术笔记 程序清单 2.1 与内存地址无关代码 L$_HiPosn: .long ROM_TEXT_ADRS + HiPosn - FUNC(romInit) L$_rStrtInRom: .long ROM_TEXT_ADRS + FUNC(romStart) - FUNC(romInit) L$_SMRDATA: ROM_TEXT_ADRS + SMRDATA - FUNC(romInit) .long romInit.s 只执行一些必要的初始化,其余的初始化工作在后面完成。 sysALib.s:包含目标板或系统相关的汇编语言函数,即实现了_sysInit(),是基于 RAM 的 VxWorks 镜像的入口程序,当 bootrom 引导完镜像后,就会从此出开始执行。sysALib.s 类似于 romInit.s 完成的工作,但它不必设计成 PIC,且可调用其它库中的函数。 sysSerial.c:串口驱动程序的安装和初始化。 bspname.h:包含与处理器相关的宏定义。 sysLib.c:包含与目标板或系统相关的 C 语言函数,sysLib.c 中应该实现以下几类函数:  系统时钟中断相关的函数:sysClkConnect(),sysClkDisable(),sysClkEnable(),  sysClkInt(),sysClkRateGet(),sysClkRateSet();  系统硬件初始化函数:sysHwInit(),sysHwInit2()  内存相关的函数:sysMemTop(),sysNvRamGet(),sysNvRamSet()  串口相关的函数:sysSerialHwInit(),sysSerialHwInit2(),sysSerialChanGet()  杂项函数:sysBspRev(),sysModel(),sysToMonitor()  其它可选函数:如:辅助时钟中断相关函数,总线相关函数 其中部分函数的实现在驱动程序子文件中完成。通过包含 C 文件的方式引入到 sysLib.c 中,如程序清单 2.2 所示: 程序清单 2.2 包含 C 文件 #include "sysInt.c" #include "sysTimer.c" #include "sysSerial.c" #ifdef INCLUDE_END #include "ax88796End.c" #endif 2.2 BSP 的执行逻辑 2.2.1 BootROM image /* sys interrupt /* /* sio channel sys timer /* END device */ */ */ */ bootrom 主要用于启动装载 VxWorks image,因此完成较少的系统初始化,。一般有压缩 和不压缩两种形式,如 bootrom 和 boot_uncmp。与 VxWorks image 的主要区别在于 Bootrom 调用 bootConfig.c,而 VxWorks 镜像调用 usrConfig.c。 bootrom 的执行逻辑: 1. 文 件 romInit.s 中 的 romInit→ 文 件 bootInit.c 中 的 romStart→ 文 件 bootConfig.c 中 的 usrInit→sysHwInit()→usrKernelInit()→KernelInit(usrRoot,...) 移植技术笔记 ©2009 Guangzhou ZHIYUAN Electronics CO., LTD. 3
分享到:
收藏