当前位置: 首页 > news >正文

NVIC_SYSTEMRESET失败卡死

问题:

最基础的软复位失败,执行到这个函数之后出现卡死的情况,后续直接触发看门狗复位

解决:

用gcc开了高级别优化之后降低优化级别

相关问题描述:

在iar调试里做软复位看着从向cpu发请求到执行初始化配置startup.s文件都正常,boot和app的elf反汇编之后也能确保没有出现向量表覆盖或是函数异常的情况,stacktop vector resethandler main地址都正常,iar里都能正常往后执行

但是用gcc编的时候执行到这个函数就会卡死,在执行前加dsb isb加延时都没有用,最后实在无法定位和解决还是降了优化级别从Os到Og去除对于flash 的优化就正常了,用的是m0+的cpu至今还不知道是为什么会有这样的问题,Os优化可能会重排代码但是具体为什么会造成这个后果的原理还不清楚

之前做set_msp和移pc指针跳转的形式也会出现问题,一种是因为漏清了中断还有一个就是因为开优化开高了把不能内联的函数自动内联了,还有就是多级调用的时候要注意volatile的有效性,对于需要这种特性的变量最好还是用调试器监控一下

gcc的编译优化效果其实还没有iar的开高优化效果好,但是不知道差别是什么,iar高优化之后功能还是正常的但是gcc不行

问题描述

软复位基础功能失败,执行特定函数后系统卡死,最终触发看门狗复位。

解决方案

将GCC的高级优化级别(Os)降低为Og(去除对Flash的优化)后问题解决。

详细分析

  1. IAR调试环境下软复位表现正常:

    • CPU请求到初始化配置(startup.s文件)流程完整
    • Boot和App的ELF文件反汇编验证无异常
    • 向量表无覆盖现象
    • StackTop、Vector、ResetHandler、Main地址均正确
    • 在IAR环境下可正常执行后续流程
  2. GCC编译问题现象:

    • 执行特定函数时出现卡死
    • 添加DSB/ISB指令和延时均无效
    • 最终通过降低优化级别解决问题(Os→Og)
    • 使用M0+内核CPU,具体原因尚未明确
    • 推测Os优化可能导致代码重排,但具体影响机制不明
  3. 其他相关经验:

    • set_msp和PC指针跳转曾出现过问题,主要原因是:
      • 中断未正确清除
      • 高优化级别导致不应内联的函数被自动内联
    • 多级调用时需特别注意volatile修饰符的有效性
    • 关键变量建议使用调试器实时监控
  4. 编译器对比:

    • GCC的编译优化效果不及IAR
    • IAR在高优化级别下功能正常,而GCC会出现异常
    • 具体差异原因尚不明确后续找出问题会补

用gcc的话编译优化开高了真的会有奇怪的问题加上也可能是因为代码本身结构有漏洞,但是目前来看变量分层传递层间解耦都做的很好,有时间还是要看看gcc优化实际是在做什么,而且对于需要产品化工程化的项目又只能用gcc所以常见的问题一定要熟悉,否则很耗时间。光是定位一个跳转失败的问题就定位了很久,像是先开低级别优化不正常之后逐条删除优化选项看哪个优化影响到了功能最后才定位到是内联的问题,然后通过反汇编找不能内联的函数是不是内联了。。。

http://www.jsqmd.com/news/1070222/

相关文章:

  • 【实时智能中枢建设白皮书】:从Spark Streaming到Flink AI Runtime,6步完成LLM-Augmented流推理闭环
  • 芯片编程烧写烧录座,实力厂家全解析
  • 计算机毕业设计之基于智能推荐算法的农资管理系统
  • 实用高效电子教材下载方案:3步获取智慧教育平台PDF课本
  • 广州市即闪科技有限公司是不是骗人的
  • PyPDF实战指南:PDF文档处理与自动化配置详解
  • 手持式分子诊断 POCT(LAMP 等温扩增荧光检测仪)全栈升级设计方案
  • 【仅限本周开放】AI本地化部署黄金配置矩阵(含27种硬件组合TPS基准测试数据):Intel Xeon vs AMD EPYC vs 昇腾910B实测对比报告
  • 如何快速下载国家教育平台电子课本:三步搞定教材离线使用指南
  • 终极指南:用OpenCore Legacy Patcher让老款Mac重获新生,完整实战教程
  • 基于.NET的PDF处理引擎:PDFPatcher技术架构与工程实践深度解析
  • 企业级AI中台限流治理白皮书(2024修订版):覆盖OpenAI/Anthropic/国产大模型的12种RateLimit响应模式适配手册
  • 告别多软件内卷!百考通AI一站式解决科研绘图所有难题
  • 接口开发全链路实测:大模型文档与代码生成能力横向对比
  • “AI生成视频被限流”真相曝光:平台识别模型已迭代至v4.1,3类高危特征+2种隐式水印绕过策略(实测有效)
  • 10美元鼠标的终极进化:Mac Mouse Fix让你的普通鼠标在macOS上超越苹果原生体验
  • AI+长视频工作流重构实录(从B站百万UP主到Netflix内容团队都在用的5层整合架构)
  • 2026 年深度复盘:企业官网为何仍是数字化战略的核心阵地 —— 从 AI 搜索变局到实体行业落地实践
  • 算命类 App 如何上架 App Store?为什么很多命理、塔罗、星座 APP 都卡在审核环节?
  • PDF文档处理工具PDFPatcher深度解析:架构设计与技术实现
  • 国家中小学智慧教育平台电子课本下载工具:三步搞定教材离线使用终极指南
  • 亦唐科技在智能制造领域的应用:推动工业4.0革新
  • Chunker:打破Minecraft平台壁垒的终极世界转换指南
  • 飞行器多学科一体化智能优化设计大模型系统融合人工智能AI
  • Hermes Agent:从聊天助手到可持续进化的个人 AI 智能体
  • 如何在Android手机上运行Windows应用:Mobox终极指南
  • 用 AI Agent 做一个前端小游戏:从提示词到可运行 Demo
  • 3个简单步骤,用PyPDF实现专业级PDF文档自动化处理
  • 我决定,再也不在微信群里发服务器密码了
  • 本地AI虚拟主播实战指南:从零构建低延迟智能交互系统