查看: 11750|回复: 14

[S32] S32K144EEPROM应用

[复制链接]
  • TA的每日心情

    2018-11-27 09:26
  • 签到天数: 3 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    13

    主题

    46

    帖子

    3

    中级会员

    Rank: 3Rank: 3

    积分
    205
    最后登录
    2019-10-16
    发表于 2018-8-13 09:49:16 | 显示全部楼层 |阅读模式
    在S32K144的FLASH模拟EEPROM应用时,我看SDK32的例程是配置EEPROM有两个先决条件,第一是要把程序在RAM上运行,第二是要先EraseAll.那是否每次上电开机我都需要配置EEPROM,然后才能操作EEPROM呢,如果是,那是否也要求配置前先EraseAll呢?如果执行了EraseAll,那我以前保存在EEPROM里的数据那岂不是没有了?望各位大神指点,谢谢

    最佳答案

    zchunhua25 发表于 2018-8-14 17:24 1,BootLoader 升级APP的话,好像不需要eraseall,用erase block就可以了,我试过这个功能了,完全可以在 ... 1. 是的,如果只是Bootloader升级APP,当然不能erase all,否则 boot ...
    CAN唤醒还是没整好
    回复

    使用道具 举报

    该用户从未签到

    712

    主题

    6371

    帖子

    0

    超级版主

    Rank: 8Rank: 8

    积分
    24890
    最后登录
    2025-7-21
    发表于 2018-8-13 13:47:20 | 显示全部楼层
    楼主你好!
    erase all的目的应该是用来模拟EEPROM partition用的,一旦分区分好之后,你就不需要每次都做erase all了。直接操作EEPROM就可以了。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2018-11-27 09:26
  • 签到天数: 3 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    13

    主题

    46

    帖子

    3

    中级会员

    Rank: 3Rank: 3

    积分
    205
    最后登录
    2019-10-16
     楼主| 发表于 2018-8-13 14:44:00 | 显示全部楼层
    谢谢版主回复,早上确实发现了这个情况,板子上周我用debug版软件已经配置过,早上用FLASH版软件老是配置不成功,但是我无意中看到FTFE_EERDY这个位为1,感觉应该已经是可以使用EEPROM了,所以更改程序,直接写EEPROM和读EEPROM操作都可以。
    CAN唤醒还是没整好
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    712

    主题

    6371

    帖子

    0

    超级版主

    Rank: 8Rank: 8

    积分
    24890
    最后登录
    2025-7-21
    发表于 2018-8-13 15:12:41 | 显示全部楼层
    zchunhua25 发表于 2018-8-13 14:44
    谢谢版主回复,早上确实发现了这个情况,板子上周我用debug版软件已经配置过,早上用FLASH版软件老是配置不 ...

    嗯嗯,好的!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2018-11-27 09:26
  • 签到天数: 3 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    13

    主题

    46

    帖子

    3

    中级会员

    Rank: 3Rank: 3

    积分
    205
    最后登录
    2019-10-16
     楼主| 发表于 2018-8-14 09:47:37 | 显示全部楼层
    小恩GG 发表于 2018-8-13 13:47
    楼主你好!
    erase all的目的应该是用来模拟EEPROM partition用的,一旦分区分好之后,你就不需要每次都做er ...

    版主,我还有个问题要请教你,我上周用的是把全部code链接到RAM上面用的debug模式配置的EEPROM.配置的时候要用的ERASEALL,那我如果把code链接到FALSH上去,那我执行过ERASEALL之后,那我的code区域是不是也被擦除了?这样的话,我应该怎么实现EEPROM应用呢?另外,我的用的IAR,内存配置文件为icf,NXP对这个文件的说明也比较少,有些配置也不是很懂,希望你们多出一些IAR的例程贡我们参考一下。谢谢
    CAN唤醒还是没整好
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    712

    主题

    6371

    帖子

    0

    超级版主

    Rank: 8Rank: 8

    积分
    24890
    最后登录
    2025-7-21
    发表于 2018-8-14 13:49:14 | 显示全部楼层
    zchunhua25 发表于 2018-8-14 09:47
    版主,我还有个问题要请教你,我上周用的是把全部code链接到RAM上面用的debug模式配置的EEPROM.配置的时 ...

    其实,你完全不需要把所有代码都拷贝到RAM中去做全部的擦除。
    我一般是这样做的,我用仿真器自己做个全片擦除,然后eeprom的代码照样还是在flash中运行,充其量是将flash操作的命令放到RAM里面,那个也只是一个函数放过去。
    在main开始的时候,你先做下判别,看看是否是做好flash Partition了,如果没有做分区,先做下分区;如果做好分区了,这个时候,完全可以直接操作eeprom了,我给你一个kinetis K系列EEPROM的例子,S32K应该也是差不多的,希望能帮到你。
    hello_world.rar (2.38 KB, 下载次数: 177)
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2018-11-27 09:26
  • 签到天数: 3 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    13

    主题

    46

    帖子

    3

    中级会员

    Rank: 3Rank: 3

    积分
    205
    最后登录
    2019-10-16
     楼主| 发表于 2018-8-14 16:53:37 | 显示全部楼层
    小恩GG 发表于 2018-8-14 13:49
    其实,你完全不需要把所有代码都拷贝到RAM中去做全部的擦除。
    我一般是这样做的,我用仿真器自己做个全片 ...

    抱歉,版主,可能是我没描述清楚,我的意思是我因为之前一直在FLASH上配置EEPROM没成功,后来在RAM运行代码的过程中也没有实现(IAR不知道设置能怎么把部分代码在RAM中运行),后来就索性做了一版全部代码在RAM上运行,因为我拿到的例程里有一个_flash.icf和一个_ram.icf,我直接选择RAM链接就行了。
    我最终的软件肯定是要再FLASH上运行的,而且批量生产的时候也不可能一片一片地去用工具ERASEALL。那我应该是把代码下载到flash后,再调用eraseall,然后再flashpartition,去实现EEPROM的配置。那我就有两个疑点,第一,我的代码下载到flash后,我能否执行eraseall,如果能,该怎么执行?第二,我执行eraseall后,整个内存空间包括flash,flexnvm等是否已经全部被擦除?如果被擦除,那我的code是不是已经没有了?
    是不是我的实现思路不对?请教版主,如果我不用外部工具,要在发布版本的软件上实现EEPROM,应该是个怎么的思路?谢谢
    CAN唤醒还是没整好
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2018-11-27 09:26
  • 签到天数: 3 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    13

    主题

    46

    帖子

    3

    中级会员

    Rank: 3Rank: 3

    积分
    205
    最后登录
    2019-10-16
     楼主| 发表于 2018-8-14 16:55:07 | 显示全部楼层
    小恩GG 发表于 2018-8-14 13:49
    其实,你完全不需要把所有代码都拷贝到RAM中去做全部的擦除。
    我一般是这样做的,我用仿真器自己做个全片 ...

    抱歉,版主,可能是我没描述清楚,我的意思是我因为之前一直在FLASH上配置EEPROM没成功,后来在RAM运行代码的过程中也没有实现(IAR不知道设置能怎么把部分代码在RAM中运行),后来就索性做了一版全部代码在RAM上运行,因为我拿到的例程里有一个_flash.icf和一个_ram.icf,我直接选择RAM链接就行了。
    我最终的软件肯定是要再FLASH上运行的,而且批量生产的时候也不可能一片一片地去用工具ERASEALL。那我应该是把代码下载到flash后,再调用eraseall,然后再flashpartition,去实现EEPROM的配置。那我就有两个疑点,第一,我的代码下载到flash后,我能否执行eraseall,如果能,该怎么执行?第二,我执行eraseall后,整个内存空间包括flash,flexnvm等是否已经全部被擦除?如果被擦除,那我的code是不是已经没有了?
    是不是我的实现思路不对?请教版主,如果我不用外部工具,要在发布版本的软件上实现EEPROM,应该是个怎么的思路?谢谢
    CAN唤醒还是没整好
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    712

    主题

    6371

    帖子

    0

    超级版主

    Rank: 8Rank: 8

    积分
    24890
    最后登录
    2025-7-21
    发表于 2018-8-14 17:01:19 | 显示全部楼层
    zchunhua25 发表于 2018-8-14 16:55
    抱歉,版主,可能是我没描述清楚,我的意思是我因为之前一直在FLASH上配置EEPROM没成功,后来在RAM运行代 ...

    1.如果要在flash里面erase all, 那么你还真要把代码都拷贝到RAM中。
    我不知道你为什么一定要下载到flash之后再做erase all,完全可以下载之前用debugger直接做erase all的。
    然后代码中直接做partition, 然后操作eeprom 就可以了。
    2. 执行erase all会擦掉所有flash,包括flexnvm,还有partition的值。
    不用外部工具,你怎么烧录代码呢?bootloader吗? bootloader也带erase功能的。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    712

    主题

    6371

    帖子

    0

    超级版主

    Rank: 8Rank: 8

    积分
    24890
    最后登录
    2025-7-21
    发表于 2018-8-14 17:01:23 | 显示全部楼层
    zchunhua25 发表于 2018-8-14 16:55
    抱歉,版主,可能是我没描述清楚,我的意思是我因为之前一直在FLASH上配置EEPROM没成功,后来在RAM运行代 ...

    1.如果要在flash里面erase all, 那么你还真要把代码都拷贝到RAM中。
    我不知道你为什么一定要下载到flash之后再做erase all,完全可以下载之前用debugger直接做erase all的。
    然后代码中直接做partition, 然后操作eeprom 就可以了。
    2. 执行erase all会擦掉所有flash,包括flexnvm,还有partition的值。
    不用外部工具,你怎么烧录代码呢?bootloader吗? bootloader也带erase功能的。
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-7-21 18:51 , Processed in 0.108569 second(s), 31 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表