资讯动态

RISC-V IDE MRS使用笔记(四):编译后静态堆栈调用分析

发布时间:2026/10/13 2:18:11 来源:尧图企业网站定制
RISC-V IDE MRS使用笔记四编译后静态堆栈调用分析今天和大家分享一个提升嵌入式开发效率的功能MRS V2.3.0版本新增的编译后静态堆栈分析Static Stack Analysis。开启该功能后系统将在构建结束后自动分析目标文件并在编辑器右侧展示函数的实际栈调用关系与栈深度信息。启用方式主菜单 Project → Show Static Stack Analysis该功能与显示源代码中的函数调用关系不同源代码中的函数调用关系Call Graph是“理想化”的而编译器在程序构建中进行大量优化/转换如内联函数小的函数会被直接展开到调用处在调用图上消失。尾调用优化某些函数的尾部调用会被优化为跳转指令不占用额外的堆栈帧。编译器特定扩展使用 interrupt、naked 等编译器关键字或属性的函数其调用和返回机制与普通函数不同。库函数链接源代码中调用的标准库函数如 malloc, printf最终链接的是编译好的二进制库。因此函数堆栈调用关系能一定程度反映目标程序被加载后真实的调用链层级和堆栈占用。通过表格左上角的按钮可以找到“显示最深调用链”按钮点击后筛选出层级depth最深的函数调用链通过静态调用图分析可以找到从入口点如 main、中断服务程序开始的所有可能的调用路径。每一条调用路径经过的所有函数的根据调用层级最右侧depth显示各自的堆栈深度。函数总的堆栈大小为其函数自身的堆栈大小与其层级下子函数最大的总堆栈大小之和。若分析得到的某函数的最大的堆栈使用大于分配的栈大小会在界面前端提示进行预警。通过右键列表中某个函数行弹出的上下文菜单中可选择跳转到定义、跳转到调用位置、拷贝函数名称方便用户高效浏览和操作。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