91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

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

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

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

掃碼添加小助手

加入工程師交流群

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

介紹

基于IAR實現(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

左右滑動查看更多

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

B、place at address mem:0x08000 { ro section .textf object r_cg_cgc.o }; 該條命令中需要根據(jù)自己代碼是否超過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里面含有兩個函數(shù):

R_CGC_Create() test1() )

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

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

6

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

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

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


}

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

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

二、定義變量指定地址

定義的變量只能單獨的添加,沒有統(tǒng)一操作的方法,且方法很多,這里只介紹如下方法,在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 是我們自己定義的段名,可以根據(jù)自己來定義。如下圖所示:

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

結(jié)論

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

更多資料分享

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

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

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

    關注

    147

    文章

    18934

    瀏覽量

    398501
  • 瑞薩
    +關注

    關注

    37

    文章

    22482

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    深入解析RL78/G1G單片機:特性、規(guī)格與應用考量

    深入解析RL78/G1G單片機:特性、規(guī)格與應用考量 在電子設備不斷發(fā)展的今天,單片機作為核心控制元件,其性能和特性對于產(chǎn)品的成功至關重要。Renesas的RL78/G1G單片機以其獨特的設計和豐
    的頭像 發(fā)表于 02-26 17:20 ?490次閱讀

    RL78/I1A微控制器:低功耗與高性能的完美結(jié)合

    RL78/I1A微控制器:低功耗與高性能的完美結(jié)合 在當今的電子設計領域,微控制器的性能和功耗往往是工程師們關注的焦點。Renesas的RL78/I1A微控制器憑借其卓越的低功耗特性和豐富的功能
    的頭像 發(fā)表于 02-25 15:10 ?126次閱讀

    RL78/I1D微控制器:低功耗設計的理想之選

    RL78/I1D微控制器:低功耗設計的理想之選 在電子設備追求低功耗、高性能的今天,Renesas RL78/I1D微控制器以其卓越的特性脫穎而出。作為一名電子工程師,我在實際項目中對這款微控制器有
    的頭像 發(fā)表于 02-25 15:10 ?177次閱讀

    RL78/G12微控制器深度解析:特性、電氣規(guī)格與應用考量

    RL78/G12微控制器深度解析:特性、電氣規(guī)格與應用考量 在電子設計領域,選擇一款合適的微控制器對于產(chǎn)品的性能和穩(wěn)定性至關重要。Renesas的RL78/G12微控制器憑借其低功耗、高性能等特點
    的頭像 發(fā)表于 02-04 16:05 ?233次閱讀

    瑞薩RL78/F22 MCU基于IAR開發(fā)環(huán)境創(chuàng)建觸摸應用樣例工程

    驅(qū)動程序 –使用QE for Capacitive Touch開發(fā)觸摸應用 –添加應用代碼實現(xiàn)LED閃爍 1 概述 本文包含以下主要內(nèi)容: 瑞薩RL78/F22 Target Board簡介 基于IAR
    的頭像 發(fā)表于 01-19 09:33 ?5500次閱讀
    瑞薩<b class='flag-5'>RL78</b>/F22 MCU基于<b class='flag-5'>IAR</b>開發(fā)環(huán)境創(chuàng)建觸摸應用樣例工程

    瑞薩RL78/F22 MCU基于e2studio開發(fā)環(huán)境創(chuàng)建觸摸應用樣例工程

    瑞薩RL78/F22 MCU基于e2studio開發(fā)環(huán)境創(chuàng)建觸摸應用樣例工程
    的頭像 發(fā)表于 01-14 15:31 ?6080次閱讀
    瑞薩<b class='flag-5'>RL78</b>/F22 MCU基于e2studio開發(fā)環(huán)境創(chuàng)建觸摸應用樣例工程

    瑞薩RL78/F25 MCU基于IAR開發(fā)環(huán)境創(chuàng)建觸摸應用樣例工程

    瑞薩RL78/F25 MCU基于IAR開發(fā)環(huán)境創(chuàng)建觸摸應用樣例工程
    的頭像 發(fā)表于 01-05 14:59 ?6973次閱讀
    瑞薩<b class='flag-5'>RL78</b>/F25 MCU基于<b class='flag-5'>IAR</b>開發(fā)環(huán)境創(chuàng)建觸摸應用樣例工程

    瑞薩RL78/F25 MCU基于e2studio開發(fā)環(huán)境創(chuàng)建觸摸應用樣例工程

    打開e2studio設定workspace后在菜單欄點擊[File]新建RL78新工程。
    的頭像 發(fā)表于 01-05 14:56 ?1w次閱讀
    瑞薩<b class='flag-5'>RL78</b>/F25 MCU基于e2studio開發(fā)環(huán)境創(chuàng)建觸摸應用樣例工程

    RL78/G23電容式觸摸評估系統(tǒng):設計與應用全解析

    RL78/G23電容式觸摸評估系統(tǒng):設計與應用全解析 在當今的電子設計領域,電容式觸摸技術(shù)因其靈敏、便捷的操作體驗而得到廣泛應用。Renesas 的 RL78/G23 電容式觸摸評估系統(tǒng)
    的頭像 發(fā)表于 12-30 09:55 ?246次閱讀

    RL78/G22快速原型開發(fā)板:功能特性與使用指南

    RL78/G22快速原型開發(fā)板:功能特性與使用指南 在電子開發(fā)領域,擁有一款高效且功能豐富的快速原型開發(fā)板至關重要。Renesas的RL78/G22快速原型開發(fā)板
    的頭像 發(fā)表于 12-30 09:50 ?1041次閱讀

    RL78/G22電容觸摸評估系統(tǒng):設計要點與使用指南

    RL78/G22電容觸摸評估系統(tǒng):設計要點與使用指南 前言 在電子設計領域,對于微控制器和觸摸技術(shù)的應用需求日益增長。Renesas的RL78/G22電容觸摸評估系統(tǒng)為工程師們提供了一個全面且
    的頭像 發(fā)表于 12-30 09:45 ?393次閱讀

    RL78/G15 MCU:低功耗設計的理想之選

    RL78/G15 MCU:低功耗設計的理想之選 在當今電子產(chǎn)品追求低功耗、高性能的大趨勢下,Renesas的RL78/G15 MCU憑借其出色的低功耗特性和豐富的功能,成為了眾多電子工程師的關注焦點
    的頭像 發(fā)表于 12-29 15:20 ?1160次閱讀

    深入解析RL78/G22微控制器:特性、電氣參數(shù)與應用要點

    深入解析RL78/G22微控制器:特性、電氣參數(shù)與應用要點 一、引言 在當今的電子設計領域,微控制器的性能和特性對于產(chǎn)品的成功至關重要。Renesas的RL78/G22微控制器以其超低功耗、豐富
    的頭像 發(fā)表于 12-29 15:15 ?307次閱讀

    RL78/G16快原型開發(fā)板使用指南:從入門到實戰(zhàn)

    RL78/G16快原型開發(fā)板使用指南:從入門到實戰(zhàn) 引言 在嵌入式開發(fā)領域,快速原型開發(fā)板是工程師們驗證想法、加速項目進程的得力工具。Renesas的RL78/G16快原型開發(fā)板就是這樣一款功能強大
    的頭像 發(fā)表于 12-29 14:00 ?367次閱讀

    RL78/G24 快速原型開發(fā)板使用指南

    RL78/G24 快速原型開發(fā)板使用指南 在當今的電子設計領域,快速原型開發(fā)板為工程師們提供了便捷的開發(fā)途徑。Renesas 的 RL78/G24 快速原型開發(fā)板就是這樣一款優(yōu)秀的工具,本文將為大家
    的頭像 發(fā)表于 12-29 11:55 ?717次閱讀