天天看點

關于NOR_FLASH的大小在單片機程式中的應用

在單片機開發中,NOR_FLASH常用的有4M和8M的大小:

4M的FLASH在程式中可以這樣表示:Ptr < 0x220000

8M的FLASH在程式中可以這樣表示:Ptr < 0x400000(最大隻能讀到0x3fffff)

有了這個關系,在判斷NOR_FLASH好壞的方法上我們可以采用計算checksum的方式來校驗。

在程式中,我們一般把位址的指針定義為unsigned short *ptr 類型。然後通過指針不斷的往後移動可以簡引用擷取到FLASH中的每一個byte,如果此時定義成unsigned short類型,那麼用一個temp變量來接收的話,一次是可以接收到2個byte的資料,如果此時定義成unsigned long類型,同樣用temp變量來接收這時一次性可以讀到4個byte的資料,是以在處理資料方面可以采用位運算來進行處理。

以下這段程式是每1024byte擷取前16個byte的資料依次累加傳回,注意,這裡累加是以word的形式累加,1 word = 2byte,是以讀512相當于讀了1024byte

注意,這裡的單片機是16位的,其它的可能不同,不要類比,需要重新計算相應資料類型的值。

繼續閱讀