日韩中文在线观看-欧美性综合-伊人视频在线观看-亚洲免费在线视频观看-国产偷人视频-人妻丰满熟妇岳av无码区hd-国产一级淫片a视频免费观看-国产精品交换-国产精品1区2区3区4区-美女日批视频在线观看-欧美日韩一区二区三区自拍

【ARM】MDK如何將變量存儲到指定內存地址

1、 文檔目標

通過MDK的工程配置,將指定的變量存儲到指定的內存地址上。


2、 問題場景

在項目工程的開發過程中,對于flash要進行分區,需要規劃出一個特定的內存區域來存儲變量。


3、軟硬件環境

1)、軟件版本:MDK 5.38a

2)、電腦環境:Windows 11

3)、外設硬件:無


4、解決方法

1)、首先,需要在Options->Target中去規劃出一個內存地址(如圖4-1),在Read/write Memory Areas中的RAM1中去設置內存的起始地址和內存的大小。并且勾選上前面的default。



圖4-1


2)、然后,切換在Linker欄中。取消勾選Use Memory Layout from Target Dialog,讓μVision不根據Target和Properties對話框中提供的內存信息創建一個鏈接器分散文件。而由下面的Scatter Flies中去定義分散加載文件的內存劃分。點擊Edit...可以去編輯文件。(如圖4-2)



圖4-2


3)、在打開的分散加載文件中,去定義剛才在Target中規劃的內存地址。如圖4-3中的紅框處。將這個內存段用sdram_area字段來標識。



圖4-3


4)、然后,在源文件中,將利用宏定義去用SDRAM_AREA_ATTRIBUTES標識符去標識__attribute__((section("sdram_area")))語句。在使用的時候,就可以按照下面代碼段中的方式去使用。

#define SDRAM_AREA_ATTRIBUTES __attribute__((section("sdram_area")))


int SDRAM_AREA_ATTRIBUTES test_num = 10;

char buf[20]SDRAM_AREA_ATTRIBUTES;


5)、定義好變量后,在源文件中調用了該變量后,可以在Map文件中看到定義的變量目前存儲在指定的地址上。(如圖4-5)



圖4-5




主站蜘蛛池模板: 阿拉善右旗| 城口县| 山阳县| 临城县| 汝城县| 上栗县| 绥滨县| 辽中县| 来凤县| 阿拉善右旗| 桃园县| 天柱县| 常熟市| 灵川县| 双江| 哈尔滨市| 罗平县| 红桥区| 枞阳县| 绥宁县| 大荔县| 镇安县| 江永县| 舟曲县| 棋牌| 凤城市| 宁国市| 宜阳县| 梁山县| 林州市| 温泉县| 若尔盖县| 陕西省| 华宁县| 探索| 淮滨县| 团风县| 隆昌县| 宜兴市| 拉孜县| 岱山县|