[STM32F1] 把数据存在main flash中要如何操作

[复制链接]
1840|46
 楼主| renyaq 发表于 2022-8-5 19:04 | 显示全部楼层 |阅读模式
把数据存在main flash中要如何操作
xxrs 发表于 2022-8-5 19:12 | 显示全部楼层

楼主详细说说怎么回事啊,这么说太笼统了
 楼主| renyaq 发表于 2022-8-5 19:16 | 显示全部楼层
我有一堆比较大的数据想存在flash中,但是info flash太小了,想存在main flash中。
 楼主| renyaq 发表于 2022-8-5 19:18 | 显示全部楼层
但是同样的程序在info flash中是可以正常写入的,在main flash中却不行了,单片机总是会reset。
 楼主| renyaq 发表于 2022-8-5 19:20 | 显示全部楼层
求问想把数据存在main flash中要如何操作?
zhenykun 发表于 2022-8-5 19:23 | 显示全部楼层
可以自己定义存的地址,还要改什么linker文件
stly 发表于 2022-8-5 19:25 | 显示全部楼层

这两个是我擦除和写入flash的函数,在info flash内是可以正常执行的。但是在main flash里面调用会reset掉!

void FERASE(U16 address)
{
//_DINT();
U8 *Erase_address ;
Erase_address = (U8 *)address ;
FCTL1 = FWKEY + ERASE ;
FCTL3 = FWKEY ;
*Erase_address = 0 ;
FCTL1 = FWKEY ;
FCTL3 = FWKEY + LOCK ;
//_EINT();
}

void FWRITE(U16 address, U8* data,U16 length)
{
//_DINT();
U16 i ;
U8* Wr_Addr ;
Wr_Addr =(U8*)address ;

FCTL1 = FWKEY + WRT ; // Set WRT bit for write operation
FCTL3 = FWKEY ;
//while(FCTL3 & BUSY);
for(i=0;i<length;i++)
{
*Wr_Addr= data ;
Wr_Addr++ ;
}
FCTL1 = FWKEY ;
FCTL3 = FWKEY + LOCK ;
//while(FCTL3 & BUSY);
//_EINT();
}
stly 发表于 2022-8-5 19:28 | 显示全部楼层

确保FLASH的目标写入地址没有被程序占用,程序占用FLASH的大小及范围可通过IAR option里生成MAP文件查看。
jiahy 发表于 2022-8-5 19:34 | 显示全部楼层

确保目标地址有效,而不是空地址或保留地址,FLASH地址有错MCU会RESET.
xxrs 发表于 2022-8-5 19:36 | 显示全部楼层

你想占用mainflash,怕是会影响你系统的稳定性的啊,我么用的时候都不会用mainflash 。。
wyjie 发表于 2022-8-5 19:42 | 显示全部楼层
完全可以,本人就是那么用的
llljh 发表于 2022-8-5 19:45 | 显示全部楼层
但是你要注意范围和页大小
jlyuan 发表于 2022-8-5 19:47 | 显示全部楼层
最好做个页起始对齐,存没有这个问题,主要是擦除
zhanghqi 发表于 2022-8-5 19:48 | 显示全部楼层

这个跟程序的执行顺序相关系的,你把相关数据写到程序存出去了吧?
jlyuan 发表于 2022-8-5 19:51 | 显示全部楼层
单片机的flash擦出的时候最小的擦除单位是sector的。
chuxh 发表于 2022-8-5 19:54 | 显示全部楼层
信息存储区是按照sector擦除的,而程序flash是以扇区block为单位擦除的,,一擦除,你存储的信息自然就呗复位掉了。
lizye 发表于 2022-8-5 19:57 | 显示全部楼层
是不是数据保存超出范围了?
dengdc 发表于 2022-8-5 19:59 | 显示全部楼层
芯片复位不一定是程序的问题。
jlyuan 发表于 2022-8-5 20:01 | 显示全部楼层

info flash和main flash什么区别?
zhaoxqi 发表于 2022-8-5 20:03 | 显示全部楼层
这个Flash还需要link文件吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

700

主题

10138

帖子

4

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