天天看點

關于Flash資料儲存的一些調試心得

對于MStar的TSUM的晶片,程式都是存在Flash裡的,這裡就涉及到Flash儲存方面的了。

先介紹下存儲機關,B就是Byte的縮寫,B就是位元組;b是bit的縮寫,就是bit位。

1Byte=8bit,1KB=1024Byte,1MB=1024KB。

Flash通常寫多少M,就是指多少M個bit,比如2M的Flash大小,就是2M bit大小; Flash多少K,就是指多少K Byte的大小。

對于8位的MStar晶片來說,一個存儲機關存放一個位元組,每個存儲機關對應一個32(bit)位址,如我們把Flash裡的bin檔load出來看:

可以看到457d0h這個位址存放2C這個資料,就是一個Byte(位元組),是以000457d0h這個位址就是32位的。

關于Flash資料儲存的一些調試心得

***那麼如何看Flash裡的資料了:以8Bank的code為例。

1.我們首先在Flash相關函數裡加列印資訊,列印出Flash裡每個塊的存儲位址。

關于Flash資料儲存的一些調試心得
關于Flash資料儲存的一些調試心得
關于Flash資料儲存的一些調試心得

列印出來的位址值如下:

關于Flash資料儲存的一些調試心得
關于Flash資料儲存的一些調試心得

這是每個存儲塊的Flag:

關于Flash資料儲存的一些調試心得

2.将bin檔燒錄進去,掉電上電,讓程式跑一邊,這樣資料就存到了Flash了,我們把bin檔load出來看

(1).這是7B000的資料,放MonitorSetting,Flag為0x88

關于Flash資料儲存的一些調試心得

(2).這是7C000處的内容,放MonitorSetting2,Flag為0x44

關于Flash資料儲存的一些調試心得

(3).這是7D000的資料,放TimingMode,Flag為0x22

關于Flash資料儲存的一些調試心得

(4)…這是7E000處的内容,放FactorySetting,Flag為0x11

關于Flash資料儲存的一些調試心得

******注意:在程式沒跑起來之前:bin檔裡,7B000,7C000,7D000,7E000這些位置都為空,因為程式沒有跑起來

關于Flash資料儲存的一些調試心得
關于Flash資料儲存的一些調試心得

3.之前說個,每個Bank的大小是64K(PC指針能通路的區間從0000H-FFFFH,65536/1024=64KB,是以一個Bank占64K)。 是以,一個塊占4K大小,如:7B000h到7C000h的大小就是4K,而70000h到7F000h就是一個PC指針通路的區間,64K大小(是64K個Byte),即是一個Bank的大小。

關于Flash資料儲存的一些調試心得
關于Flash資料儲存的一些調試心得

繼續閱讀