vxworks基础培训
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
烽火科技
VxSim的HelloWorld(四)
• 最后:查看新弹出的对话框(VxWorks Simulator),^_^ ,可以看到输出的 Hello World
•
此时,还会弹出了一个VxSim Launch的界面,这是主机用来连接目标机的。 点击OK。如果正确安装Tornado并配置正确的话,此时桌面右下角会出现 的图标(如果出现问题,会出现 的图标),点击它可以看到Target Server是 否正常工作。
烽火科技
开发板开发嵌入式程序
• 操作系统的制作与下载
– – – – – – 修改Config.h 制作BSP及bootrom 制作操作系统 配置FTP Server 启动超级终端 引导和下载操作系统
• 应用程序的编制和调试
烽火科技
操作系统的制作与下载
修改Config.h
• VxWorks的缺省配置参数由tornado\target\config\all目录中 的configAll.h决定,如第528行开始通信路径的配置 • 对于某一目标板特定的配置参数,如ads860,使用 tornado\target\config下相应目录中的config.h,下面以 ads860板为例 • 如果没有相应目录,可定制,如建立8240目录,其文件代 码由BSP开发人员编写
• WindShell
– 允许用户调用内存中的应用程序模块或是 VxWorks模块中的任何例程
烽火科技
创建任务
• 在usrAppInit函数中添加函数userMain( ),作为自己应用程序的入口函数。
•
编写一个C文件(uesr.c),内容如下:
烽火科技
编译代码及运行
• 选择Add Files,添加uesr.c到工程中:
烽火科技
Tornado中Host与target通信
Target Server以进程的形式(tgtsvr.exe)运行在Windows主机上,而Target Agent 则以VxWorks的一个任务(tWdbTask)运行在目标机上,两者通常使用网络进 行通讯,但也可以使用其他通讯方式。 Target Serve与Target Agent间使用WDB(Wind Debug)协议进行通信,这就好比 一座桥梁,将目标机与主机上的Tornado开发工具联系在一起。
修改Config.h
• 10M网口使用cpm(0,0), 100M网口使用motfec(0,0) • host:后跟VxWorks操作系统在主机的存放路径,h指主机IP 地址,e指目标板IP地址,u指用户名,pwd指密码 • 实例:使用10M网口,VxWorks在主机D:\,主机地址 10.16.17.1,目标板地址10.16.17.2,账号及密码均为 tornado,其代码为: • “cpm(0,0)host:d:/vxWorks h= 10.16.17.1 e= 10.16.17.2 u=tornado pwd=tornado”
• • • • 文本编辑器 GNU和Diab C/C++编译器 调试工具:Wind Shell, Browser, WindView… VxSim系统模拟器:VxWorks提供的在实验与测试环境下仿真VxWorks目标机的程序,无 需硬件的支持
– ②运行在目标机上的高性能、可裁剪的实时操作系统VxWorks; 即为编译生成的目标机上可执行代码镜像(image),内含os – ③连接宿主机和目标机的多种通讯方式,如:以太网,串口线,ICE或 ROM仿真器等。
操作系统的制作与下载
烧制bootrom • 目的:将build成功的bootrom 烧制到Flash中 • FADS860板通过配套的ADI卡烧制 • 按照ADI卡相应的8bug程序中的readme,安 装ADI卡 • 在DOS方式下键入:mpc8bug x y
烽火科技
操作系统的制作与下载
• • •–
•
WindShell:
– –
•
WindView:
–
•
VxSim:
–
烽火科技
VxWorks程序设计
• 任务(Task)
– 在VxWorks中,任务是一段独立运行的程序,类似于Linux中的进程。 – 从系统的角度看,任务是竞争系统资源的最小运行单元。任务可以使用 或等待CPU、I/O设备及内存空间等系统资源,并独立于其他任务。 – VxWorks实时内核Wind提供了基本的多任务环境,因此当系统运行多个 任务时,从表面上看多个任务正在同时执行,而实际上系统内核是根据 某一调度策略让它们交替运行。 – 系统调度器使用任务控制块(TCB)的数据结构来管理任务调度功能。每 一个任务都与一个TCB关联。TCB包括了任务的当前状态、优先级、要等 待的事件或资源、任务码的起始地址、初始堆栈指针等信息。 – 任务编程:任务创建taskSpawn、任务删除taskDelete、任务控制 taskSuspend/taskDelay等
烽火科技
VxSim的HelloWorld(一)
烽火科技
VxSim的HelloWorld(二)
• 选择 A BSP(板级支持包)在下拉菜单中选择simpc
•
打开文件usrAppInit.c(它的函数usrAppInit是应用的入口点),添加Hello World打印语句,保存文件。
烽火科技
VxSim的HelloWorld(三)
– 开发嵌入式应用时系统开发商提供的各种驱动支持库 – VxWorks:OS的驱动程序 – VxWorks提供的大部分功能模块与硬件无关,为使VxWorks能运行于不同 的处理器体系结构上,必须在功能模块与硬件之间加入一层软件,并对 这层软件规定标准接口,这层软件即为BSP – 提供对硬件进行的描述性操作 – 提供对目标板的初始化、中断管理以及一些简单的驱动程序 – 最好的情况下,OS与驱动程序的移植只需要更换相应平台下的BSP支撑 库 – 《Tornado BSP Developer’s Kit for VxWorks》
•
编译并启动:
烽火科技
启动Wind Shell
• 在Launch工具栏 shell的界面: 中选择 ,这时候就可以看到
•
输入i命令,回车,,即可以查看到我们起的任务tTick的有关信息:
烽火科技
Wind Shell常用命令
• i:显示所有的任务信息
• • • • • • • • Tt():显示一个任务的函数栈的调用状态 Ti():显示一个任务的tcb信息 Sp():启动一个任务 Ts():挂起一个任务 Tr():恢复一个任务 Td():删除某个任务 memShow:显示系统内存信息 checkStack:查看指定或所有任务的堆栈大小和使用率
Vxworks嵌入式编程基础
邓国旭
烽火科技
实时嵌入式系统
• 嵌入式系统:
– 由CPU控制,即自带CPU – 相对于常见的pc而言,不对用户提供开发环境,用户与系统交互的唯一接 口就是系统提供给用户的应用; – 提供功能通常带有针对性,大多为专用系统; – 手机,医疗设备,微波炉,mp3……
• 实时嵌入式系统:
烽火科技
VxWorks系统结构
烽火科技
Tornado集成开发环境
• Tornado:
– 基于VxWorks操作系统的嵌入式软件集成开发环境。 – 给嵌入式系统开发人员提供了一个不受目标机资源限制的超级开发和调 试环境。
• Tornado包含以下三部分:
– ①运行在宿主机和目标机上的强有力的交叉开发工具和实用程序;
• 交叉编译:在某一体系结构的宿主机上为另一体系结构的 目标板编译可运行的目标代码。即编译与运行不在同一地 方。
• 宿主机(host):编写代码和编译 • 目标机(target):调试和执行程序
烽火科技
VxWorks
• VxWorks:
– 美国风河公司(Wind River System)推出的一种嵌入式实时操作系统。 – 强实时性、微内核设计、可裁剪、可移植、高可靠
115200
烽火科技
操作系统的制作与下载
Build bootrom • • • • 修改BSP后,应生成对应的bootrom 在Tornado中选Build->Build Boot ROM BSP可选择ads860 Image一般选择bootrom.hex,仿真时选择 bootrom_uncmp
烽火科技
– 实时性:任务切换时间、抢占时间、中断等待时间、信号量延迟时间、 死锁解脱时间、任务间消息传递延迟、数据报吞吐量 – 小型化、可裁剪:系统资源有限 – 强稳定性:一旦运行不需要人过多干预 – 固化代码:操作系统和应用软件代码固化在嵌入式系统ROM中 – 弱交互性:工作过程不需人干预
烽火科技
嵌入式系统开发
• • 验证bootrom 连接主机与目标板的串口线 启动和配置FTP Server(方法后面介绍) 选择Tornado2->VxWorks COM1/COM2,启 动超级终端 超级终端中选文件->属性->配置,设置正确 的目标板波特率 目标板上电,检查终端是否能正确回显, 显示参数与BSP配置是否一致
• VxWorks系统功能:
– – – – – – – – Wind Kernel ANSI C/POSIX I/O系统 文件系统 TCP/IP网络协议栈 BSP开发包:提供BSP模块、驱动程序模板和BSP测试工具包 WDB(Wind Debug Agent):支持交叉调试 ……
烽火科技
BSP
• BSP(Board Support Package)
烽火科技
使用Tornado创建工程
• 创建工程.exe • WorkSpace & WorkProject
– 每一个工程都需要有一个WorkSpace来保存一些相关的环境变量;
• Bootable Vs Downable:
– 前者表明建立一个新的VxWorks操作系统,该工程是基于某个BSP生成的 镜像,它包含了必须的VxWorks的内核、组件以及BSP,并且应用程序可 以静态包含在工程中,也可以静态链接已编译好的应用工程模块。开发 者可以根据自己的需求进行适当的配置,添加、删除VxWorks的组件,设 置所选组件的运行参数等。 – 后者顾名思义,应用模块可以以静态链接的方式编译至VxWorks镜像工程 中,还可以在VxWorks运行之后,通过网络将将应用模块(.out格式)下 载到目标板,并与VxWorks镜像进行链接。在单独对某个模块进行调试时, 我们常常会用到这种动态链接的方法。
烽火科技
操作系统的制作与下载
修改Config.h
• 如采用串口调试,可增加下列代码
• • • • • • • • • • #undefWDB_COMM_TYPE #define WDB_COMM_TYPE #undefWDB_TTY_CHANNEL #define WDB_TTY_CHANNEL #undefCONSOLE_BAUD_RATE #define CONSOLE_BAUD_RATE 115200 #undefWDB_TTY_DEV_NAME #define WDB_TTY_DEV_NAME "/tyCo/0" #undefWDB_TTY_BAUD #define WDB_TTY_BAUD /* default baud rate */ WDB_COMM_SERIAL 0
烽火科技
Tornado工具
• CrossWind:
– 源程序(C 或 C++ 以及汇编程序等)的调试工具 可对系统对象(任务、消息队列、信号量等)和存储 器使用情况进行观察的浏览器。 可以方便地监视用户的 目标系统。 Browser汇总了应用进程,内存消耗和一个目 标内存的映射。通过 Browser,用户可以观察信 号量、 消息队列、内存分配、看门狗计时器、堆栈使用情况、 目标 CPU使用率、对象模块结 构和符号表以及每个任务的详细信息。 提供从宿主机到目标机之间的一个命令 shell。 允许用户调用内存中的应用程序模块或是 VxWorks模块中的任何例程。 非常出色的系统可视诊断和分析工具。可非常容易地观察各任务,中断程序之间的相互作 用。 快速原型仿真器。可在硬件设备未完成之前,在宿主机上对应用程序进行仿真分析。
烽火科技
操作系统的制作与下载
修改Config.h
• config.h首先定义BSP版本,然后include configAll.h
• 缺省下载调试口为10M网口,对应代码为
– #undef FADS_860T
• 如改用100M网口下载调试,将该行改为
– #define FADS_860T
烽火科技
操作系统的制作与下载