色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于IAR指定RL78程序地址空間說明

瑞薩MCU小百科 ? 來源:未知 ? 2023-06-19 15:25 ? 次閱讀
134a866a-0e72-11ee-962d-dac502259ad0.gif

介紹

基于IAR實現C文件指定地址存放&函數指定地址存放,定義變量指定地址。

開發環境:IAR for RL78 2.21

芯片R5F510NPJ

仿真器E1

主要內容

一、C文件指定地址存放&函數指定地址存放

1

首先需要根據自己需要指定存放的C文件里面程序所占大小來規劃自己的空間。

2

可根據編譯生成的map文件來定位C文件所占大小。

如何生成map文件如下圖所示:

1374d7e4-0e72-11ee-962d-dac502259ad0.jpg1384baba-0e72-11ee-962d-dac502259ad0.jpg13a52214-0e72-11ee-962d-dac502259ad0.jpg

3

通過查看map文件就可以知道我們所有C文件所占空間大小了。在MODULE SUMMARY一欄,如下圖所示:

13b906d0-0e72-11ee-962d-dac502259ad0.jpg

4

根據map文件我們知道C文件:r_cg_cgc.c文件所占大小為217Byte,修改連接文件icf如下圖所示:

13ccbf5e-0e72-11ee-962d-dac502259ad0.jpg

具體命令如下:

13ed98a0-0e72-11ee-962d-dac502259ad0.svg

左右滑動查看更多

13ed98a0-0e72-11ee-962d-dac502259ad0.svg
//默認配置
//define region ROM_near = mem:[from 0x000D8 to 0x0FFFF] - EXLUDE_ROM_REGION;
//define region ROM_far = mem:[from 0x000D8 to 0x0FFFF] | mem:[from 0x10000 to 0x1FFFF] | mem:[from 0x20000 to 0x2FFFF] | mem:[from 0x30000 to 0x3FFFF] - EXLUDE_ROM_REGION;
//define region ROM_huge = mem:[from 0x000D8 to 0x3FFFF] - EXLUDE_ROM_REGION;


//下邊默認的空間都需要更改,避開自定義開辟的空間段
define region ROM_near = mem:[from 0x000D8 to 0x07FFF] - EXLUDE_ROM_REGION;
define region ROM_far = mem:[from 0x000D8 to 0x07FFF] | mem:[from 0x10000 to 0x1FFFF] | mem:[from 0x20000 to 0x2FFFF] | mem:[from 0x30000 to 0x3FFFF] - EXLUDE_ROM_REGION;
define region ROM_huge = mem:[from 0x000D8 to 0x07FFF] | mem:[from 0x10000 to 0x3FFFF]- EXLUDE_ROM_REGION;


//定義自己開辟的空間
define region ROM1 = mem:[from 0x08000 to 0x0FFFF]; 


//在自己開辟的空間里面定義一個段
place in ROM1 { readonly section NEW_SECTION1};


//把r_cg_cgc.c文件里面的程序從0x08000開始放置
place at address mem:0x08000 { ro section .textf object r_cg_cgc.o };

注意

A、自己開辟的空間需要根據需要存放C文件所占用空間大小來定義。本文只是為了方便操作定義了一塊比較大的空間。

B、place at address mem:0x08000 { ro section .textf object r_cg_cgc.o }; 該條命令中需要根據自己代碼是否超過64K來配置,跟IAR配置有關系:

13ff2534-0e72-11ee-962d-dac502259ad0.jpg

當IAR配置如下圖所示時,需要更換命令為:

place at address mem:0x08000 { ro section .text object r_cg_cgc.o }

14260f5a-0e72-11ee-962d-dac502259ad0.jpg

5

一切配置好后,編譯就可以看到我們指定的C文件(r_cg_cgc.c里面含有兩個函數:

R_CGC_Create() test1() )

就放在了我們指定地址的地方了,如下圖所示:

1433ecb0-0e72-11ee-962d-dac502259ad0.jpg143c1868-0e72-11ee-962d-dac502259ad0.jpg

6

上文中我們在自己開辟的空間里面定義了一個段,也是用來分配自己指定函數地址的,如果函數不在同一個C文件里面可以通過如下方法

在我們需要指定的函數上邊加上如下代碼:

#pragma location = "NEW_SECTION1"  
Void fun()
{


}

NEW_SECTION1是我們自己定義的段名,可以根據自己來定義。如下圖所示:

14676f40-0e72-11ee-962d-dac502259ad0.jpg148e142e-0e72-11ee-962d-dac502259ad0.jpg

二、定義變量指定地址

定義的變量只能單獨的添加,沒有統一操作的方法,且方法很多,這里只介紹如下方法,在ICF里面更改定義的RAM,具體操作如下圖所示:

149f3434-0e72-11ee-962d-dac502259ad0.jpg

具體命令如下:

