對于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位的。
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiAzNfRHLGZkRGZkRfJ3bs92YsYTMfVmepNHL90zZlhmUyM2bWNDZ65kMMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnLyQTM1IzNwETM5IjNwkTMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
***那麼如何看Flash裡的資料了:以8Bank的code為例。
1.我們首先在Flash相關函數裡加列印資訊,列印出Flash裡每個塊的存儲位址。
列印出來的位址值如下:
這是每個存儲塊的Flag:
2.将bin檔燒錄進去,掉電上電,讓程式跑一邊,這樣資料就存到了Flash了,我們把bin檔load出來看
(1).這是7B000的資料,放MonitorSetting,Flag為0x88
(2).這是7C000處的内容,放MonitorSetting2,Flag為0x44
(3).這是7D000的資料,放TimingMode,Flag為0x22
(4)…這是7E000處的内容,放FactorySetting,Flag為0x11
******注意:在程式沒跑起來之前:bin檔裡,7B000,7C000,7D000,7E000這些位置都為空,因為程式沒有跑起來
3.之前說個,每個Bank的大小是64K(PC指針能通路的區間從0000H-FFFFH,65536/1024=64KB,是以一個Bank占64K)。 是以,一個塊占4K大小,如:7B000h到7C000h的大小就是4K,而70000h到7F000h就是一個PC指針通路的區間,64K大小(是64K個Byte),即是一個Bank的大小。