解答:
默認情況下, MPLAB C18 假設對象不超過存儲區(qū)邊界。 要安全使用大于256 字節(jié)的對象,需要執(zhí)行下列步驟:
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)必須在鏈接描述文件中創(chuàng)建一個跨越多個存儲區(qū)的區(qū)域:
- 修改前的鏈接描述文件:
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步中創(chuàng)建)分配到新的區(qū)域(在第3 步中創(chuàng)建):
SECTION NAME=buffer_scn RAM=big
-
存儲器
+關注
關注
39文章
7758瀏覽量
172268 -
數據
+關注
關注
8文章
7349瀏覽量
95054
發(fā)布評論請先 登錄
SQL存儲過程在.NET數據庫中的應用
相變存儲器(PCM) :新的存儲器技術創(chuàng)建 新的存儲器使用模式
基于DDR3存儲器的數據處理應用
如何在塊存儲器中寫入和讀取矩陣?
存儲器的編碼方法
存儲器分類及各自特點有哪些
應該如何在數據存儲器中創(chuàng)建一個大對象
評論