13ed98a0-0e72-11ee-962d-dac502259ad0.svg

左右滑動查看更多

13ed98a0-0e72-11ee-962d-dac502259ad0.svg
//默認RAM配置
//define region SADDR  = mem:[from 0xFFE20 to 0xFFEDF] - EXLUDE_RAM_REGION;
//define region RAM_near = mem:[from 0xFBF00 to 0xFFE1F] - EXLUDE_RAM_REGION;
//define region RAM_far = mem:[from 0xFBF00 to 0xFFE1F] - EXLUDE_RAM_REGION;
//define region RAM_huge = mem:[from 0xFBF00 to 0xFFE1F] - EXLUDE_RAM_REGION;


//避開自己開辟的空間
define region SADDR  = mem:[from 0xFFE20 to 0xFFEDF] - EXLUDE_RAM_REGION;
define region RAM_near = mem:[from 0xFBF00 to 0xFE0FF] | mem:[from 0xFFC00 to 0xFFE1F]- EXLUDE_RAM_REGION;
define region RAM_far = mem:[from 0xFBF00 to 0xFE0FF] | mem:[from 0xFFC00 to 0xFFE1F]- EXLUDE_RAM_REGION;
define region RAM_huge = mem:[from 0xFBF00 to 0xFE0FF] | mem:[from 0xFFC00 to 0xFFE1F]- EXLUDE_RAM_REGION;
//重新定義開辟RAM空間
define region RAM1 = mem:[from 0xFE100 to 0xFFBFF];
//在自己開辟的RAM定義一個段
place in RAM1 { rw section RAM_METER};

在C代碼里面添加:

#pragma location = "RAM_METER"
unsigned char bufff[100];

RAM_METER 是我們自己定義的段名,可以根據自己來定義。如下圖所示:

14cb16f8-0e72-11ee-962d-dac502259ad0.jpg14f4d90c-0e72-11ee-962d-dac502259ad0.jpg

結論

當部分函數或是整個C文件需要放在芯片特定地址時,可以按照上述方法簡單實現。

更多資料分享

您可識別下方二維碼查看:

150a33f6-0e72-11ee-962d-dac502259ad0.png1525972c-0e72-11ee-962d-dac502259ad0.png

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • mcu
    mcu
    +關注

    關注

    146

    文章

    17123

    瀏覽量

    350994
  • 瑞薩
    +關注

    關注

    35

    文章

    22308

    瀏覽量

    86240
