【经验】瑞萨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
本网站所有内容禁止转载,否则追究法律责任!
相关推荐
RL78自编程升级程序操作指南
RL78/G13 系列微控制器(MCU)可以对它们内部的flash 进行编程。本文提供了以R5F100LE微控制器为参考的flash 自编程应用的概述。
【应用】如何使用e2 studio入门微处理器RZ/T2M系列产品?
本文以用户未接触过瑞萨产品为背景,介绍如何使用e2 studio,FSP及其他工具构建微控制器RZ/T2M工程。主要包括所需的开发环境介绍,如何获取、安装,新建工程、编译通过三个部分。
【经验】瑞萨仿真器E1的自检方法
E1是瑞萨推出的用于支持MCU的片上调试仿真器和闪存编程器,提供了基本的调试功能,可以满足实际的开发需求。
极海半导体(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年集成电路设计经验和嵌入式系统开发能力,为客户提供核心可靠的芯片产品,实现准确感应、安全传输和实时控制。
【技术】晶振对于汽车电子的重要性
用传感器、微处理器MPU、执行器、数十甚至上百个电子元器件及其零部件组成的电控系统,汽车电子需求的晶振防震性好,高品质晶体能保证电路的高质量运行。本文晶科鑫将为你详细介绍。
【技术】如何进行可编程逻辑模块设计简化微处理器应用
为了帮助读者理解可编程逻辑高度的灵活性,本文将介绍在一般的微控制器上可编程逻辑的应用操作,以及怎样利用可编程逻辑去开发性价比超高的应用。
Silicon Labs(芯科科技) C8051T6xx/3xx一次性可编程(OTP)USB微控制器 培训文档
描述- 本文介绍了Silicon Labs的C8051T62x/32x系列USB OTP微控制器。该系列产品旨在降低成本、简化设计并缩短开发时间,具有无晶振USB操作能力、高性能处理核心和OTP版本。文章详细比较了OTP和闪存设备的不同,包括代码存储、特殊功能寄存器、模拟考虑、电源电压、低功耗模式和时钟选项等方面的差异。此外,还介绍了C8051T62x/32x开发套件、所需的软件、开发流程以及如何将应用程序移植到OTP设备。最后,文章总结了Silicon Labs USB解决方案的优势,包括降低成本、简化设计和缩短开发时间,以及提供全面的支持和软件生态系统。
型号- C8051T61X,C8051T623-GM,C8051T604-GS,C8051T600-GM,C8051T633-GW,C8051T627-B-GM,C8051T604-GM,C8051T603-GMR,C8051T610-GQR,C8051T320,C8051T321,C8051T322,C8051T323,C8051T617-GM,C8051T600,C8051T601,C8051T326,C8051T602,C8051T327,C8051T603,C8051T632-GM,C8051T604,C8051T605,C8051T62X,C8051T606,C8051T60X,C8051T630-GW,C8051T622-GM,C8051T601-GM,C8051T326-GM,C8051T322-GM,C8051T321-GMR,C8051T605-GM,C8051T635-GMR,C8051T626-B-GM,C8051T630,C8051T631,C8051T632,C8051T633,C8051T600-GSR,C8051T634,C8051T635,C8051T634-GMR,C8051T633-GM,C8051T617-GMR,C8051T630-GM1R,C8051T631-GW,C8051T602-GM,C8051T327-GM,C8051T323-GM,C8051T633-GMR,C8051T621-GM,C8051T632-GMR,C8051T620,C8051T630-GM,C8051T621,C8051T622,C8051T623,C8051T320-GQ,C8051T32X,C8051T626,C8051T630-GM1,C8051T634-GM,C8051T627,C8051T606-GMR,C8051T630-GDI,C8051T620DK,C8051T620-GM,C8051T631-GMR,C8051T604-GSR,C8051T610,C8051T631-GM,C8051T611,C8051T612,C8051T613,C8051T614,C8051T615,C8051T63X,C8051T616,C8051T630-GMR,C8051T635-GM,C8051T617
8位混合信号单片机能够降低汽车电子设计的成本和复杂度
芯科科技提供的是C8051F58x单片机提供了高精度的振荡器,高精准的电压参考器,5V整流模块等相当多的片上外设,这些让混合信号单片机在汽车电子系统设计中的应用系统的设计难度降低了,并减少了元器件的数量和印制板的尺寸。
EFM8BB1系列8位微控制器 参考手册
描述- 该资料详细介绍了EFM8BB1系列微控制器的特性、功能和应用。EFM8BB1是一款多功能的8位微控制器,具有高效的核心、丰富的模拟和通信外设,适用于空间受限的应用。主要特点包括:25 MHz的C8051核心、多达18个多功能、5 V容错的I/O引脚、12位ADC、两个低电流模拟比较器、集成温度传感器、3通道增强型PWM/PCA、四个16位定时器、UART、SPI和SMBus/I2C。此外,资料还涵盖了系统概述、内存组织、特殊功能寄存器、闪存存储器等功能模块的详细说明。
型号- EFM8BB10F2G-QFN20,EFM8BB10F8I-A-QSOP24,EFM8BB10F2,EFM8BB10F4,EFM8BB10M1069F8GM,EFM8BB10M1069F8GM-AR,EFM8BB10F8,EFM8BB10F8G-A-QSOP24,EFM8BB10F8I-A-QFN20,EFM8BB10F2G-A-QFN20R,EFM8BB10F2G-A-QFN20,EFM8BB10F8G-A-SOIC16,EFM8BB10F8G-A-QFN20,EFM8BB10F8G-A-SOIC16R,EFM8BB10M1069F8GM-A,EFM8BB1,EFM8BB10F4G-A-QFN20R,EFM8BB10F4G-A-QFN20,EFM8BB10F2I-A-QFN20R,EFM8BB10F2G,EFM8BB10F8G-A-QFN20R,EFM8BB10F8G-A-QSOP24R,EFM8BB10F8G-QSOP24,EFM8BB10F2I-A-QFN20,EFM8BB10F8G-QFN20,EFM8BB10F8I-A-QFN20R,EFM8BB10F4G,EFM8BB10F8G
Silicon Labs 32位低功耗MCU EFM32G232F128系列微控制器GPIO的最大翻转速度为多少?
EFM32G232F128系列微控制器GPIO的最大翻转速度为系统时钟的1/6。例如,当主频为32MHz时,GPIO最大翻转速度大约为5.3MHz。
Epson(爱普生) S7C17M11 16位微控制器数据手册
描述- 该资料介绍了S7C17M11微控制器(MCU)的特性与规格。它具备内置电路以减少组件数量,节省板空间并缩短软件开发时间。产品具有高精度实时时钟、温度补偿功能,支持多种接口和传感器连接。
型号- S7C17M11
Epson(爱普生) S1C31W74 低功耗32位闪存微控制器数据手册
描述- 该资料介绍了S1C31W74微控制器(MCU)的关键特性和规格。它具备低电压、低电流操作以延长电池寿命,支持多种传感器接口,并集成了多个嵌入式电路来减少组件数量、节省板空间和缩短软件开发时间。
型号- S1C31W74
Epson(爱普生) S1C17W34/35/36 16位微控制器数据手册
描述- 该资料介绍了某款嵌入式微控制器的特点和规格。它具备高容量片上闪存,低电压低电流需求以延长电池寿命,集成了多种外设功能,支持多时间区域设置,并提供丰富的接口和I/O端口。
型号- S1C17W00,S1C17W34,S1C17W35,S1C17W36
Epson(爱普生) S1C17M33低功耗16位微控制器数据手册
描述- 本资料介绍了S1C17M33微控制器(MCU)的特性。该产品适用于LCD显示应用,具有高集成度、低功耗和广泛的电源电压范围等特点。
型号- S1C17M33
电子商城
现货市场
服务
可定制板装式压力传感器支持产品量程从5inch水柱到100 psi气压;数字输出压力传感器压力范围0.5~60inH2O,温度补偿范围-20~85ºС;模拟和数字低压传感器可以直接与微控制器通信,具备多种小型SIP和DIP封装可选择。
提交需求>
可来图定制均温板VC尺寸50*50mm~600*600 mm,厚度1mm~10mm,最薄0.3mm。当量导热系数可达10000W/M·K,散热量可达10KW, 功率密度可达50W/cm²。项目单次采购额需满足1万元以上,或年需求5万元以上。
提交需求>
登录 | 立即注册
提交评论