chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

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

瑞薩MCU小百科 ? 來源:未知 ? 2023-06-19 15:25 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

134a866a-0e72-11ee-962d-dac502259ad0.gif

介紹

基于IAR實(shí)現(xiàn)C文件指定地址存放&函數(shù)指定地址存放,定義變量指定地址。

開發(fā)環(huán)境:IAR for RL78 2.21

芯片:R5F510NPJ

仿真器E1

主要內(nèi)容

一、C文件指定地址存放&函數(shù)指定地址存放

1

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

2

可根據(jù)編譯生成的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

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

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

具體命令如下:

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

左右滑動(dòng)查看更多

13ed98a0-0e72-11ee-962d-dac502259ad0.svg
//默認(rèn)配置
//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;


//下邊默認(rèn)的空間都需要更改,避開自定義開辟的空間段
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]; 


//在自己開辟的空間里面定義一個(gè)段
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、自己開辟的空間需要根據(jù)需要存放C文件所占用空間大小來定義。本文只是為了方便操作定義了一塊比較大的空間。

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

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

當(dāng)IAR配置如下圖所示時(shí),需要更換命令為:

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里面含有兩個(gè)函數(shù):

R_CGC_Create() test1() )

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

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

6

上文中我們?cè)谧约洪_辟的空間里面定義了一個(gè)段,也是用來分配自己指定函數(shù)地址的,如果函數(shù)不在同一個(gè)C文件里面可以通過如下方法

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

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


}

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

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

二、定義變量指定地址

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

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

具體命令如下:

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

左右滑動(dòng)查看更多

13ed98a0-0e72-11ee-962d-dac502259ad0.svg
//默認(rèn)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定義一個(gè)段
place in RAM1 { rw section RAM_METER};

在C代碼里面添加:

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

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

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

結(jié)論

當(dāng)部分函數(shù)或是整個(gè)C文件需要放在芯片特定地址時(shí),可以按照上述方法簡(jiǎn)單實(shí)現(xiàn)。

更多資料分享