收藏 人收藏

    評論

    相關推薦

    RL78系列MCU DMA在UART中的使用

    對于RL78系列的MCU,為了提高運行效率,減少CPU的占用,建議UART數據收發使用DMA功能。DMA(Direct Memory Access)是RL78 MCU內置的一個控制器,能在支持DMA外圍硬件的SFR和內部RAM之間不經過CPU而自動傳送數據。
    的頭像 發表于 07-17 14:24 ?627次閱讀
    <b class='flag-5'>RL78</b>系列MCU DMA在UART中的使用

    RL78/F24 CANFD參考例程

    RL78/F24新一代超低功耗汽車微控制器,非常適用于實現未來高可靠性的智能執行器和傳感器,是低端車身ECU的理想之選。作為對現有RL78/F1x MCU的創新擴展,RL78/F24可滿足未來市場
    的頭像 發表于 06-17 15:25 ?2089次閱讀
    <b class='flag-5'>RL78</b>/F24 CANFD參考例程

    RL78/G24快速原型開發板資料包大全

      RL78/G24快速原型開發板資料包大全  RL78/G24 快速原型開發板配備RL78/G24微控制器,是一種專門用于各種應用開發試產的原型開發板。它只需連接USB線即可編寫/調試程序
    發表于 06-04 16:21 ?2次下載

    RL78/G15組和RL78/G16組 瑞薩Flash示例程序01型SC版本應用說明

    電子發燒友網站提供《RL78/G15組和RL78/G16組 瑞薩Flash示例程序01型SC版本應用說明.pdf》資料免費下載
    發表于 02-19 10:36 ?0次下載
    <b class='flag-5'>RL78</b>/G15組和<b class='flag-5'>RL78</b>/G16組 瑞薩Flash示例<b class='flag-5'>程序</b>01型SC版本應用<b class='flag-5'>說明</b>

    16位單片機RL78系列Rev.1.20發布說明

    電子發燒友網站提供《16位單片機RL78系列Rev.1.20發布說明.pdf》資料免費下載
    發表于 02-19 10:15 ?0次下載
    16位單片機<b class='flag-5'>RL78</b>系列Rev.1.20發布<b class='flag-5'>說明</b>

    RL78系列 Data Flash Library Type04軟件包3.0版發布說明

    電子發燒友網站提供《RL78系列 Data Flash Library Type04軟件包3.0版發布說明.pdf》資料免費下載
    發表于 02-19 10:06 ?0次下載
    <b class='flag-5'>RL78</b>系列 Data Flash Library Type04軟件包3.0版發布<b class='flag-5'>說明</b>

    RL78的代碼生成器發布說明

    電子發燒友網站提供《RL78的代碼生成器發布說明.pdf》資料免費下載
    發表于 01-30 09:48 ?0次下載
    <b class='flag-5'>RL78</b>的代碼生成器發布<b class='flag-5'>說明</b>

    e2studio2024-01 RL78插件智能配置程序發布說明

    電子發燒友網站提供《e2studio2024-01 RL78插件智能配置程序發布說明.pdf》資料免費下載
    發表于 01-30 09:43 ?0次下載
    e2studio2024-01 <b class='flag-5'>RL78</b>插件智能配置<b class='flag-5'>程序</b>發布<b class='flag-5'>說明</b>

    RL78/G23 SMS電源監控應用說明

    電子發燒友網站提供《RL78/G23 SMS電源監控應用說明.pdf》資料免費下載
    發表于 01-29 11:12 ?0次下載
    <b class='flag-5'>RL78</b>/G23 SMS電源監控應用<b class='flag-5'>說明</b>

    RL78/G23 SMS煙霧火災探測操作應用說明

    電子發燒友網站提供《RL78/G23 SMS煙霧火災探測操作應用說明.pdf》資料免費下載
    發表于 01-29 11:10 ?1次下載
    <b class='flag-5'>RL78</b>/G23 SMS煙霧火災探測操作應用<b class='flag-5'>說明</b>

    RL78/G23 SMS移動平均線計算應用說明

    電子發燒友網站提供《RL78/G23 SMS移動平均線計算應用說明.pdf》資料免費下載
    發表于 01-29 11:08 ?0次下載
    <b class='flag-5'>RL78</b>/G23 SMS移動平均線計算應用<b class='flag-5'>說明</b>

    RL78/G23 SMS 短信按鈕長按/短按判斷應用說明

    電子發燒友網站提供《RL78/G23 SMS 短信按鈕長按/短按判斷應用說明.pdf》資料免費下載
    發表于 01-29 11:03 ?0次下載
    <b class='flag-5'>RL78</b>/G23 SMS 短信按鈕長按/短按判斷應用<b class='flag-5'>說明</b>

    RL78/G23 SMS自動控制SPI(主)通信應用說明

    電子發燒友網站提供《RL78/G23 SMS自動控制SPI(主)通信應用說明.pdf》資料免費下載
    發表于 01-29 10:37 ?0次下載
    <b class='flag-5'>RL78</b>/G23 SMS自動控制SPI(主)通信應用<b class='flag-5'>說明</b>

    用戶手冊中錯誤描述通知RL78 G23說明的更正

    電子發燒友網站提供《用戶手冊中錯誤描述通知RL78 G23說明的更正.pdf》資料免費下載
    發表于 01-14 10:48 ?0次下載
    用戶手冊中錯誤描述通知<b class='flag-5'>RL78</b> G23<b class='flag-5'>說明</b>的更正

    RL78開啟中斷嵌套方式介紹

    RL78系列的硬件中斷向量是固定地址的,不能重定向。在做Bootloader時需要特別注意。只能通過二次跳轉來實現應用的中斷。
    發表于 12-27 12:15 ?750次閱讀
    <b class='flag-5'>RL78</b>開啟中斷嵌套方式介紹
    主站蜘蛛池模板: 亚洲色图激情小说| 丰满的寡妇hd高清在线观看| 午夜爱情动作片P| 99久久蜜臀亚洲AV无码精品| 久久久精品免费免费直播| 亚洲高清视频网站| av天堂影音先锋在线| 美女拔萝卜| 乌克兰少妇大胆大BBW| 婬香婬色天天视频| 黄色天堂网站| 亚洲欧洲久久| 久久99r66热这里只有精品| 丝瓜涩涩屋黄瓜香蕉丝瓜| 丰满的大白屁股ass| 同居了嫂子在线观看| a级销魂美女| 青草伊人久久| 99在线免费视频| 年轻漂亮的妺妺中文字幕版| 亚洲欧美精品无码一区二在线| 国产中文字幕一区| 日韩人妻精品久久日| 国产极品白嫩超清在线观看| 男人日女人的b| yin荡体育课羞耻play双性| 久99re视频9在线观看| 伊人青青草| 欧美成人3d动漫专区| 做暖免费观看日本| 年轻的母亲4线在线观看完整| 啊灬啊别停灬用力啊老师| 神马电影我不卡4k手机在线观看 | 精品免费久久久久久影院| 色拍拍噜噜噜久久蜜桃| 国产九色在线| 再深点灬舒服灬太大了在线视频| 欧美无码专区| 国产专区_爽死777| 97在线视频免费播放| 忘忧草在线社区WWW日本直播|