【经验】以汽车级32bit MCU RH850为例说明如何配置自编程库FCL实现bootloader
Bootloader又称引导加载程序,它是系统加电后运行的第一段软件代码,可以实现用户程序的引导启动和固件自更新两个功能。其中固件自更新需要向芯片提供额外的数据传输介质使得芯片能将接收到的机器代码写入自身的Flash中。一般写flash都是通过仿真器或专用的编程器,而当产品完成交付使用过程中,通过仿真器或编程器进行程序重新刷写是不现实的事情,所以,通过通信接口进行用户程序的维护和功能升级则被广泛的应用于现在的电子产品单元中,汽车电子也不例外。
由于汽车电子所采用的是CAN通讯,所以后期应用程序的维护和升级通过CAN接口来实现,那么MCU如何通过CAN来实现更新呢?以瑞萨电子汽车级32bit MCU RH850为例,提供一个FCL库用于bootlaoder中对flash擦除,编程和校验等操作,采用CAN 总线作为Bootloader的通信介质,基于CAN 总线的Bootloader需要在CAN 协议的基础上完成数据传输和命令执行的协议,就可以实现产品的功能升级。
FCL如何嵌入并应用到程序中呢?以下我们就来了解下基于瑞萨电子的集成环境CS+如何加载配置FCL库以实现bootloader。
首先选择FCL的工作模式,如下:
R_FCL_COMMAND_EXECUTION_MODE
R_FCL_HANDLER_CALL_INTERNAL (internal mode) :internal模式不需要轮询库的状态,在自编程命令执行期间没有状态值的返回,直到命令执行结束。消耗RAM空间小。
R_FCL_HANDLER_CALL_USER (user mode): user模式,用户代码运行在RAM区,在自编程命令执行期间,可以运行用户代码,用户可以轮询库的运行状态。需要消耗一定的RAM空间。
用户可以根据实际应用,定义库支持的功能,以减少库的代码量。
其次,配置FCL库基础的参数,以保证与用户硬件一致,如下:
图一,FCL参数配置
FCL_CPU_FREQUENCY_MHZ:CPU工作频率配置,请不要在库的运行期间改变CPU的工作频率,如果需要改变,改完后必须重新初始化FCL库。
FCL_AUTHENTICATION_ID:如果设备设置了ID验证码,需要提供相应的ID码,在FCL初始阶段需要验证ID,如果ID验证不通过,不能成功执行FCL命令。
FCL_RAM_ADDRESS:根据相应的设备配置RAM起始。
然后,在编译环境的section中进行FCL的段配置,如下:
图二,FCL段设置
如上图,
1. FCL库的代码段请按照如图样例设置。在这些代码段中请不要插入其他段。
2. FCL_RESERVED.bss段: 在RAM中存放FCL库运行的代码,即复制上面代码段的内容到此RAM中。如果定义了R_FCL_HANDLER_CALL_USER,则用户代码R_FCL_CODE_USER.text也此RAM中运行。
在实际应用中定义FCL_RESERVED预留的大小,大小必须包含该库代码量和用户代码量(如果定义了R_FCL_HANDLER_CALL_USER )。
/* This array reserves the copy area in the device RAM */
#define FCL_RAM_EXECUTION_AREA_SIZE 0x8000
R_FCL_NOINIT uint8_t FCL_Copy_area[FCL_RAM_EXECUTION_AREA_SIZE];
3. R_FCL_DATA.bss:FCL内部运行数据段。
如此以上,编译后即可使用FCL库进行bootloader的底层操作。
最后,友情提示:
在CS+环境下,FCL编译后会出现3个对齐失配警告,请忽略。
W0561322:Section alignment mismatch : "R_FCL_CODE_USR.text"
W0561322:Section alignment mismatch : "R_FCL_CODE_RAM.text"
W0561322:Section alignment mismatch : "R_FCL_CODE_ROMRAM.text
- |
- +1 赞 0
- 收藏
- 评论 5
本文由落叶萧萧提供,版权归世强硬创平台所有,非经授权,任何媒体、网站或个人不得转载,授权转载时须注明“来源:世强硬创平台”。
相关推荐
【经验】RH850系列32位MCU的CSIH和CSIG接口功能区别详解
瑞萨RH850系列作为在汽车业界首屈一指的32位MCU,在汽车行业应用广泛,从涉及到安全的发动机的电喷,EPS等到仪表,车载娱乐系统都有RH850系列MCU的身影。该系列采用最新的40nm工艺,功能安全方面符合ASIL-B,ASIL-C,ASIL-D等级。笔者最近碰到使用CSI接口的客户咨询RH850\F1L的CSIG和CSIH接口的区别,二者均是CSI接口。
设计经验 发布时间 : 2018-06-15
【经验】以RH850/F1KM为例解析使用E2进行仿真调试编程的电路连接应用
Renesas E2是瑞萨新一代推出的用于支持MCU的片上调试仿真器和闪存编程器,是上一代瑞萨E1高度器的升级版调试器。本文以瑞萨电子32bit汽车级MCU RH850/F1KM为例,描述使用E2进行仿真调试编程的电路连接应用。
设计经验 发布时间 : 2021-10-13
【经验】浅析Renesas32位MCU RH850F1L FLASH擦除掉电保护问题
Renesas推出的RH850系列32位MCU在广泛且可扩展的产品范围内提供平衡的高性能和极低的功耗,该系列提供了新的和高级汽车应用所需的丰富功能安全和嵌入式安全特性。本文浅析Renesas32位MCU RH850F1L FLASH擦除掉电保护问题。
设计经验 发布时间 : 2022-11-17
Renesas Unveils Processor Roadmap for Next-Gen Automotive SoCs and MCUs
Renesas Electronics Corporation, a premier supplier of advanced semiconductor solutions, today laid out plans for its next-generation system on chips (SoCs) and microcontrollers (MCUs) targeting all major applications across the automotive digital domain.
厂牌及品类 发布时间 : 2023-11-10
【经验】关于瑞萨MCU RH850的option bytes配置说明
瑞萨MCU RH850比较特殊的地方,其中一点就是Option Bytes配置。Option Bytes实际上是一个扩展区域,用于保存用户上电初始化配置的参数。我们以RH850 F1L系列为例。
设计经验 发布时间 : 2022-12-17
【经验】32位车规级MCU RH850 F1L出现异常的调试及启动配置说明
Renesas RH850 F1L作为32位车规级MCU受到许多车厂及Tier1喜欢,近期有Tier1客户在使用该MCU过程中出现无法正常启动的情况,并且是切换到铜线时才出现,感觉非常奇怪,本文就该MCU启动问题排查过程做如下介绍。
设计经验 发布时间 : 2023-03-16
【经验】瑞萨RH850基于CS+Smart Configurator开发调试GPIO
本文介绍瑞萨RH850开发环境搭建,Smart Configurator生成外设配置代码。安装软件采用CS+ V8.04.00,安装步骤比较简单,有说安装软件必须安装C盘的,通过实践验证安装在D盘同样可以使用。
设计经验 发布时间 : 2021-02-18
【经验】汽车级MCU RH850使用FCL初始化不成功,别忘了预留这块空间!
以瑞萨电子汽车级MCU RH850为例,由于要实现对自身flash的改写,瑞萨电子针对bootloader提供了FCL库文件给用户,用于进行flash的擦除,编程和校验等操作,来实现bootloader功能。是否直接调用FCL就可以实现bootloader功能了?笔者遇到一个问题,搭建好了bootloader工程,添加好了库文件,点击运行,系统竟然跑飞了,怎么一回事呢?
设计经验 发布时间 : 2020-05-10
【经验】Renesas32位汽车微控制器RH850工具链流程浅谈
Renesas推出的RH850系列32位汽车微控制器(MCU)在各种可扩展的产品中提供高性能和极低的功耗。该系列提供新的和先进的汽车应用所需的丰富功能安全和嵌入式安全功能。
设计经验 发布时间 : 2023-03-16
【经验】车载MCU RH850升级过程断电后再次升级失败问题的解决方法
Renesas(瑞萨)RH850系列是基于V850产品推出的更高性能的车载MCU,涵盖了汽车应用的各个场景,并针对不同的应用场景需求推出了相应的产品系列。由于车载电子产品对安全性能的要求较高,要模拟各种运行场景进行测试,因而收到不少客户关于在线升级的反馈,即在升级过程中如果将系统断电,再次启动后将更新失败。本文将对该问题的产生原因进行解析,并提出解决方法。
设计经验 发布时间 : 2019-09-08
【经验】RH850 D1x深度睡眠模式下使用INTP作为唤醒源失效的三个原因分析
Renesas瑞萨的汽车级32bit MCU RH850也是如此,如定时器唤醒、CAN唤醒、外部中断唤醒等等,其中较为常用的是外部中断唤醒,CAN唤醒本质上也是外部中断唤醒。本文主要介绍了RH850 D1x在深度睡眠模式下,使用INTP作为唤醒源时唤醒失效的各种潜在原因。
设计经验 发布时间 : 2020-06-11
【经验】浅析Renesas RH850系列32位MCU命名规则
平时我们进行MCU选型或者公司高中低产品线都有的时候,使用的MCU型号过多,难以分清,这时候在找手册,相当没有效率,此时简单记一下比较重要的命名参数显得十分必要。本文中笔者将以Renesas推出的RH850 F系列的MCU进行简单的说明。
设计经验 发布时间 : 2023-03-15
【经验】解析瑞萨32位汽车微控制器RH850F1KM-S4 ADC采集电位器的过程
针对瑞萨(Renesas)车载RH850系列MCU进行功能模块拆分,为初学者提供最简化历程方法。本文通过插接官方历程加以笔者描述理解,将ADC采集电位器的过程进行讲解。
设计经验 发布时间 : 2022-07-20
【经验】MCU在DeepSTOP下,如果没有外部中断的唤醒,还可以通过什么来唤醒呢?
低功耗设计,是每个电子工程师在产品程序构建前所面临的一个重要问题。低功耗的指标决定了系统是否节能,电池寿命是否延长等因素。而一般MCU所具有的低功耗模式也有很多中,包括HALT,STOP等等。以瑞萨汽车级32bit MCU RH850为例,其增加了deepstop模式,可以非常大限度的降低MCU功耗至uA级。MCU在DeepSTOP下,如果没有外部中断的唤醒,还可以通过什么来唤醒呢?
设计经验 发布时间 : 2019-12-17
E2 Emulator Additional Document for User’s Manual (Setting up Interlocked Debugging of the DFP in an RH850/U2B-Series Device)
型号- RH850 FAMILY,RH850,RH850/U2B,RH850/U2B-SERIES,RH850/U2B SERIES
电子商城
现货市场
服务
可定制显示屏的尺寸0.96”~15.6”,分辨率80*160~3840*2160,TN/IPS视角,支持RGB、MCU、SPI、MIPI、LVDS、HDMI接口,配套定制玻璃、背光、FPCA/PCBA。
最小起订量: 1000 提交需求>
加工精度:精密平面磨床正负0.002;铣床正负0.02,ZNC放电正负0.01。CNC加工材料:铝、钢、聚合物等材料。专注于半导体行业、医疗器械、汽车行业、新能源行业、信息技术行业零部件加工。
最小起订量: 1个 提交需求>
查看全部1条回复
查看全部1条回复
查看全部4条回复