stm32f10x系列flash操作:看似簡單卻也不簡單
阿新 • • 發佈:2018-11-10
話說小編前幾天還在玩IAP,由於工作需要,小編要在flash中開闢一段儲存區來儲存幾個變數的值。當時小編就一聲冷笑,呵,我都手握官方flash操作的庫,不就是呼叫一下flash_read()和flash_write()嗎,這有什麼難的,然而。。。。現實總是殘忍的,小編花了好大一番功夫才成功在重刷程式後依然能夠讀取到flash的值,在此記錄,望各位童鞋能夠不走彎路。
首先要從flash寫入與讀取的地址出發,小編一開始可是很理想化的,我就要把資料存入0x08xxxxxx這個地址(這邊這個0x08xxxxxx小編是知道要在所下載的工程檔案大小之後的,也就是你的程式碼區不能與你想存入的地址重複
可是當小編不管是將size改成小於0x08xxxxxx還是大於它,所遇到的情況還是程式重新整理後內容不復存在。進過大量時間的搜尋,終於在網上看到了一點希望的曙光,請看以下這幅圖:
在我們選中晶片的時候,其右下角會出現art、ize兩個內容,前一個是起始寫入flash的地址,後一個是flash的大小,通過設定ize引數可以設定下載程式時flash擦除的大小。這個剛剛可以解決flash覆蓋的問題。然而小編還是沒成功,最後根據對比,終於發現這張圖左上角還有一個Erase Sector,而小編一開始的是Erase Full C,至此,所有問題終於解決,看似簡單的flash還是有很多值得回味的地方,雖然小編寫文章的時候感覺沒什麼太多的內容,但一路自己摸索過來還是花了點精力的。flash操作讓我聯想到IAP的APP程式,我們是不是可以設定Flash DownLoad的內容來直接下載APP程式呢?這個值得嘗試哦!