[CCS] 没有Runtime Object View(ROV)怎么办?

[CCS] 没有Runtime Object View(ROV)怎么办? 文章目录1. 引言2. 扫描 BIOS 错误3. 打开 ROV 视图4. 任务视图字段详解5. 查看系统堆栈配置系统堆栈大小通过 ROV 的 Hwi 模块查看系统堆栈6. 任务视图字段与系统堆栈关键参数对比表6. 总结7. 参考资料1. 引言CCS 包含 RTOS 对象查看器ROV插件它可以洞察 TI-RTOS 的当前状态包括任务状态、堆栈等。2. 扫描 BIOS 错误BIOS Scan for errors 视图会检查可用的 ROV 模块并报告错误。如果出了什么问题这个功能是一个很好的开始点。这个扫描只显示与 TI-RTOS 模块相关的错误并且只显示它可以捕获的错误。3. 打开 ROV 视图菜单栏中没有 Tools 按钮时可参考以下方式打开CSS V5-V10.2 的参考CCS V10.3 以上版本位置被改动。4. 任务视图字段详解地址这个列显示了每个任务的 Task_Struct 实例的内存位置。优先级这一列显示任务的 TI-RTOS 优先级。模式此列显示任务的当前状态。fxn此列显示任务的入口函数的名称。arg0, __arg1这些列显示可以赋予任务入口函数的任意值。在图像中ICall_taskEntry 给定 0xb001这是 RF 堆栈图像的入口函数的 flash 位置和 0x20003a30bleUserCfg_t user0Cfg 的位置在 main() 中定义。stackPeak这一列显示了基于 RAM 中的水印使用的最大运行时堆栈内存其中堆栈用 0xBE 预填充并且在运行时堆栈的末尾有一个标记词。5. 查看系统堆栈Hwi 模块视图允许在引导过程中使用系统堆栈main()Hwi 执行Swi 执行。有关系统堆栈的更多信息请参阅系统堆栈。函数调用可以将堆栈指针推出运行时堆栈但实际上不会写入整个区域。堆栈峰值接近 stackSize 但不超过它可能表明堆栈溢出。配置系统堆栈大小系统堆栈的大小通常在链接器命令文件.cmd中通过-stack选项或--stack_size链接器选项来配置。以 TI-RTOS 工程为例可以在链接器命令文件中设置/* 链接器命令文件片段设置系统堆栈大小为 0x20008KB */-stack0x2000或者在 CCS 工程属性中配置右键工程 → Properties → Build → Linker → Basic Options。在 Stack size 一栏填入0x2000或按需调整。重新编译并烧录。注意系统堆栈与任务运行时堆栈是独立的。系统堆栈用于main()、Hwi 中断处理和 Swi 软件中断任务堆栈则由每个任务的Task_Struct单独分配。通过 ROV 的 Hwi 模块查看系统堆栈在 ROV 中打开 Hwi 模块视图即可查看系统堆栈的使用情况在 ROV 视图中展开Hwi模块。查看System Stack相关字段重点关注stackPeak与stackSize。若stackPeak接近stackSize说明系统堆栈余量不足应适当增大-stack配置值。关键配置项stackSize系统堆栈总大小、stackPeak运行时峰值占用。当stackPeak超过stackSize时通常意味着堆栈溢出可能导致系统异常或复位。6. 任务视图字段与系统堆栈关键参数对比表下表对比了任务视图中的字段与系统堆栈相关参数的含义、作用及查看位置帮助读者快速理解两者的区别与联系类别字段/参数含义作用查看位置任务视图字段地址每个任务的Task_Struct实例的内存位置定位任务控制块在内存中的存放地址ROV → Task 模块任务视图字段优先级任务的 TI-RTOS 优先级决定任务在就绪队列中的调度顺序ROV → Task 模块任务视图字段模式任务的当前状态如运行、就绪、阻塞等判断任务当前是否可运行或处于等待ROV → Task 模块任务视图字段fxn任务入口函数的名称快速定位任务实际执行的函数ROV → Task 模块任务视图字段arg0, __arg1赋予任务入口函数的任意参数值查看任务创建时传入的初始化参数ROV → Task 模块任务视图字段stackPeak任务运行时堆栈的峰值占用基于 RAM 水印评估任务堆栈余量判断是否可能溢出ROV → Task 模块系统堆栈参数stackSize系统堆栈的总大小由-stack配置限定系统堆栈可用的内存上限ROV → Hwi 模块System Stack系统堆栈参数stackPeak系统堆栈的运行时峰值占用评估系统堆栈余量判断是否溢出ROV → Hwi 模块System Stack区别与联系任务视图中的stackPeak针对单个任务的运行时堆栈而 Hwi 模块中的stackPeak针对系统堆栈用于main()、Hwi 中断和 Swi 软件中断。两者都通过水印机制统计峰值占用当stackPeak接近或超过stackSize时都意味着对应堆栈可能溢出需要适当增大堆栈配置。6. 总结本文介绍了 CCS 中 RTOS 对象查看器ROV插件的核心功能与使用方法ROV 视图功能通过 BIOS Scan for errors 快速定位 TI-RTOS 模块错误通过任务视图查看每个任务的运行状态通过 Hwi 模块视图查看系统堆栈使用情况。关键字段含义任务视图中的地址Task_Struct 实例位置、优先级TI-RTOS 优先级、模式任务当前状态、fxn入口函数名、arg0/__arg1入口函数参数、stackPeak运行时堆栈峰值占用。系统堆栈配置要点系统堆栈大小通过链接器命令文件.cmd的-stack选项或 CCS 工程属性中的 Stack size 配置系统堆栈与任务运行时堆栈相互独立当stackPeak接近或超过stackSize时应警惕堆栈溢出并适当增大堆栈配置。合理利用 ROV 视图可以有效排查任务异常、定位堆栈溢出等问题提升 TI-RTOS 应用的稳定性。7. 参考资料TI-RTOS 官方文档TI-RTOS Kernel 用户指南CCS 用户指南Code Composer Studio User’s GuideCCS 中的 ROV 使用说明RTOS Object ViewerTI E2E 支持社区TI-RTOS 与 CCS 相关讨论