您可識(shí)別下方二維碼查看:

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

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • mcu
    mcu
    +關(guān)注

    關(guān)注

    146

    文章

    17984

    瀏覽量

    366998
  • 瑞薩
    +關(guān)注

    關(guān)注

    36

    文章

    22386

    瀏覽量

    88051
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    瑞薩電子RA4L1的表計(jì)應(yīng)用解析(下)

    RA4L1就是電表分離架構(gòu)中的主控MCU。RL78/I1C和RA2A2就是電表集成架構(gòu)中的SoC。
    的頭像 發(fā)表于 05-13 10:50 ?1741次閱讀
    瑞薩電子RA4L1的表計(jì)應(yīng)用解析(下)

    如何在VS Code中使用瑞薩RL78系列MCU

    RL78家族系列MCU,以其業(yè)界領(lǐng)先的低功耗和各種內(nèi)置的高性能外圍功能,極大地提高了電源效率,降低了BOM成本,實(shí)現(xiàn)了設(shè)備的小型化。
    的頭像 發(fā)表于 04-23 13:49 ?2702次閱讀
    如何在VS Code中使用瑞薩<b class='flag-5'>RL78</b>系列MCU

    開發(fā)5744的Bootloader時(shí),為flashdriver在ram中指定了一塊的空間

    你好,我在開發(fā)5744的Bootloader時(shí),為flashdriver在ram中指定了一塊的空間,我想要將flashdriver放在這塊地址中,使用鏈接文件將函數(shù)地址
    發(fā)表于 04-02 07:07

    通過Boot swap實(shí)現(xiàn)瑞薩RL78/F24 MCU固件升級(jí)

    本文主要說明如何使用已有的程序更新flash中的固件。使用這種方法代碼閃存分為兩個(gè)區(qū)域:執(zhí)行區(qū)域和臨時(shí)區(qū)域。瑞薩flash驅(qū)動(dòng)程序RL78 RFD Type02用于對(duì)flash進(jìn)行重新
    的頭像 發(fā)表于 02-26 09:25 ?1323次閱讀
    通過Boot swap實(shí)現(xiàn)瑞薩<b class='flag-5'>RL78</b>/F24 MCU固件升級(jí)

    數(shù)據(jù)總線和地址總線的區(qū)別

    數(shù)據(jù)總線和地址總線是計(jì)算機(jī)系統(tǒng)中至關(guān)重要的兩種總線,它們?cè)跀?shù)據(jù)傳輸和地址指定方面發(fā)揮著不同的作用。
    的頭像 發(fā)表于 09-10 11:40 ?4940次閱讀

    【GD32 MCU 入門教程】七、分散加載說明

    分散加載說明以GD32F103ZE為例,分別用Keil、IAR和Embedded Builder工具實(shí)現(xiàn):將函數(shù)放置某個(gè)地址、將常量放置某個(gè)地址、將函數(shù)放在RAM中運(yùn)行的三種效果。
    的頭像 發(fā)表于 08-27 09:19 ?1062次閱讀
    【GD32 MCU 入門教程】七、分散加載<b class='flag-5'>說明</b>

    從Renesas RL78到基于Arm的MSPM0的遷移指南

    電子發(fā)燒友網(wǎng)站提供《從Renesas RL78到基于Arm的MSPM0的遷移指南.pdf》資料免費(fèi)下載
    發(fā)表于 08-23 09:28 ?0次下載
    從Renesas <b class='flag-5'>RL78</b>到基于Arm的MSPM0的遷移指南

    瑞薩e2studio----使用EZ-CUBE3燒錄

    EZ-CUBE3(CYRCNEZCUBE03)是具有Flash存儲(chǔ)器編程功能的片上調(diào)試仿真器,可以用于調(diào)試MCU程序或?qū)?b class='flag-5'>程序燒寫到MCU的內(nèi)置Flash中。 EZ-CUBE3支持RA、RL78和RX產(chǎn)品家族MCU。
    的頭像 發(fā)表于 08-08 10:03 ?3858次閱讀
    瑞薩e2studio----使用EZ-CUBE3燒錄

    如何在RL78微控制器上使用EZ-CUBE3

    本章描述了如何使用EZ-CUBE3在RL78微控制器上進(jìn)行片上調(diào)試和Flash編程。
    的頭像 發(fā)表于 08-01 16:01 ?1549次閱讀
    如何在<b class='flag-5'>RL78</b>微控制器上使用EZ-CUBE3

    RL78/G23技術(shù)支持案例分享(下)

    在上一篇章中,我們闡述了產(chǎn)品升級(jí)主要內(nèi)容,接下來將在支持客戶過程中發(fā)現(xiàn)客戶經(jīng)常碰到的一些問題,在此分享技術(shù)支持案例供參考。
    的頭像 發(fā)表于 07-25 14:54 ?2350次閱讀
    <b class='flag-5'>RL78</b>/G23技術(shù)支持案例分享(下)

    RL78/G23技術(shù)支持案例分享(上)

    RL78/G23產(chǎn)品發(fā)布后得到很多客戶的歡迎。它是在RL78/G13上迭代升級(jí)。CPU工作時(shí)的功耗為41μA/MHz,STOP(保持4KB SRAM)時(shí)的功耗為210nA,其低功耗在業(yè)內(nèi)首屈一指。
    的頭像 發(fā)表于 07-25 14:53 ?2287次閱讀
    <b class='flag-5'>RL78</b>/G23技術(shù)支持案例分享(上)

    RL78/G23用于感應(yīng)式接近傳感應(yīng)用的主要特性

    上一篇文章講了如何利用MCU實(shí)現(xiàn)接近式磁感應(yīng)技術(shù),本篇將介紹RL78/G23用于感應(yīng)式接近傳感應(yīng)用的主要特性。
    的頭像 發(fā)表于 07-25 14:50 ?1873次閱讀
    <b class='flag-5'>RL78</b>/G23用于感應(yīng)式接近傳感應(yīng)用的主要特性

    RL78/G13 自編方案(通過UART收到的數(shù)據(jù)) CC-RL Rev.1.01

    電子發(fā)燒友網(wǎng)站提供《RL78/G13 自編方案(通過UART收到的數(shù)據(jù)) CC-RL Rev.1.01.pdf》資料免費(fèi)下載
    發(fā)表于 07-22 10:34 ?1次下載
    <b class='flag-5'>RL78</b>/G13 自編方案(通過UART收到的數(shù)據(jù)) CC-<b class='flag-5'>RL</b> Rev.1.01

    RL78/G13 自編方案(通過CSI收到的數(shù)據(jù)) CC-RL Rev.1.01

    電子發(fā)燒友網(wǎng)站提供《RL78/G13 自編方案(通過CSI收到的數(shù)據(jù)) CC-RL Rev.1.01.pdf》資料免費(fèi)下載
    發(fā)表于 07-22 10:18 ?0次下載
    <b class='flag-5'>RL78</b>/G13 自編方案(通過CSI收到的數(shù)據(jù)) CC-<b class='flag-5'>RL</b> Rev.1.01

    RL78/G13 自編方案(通過IIC收到的數(shù)據(jù)) CC-RL Rev.1.01

    電子發(fā)燒友網(wǎng)站提供《RL78/G13 自編方案(通過IIC收到的數(shù)據(jù)) CC-RL Rev.1.01.pdf》資料免費(fèi)下載
    發(fā)表于 07-22 10:17 ?1次下載
    <b class='flag-5'>RL78</b>/G13 自編方案(通過IIC收到的數(shù)據(jù)) CC-<b class='flag-5'>RL</b> Rev.1.01