【经验】瑞萨RL78系列MCU的“near” 和 ”far”用法解析
目前AUTOSAR汽车开放系统架构已在渐渐的推广中,但仍不可避免的会碰到一些技术上的问题。近日碰到客户借用AUTOSAR第三方公司的代码给瑞萨RL78系列MCU R5F10BBF写bootloader例程,应用在摄像头控制中。由于BOOT区域代码需要占用较大空间,因此客户应用代码需要被安排到 FLASH 的far区域(>FFFFH地址)。
对于代码被安排到far区域,造成的直接影响是原先定义为near区域的数据或者函数无法正确被寻址到。
我们可以看到在瑞萨CS+ FOR CACX编译器中near和far的空间定义如下:
图1: near/far空间定义
从以上可知,near区域表示0xffffh以内的区域,当编译器在默认条件下,我们定义的变量和函数是默认被安排在near格式寻址区域,当强行将缺省const变量安排在far区域,会导致编译出错,此时可以通过以下两种办法将变量安排到far区域:
1.方法一:在该const定义变量前加上__far修饰符,以将变量定义成far区域的变量,变量将存放在CNSTL段区,此时编译器不会报错。
2.方法二:通过如下图编译器设定,打开build tool>compile option>data control,将ROM data设置成far area存储。
图2:瑞萨编译器设置
处理了变量定义的问题,函数部分应注意哪些?
1.我们在near区域,函数的地址寻址是16bit就可以满足,但当延伸到far区域时,函数的地址寻址将扩展到20bit,因此一些嵌入的跳转指令需要修改:如br !addr和call !addr应该改成br !!addr和call !!addr。
2.还需要注意中断函数:interrupt functions 被指定范围于 C0H 到0FFFFH,因此在需要中断映射的时候,如果中断函数需要写在far地址区域,需要将中断函数改为普通函数去跳转。
此外,若定义与extern调用的时候,near和far的格式不对,也会导致调用变量或者函数失败。但far可以包含near,near无法包含far。
如下
int __near i1 ;
int __far i2 ;
extern int __far i1 ;
extern int __near i2 ;
则在main中调用时会产生如下结果:
void main ( void ) {
i1 = 1 ; /* OK */
i2 = 1 ; /* Error */
}
如上,我们在代码设计中应尽量避开far区域,以节省指令的执行时间,但当代码迫不得已需要写到far区域的时候,需要注意书写的格式,以免程序编译或者运行无效。
世强元件电商版权所有,转载请注明来源和链接。
- |
- +1 赞 0
- 收藏
- 评论 0
本网站所有内容禁止转载,否则追究法律责任!
相关推荐
【经验】瑞萨CS+软件工具开发RL78 MCU入门教程
使用瑞萨单片机RL78编程时,编译器CS+自带启动文件,启动文件中定义了堆栈首地址,errno,调用硬件初始化,清除RAM等。
设计经验 发布时间 : 2017-08-20
RL78自编程升级程序操作指南
RL78/G13 系列微控制器(MCU)可以对它们内部的flash 进行编程。本文提供了以R5F100LE微控制器为参考的flash 自编程应用的概述。
设计经验 发布时间 : 2016-07-18
【经验】瑞萨仿真器E1的自检方法
E1是瑞萨推出的用于支持MCU的片上调试仿真器和闪存编程器,提供了基本的调试功能,可以满足实际的开发需求。
设计经验 发布时间 : 2017-08-18
极海半导体(Geehy Semiconductor)汽车电子芯片 选型指南
描述- 极海汽车电子芯片产品布局通用微控制器/微处理器、传感器、接口、驱动等多条产品线,战略聚焦车身控制、信息娱乐系统、BMS电池管理系统及域控等领域,提供符合ISO 26262功能安全标准、安全可靠、质量稳定的芯片产品与应用方案,并为客户提供丰富的开发生态与本地化技术支持。通过优质的服务和多元化的产品组合,满足汽车电子行业日益增长的应用需求,协助客户实现快速量产,助力国产汽车产业向上发展。
型号- G32A1445UAT0MLL,G32A1465UAT0MLL,G32A1445UAT0MLH,G32A1465UAT0MLH,APM32F103RCT7,APM32A407VGT7,APM32A407,APM32A103,APM32A103CBT7,APM32F003F6U7,GURC01,APM32A407ZGT7,APM32A103系列,APM32A091RCT7,APM32A091,APM32,APM32F072RBT7,APM32A091系列,APM32A407系列,G32A1445系列,APM32A103RET7,APM32A103VET7,APM32F072CBT7,G32A1445,G32A
极海半导体加入深圳市汽车电子行业协会,共同推动国产汽车电子产业持续健康向上发展
热烈祝贺珠海极海半导体有限公司加入深圳市汽车电子行业协会,成为深圳市汽车电子行业协会的副会长单位!珠海极海半导体有限公司,是一家致力于开发工业级/车规级微控制器、模拟与混合信号IC及系统级芯片的集成电路设计型企业。极海团队拥有20年集成电路设计经验和嵌入式系统开发能力,为客户提供核心可靠的芯片产品,实现准确感应、安全传输和实时控制。
原厂动态 发布时间 : 2024-02-09
Renesas(瑞萨电子)——全球领先的微控制器供应商、模拟功率器件和SoC产品领导者
瑞萨电子(RENESAS)是全球十大半导体芯片供应商之一,也是高级半导体解决方案的首选供应商。自2010年,瑞萨科技与NEC电子公司合并以后,瑞萨电子开始正式运营。产品包括微控制器、SoC解决方案和广泛的模拟及电源器件。其业务覆盖了面向各种应用的研究、开发、设计和生产。瑞萨电子先后收购Intersil,IDT,dialog等品牌,进一步巩固了其作为先进嵌入式系统全球领先供应商的地位。
品牌简介 发布时间 : 2017-07-22
Renesas(瑞萨)电机控制微控制器(MCU)选型指南
目录- 电机MCU路线图 电机驱动推荐微控制器 16位RL78电机控制MCU RX-T电机控制MCU RA-T电机控制MCU RA-T系列主要特性 RISC-V电机专用MCU 电机控制解决方案
型号- RX200,RX6XT,RX23T,RX71M,RX2XT,RA6T3 GROUP,RISC-V-MC,RA-T,RA-T系列,RX600,RX6XX,RX63T,RX66T,RA4T1,RA6T2,RX66N,RA6T1,RX26T,RA8T2,RA6T3,RA8T1,RX62G,RA4T1 GROUP,RX-T,RA,MCK-XXXXX,RL78/G14,RA6T1 GROUP,RL78,RX74T,RX62T,RX65X,RX13T,RX7XT,RX,RX100,RISC-V,RL78/G1F,RL78/G1G,RX1XT,RL78/G24,RX7XX,RA6T2 GROUP,RX24T,RX72M,RX24U,RX72N,RA2,RA4,RXV2,RXV3,RA6,RXV1,RA8,RA-T 系列,RX23X,RX72T
瑞萨RL78/G23组微控制器获得嵌入式微处理器基准评测协会 ULPMark™-PP世界最高分!
ULPMark-PP(ULPMark-PeripheralProfile)是一项评估微控制器内置外围功能电路能效的基准测试。经认证,瑞萨RL78/G23组已在该测试中取得新的世界最高分,击败了同属RL78系列的RL78/I1D组(截至2022年6月)。
原厂动态 发布时间 : 2022-08-12
【经验】瑞萨RL78微控制器CAN模块基础使用指引,以RL78/F13系列的R5F10BBF微控制器为例
瑞萨汽车电子推出的RL78/F13微控制器系列,集成车载CAN总线模块,支持ISO11898-1 ,CAN2.0A&B协议。适用于汽车控制系列,如BCM,空调控制,TPMS,RKE,PEPS等运用。 本文以R5F10BBF为例,介绍瑞萨RL78芯片的CAN模块基本配置。
设计经验 发布时间 : 2018-11-02
【选型】NXP(恩智浦)汽车微控制器(MCU)/微处理器(MPU)选型指南
描述- NXP(恩智浦半导体)秉持“智慧生活,安全连结”这一理念,助推各种智能解决方案,使我们的生活变得更加轻松、优质和安全。恩智浦是嵌入式应用安全连接解决方案的世界领导者,它正在推动汽车、工业和物联网、移动和通信基础设施市场的创新。
型号- MPC5777C,MPC5745R,S12VRP,MPC5777M,S12ZVFP,MPC5741P,KEAZN8,S12ZVML,MPC5746G,MPC5746R,S12ZVMB,S12ZVMA,MPC5774K,KEAZ128,S12ZVMC,S12ZVHY,S12ZVL,S12ZVM,S32K148,S12ZVH,S32K146,MPC5742P,S32K144,MPC5747C,S32K142,S32R372,S12ZVC,MPC5775E,MPC5775B,MPC5747G,S12ZVLA,MPC5743P,MPC5775K,S32K118,S32K116,KEAZN32,MPC5743R,S12VR,S12ZVHL,S12ZVLS,MPC5748C,S12ZVCA,MPC5748G,MPC5744P,KEAZN16,KEAZN64,KEAZ64,S32V234,S32R274
【选型】主频120MHz,支持功能安全,瑞萨微控制器R7F7016923AFP-C已在汽车电子换挡器产品中量产使用
瑞萨R7F7016953AFP-C属于车规级RH850_F1KM_S1系列,其具有120MHz的主频,LQFP48封装,-40℃~105℃,512KB的CodeFlash,32KB的RAM,1路CANFD(CAN)接口,两路IIC接口。在功能安全方面,R7F7016953AFP-C支持MCAL,支持电子换挡器要求的功能安全ASIL-B等级,非常适合电子换挡器的应用。
器件选型 发布时间 : 2022-02-15
【经验】RL78系列MCU如何在boot中使用自编程库函数
瑞萨电子新一代微控制器RL78系列是继承了NEC 78K和R8C系列的优点开发出来的低功耗高性能产品,其集成了两个boot区域,对于客户产品的升级非常方便。
设计经验 发布时间 : 2017-08-10
【技术】瑞萨编译器调用#Pragram语句的常用小技巧
瑞萨MCU可以通过瑞萨编译器CS+和E1下载器搭配使用进行调试,#Pragram语句可以用来打开内置定义的开关和定义中断函数。
设计经验 发布时间 : 2017-08-27
【经验】RL78系列MCU在CS+下怎样设置栈的大小?
Renesas RL78系列设置栈默认是从高地址到低地址,堆是默认从低地址到高地址。
设计经验 发布时间 : 2017-09-19
电子商城
现货市场
服务
可定制板装式压力传感器支持产品量程从5inch水柱到100 psi气压;数字输出压力传感器压力范围0.5~60inH2O,温度补偿范围-20~85ºС;模拟和数字低压传感器可以直接与微控制器通信,具备多种小型SIP和DIP封装可选择。
提交需求>
定制水冷板尺寸30*30mm~1000*1000 mm,厚度1mm~50mm,散热能力最高50KW,承压可达3MPA;液冷机箱散热能力达500W~100KW。项目单次采购额需满足1万元以上,或年需求5万元以上。
提交需求>
登录 | 立即注册
提交评论