[STM32] 第一次用stm32的flash

[复制链接]
1952|13
 楼主| 越来越黑暗 发表于 2017-12-29 11:21 | 显示全部楼层 |阅读模式
求解一下,为何我读取了某个区域的值后,后面的程序运行得不太正常。。。还有开机读取的值也不太正常。。。求问下。  型号为stm32f103rct6
   Memory Map of the image

   Image Entry point : 0x08000131

   Load Region LR_IROM1 (Base: 0x08000000, Size: 0x000013b0, Max: 0x00040000, ABSOLUTE)

    Execution Region ER_IROM1 (Base: 0x08000000, Size: 0x0000135c, Max: 0x00040000, ABSOLUTE)


上面是.map中的数据,size不应该最大也就 135c吗。,,, 我读取的值的地址是


#define FLASH_SAVE_ADDR  0X08028000  .。。。他会读到我程序中定义的一个char数组的值。。。。。怎么会这样。。怎么才能完全避开,,,,虚心求教,
 楼主| 越来越黑暗 发表于 2017-12-29 11:23 | 显示全部楼层
void  Read(void)           //程序参考网上的。。。启动时读取后面程序就会产生谜一样的错误,而且读到的 Admin那里会读到一个我定义的char的值,,,,
{

        //                        STMFLASH_Read(FLASH_SAVE_ADDR+6,(u16*)Admin,12);
                                L = *(uint8_t *)0X08028002;
                                STMFLASH_Read(FLASH_SAVE_ADDR+4,(u16*)Operationer,500);

                //                USART1_Puts(Admin);
                                USART1_Putc(L);
                                USART1_Puts(Operationer);
}
gujiamao12345 发表于 2017-12-29 11:27 | 显示全部楼层
读lash尾部有问题么?
 楼主| 越来越黑暗 发表于 2017-12-29 13:15 | 显示全部楼层
gujiamao12345 发表于 2017-12-29 11:27
读lash尾部有问题么?

flash尾部?
gujiamao12345 发表于 2017-12-29 13:22 | 显示全部楼层

是呀,从比较大的地址读起
 楼主| 越来越黑暗 发表于 2017-12-29 13:49 | 显示全部楼层
gujiamao12345 发表于 2017-12-29 13:22
是呀,从比较大的地址读起

水平不够,不太明白你指什么,我把地址加上去了,变成0x8030000也一样的结果,不知道为啥,,。。
ningling_21 发表于 2017-12-29 14:06 | 显示全部楼层
判断要访问的区域,如果全是FF,则可以访问否则避开
 楼主| 越来越黑暗 发表于 2017-12-29 14:12 | 显示全部楼层
ningling_21 发表于 2017-12-29 14:06
判断要访问的区域,如果全是FF,则可以访问否则避开

那个,问个问题。。。我通过读函数,读12个字节,也就是上面Admin那个,但他读到了起码二三十个字节,而且还包含了我定义的一个字符数组的部分字符。。。。。这是为何。。地址不对吗,0x08020000,不是说偶数就可以了吗
wqiang_qdu 发表于 2017-12-29 15:52 | 显示全部楼层
提问的时候能不能把问题讲清楚 不知所云。
HappyXue 发表于 2017-12-29 16:55 | 显示全部楼层
看看STMFLASH_Read()函数的实现。
根据你传入的参数类型,可能读取的数据粒度是u16,实际读取了u16 x 12 = 24个字节,分配的缓冲突溢出了。
cqwangsf 发表于 2017-12-29 17:49 | 显示全部楼层
sdggg 发表于 2017-12-29 21:33 来自手机 | 显示全部楼层
很奇怪,你admin是变量还是指针?
nuaabob 发表于 2017-12-31 20:21 | 显示全部楼层
正是,flash尾部有一段区域不能修改其值,如果你用STM官方的串口下载程序而非第三方下载程序,自然会注意到这一细节,我以前也犯过相同的错误。
zqx1000 发表于 2018-4-10 22:22 | 显示全部楼层
您需要登录后才可以回帖 登录 | 注册

本版积分规则

6

主题

74

帖子

2

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