针对stm32f407zet6,keil下面的编译结果是否会导致问题?

[复制链接]
677|7
 楼主| keer_zu 发表于 2022-7-11 11:11 | 显示全部楼层 |阅读模式
本帖最后由 keer_zu 于 2022-7-11 11:19 编辑

针对stm32f407zet6,keil下面的编译结果是否会导致问题?



这里zi-data是否太大?之前我自己的也就10K-20K。

现在这份代码已经出了很多莫名奇妙的问题,比如:
  • 在一个全局结构体变量里面加上一个成员,导致其他两外一个成员初现很奇怪的值,这个值在代码里面不可能被设置。声明成volatile成员变量又正常了。
  • 在一个任务修改的全局变量,在另一个任务里得不到期望的值(系统使用freertos)
  • 在一个函数里面添加局部数组(200个字节),导致程序根本没有办法安装原有意图执行(只改了这一个地方)


stm32f407zet6的存储空间如下:
Memories
   – Up to 1 Mbyte of Flash memory
   – Up to 192+4 Kbytes of SRAM including 64-
      Kbyte of CCM (core coupled memory) data
      RAM
   – Flexible static memory controller
      supporting Compact Flash, SRAM,
      PSRAM, NOR and NAND memories


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| keer_zu 发表于 2022-7-11 11:22 | 显示全部楼层
目前看ZI-data确实不小,但是RAM也有194K,不知道这个结果和mcu的存储资源是否存在匹配的问题。
 楼主| keer_zu 发表于 2022-7-11 16:22 | 显示全部楼层
还有CCM这部分怎么使用?
在keil的 target中怎么设置?
icecut 发表于 2022-7-11 16:31 | 显示全部楼层
看起来你的程序比较大.
问题表象看来,内存空闲的时候功能少的时候, 问题的确不容易暴露.
你也要考虑栈空间多次callback之后还有没有那么多字节.

你可以用调试器进行内存访问断点来查看异常访问. 但是栈空间比较难跟踪.全局变量可以
 楼主| keer_zu 发表于 2022-7-11 16:52 | 显示全部楼层
icecut 发表于 2022-7-11 16:31
看起来你的程序比较大.
问题表象看来,内存空闲的时候功能少的时候, 问题的确不容易暴露.
你也要考虑栈空 ...

别人的程序,写得极差,有不能不救。这个内存访问断点确实不错,我试一试好不好用。
icecut 发表于 2022-7-11 17:58 | 显示全部楼层
keer_zu 发表于 2022-7-11 16:52
别人的程序,写得极差,有不能不救。这个内存访问断点确实不错,我试一试好不好用。
...

其实bug一直都在, 你让bug暴露出来了,所以你救火却伤了自己
 楼主| keer_zu 发表于 2022-7-12 08:24 | 显示全部楼层
icecut 发表于 2022-7-11 17:58
其实bug一直都在, 你让bug暴露出来了,所以你救火却伤了自己

可不是嘛,和mcu打交道有时候更麻烦。不如全部都加载到内存来得直接。
 楼主| keer_zu 发表于 2022-7-12 11:14 | 显示全部楼层
icecut 发表于 2022-7-11 17:58
其实bug一直都在, 你让bug暴露出来了,所以你救火却伤了自己

问题貌似解决了:


把IRAM2勾掉。不用CCM,一下子就清爽了。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:qq群:49734243 Email:zukeqiang@gmail.com

1490

主题

12955

帖子

55

粉丝
快速回复 在线客服 返回列表 返回顶部