STM32 调试过程中 的困惑
我在使用STM32 调试过程中发现,若编译的文件 CODE 大于12K( DATA 大于2K) 后,就不能在RAM 中调试了,(经常全局变量出错,且 还会进入hard fault异常处理), 在FLASH 中调试就正常, 我用STM32F103VB,120K FLASH,20K RAM. 请高手说明;STM32 的FLASH 擦写次数,不同资料有不同说法, 有3000次,10000次, 100000次, 到底是多少?
RE:STM32 调试过程中 的困惑
关于ram的空间请楼主改一下ram.xcl文件的ram空间flash擦写次数 官方资料正常环境是10000次,当然在使用中可能会有出入。
RE:STM32 调试过程中 的困惑
资料上好像是1000次!实际使用可能有差别,还达不到这个次数!RE:STM32 调试过程中 的困惑
最新的资料是10000次是正常环境下测试的。 使用很多出现不到1000就不行了,很少。还有一种情况就是在调试的时候你出现了误操作,使flash进入了保护状态,而不能下载程序了。解决办法:用isp(串口)下载一次程序,即可解决。
如果真的是flash次数限制,建议在ram中调试
RE:STM32 调试过程中 的困惑
版主: lnkarm_ram.xcl 关于 RAM 大小的定义如下:// Code and data in RAM
-DRAMSTART=0x20000000
-DRAMEND=0x20004FFF
-DROMSTART=RAMSTART
-DROMEND=RAMEND
4FFF 不就是 20K 吗,(20 X 1024),正是STM32F103VB,的 RAM 大小啊.
RE:STM32 调试过程中 的困惑
上午我说的在FLASH 中可以正常工作,在RAM 中不能调试 的问题, 按版主指点,修改 lnkarm_ram.xcl 中下面内容,就好了// -D_CSTACK_SIZE=100// 原内容
// -D_HEAP_SIZE=100 // 原内容
-D_CSTACK_SIZE=400 // 修改了
-D_HEAP_SIZE=200 // 修改了
不过我不明白 这2个参数在 堆栈中起什么作用,STM32不是满堆栈工作方式吗?那不就是从0x20004FFF自动往下延伸的吗
页:
[1]