中级会员
 
- 积分
- 206
- 金钱
- 206
- 注册时间
- 2013-9-11
- 在线时间
- 40 小时
|
1金钱
本人和同学合作做了一个项目,硬件电路是我设计的,用的芯片是STM32F103RCT6这个256K FLASH 48K RAM的这个芯片。
keil工程中我把硬件初始化部份弄好了,就把它丢给我同学,让他参照开发板带的例程去写应用层的业务逻辑了。
其中有一部分是要在flash中存储一段数据。
#define FLASH_SYS_DYEING 0x8070020
#define FLASH_SYS_DYEING1 (FLASH_SYS_DYEING+0) //F_:~0x80700B8-1~(30步*4字节=120字节)
#define FLASH_SYS_DYEING2 (FLASH_SYS_DYEING1+120) //F_:~0x8070130-1~(30步*4字节=120字节)
#define FLASH_SYS_DISTANCE (FLASH_SYS_DYEING2+120) //F_:40个字节
这是他写的一个数据存储的一个基地址。
之前一直没有发现,机器一直在跑,而且数据读取写入还都没有问题。
我现在就郁闷了,他的数据是写到那里去了。256K的FLASH空间不是0x8000000到0x40000么,他上面操作的那个地址明显是超过了STM32F103RCT6这个芯片FLASH的存储空间。
|
最佳答案
查看完整内容[请看2#楼]
1.芯片是大容量芯片,但出厂只测试了256K,这个看到坛友说过
2.超出容量后写入循环了,可以将地址转换到256K对应地址读取,看是不是写入的值
|