How full chip erase flash base Dave IDE

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
Jack_Jiang
Level 1
Level 1
Distributor - Future(GC)
5 questions asked First solution authored First reply posted

Dear,

在用EtherCAT例程时,用内部Flash模拟EEPROM,在工程中修改EEPROM参数后的Data Image经过DAVE编译链接后,包含在了HEX文件中。但通过DAVE下载HEX文件到MCU,发现其中的EEPROM内容没有更新,因此推断DAVE烧写HEX文件时没有把模拟EEPROM的FLASH存储空间进行重新擦写,需要用J-Flash擦除才可以。请问在DAVE下载前如何实现全片自动擦除。

0 Likes
1 Solution
lock attach
Attachments are accessible only for community members.

您好,

你要的工程我加载附件了,请参考。

View solution in original post

0 Likes
5 Replies
LinglingG_46
Moderator
Moderator
Moderator
500 solutions authored 1000 replies posted 10 questions asked

您好,

你的这个测试结果和ld里面的理论配置是匹配的,所以这个结果是正常的。你打开一个非eeprom的code,然后打开ld,用对比工具对比一下,然后分析是否是要改成非eeprom工程。

0 Likes
lock attach
Attachments are accessible only for community members.
Jack_Jiang
Level 1
Level 1
Distributor - Future(GC)
5 questions asked First solution authored First reply posted

Hi Lingling,

客户用的是XMC4800 EtherCAT APP SSC Firmware Update Slave Example,官网没有下载到,拿到了客户的LD文件在附件,初步看了一下,没搞清楚哪部分决定了EEPROM的地址分配和Dave如何来区分是否擦除这部分Flash,需要您帮忙再指点一下,谢谢。

0 Likes

你加载的附件memeory 分配的地方,是如下面这样写的:

FLASH_0_cached(RX) : ORIGIN = 0x08000000, LENGTH = 0x00010000
FLASH_0_uncached(RX) : ORIGIN = 0x0C000000, LENGTH = 0x00010000
FLASH_1_cached(RX) : ORIGIN = 0x08020000, LENGTH = 0x001E0000
FLASH_1_uncached(RX) : ORIGIN = 0x0C020000, LENGTH = 0x001E0000

你看uncached的这个地方是不连贯的,中间少了64K,这64K就是作为eeprom存储使用的,写的话,程序里面是按照绝对地址访问的。这个需要你自己看一下eeprom的操作函数就可以明白过来。

0 Likes
Jack_Jiang
Level 1
Level 1
Distributor - Future(GC)
5 questions asked First solution authored First reply posted

收到,谢谢。

也就是如果修改EEPROM部分内容。修改通过代码来修改,而不是下载固件时直接烧写,对吗?

应用笔记提到代码第一次判断地址为空才初始化EEPROM,如果要修改EEPROM必须通过其他方式擦除这部分地址才能通过代码重新配置吗?

另外,XMC4800 EtherCAT APP SSC Firmware Update Slave Example这个例程哪里可以下载,我同步测试下。

0 Likes
lock attach
Attachments are accessible only for community members.

您好,

你要的工程我加载附件了,请参考。

0 Likes