出出啊
出出啊
It is Not the Mountain We Conquer, but Ourselves

注册于 6 months ago

回答
902
文章
19
关注者
55

这个要求使用 FPU 的,你关闭 fpu 得修改上面这个启动文件。去掉 fpu 入栈和出栈操作

cubemx 生成的源文件不建议直接添加到项目。ewarm 是新生成的代码的启动文件链接文件等的路径,你如果之前有启动文件,去项目目录下把 cubemx_config 文件夹剪切到其它地方。
项目里需要用到的时钟或者其它外设配置从 cubemx 拷贝添加到项目, cubemx 生成的代码仅供参考,这是我的建议。

上面,配置finsh 的地方有个字符串宏定义,“uart1” 改成“uarrt3”

为啥不用 scrt xshell putty mobax ...
每次 ls 都要 probe?还是说系统启动以后敲一次 probe 之后其它的都正常了?
系统启动过程的打印信息有吗?
probe 之后系统没有再出现其它异常?

自带的那个有问题,你可以把 stm32_gpio_config 那个函数挪到其它地方执行。它应该是配置调试串口的引脚的,你可以在你写的函数里添加配置调试串口的引脚

明显栈溢出了呗,把你那个数据给冲了

这个问题可能当前线程没多大联系,说不定他也是个受害者。。。
没初始化的设备,指针。数组或者内存访问溢出等等等等。有兴趣可以看一下我写的关于排查这种诡异问题的心得。

你们这个485网络组网有问题吧,电气特性可能比较差,有试过调整几个设备接入点顺序没?把好设备和坏设备调换安装位置是不是特定的位置出问题?

你的跑到 return 了?
上下文切换函数的汇编实现没有?还是实现有问题,pc 指针和 sp 指针切换失败。或者根本没走到上下文切换函数。。。

轮询模式比较占用 cpu ,rtt 不建议使用轮询。你可以不用 rtt 的串口驱动,用裸机程序接口,你会发现这将会是噩梦

(X - A)*16 + n
其中,X 代表端口组
A 代表 PA
n 代表端口的第几号
比如 PF10 (F - A)16 + 10 = 516+10 = 90,对不对?

为啥不用 rtt 的 gpio 框架呢? 你只添加了头文件引用路径,但是没有把 c 文件添加到项目。
在 rtt 的设备框架下,多数时候,只需要把引脚配置的几行代码拷贝到 msp 函数里。cubemx 生成的函数仅供参考了。

studio? 项目属性里,设置链接工具那里添加 m 库看看啥反应。

创建的socket 太多了?那个宏默认好像是4 修改配置改大点儿试试

我只能告诉你 crc32 校验错误,目测 download 分区烧写的程序校验值 21200000 这个值是错的。或者说 ota 下载完成后没有把 download 分区的校验数据更新。或者分区信息就是写错了。

回到
顶部

发布
问题

投诉
建议