STM32 Flash读写;Flash地址对应的存储内容及方式;
概念:計算機中最小的信息單位是bit,也就是一個二進制位,8個bit組成一個Byte,也就是1個字節,
1個存儲單元存放1個字節,每個存儲單元對應一個32位(bit)地址,所以重要的話說三遍:對于32bit的ARM CPU
一個32位地址指向1個字節!!! ?一個32位地址指向1個字節!!! ??一個32位地址指向1個字節!!!
我們常說的flash空間,多少多少K,指的是多少多少K byte
?
假如我們執行下面的函數操作:
?
FlashWriteWord_P(0x1082,&WordVar); /* 向0x1082、0x1083中寫入0xABCD */經過編譯,從map文件查看flash內容如下:
?
注意,前面的1080是十六進制,所以從0x1080到0x1090,共16個地址跨越,因為還有0x108A....0x108F
從這個map中,我們能發現一些問題
(1)驗證了一個32位地址存放的是1個字節。
(2)將一個16位數,也就是2個字節,存放的順序是低字節在前,高字節在后,這個跟感官上不一樣。
(3)未存放數據的閃存單元是0xFF,這個不是巧合,因為flash說到底,內部也是只有1和0兩種狀態,CPU默認都是1.
另外,一個潛規定,向Flash中寫數據,起始地址最好是偶數,否則容易出現錯誤,所以:
?
從上可以看出,數據在flash中存放順序是低在前,高在后,那么讀flash時呢,答案是,會再反轉,高在前,低在后,因為讀flash必須一次至少讀16位,不太允許讀8位,所以正好又反過來了。
在編程時,要注意給要分配要存儲的內容地址,每個數據對應地址,都是偶數,因為1個數據要占用2個地址。
?
轉載自https://blog.csdn.net/u012351051/article/details/77097559
?
?
總結
以上是生活随笔為你收集整理的STM32 Flash读写;Flash地址对应的存储内容及方式;的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 后3Q大战时代的防护选择
- 下一篇: 【保定SEO】怎么做好SEO关键词优化工