STM32运行时程序卡在B.处

2023-05-16

STM32运行时程序卡在B.处的问题处理的一天多,终于找到原因

1,表现

我所使用的芯片是stm32f427vit6,stm32f4系列芯片外设多数都相同,407,405的 用户也可以参考。

我的程序是使用can2收发数据,can2的外设的初始化函数,中断配置函数,中断服务函数都已经在另外一块板子,和工程上验证通过,故没有逻辑bug,本想遗址到新的工程上可以直接用,移植完成,编译通过,但是发现当出发发送中断时,程序会卡死,通过debug功能发现是卡死在startup_stm32f4xx.s文件中的 B. 处,如图:

感觉莫名奇妙,遂网上各种查,多数都是因为没有定义终端服务函数导致,其实我这次也是这个原因,但具体后面再说,网上查到的资料主要集中在can设备配置,中断函数定义,等,但始终为解决,

2,原因

知道今天晚上,始终找不到原因,最红还是回到原点,一定是犯了低级错误或者有些东西被忽视了,新的工程师C++11与c混编,起初我觉得C++包含c的各种语法规则,就一并写成cpp文件编译,由于问题没有解决,就想把stm32f4xx_it.cpp改为.c文件编译,这时发现,原有工程所带的几个系统错误中断函数都有声明且有

的表示,于是尝试将自己的中断服务函数做同样处理,编译,下载测试,问题解决,恍然大悟,原来是自己学艺不精。

3,相关知识

1)C++11与c以及c99,在keil中可能会由于硬件的问题被放大,所以尽量减少混编,

2)应用st官方出去hal库外的老版库函数的时候,严格遵守C语法,尤其与C++混编时,这次就是由于混编处理不当造成

3)标题卡死在 B. 处的问题多处于两种情况,一是使能了中断但是未定义中断函数,本次就是由于没有声名,按照c++语法编译,编译过程并没有把中断服务函数链接起来,导致进入终端后无法跳转到中断服务函数,二是bootloader跳转过程发生,未多做研究,系统复位直接跳转可以临时解决

4,反省

1)继续学习C++,以前一直用c,现在已经不够用了,赶紧充电

2)对语法和规则要严格遵守,

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

