- 1、本文档共70页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第十课_VxWorks
* 调试的手段及工具 纯硬的手段 万用表、示波器、逻辑分析仪,针对非在线的硬件问题和部分的在线硬件问题 半硬半软的手段 ICE、BDM,针对部分硬件的在线问题和BSP的调试 纯软的手段 Cross Debugger,针对App的调试 * ICE的方法 运行的IMAGE在仿真器中,由仿真器的CPU在用户的硬件环境下运行来调试软件。 限制:价格/使用率的比率太高,CPU dependence * BDM的方法 在运行IMAGE的CPU上支持一种断点逻辑 硬件调试代理 宿主机通过并口连接的Adapter连接到CPU的BDM接口上,进行软件的调试。 限制:CPU必须支持BDM方式。 步骤:BDM Debugger下载Register list激活板子,BDM Debugger IMAGE下载到目标板的RAM中。 * 软件调试 宿主机与目标机通过某种方式耦合,宿主机上的调试器通过目标机上的调试代理来进行软件的调试 优点是性价比高 * 软件开发流程 虚拟系统开发解决方案Simics 4.4 10年06月03日推出 包括 Wind River Simics Analyzer帮助客户分析并深入理解设计的异构特性 Simics Analyzer实现全面的系统仿真 支持C、C++、SystemC和DML等多模式的并行运行 Simics Extension Builder可以帮助开发人员建立性能测试工具和其他专业分析工具,并能实现数据采集 * * * * * * * * * * Vxworks不支持“中断线程化” 某些操作系统可以在一些特定的低优先级ISR里面进行pend操作的 要求操作系统的中断,有线程上下文 线程(任务)上下文是任务调度的基础 任务上下文不等同于中断上下文 Vxworks任务调度是依赖于中断的,为了实时性不支持中断线程化 ISR是没有任务(线程)上下文(TCB) 如果支持中断线程化,那么将导致中断响应时间不确定,实时性难以得到保证 * ISR中的阻塞(Blocking)问题 ISR中不能调用可能导致blocking的函数 不能以semTake获取信号量,因如果该信号量不可利用,内核会试图让调用者切换到blocking态 malloc和free可能导致blocking,因此也不能使用 避免进行VxWorks I/O系统操作,如printf (除管道外) vxworks使用了可能blocking的代码,2种后果 关中断运行 在blocking的地方,将永远等待 这时候任务调度依赖的时钟中断都不能响应,也就是说任务调度器都不能运行 开中断进行 在blocking的地方,任务调度器仍然可能运行 任务调度器会企图把ISR的TCB属性改为pend 但是ISR没有TCB,出错 Vxworks的处理方法 在ISR里,除了对中断寄存器进行必要的操作之外,尽量简单的就是只释放一个信号量,通知一个高优先级的任务来完成可能引起blocking的工作 * 中断服务程序 处理来自硬件的中断 是设备驱动程序的重要组成部分 应尽量的小,只把最必要的任务放在中断服务程序里面执行 挂中断向量时间 可在系统启动,硬件设备成功初始化之后将ISR与中断向量挂上 也可以在系统启动后的任何时刻挂中断向量 ISR挂上中断向量 设置中断向量值 在与中断向量相连的ISR加上了一层(思考一下,为什么?) 包括ISR执行前保存寄存器值.设置堆栈以及ISR执行后恢复寄存器和堆栈 * 统一的API 由操作系统内核提供的服务原语搭建起来的 服务原语,是不可打断的 系统调用的时间尽量小、尽量是常量和可确定 6.x支持处理器抽象层(PAL) 增强了支持类似硬件体系结构系列的能力 PAL为每个体系结构系列定义了功能接口,并且在一定程度上抽象了操作系统对硬件特性的功能性需求 对于应用程序用户是透明的 体系结构系列PAL,加速了对该系列处理器变种的支持,并缩短产品上市时间 * 课程大纲 ?VxWorks简介 ?VxWorks映像 ?Wind 内核 ?VxWorks内存管理及其他 ?VxWorks开发环境 * 内存管理 平坦模式(Flat Mode) 为什么不是段页式的管理? 页式管理要有程序-内存的映射,严重影响实时性 包括 静态分配的IMAGE占用空间 .code、.data、.bss 系统的动态空间 wind kernel创建的REGION#0 用户的动态空间 内存分配采用first-fit算法 内存释放采用上下空闲区融合算法 * 内存管理模块 内存管理模块由内存分配和内存保护两个相互独立的子模块 内存保护机制 基于MMU的内存保护机制 将内核与用户模式应用程序分离 将应用程序彼此分离 内存管理函数 紧凑的内存分区管理器(memPartLib) 完整的内存分区管理器(m
文档评论(0)