Keil STM32F407IGT6 局部和全局变量被分配到Flash里

2019-07-21 04:43发布

我就怎么定义了一句 [mw_shl_code=c,true]char* Keybuffer = "";[/mw_shl_code] 使用时发现无法memcpy,单步调试发现该变量内存地址在0x08000A00(Flash里),真是怪事了。 另外一个工程里写有 [mw_shl_code=c,true]char buffer[3];[/mw_shl_code]
可以被正确memcpy,但是将该语句复制到这个程序也不行...全局和局部变量都不行。 两个工程除了main是不一样的,其他都是一样的 到底是怎么回事,不是会自动分配堆栈空间的吗,怎么跑到Flash里了
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
10条回答
 精彩回答 2  元偷偷看……
正点原子
2楼-- · 2019-07-21 19:20
回复【8楼】光圈电子科技-晓航-多多实验室:
---------------------------------
那这样可以得到很好的仿真结果了
比较奇葩,你用个最少代码量的工程,测试下。
回复【9楼】正点原子:
---------------------------------
不成,随便声明一个计数用的变量,都能跑到0x08001170上面去
可能是MDK版本不兼容?
最新版的MDK里面有这样的说明
Note: The STM32 Device Family acks Version 1.x.x are incompatible with CMSIS Version 4.2.0 and MDK-Middleware Version 6.1.1. 

 The compatible STM32 Device Family acks Version 2.x.x will be released shortly. 

换回5.11a试试先

一周热门 更多>