CC254X片上flash讀寫解析

2021-07-05 14:06:34 字數 1150 閱讀 7421

如果在開發中,希望個別資料掉電不丟失,那麼有幾種方法可以考慮,一種是通過i2c或者spi匯流排外接儲存,比如e2prom或flash,如果資料不大,第二種方便的方法就是操作片上flash了,要想操作片上flash,首先要搞清楚片上flash的儲存結構以及定址方式。

例如cc2541f256這個晶元,我們查一下技術手冊,介紹片上flash儲存組織結構的部分,擷取如下:

我們可以梳理如下:

1.內部flash由page組成,每乙個頁有2048-byte;

2.最小可擦除單元為乙個page;

3.最小可寫入單元為32bit(乙個word);

4.定址位址大小為16-bit。

以上這些涵蓋了我們操作flash時必須的資訊。cc2541f256一共有256kb的片上flash空間,那麼一共有多少page?答案是256/2=128個page。在寫入flash之前,我們通常會先對要寫入的區域進行擦除操作,由於最小可擦除單元為乙個page,那麼我們只需要定義好要擦除的頁即可,例如,我們把乙個標誌位flag寫入第120個page(這裡注意核對下**的大小,不要寫到**儲存區即可,尤其是oad更要特別注意),這時可以直接呼叫hal層的hal_flash提供的操作api,halflasherase(0x78)。擦除完畢後,我們需要在相應的位址寫入flag的值,那麼如何確定位址?可以通過page進行換算,120*2048為總的byte數,最小可寫入單元大小為32-bit也就是4個byte,也就是說每個位址對應的是4個byte,所以120*2048/4=0xf000即第120頁的首位址。

BLE4 0 CC254x 修改廣播時間

一 實驗目的 1 本篇介紹如何實現任何設定廣播時間的方法 二 概述 1 限制廣播 在配置為限制廣播的模式下,可以廣播一段時間後不再廣播或廣播一段時間後間隔一段時間再重新廣播 2 普通廣播 在配置為普通廣播的模式下,會一直廣播,可以設定廣播間隔,如100 ms 廣播一次,無期限持續廣播 3 模式選擇 ...

某X公司的C C 技能複核考題答案

非標答,只通過乙個測試用例,之後再改進 include stdafx.h include include include include include include include include using namespace std typedef basic string size typ...

x32 x64平台下C C 資料型別佔位元組比較

以下資料型別在windows7 x32 sp1 和 windows10 x64下統計。windows7 x32 sp1 使用vc6 windows10 x64 下使用visual studio2019 x64版本 linux平台 ubuntu 資料型別 x32x64 linux ubuntu boo...