长春市制作网站费用罗玉凤做网站

张小明 2025/12/31 10:43:37
长春市制作网站费用,罗玉凤做网站,婚礼策划公司排名,wordpress添加icp随着项目变得复杂#xff0c;有时候系统会莫名卡死#xff0c;原因之一很可能就是栈溢出了。而栈溢出不一定会立刻出问题#xff0c;所以不容易及时发现。那如何了解栈的使用情况呢#xff1f;下面就使用嵌入式操作系统和裸机系统分别介绍查看方法。嵌入式操作系统#xf…随着项目变得复杂有时候系统会莫名卡死原因之一很可能就是栈溢出了。而栈溢出不一定会立刻出问题所以不容易及时发现。那如何了解栈的使用情况呢下面就使用嵌入式操作系统和裸机系统分别介绍查看方法。嵌入式操作系统FreeRTOS这里以FreeRTOS系统为例它提供了获取栈使用量的函数和栈溢出时的回调函数直接调用和配置即可。这个函数会获取task运行过程中栈空间的最小剩余量这个值越小栈越接近溢出根据这个值调整栈空间的大小一般预留20%左右的余量。FreeRTOS还提供了栈溢出钩子函数发生栈溢出时调用它只能做一些善后工作无法恢复系统想要调用钩子函数还需要在FreeRTOSConfig.h中定义下面的宏这个宏的值可以是1、2、3较新的版本才会有31检测栈指针是否越界2检测栈区最后的20字节是否被覆盖3检测ISR的栈。实测1会直接触发系统的HardFault并调用HardFault_Handler回调函数2会调用钩子函数推荐设置成23不会调用钩子函数。建议在HardFault回调中也输出信息裸机系统对于裸机系统可以自己定义函数检测。用特定的字符填充栈区后面通过这些字符判断栈的使用情况栈的信息在ld链接文件中定义ld中的是设置变量的地址而不是变量的值所以引用的时候需要加。栈指针指向的是栈区已使用的末端地址而不是未使用的首地址所以要先减再赋值。stack_init函数可以在main中最开始调用不过会破坏进入main的调用栈数据由于嵌入式系统进入main后一般不会返回所以不影响程序的运行。如果不想破坏可以把这个函数放到startup文件中的Reset_Handler函数内SystemInit之前这样完全不会影响后边程序运行的栈区数据。之后从栈区开始逐个比较栈区数据和填充数据如果不一样说明这个地址的数据被入栈操作覆盖这样便可以得出栈的最大使用量。调用时尽量放到程序执行的末尾让所有函数都执行一次这样才能获得较准确的栈最大使用量。读取sp寄存器可以获得当前栈指针位置获取当前栈使用情况标准库的printf有多层函数调用尤其打印浮点数时有log打印和没log打印栈的使用情况是不同的所以有时候栈溢出程序异常时去掉printf就能正常运行。如果必须输出log除了调大栈空间也可以使用其它轻量级的printf库比如FreeRTOS的printf-stdarg.c这些库可以一定程度优化栈的使用不过一般不支持浮点。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

公司网站建设的工具wwe中文官网站

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 开发一个专注于提升开发效率的VSCode插件,功能包括:1) 智能代码片段库,支持语音/快捷键调用;2) 自动生成单元测试模板;3)…

张小明 2025/12/28 21:41:12 网站建设

那个公司可以做网站门户网站的建设思路

VMware Workstation 故障排查与解决方案 初步排查思路 当遇到 VMware 相关问题时,我们可以先从一些基础的操作和判断入手。首先,可以尝试使用已知能正常工作的客户操作系统,像 Linux 和 Windows 98 就很适合。这是因为它们安装和启动速度快,并且对设备有很好的支持。如果…

张小明 2025/12/28 21:39:31 网站建设

网站 模板 安装安阳中飞网站建设

最近是不是到了报销的高峰期?好多小伙伴都遇到了同一个问题:财务发给我一张电子发票,后缀居然是.ofd,我的电脑和手机都打不开,更别提打印报销了!这到底是个啥文件啊?大家别慌!其实OF…

张小明 2025/12/28 21:38:57 网站建设

网站建设问卷调查表资源下载wordpress

百度百家号分发:覆盖搜索流量入口获取精准客户 在内容平台竞争日益激烈的今天,用户打开百度百家号的那一刻,背后已经完成了一次“看不见的赛跑”——从请求发起、特征提取到模型打分排序,整个过程必须在几十毫秒内完成。任何一个环…

张小明 2025/12/28 21:38:24 网站建设

网站可以免费建设吗电子商务网站制作教程

Unitree机器人数字孪生:解锁虚拟操控的5大核心体验 【免费下载链接】go2_omniverse Unitree Go2, Unitree G1 support for Nvidia Isaac Lab (Isaac Gym / Isaac Sim) 项目地址: https://gitcode.com/gh_mirrors/go/go2_omniverse 想要在虚拟世界中精准操控真…

张小明 2025/12/30 2:10:38 网站建设

php网站编程学校网站开发报价表

n8n工作流自动化平台:企业级部署与AI功能深度解析 【免费下载链接】n8n n8n 是一个工作流自动化平台,它结合了代码的灵活性和无代码的高效性。支持 400 集成、原生 AI 功能以及公平开源许可,n8n 能让你在完全掌控数据和部署的前提下&#xff…

张小明 2025/12/30 2:38:56 网站建设