STM32运行时程序卡在B.处 的相关文章

  • 处理器指令周期执行时间

    我的猜测是 no operation 内在 ARM 指令应花费 1 168 MHz 来执行 前提是每个NOP在一个时钟周期内执行 我想通过文档验证这一点 有关处理器指令周期执行时间的信息是否有标准位置 我试图确定 STM32f407IGh6
  • 如何让printf在STM32F103上工作?

    我是 STM32F103 世界的新手 我有一个STM32F103的演示代码 我正在使用arm none eabi来编译它 我尝试了在谷歌上可以找到的内容 但到目前为止没有任何效果 我已经花了三天时间来解决这个问题 任何人都可以给我一个运行良
  • STM32 F072上的软件如何跳转到bootloader(DFU模式)?

    STM32应用笔记2606对此进行了讨论 但没有简单的代码示例 该答案已使用 IAR EWARM 在 STM32F072 Nucleo 板上进行了测试 这个答案使用 STM32标准外设库 仅此而已 请注意 验证您是否成功进入引导加载程序模式
  • 优化 ARM Cortex M3 代码

    我有一个 C 函数 它尝试将帧缓冲区复制到 FSMC RAM 这些函数将游戏循环的帧速率降低至 10FPS 我想知道如何分析反汇编的函数 我应该计算每个指令周期吗 我想知道CPU把时间花在哪里 在哪个部分 我确信该算法也是一个问题 因为它的
  • 138-基于stm32单片机汽车多功能仪表盘显示系统Proteus仿真+源程序

    资料编号 138 一 功能介绍 1 采用stm32单片机 LCD1602显示屏 独立按键 DHT11传感器 ds1302时钟 LED灯 蜂鸣器 电位器 制作一个基于stm32单片机汽车多功能仪表盘显示系统Proteus仿真 2 通过DHT1
  • rt-thread studio中新建5.0不能用

    文章目录 一 版本对比 二 文件和文件夹打斜杠 在使用RT Thread studio创建新工程5 0版本的时候 结果发现新建完成之后程序不能正常运行 但是创建4 10版本的时候却能运行 那肯定是新版本出现了BUG 一 版本对比 首先对比了
  • Push_back() 导致程序在进入 main() 之前停止

    我正在为我的 STM32F3 Discovery 板使用 C 进行开发 并使用 std deque 作为队列 在尝试调试我的代码 直接在带有 ST link 的设备上或在模拟器中 后 代码最终在 main 中输入我的代码之前在断点处停止 然
  • 毕业设计 江科大STM32的智能温室控制蓝牙声光报警APP系统设计

    基于STM32的智能温室控制蓝牙声光报警APP系统设计 1 项目简介 1 1 系统构成 1 2 系统功能 2 部分电路设计 2 1 stm32f103c8t6单片机最小系统电路设计 2 2 LCD1602液晶显示电路设计 2 2 风
  • SHT10温湿度传感器——STM32驱动

    实验效果 硬件外观 接线 3 3V供电 IIC通讯 代码获取 查看下方 END
  • HAL 锁定和解锁函数如何使用以及为什么?

    我试图理解另一位程序员编写的代码 它使用了I C http en wikipedia org wiki I C2 B2C通信以将数据写入 STM32 微控制器的 EEPROM 一般来说 我理解他的代码是如何工作的 但我不明白他为什么使用HA
  • 解决KEIL编译慢问题

    两种方案 使用v6版本的ARM Compiler 如果v6版本编译不过 必须使用v5版本的 则可以勾选掉Browse Information选项 提升很明显 1分多钟能优化到几秒 看代码量 但是这个有个弊端 在KEIL中会影响函数跳转 建议
  • 跟着野火学FreeRTOS:第一段(任务定义,切换以及临界段)

    在裸机系统中 系统的主体就是 C P U CPU CP U 按照预先设定的程序逻辑在 m a i n
  • 串口通讯第一次发送数据多了一字节

    先初始化IO再初始化串口 导致第一次发送时 多出一个字节数据 优化方案 先初始化串口再初始化IO 即可正常通讯
  • Freertos低功耗管理

    空闲任务中的低功耗Tickless处理 在整个系统运行得过程中 其中大部分时间都是在执行空闲任务的 空闲任务之所以执行 因为在系统中的其他任务处于阻塞或者被挂起时才会执行 因此可以将空闲任务的执行时间转换成低功耗模式 在其他任务解除阻塞而准
  • STM32F4XX的12位ADC采集数值超过4096&右对齐模式设置失败

    文章目录 一 前言 二 问题1 数值超过4096 三 问题1的排错过程 四 问题2 右对齐模式设置失败 五 问题2的解决方法 5 1 将ADC ExternalTrigConv设置为0 5 2 使用ADC StructInit 函数 一 前
  • Arm:objcopy 如何知道 elf 中的哪些部分要包含在二进制或 ihex 中?

    我正在开发一个项目 其中涉及解析arm elf 文件并从中提取部分 显然 elf 文件中有很多部分没有加载到闪存中 但我想知道 objcopy 到底如何知道要在二进制文件中包含哪些部分以直接闪存到闪存中 以arm elf文件的以下reade
  • 库函数点亮Led

    提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档 文章目录 前言 一 pandas是什么 二 使用步骤 1 引入库 2 读入数据 总结 前言 提示 这里可以添加本文要记录的大概内容 例如 随着人工智能的不断发展 机器学习这门
  • STM32 上的位置无关代码 - 指针

    我已成功在 STM32 上构建并运行位置无关的代码 向量表和 GOT 已修补 一切正常 但我对这样的代码有问题 double myAdd double x return x 0 1 double ptrmyAdd double myAdd
  • STM32内部时钟

    我对 STM32F7 设备 意法半导体的 Cortex M7 微控制器 上的时钟系统感到困惑 参考手册没有充分阐明这些时钟之间的差异 SYSCLK HCLK FCLK 参考手册中阅读章节 gt RCC 为 Cortex 系统定时器 SysT
  • STM32F0、ST-link v2、OpenOCD 0.9.0:打开失败

    我在用着发射台 http www ti com ww en launchpad about htmlgcc arm none eabi 4 9 2015q2 为 STM32F0 进行编译 现在我想使用该集合中的 arm none eabi

