Re: TBLRDH 跟 TBLRDL 讀到的是PM 的資料嗎?
|
||||
---|---|---|---|---|
版主
|
TBLPAG = page;
==>設定 Flash Program memory 的 PAGE,即 24-bit位址裡的最高8-bit address. temp.word.LW = __builtin_tblrdl(addrLo); temp.word.HW = __builtin_tblrdh(addrLo); ==> 這是用 C30所提供的內建 __builtin 功能設定剩下的 16-bit Address,並將目前 16-bit + 8-bit(Page) 共24-bit所到的 Flash 讀出 32-bit ROM Data (但這32-bit 裡的資料只有24-bit有效,最高8-bit永遠為零) return temp.Val; ==> 回傳 24-bit ROM Data
發表於: 2008/3/28 15:27
|
|||
|
TBLRDH 跟 TBLRDL 讀到的是PM 的資料嗎?
|
||||
---|---|---|---|---|
高級會員
|
抱歉 因為看datasheet 有點看不太懂
在24F BootLoader code 其中的Memory.c 檔 有個Function是 DWORD ReadLatch(WORD page, WORD addrLo) { DWORD_VAL temp; TBLPAG = page; temp.word.LW = __builtin_tblrdl(addrLo); temp.word.HW = __builtin_tblrdh(addrLo); return temp.Val; } Program Memory 的位址是24bit Program Memory 的資料也是24bit (兩個位址) TBLPAG 是放高8 bit 傳進來的 addrLo是放後面的16bit 而 __builtin_tblrdl 是去讀取指定位址的低16bit __builtin_tblrdh 是去讀取指定位址的高8bit 上面敘述是這樣沒錯嗎? 因為真的不太確定...
發表於: 2008/3/28 10:10
|
|||
|