解答:
默認情況下, 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
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
相關推薦
在數字電子設備中,存儲器是至關重要的部分。它負責存儲和檢索數據,以支持各種計算和數據處理任務。在
發表于 12-05 15:46
?2487次閱讀
的SQL語句集,經編譯后存儲在數據庫中。用戶通過指定存儲過程的名字并給出參數(如果該存儲過程帶有參數)來執行它。
發表于 12-31 16:54
數據存儲器 FLASH程序存儲器 FLASH數據存儲器 片內RAM數據
發表于 11-29 09:50
為什么單片機定義的數組是存放在數據存儲器中,而不是存放在程序存儲器中,這樣斷電,那數組里面的數據
發表于 08-14 16:41
4Gb到100Gb的密度.談及循環及數據保留間的強相關性,使用N削D來獲得高寫入性能的系統經常面對一個困難即在長時間的休止狀態下如何保證足夠的數據保留。變相
發表于 05-17 09:45
。為了充分利用和發揮DDR3存儲器的優點,使用一個高效且易于使用的DDR3存儲器接口控制器是非常重要的。視屏處理應用就是
發表于 05-27 05:00
/383681#M3607我要將數據矩陣存儲在fpga而不是LUT的塊存儲器中作為內存!因為基于我編寫的代碼中的上述鏈接,它使用LUT作為內
發表于 11-07 07:30
取數據。因此,上述第二操作時機可以優先于第一操作時機。在一種可能的實現方式中,當存儲器的剩余帶寬大于第二閾值時,例如大于100M/S,此時
發表于 11-15 15:44
利用XILINX解決方案快速創建存儲器接口設計
發表于 01-08 23:05
?39次下載
USB傳感器與存儲器在數據記錄中的應用
目前市場上有很多種數據采集設備可用于在PC上記錄數據,
發表于 04-22 18:32
?500次閱讀
存儲器(Memory)是現代信息技術中用于保存信息的記憶設備。其概念很廣,有很多層次,在數字系統中,只要能保存二進制數據的都可以是存儲器;在
發表于 12-06 15:00
?1.8w次閱讀
了解如何使用Vivado存儲器接口生成器(MIG)創建UltraScale存儲器接口設計。
本視頻將向您展示如何為UltraScale器件配置MIG IP內核,包括MIG IP I / O的I / O Bank規劃。
發表于 11-22 07:13
?2888次閱讀
存儲器是現代信息技術中用于保存信息的記憶設備。其概念很廣,有很多層次,在數字系統中,只要能保存二進制數據的都可以是存儲器;在集成電路
發表于 09-18 11:02
?5389次閱讀
在刪除和重新加載塊后,可能會在用戶存儲器(裝入和工作存儲器)中產生間隔,從而減少可使用的存儲器區域。使用壓縮功能,可將現有塊在用戶存儲器中無
發表于 03-02 15:15
?1925次閱讀
半導體存儲器在數據中心中的應用是極其重要且廣泛的,它們不僅是數據中心存儲系統的核心組件,還直接關系到數據處理的效率、可靠性和安全性。以下將詳細闡述半導體
發表于 08-20 10:17
?612次閱讀
評論