随机推荐

  • Python + Skimage + OpenCV 使用技巧 实现连通区域染色

    Skimage库使用 前言 个人博客地址 最近发现Skimage库挺好用的 xff0c 可以和OpenCV搭配一起使用 xff0c 让图像处理更加灵活和方便 本博客只对Skimage库做简单的介绍 xff0c 细节使用的话推荐官网查看或百度
  • Atlas200DK环境配置

    Atlas200DK环境配置 个人博客网站 dd镜像安装 推荐使用dd镜像安装环境 xff0c 这种方式更快更方便 直接去网站下载需要版本的dd镜像 xff0c 然后利用Etcher烧录到sd卡中就行 参考链接 xff1a Atlas 20
  • Matlab搭建AlexNet实现手写数字识别

    Matlab搭建AlexNet实现手写数字识别 个人博客地址 文章目录 Matlab搭建AlexNet实现手写数字识别环境内容步骤准备MNIST数据集数据预处理定义网络模型定义训练超参数网络训练和预测 代码下载 环境 Matlab 2020
  • [DIY]自制一个有漂亮外观的90W 203H高频焊台 ---【up项目终于完结了】

    于2019年4月23日完成一体式多功能焊接工具的高频烙铁部分 xff1b https www bilibili com video av50217593 论坛帖子发于数码之家 https www mydigit cn forum php m
  • sklearn实现基于TF-IDF的KNN新闻标题文本分类

    sklearn实现基于TF IDF的KNN新闻标题文本分类 文章目录 sklearn实现基于TF IDF的KNN新闻标题文本分类数据集下载读取数据集中文分词去除停用词TF IDF算法提取文本特征KNN分类器的设计完整代码下载 数据集下载 点
  • java序列化

    引言 将 Java 对象序列化为二进制文件的 Java 序列化技术是 Java 系列技术中一个较为重要的技术点 xff0c 在大部分情况下 xff0c 开发人员只需要了解被序列化的类需要实现 Serializable 接口 xff0c 使用
  • stm32串口中断收发数据环形缓冲区的设计

    Function Name USART2 IRQHandler Description This function handles USART2 global interrupt request Input None Output None
  • 图解快速区别——串口、COM口、UART、TTL、RS-232、RS-485

    参考 xff1a 串口 COM口 UART口 TTL RS 232 RS 485区别详解 作者 xff1a flyingju 发布时间 xff1a 2017 09 16 10 30 31 网址 xff1a https blog csdn n
  • P900数传端口定义

    P900数传端口引脚
  • P900数传配置教程

    typec线连接后按住SB2不松手后按住SB1 xff0c 分别松开SB2 SB1 xff0c 点击XCTU软件 http www pc6 com softview SoftView 602005 html 大写的 AT amp F7 设置
  • ubuntu查看软件安装路径

    ubuntu怎么查看软件安装位置在哪 服务器 亿速云 1 执行程序查看 在终端使用type执行软件程序查看 type google chrome 2 通过进程查看对应的软件程序 在终端使用以下命令查看所有进程名 ps e 再使用以下过滤命令
  • Ubuntu中wine程序安装windows软件中文乱码问题

    Ubuntu中wine程序安装windows软件中文乱码如何解决 1 安装wine sudo apt install wine 2 安装中文程序方法 下载exe文件在命令行执行 wine 文件名 exe 3 中文乱码原因分析 查看 home
  • ubuntu通过Trickle,wondershaper限制网速(上传下载速度)

    原文连接 xff1a https www ngui cc 51cto show 727932 html action 61 onClick 在Linux下没有Windows使用360那样去限制某个软件的速度 但是通过Trickle可以设置某
  • Ubuntu 16.04 重置密码(忘记密码)

    Ubuntu 16 04 重置密码 xff08 忘记密码 xff09 http blog topspeedsnail com archives 6042 忘记了你的Ubuntu用户密码 xff0c 登录不了系统 xff1b 不要紧 xff0
  • ubuntu下socket通信

    第一部分为C 43 43 实现 xff0c 第二部分为python实现 第一部分 该socket 的功能是在客户端输入了两个浮点数组成的字符串 xff0c 在服务端接受后将其转换为浮点数输出 xff0c 统一时刻只能有一个客户端连接 服务端
  • 关于螺旋桨的计算

    关于螺旋桨的计算 转载 http blog sina com cn s blog 4c2264b80100086z html 发给大家一些关与螺旋桨的计算公式 2007 02 07 13 08 46 功率 xff08 W xff09 直径
  • PID参数整定快速入门(调节器参数整定方法)

    转载地址 http yunrun com cn tech 440 html PID 参数整定方法很多 xff0c 常见的工程整定方法有临界比例度法 衰减曲线法和经验法 云南昌晖仪表制造有限公司以图文形式介绍以临界比例度法和衰减曲线法整定调节
  • STM8 CAN总线的IdMask模式的讲解

    http www stmcu org article id 328212 STM8 CAN总线的IdMask模式的讲解 发布时间 xff1a 2016 08 27 来源 xff1a ST社区 标签 xff1a STM8 CAN总线 IdMa
  • gitlab使用http方式提交代码不输入密码

    gitlab使用http方式提交代码不输入密码 记得这个问题很久之前就折腾过 xff0c 今天从gitlab上克隆一个仓库 xff0c 第一时间肯定是想着使用ssh公私钥进行验证 xff0c 这样以后也不需要再输入密码 xff0c 可是公司
  • STM32运行时程序卡在B.处

    STM32运行时程序卡在B 处的问题处理的一天多 xff0c 终于找到原因 1 xff0c 表现 我所使用的芯片是stm32f427vit6 xff0c stm32f4系列芯片外设多数都相同 xff0c 407 xff0c 405的 用户也