使用STM32CUBE生成代码踩(SWD锁死)解决方法探讨
昨天用STM32CUBE生成代码
1,SWD因为以前一直不定义它也可以用。所以这次也没定义。
2,这次定义了不用的IO口的处理方法。看下面图的红色部分 如果不用这个应该不会锁死
3,生产代码烧录。结果给锁死了。烧录不进去了。
4,无奈,把BOOT1 BOOT0设置为 0,1直接启动内部系统存储器程序,再擦除。
BOOT1=X BOOT0=0 从用户闪存(flash)启动,这时正常模式 较多情况下使用这种模式
BOOT1=1 BOOT0=1 从内置SRAM(内存)启动,这种模式可以用于调试
BOOT1=0 BOOT0=1 从系统存储器启动, 这种可以用于调试
这样就可以烧录了。
5,为了避免重复锁死老路。SWD直接在IO口显示定义为用于SWD。再生成代码编译再烧写进去。
6,BOOT1 BOOT0恢复设置为:BOOT1=X BOOT0=0 正常模式 后
多次调试和烧写没出现过了锁死现象了。
因为出现这个问题。所以分享一下。大家一起讨论。免走弯路。
本帖最后由 damiaa 于 2020-8-4 09:34 编辑
我刚好也在用这个片子,玩玩rtos。。
我记得之前用103的时候,low pin的,io不够,只能把swd的接口映射为普通io来用,下载程序,都是先按住复位,keil上可以识别到器件,然后点击下载flash,这时候下载程序是等待复位撤销中,在超时前松开复位就可以把程序烧进去了。。。
wsmysyn 发表于 2020-8-4 09:53 我刚好也在用这个片子,玩玩rtos。。 我记得之前用103的时候,low pin的,io不够,只能把swd ...
这个板子没接复位,直接的用的RC电路。所以没试那种方法。应该也是可以。只是锁死的原因还是要找到去掉。
这个405RG芯片好,内存大资源多。TPYBoard 板子就是用这个芯片。还可以跑mpython呢。哈哈。所以我把它搞到产品里。而且还可以拿来玩。
本帖最后由 damiaa 于 2020-8-4 10:08 编辑没接复位就比较尴尬了,方便的话,我会用镊子直接去短rc,不方便就飞根线,
不过突然不能那么用,是版本更新了?,默认把一些管脚给设置了,估计翻到底层应该能找到答案,肯定是设置过了才会变,我目前就是用cube生成一个没有什么实际功能的工程,然后还是自己往上添加代码,类似于以前标准库的方式,暂时没遇到swd被改的问题。
引用: damiaa 发表于 2020-8-4 10:04 wsmysyn 发表于 2020-8-4 09:53 我刚好也在用这个片子,玩玩rtos。。 我记得之前用103的时候,low ...
嗯,主频也不小,168M,192k ram+1M flash确实很大,可玩空间很大,可以折腾,,想着慢慢玩玩,,计划也是用在后面的测试项目上,需要做一个SLT测试,用来当做板上主控,跑个系统,pc上可以控制台发命令,比较爽
wsmysyn 发表于 2020-8-4 10:28 没接复位就比较尴尬了,方便的话,我会用镊子直接去短rc,不方便就飞根线, 不过突然不能那么 ...
stm32CUBE有一个 定义了不用的IO口的处理方法 主要为了省电用的。
定义这个估计可能会锁死。 我的就这样锁死了。显示的定义SWD为做SWD用就没这个问题了。
引用: damiaa 发表于 2020-8-5 09:29 wsmysyn 发表于 2020-8-4 10:28 没接复位就比较尴尬了,方便的话,我会用镊子直接去短rc,不方便就飞根线 ...
嗯,所以也是个坑,不注意就掉进去了
wsmysyn 发表于 2020-8-4 16:14 嗯,主频也不小,168M,192k ram+1M flash确实很大,可玩空间很大,可以折腾,,想着慢慢玩玩,,计划也 ...
用STM32CUBE折腾吧。或者用rt-thread都可以。
STM32CUBE和新的HAL库做起来比老的库有意思一些。
比如串口中断。基本上配置好了。你只要调用一下生成好的初始化库,开启一下中断。中断配置回调函数。然后中断里面什么都不用处理。
直接写个已经命名好的回调函数。里面加东西就好了。所有串口中断都可以在这个回调函数中处理。
方便多了 以前一直用库。现在准备彻底换过来了。
本帖最后由 damiaa 于 2020-8-5 10:14 编辑
引用: damiaa 发表于 2020-8-5 10:12 wsmysyn 发表于 2020-8-4 16:14 嗯,主频也不小,168M,192k ram+1M flash确实很大,可玩空间很大,可以 ...
嗯,那种开发效率很高,不用关心太多底层。
不过我不喜欢这种一键式的。 主要不做产品开发,多数时候是自己学习
我还是喜欢折腾一下,我们是做芯片的,很多时候没有这种现成的,都是自己去怼驱动,比较习惯这种方式。。。
wsmysyn 发表于 2020-8-5 10:20 嗯,那种开发效率很高,不用关心太多底层。 不过我不喜欢这种一键式的。 主要不做产品 ...
也不呢。底层驱动还是要做。只是效率高写。能做的事情多些。不妨碍你对底层驱动的关心。比如在rt-thread 你可以做驱动分享给别人。
本帖最后由 damiaa 于 2020-8-5 10:23 编辑damiaa 发表于 2020-8-5 10:22 wsmysyn 发表于 2020-8-5 10:20 嗯,那种开发效率很高,不用关心太多底层。 不过我不喜欢这种一键 ...
只要是不喜欢用cube这种,,,
我就算觉得太方便了,不是很好
本帖最后由 wsmysyn 于 2020-8-5 10:45 编辑有次PA14 复用成IO 要用镊子短接电容 下载。。。