
调试经验
文章平均质量分 69
坛城
沉心修炼,早日筑基
展开
-
gdb监视
GDB(GNU Debugger)是一个功能强大的调试工具,可以用于在程序运行时监视变量的值,包括在特定条件下触发断点。要监视一个地址上的值并带有条件,你可以使用。命令可以用于监视任何内存地址上的值,但要小心不要访问无效的地址,以避免导致程序崩溃。此外,设置太多的监视点可能会影响程序的性能,所以只在需要时使用它们。在实际情况中,如果怀疑一个进程中的变量被踩内存了,但是不知道什么时候会被踩,就可以用下面的方法进行debug。这将监视地址0x12345678上的32位整数值。原创 2023-09-15 19:52:33 · 2151 阅读 · 0 评论 -
从零实现 独立看门狗IWDG STM32的待机与唤醒,在待机过程中如何喂狗
前言:最近在学习原子的阿波罗,进行到待机实验,实验目的是摁下KEY_UP的时候就可以让MCU从待机模式唤醒了。而KEY1在按下的时候进入休眠。(验证过程比较繁琐,只看结论的小伙伴请找往下找STM32休眠时关闭看门狗的方案)STM32F429提供了三种低功耗模式,以达到不同层次的降低功耗的目的:(1)睡眠模式(CM4内核停止工作,外设仍在运行)(2)停止模式(所有时钟都停止)(3)待...原创 2019-12-24 16:21:03 · 8462 阅读 · 9 评论 -
《C语言编程》关于HAL库的printf的重定向
关于HAL库的printf的重定向原创 2019-08-13 18:06:06 · 6674 阅读 · 2 评论 -
调试数据存储到nandflash的那些事儿(四):nandflash底层的简介
前言:在一个系统中,有三大类:数据、交互、质控。而数据则是根本中的根本,大部分嵌入式设备都是围绕着数据向用户提供着服务。而数据又分为采集、处理、存储、上传等具体细节。在我的设备中数据的存储是用nandflash进行存储的。所以研究nandflash,编写操作nandflash就显得极为重要。那么接下来有必要大概介绍一下nandflash:1.我们的板子配的为 IC_H27U1G8F2CB...原创 2019-08-21 16:52:19 · 1274 阅读 · 1 评论 -
调试数据存储到nandflash的那些事儿(五):对nandflash的寻址说明
作为用户,操作nandflash大部分操作无非就是 读、写、格式化。其中读写都一定得需要目标地址。如何根据需求,设定寻址方法就显得不可缺少了。比如说,需求是nandflash存储一年的分钟数据。请问如何存2019年8月21日00:00的分钟数据?一包分钟数据64字节/*************************************************************...原创 2019-08-21 17:53:10 · 468 阅读 · 0 评论 -
关于__attribute__((at(0x08010000)))的一些理解和实验
https://blog.youkuaiyun.com/weixin_42381351/article/details/89180609#comments你好,我自己也试了下,用const uint16_t FlashDefValue[3] __attribute__((at(0x08010000))) = {0x01, 0x02, 0x03};const uint32_t gFlash[3]__a...原创 2019-12-18 10:43:18 · 3553 阅读 · 2 评论 -
从零实现 PWM DAC
PWM DAC其实跟DAC是两码事,DAC是STM32的一个功能,可以直接输出(0~3.3V)。而PWM DAC是定时器TIM的PWM功能间接实现输出模拟量,实际端口输出的是(0或3.3V),只不过应用RC滤波将电压稳定在(0~3.3V之间)。在对输出精度不高的时候可以用该方式。该实验是TIM PWM的拓展。当用作DAC时需要滤波,阿波罗采用二阶RC滤波,而RC(电阻电容)是跟PWM的频率有关...原创 2020-01-03 15:33:25 · 5832 阅读 · 0 评论 -
从零实现 IIC 、拓展IO口芯片PCF8574T
本次实验主要是使用PCF8574T,它是一个专门用于拓展IO口的芯片,用IIC控制。最多支持一条IIC总线上挂8个PCF8574T芯片。每个芯片支持8个IO口,也就是两根IIC线控制64个IO口。其实还有一根INT中断线,专门通知MCU,拓展的IO口中有改变电平状态的。介绍下芯片的管脚功能:A0~A2为地址线,前面不是说了一根IIC总线上最多只能支持8个芯片吗,其实就是最大支持8个地址...原创 2020-01-06 16:28:13 · 14598 阅读 · 5 评论 -
从零实现 FATFS+SD卡
cubemx软件版本是V4.23.0,芯片型号是STM32F103ZET6、STM32F429IGT6;SD卡是闪迪的64G tf卡,然后用了转大卡的卡槽,exFAT。该篇为调试过程,所以阅读时一定要看到尾,中间的判断是有误的!!!中间会涉及到F429是因为一直失败,我拿两个板子来回尝试。调试过程:注意,//在生成fatfs代码后,一定要在初始化SDIO时或者FATFS初始化...原创 2020-03-24 17:47:26 · 4072 阅读 · 1 评论 -
debug: Serial wire、JTAG-4、JTAG-5的区别,以及如何应用。
之前用的都是最小STM32F103RBt6的芯片,支持JTAG-5。一直用这种调试方式。然后在MDK中选择SWD,这么去用。但是最近要节约成本,开始考虑管脚更少的,32pin、48pin的。这些就不支持JTAG-5了,只支持Serial wire的方式,也就是两根线:SWDIO、SWCLK。他跟JTAG-4、JTAG-5的区别在哪?从管脚上看,少了Rvef、GND、RESET管脚。JT...原创 2020-03-31 17:53:33 · 14952 阅读 · 0 评论 -
MDK(KEIL5)如何生成.bin文件(由他人的帖子亲自尝试,亲测可用)
我是看作者:nx505j 的贴子https://blog.youkuaiyun.com/nx505j/article/details/80924902讲解实现的,在此感谢作者!我在这里把过程无脑化,实现目的就好了嘛。1.首先:打开魔术棒到User页面中可以看到选中Run #1 后在右边选择路径时,我们自己编辑:fromelf --bin --output .\SmallAirStation...转载 2019-08-09 16:45:17 · 1027 阅读 · 0 评论 -
解决:IAR出现 do you want to perform mass erase to unlock the device?
在用j-flash烧上bootloader后再用IAR下载应用程序便出现这样的提示在点击OK后,会下载应用程序,但bootloader程序便不见了。点击cancel后,就停止了下载程序。这句话的意思是:您想要执行块擦除来解锁设备吗?我想他的意思是,你要是想下载程序就要先解锁,但是解锁需要擦除块。所以我执意下载应用程序就先把整个片子给擦除了,那么bootloader自然就没有...原创 2019-08-15 18:41:56 · 3447 阅读 · 3 评论 -
解决:J-flash Ram check failed @address 0x20000000 和 IAR烧不进程序
在烧写程序时IAR烧不进程序,J-LINK报错。然后我用J-flash尝试擦除片子出现上图的报错。不管尝试了多少遍结果都是一样。第二天才发现是电源的问题,难道真是有些错误睡一觉就好了?也可能是前一天一直存在一个思维定势吧。以后请检查以下清单:1.片子的MCU型号是否选对2.片子是否解保护3.板子的电源是否正常,尝试用其他电源供电再次尝试4.j-link的驱动是否是最新的...原创 2019-08-20 14:42:05 · 8332 阅读 · 0 评论 -
解决:程序触发看门狗或者跑飞的情况汇总分析
该类情况在编程的时候总是不断遇见,我将其分为三类:一、无操作系统程序死机。在一个极简单的程序中遇见一个情况,运行着运行着main()中的while(1)就不循环了,但是串口中断还能进。由于我并没有使用看门狗,所以并没有触发看门狗重启。这个问题莫名其妙的地方在于不知道程序现在在干啥,可以通过debug中的call stack可以看到当前运行在哪个函数中,也可以看到这个函数的调用路径。这个...原创 2019-08-20 16:40:02 · 5773 阅读 · 0 评论