打印
[资源分享]

AC781X eflash操作示例

[复制链接]
1158|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
JasonLee27|  楼主 | 2019-8-23 11:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
借用CMSIS包,我们可以很方便的对eflash进行读写操作;
AC781X芯片的eflash在擦除写入时,是不需要将eflash驱动copy到RAM中去运行的(之前有遇到一些芯片,是不可以在flash中运行擦写flash的代码的),甚至可以擦除当前正在运行的代码块(当然了,擦完肯定就飞了)。

编程的流程也很简单,就四个步骤:
1,解锁
2,擦除块
3,写入
4,上锁
当然,擦除后也可以再进行一下擦除验证。
整个操作代码就像下面这样,要注意eflash一页是2K,按字(4字节)来写入。
    uint8_t ret;
    EFLASH_UnlockCtrl();
    ret = EFLASH_PageErase(0x08010000);     ///<erase page
    if (ret != EFLASH_STATUS_SUCCESS) return;
    ret = EFLASH_PageEraseVerify(0x08010000);   ///< verify erase state
    if (ret != EFLASH_STATUS_SUCCESS) return;
    //EFLASH_LockCtrl();      
   
    //EFLASH_UnlockCtrl();        
    ret = EFLASH_PageProgram(0x08010000, writedata, 512);   ///< 写入512字(2K byte)
    EFLASH_LockCtrl();











eflash_sample.rar (348.43 KB)

使用特权

评论回复

相关帖子

沙发
zchunhua25| | 2019-9-29 09:16 | 只看该作者
赞一个再拿走

使用特权

评论回复
板凳
TecBegger| | 2019-9-29 14:45 | 只看该作者
字节的英文是byte,字的英文是word,四字节是双字 double word。
还是说MCU上的概念不太一样呢?

使用特权

评论回复
评论
JasonLee27 2019-10-9 11:13 回复TA
这个概念是一样的,可能有时候4字节也喜欢用word表示 
地板
zlmin| | 2019-10-3 10:20 | 只看该作者
谢谢分享!

使用特权

评论回复
5
TechHolder| | 2019-10-14 09:54 | 只看该作者
TecBegger 发表于 2019-9-29 14:45
字节的英文是byte,字的英文是word,四字节是双字 double word。
还是说MCU上的概念不太一样呢? ...

字通常指的就是4个字节。

使用特权

评论回复
6
zchunhua25| | 2019-10-14 14:41 | 只看该作者
flash驱动里擦操作的单位是byte,而写(编程)操作的确实double Word,在调用的时候,要注意参数size的问题。

使用特权

评论回复
7
JasonLee27|  楼主 | 2019-10-14 14:49 | 只看该作者
zchunhua25 发表于 2019-10-14 14:41
flash驱动里擦操作的单位是byte,而写(编程)操作的确实double Word,在调用的时候,要注意参数size的问题。[ ...

对,eflash库里面对eflash的写操作以四字节为单位,编程的时候要注意。

使用特权

评论回复
8
李旭东| | 2021-2-26 09:33 | 只看该作者
楼主能不能写个关于写保护和读保护的帖子?

使用特权

评论回复
9
chenqianqian| | 2021-3-12 07:12 | 只看该作者
谢谢楼主分享

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

66

主题

415

帖子

10

粉丝