加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

CC2530关于flash的地址的问题讲解

发布时间:2020-12-15 17:44:50 所属栏目:百科 来源:网络整理
导读:CC2530中有好多款的型号,其中什么F128,F256,F32都是所谓的flash的大小,很多人不知道关于flash的概念,其实需要概念吗? u盘就是典型的flash(可能表达不是很准确),可以读也可以写,拔下来数据不会丢失!你的U盘是不是这样呢? 我用到的是F256,傻人就

CC2530中有好多款的型号,其中什么F128,F256,F32都是所谓的flash的大小,很多人不知道关于flash的概念,其实需要概念吗? u盘就是典型的flash(可能表达不是很准确),可以读也可以写,拔下来数据不会丢失!你的U盘是不是这样呢?

我用到的是F256,傻人就选大的。CC2530F256:8KB的SRAM,256KB的FLASH,很多人对于FLASH的读写的地址不是很明确,所以在这里说明一下:F256有256KB的FLASH。

操作FLASH的步骤:1.擦除2.写3.读

1.擦:擦要给个地址吧,256KB的地址是从0x00000H ------0x3FFFFH,具体的操作是FADDRH = ((uint32_t)address>>10) ,注意传来的地址是32位的,但是不能将大于0x3FFFF的数字传进来。

2.写:一般采用DMA的方式来进行传输,还是地址的问题

addH=((uint32_t)address)>>10;?????? //提取页面的地址

addL=((uint32_t)address)>>2;???? //低8位保证是4的倍数

分别赋值给FADDRH和FADDRL,可以了

3.读:需要进行FLASH的映射,还是地址的问题?

block?= ((uint32_t) address >>15) & 0x7;?????????????????????????? //3位表示在哪个块上

然后将该块直接映射到XDATA下通过MEMCTR寄存器来映射。

读者请自行分析为什么是这几个数字。以0x3FFFF的地址作为参数带入这些表达式,就一目了然了,不必向Z-STACK中那样处理了!!!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读