[技术问答] NUC472 APROM中data Flash使用疑问?

[复制链接]
 楼主| sqrong 发表于 2015-5-17 19:50 | 显示全部楼层 |阅读模式
学习FMC中。使能data Flash,
CONFIG0 = 0xFFFF_FFFE;     CONFIG1 = 0x0007_6800;  data Flash使用了38KB,
如果我在一个工程中将数据写入data Flash(0x0007_6800~0x0008_0000);
然后在另一个工程中读出data Flash中数, 读取数据的工程在烧写代码时是否会把data Flash中的数据擦除?
如果是应该怎么设置,我用的是keil4
将option for target“proj”->target->
    on-chip   -> IROM1 size改为0x76800是否可以?
gaoyang9992006 发表于 2015-5-18 08:58 | 显示全部楼层
可以把代码指定到特定的存储区,那样就不会覆盖原来的代码区了,如果是一个工程文件,肯定没问题。
598330983 发表于 2015-5-18 13:46 | 显示全部楼层
这种问题只有试过了才知道,楼主何不试一下呢,又不费劲。
 楼主| sqrong 发表于 2015-5-18 16:21 | 显示全部楼层
本帖最后由 sqrong 于 2015-5-18 16:23 编辑

不用改也可以,在option for target“proj”->Utilities->setting->config的设置中起作用了,烧写的程序只覆盖APROM,不会烧写DATA FLASH。

疑问:一开始我写DATA FLASH 是没关闭特殊寄存器写保护,写不进去,但数据手册貌似没有说明写DATA FLASH要关闭写保护。关闭后就写进去了。
PS:固件库有点小错误@奔跑的牛 NUC400SeriesBSP_CMSIS_V3.01.001\Library\StdDriver\src\fmc.c中
void FMC_Write_64(uint32_t u32Addr, uint32_t u32Data0, uint32_t u32Data1)
{
    FMC->ISPCMD = FMC_ISPCMD_WRITE_64;
    FMC->ISPADDR = u32Addr;
    FMC->MPDAT0 = u32Data0;
    FMC->MPDAT1 = u32Data0;                 //此处应改为u32Data1
    FMC->ISPTRG = FMC_ISPTRG_ISPGO_Msk;
    while (FMC->ISPTRG & FMC_ISPTRG_ISPGO_Msk) ;
}
598330983 发表于 2015-5-18 21:29 | 显示全部楼层
原来如此啊,那句还真不对,上面写入的就是那个位置,下面换地方的就该跟着换
Luis德华 发表于 2015-5-19 10:24 | 显示全部楼层
sqrong 发表于 2015-5-18 16:21
不用改也可以,在option for target“proj”->Utilities->setting->config的设置中起作用了,烧写的程序只 ...

这是真知灼见,学习了
没有楼主细心,惭愧
mintspring 发表于 2015-5-19 11:15 | 显示全部楼层
原来工程中需要配置一下存储区域啊,以前都是默认。
734774645 发表于 2015-5-19 11:43 | 显示全部楼层
在option for target“proj”->Utilities->setting->config的设置中起作用了,烧写的程序只覆盖APROM,不会烧写DATA FLASH。
原来可以配置烧录位置。
天灵灵地灵灵 发表于 2015-5-21 21:35 | 显示全部楼层
楼主不粘贴出来,我还真想不到是那里的问题。
yiyigirl2014 发表于 2015-5-26 20:43 | 显示全部楼层
那个需要ISP操作吧,然后可以往里面写东西,跟那个EEPROM差不多。
Jacky-vic 发表于 2015-5-27 09:15 | 显示全部楼层
楼主可以直接问相关代理商技术支持嘛!!
643757107 发表于 2015-5-27 20:16 | 显示全部楼层
这个芯片这么麻烦,还需要考虑怎么存放数据吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

6

帖子

0

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