解答:
默認情況下, MPLAB C18 假設對象不超過存儲區邊界。 要安全使用大于256 字節的對象,需要執行下列步驟:
1)必須使用 #pragma idata 或#pragma udata 偽指令將對象分配到恰當的段中:
#pragma udata buffer_scn
static char buffer[0x180];
#pragma udata
2)必須通過指針訪問對象:
char * buf_ptr = &buffer[0];
...
// examples of use
buf_ptr[5] = 10;
if (buf_ptr[275] > 127)
...
3)必須在鏈接描述文件中創建一個跨越多個存儲區的區域:
- 修改前的鏈接描述文件:
DATABANK NAME=gpr2 START=0x200 END=0x2FF
DATABANK NAME=gpr3 START=0x300 END=0x3FF
- 修改后的鏈接描述文件:
DATABANK NAME=big START=0x200 END=0x37F PROTECTED
DATABANK NAME=gpr3 START=0x380 END=0x3FF
4)必須通過在鏈接描述文件中添加SECTION偽指令,將對象所在的段(在第1步中創建)分配到新的區域(在第3 步中創建):
SECTION NAME=buffer_scn RAM=big
-
存儲器
+關注
關注
38文章
7637瀏覽量
166557 -
數據
+關注
關注
8文章
7246瀏覽量
91230
發布評論請先 登錄
相變存儲器(PCM) :新的存儲器技術創建 新的存儲器使用模式
如何在塊存儲器中寫入和讀取矩陣?
存儲器分類及各自特點有哪些

評論