大部分的微控制器flash都是只支援塊擦寫,所以都需要一塊一塊的擦除和寫入,為了應用的方便,可以保證隨時隨地的改寫任意位址的任意長度資料,而不影響位址所在塊其他位置的資料,所以單獨寫乙個函式,實現也比較簡單,記錄下來方便今後直接使用,實現原理就是查詢當前位址所在塊,讀取出來改塊資訊,修改相應位置資訊後擦除原位置塊重新寫入,同時用迴圈保證資料位置跨塊或資料長度超過塊長度是的分次寫入,下面直接貼**。
void changeflashany(uint32_t addr,unsigned char *pdata, int length)
flasherase(block_addr_start);
block_len = (offset + length) > 512 ? (512 - offset) : length;
for(uint16_t i = 0;i < block_len;i++)
length = length - block_len;
pdata = pdata + block_len;
writeflash(block_addr_start,flash_data_temp,512);
block_addr_start = block_addr_start + 512;
offset = 0;
}}
程式中的擦除,寫入和讀取的**和塊大小視實際微控制器而定,我是在msp430微控制器環境下測試的,430的flash以512位元組為一塊,使用時只要傳入flash任意位置位址,修改的資料指標和資料長度就可以了。 如何提高FLASH的擦寫次數
在實際應用中,使用者經常需要在程式執行過程中儲存或讀取一些資料,這些資料在工作中經常會變化,而且掉電後也不能丟失,所以需要及時地進行儲存,儲存這些資料常用的儲存器是eeprom。hxm6002雖然本身不帶eeprom,但是它支援自程式設計技術,可以利用flash來模擬eeprom,這樣不僅簡化了設計...
python小操作 修改文件任意位置的內容
python基本文件操作 讀入文件 f open test.txt r 寫入文件 f open output.txt w 注意!如果你想讀文件,卻寫錯了關鍵字,把 r 寫成 w 並執行了程式,那麼你的文件就會變成空白的,因為你什麼都沒有寫入。修改文件裡面指定行的內容 比如你用 實現了自動生成文字和符...
任意修改的Dialog
實際開發過程中總是對彈窗樣式的要求總是比較高的,但是由於自帶的dialog總是預設載入一些屬性,所以導致顯示的效果和繪製的樣式不一致,所以需要對dialog設定一些屬性.1.在style.xml裡面新增該style my dialog parent android style theme.dialo...