【经验】以汽车级32bit MCU RH850为例说明如何配置自编程库FCL实现bootloader

2020-05-20 世强
汽车级32bit MCU,RH850,Renesas 汽车级32bit MCU,RH850,Renesas 汽车级32bit MCU,RH850,Renesas 汽车级32bit MCU,RH850,Renesas

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

技术资料,数据手册,3D模型库,原理图,PCB封装文件,选型指南来源平台:世强硬创平台www.sekorm.com
现货商城,价格查询,交期查询,订货,现货采购,在线购买,样品申请渠道:世强硬创平台电子商城www.sekorm.com/supply/
概念,方案,设计,选型,BOM优化,FAE技术支持,样品,加工定制,测试,量产供应服务提供:世强硬创平台www.sekorm.com
集成电路,电子元件,电子材料,电气自动化,电机,仪器全品类供应:世强硬创平台www.sekorm.com
  • +1 赞 0
  • 收藏
  • 评论 5

本文由落叶萧萧提供,版权归世强硬创平台所有,非经授权,任何媒体、网站或个人不得转载,授权转载时须注明“来源:世强硬创平台”。

相关研发服务和供应服务

评论

   |   

提交评论

全部评论(5

  • 用户33922725 Lv2 工程师 2022-03-10
    请问一下,FCL库在RAM中运行的部分可以单独拿出来吗?就是让程序每次编译时只编译FCL库在Flash中运行的部分,在RAM中运行程序每次升级之前作为数据包接收过来放到RAM中和之前编译到Flash中的程序配合运行,可以这样吗?或者是否可以将整个FCL库拿出来,每次进行升级时,MCU再接收FCL库数据整体放到RAM中运行,期待回复,感谢!
    • Park回复: 你好,经了解FCL可以单独拿出来,可以参考以下文章介绍:【经验】以MCU RH850/F1x为例介绍如何将CODE定义到RAM中https://www.sekorm.com/news/30577020.html,可以单独把驱动编译出来保留使用。

      查看全部1条回复

  • 用户33922725 Lv2 工程师 2022-03-10
    一个项目中使用的瑞萨RH850芯片,在开发BootLoader时,因为考虑升级程序的可靠性,现在想将Flash Driver(FCL库)不固定到Flash中,想将Flash Driver(FCL库)数据包在每次升级程序之前单独传过来放到RAM中,请问一下,FCL库在RAM中运行的部分可以单独拿出来吗?就是让程序每次编译时只编译FCL库在Flash中运行的部分,在RAM中运行程序每次升级之前作为数据包接收过来放到RAM中和之前编译到Flash中的程序配合运行,可以这样吗?或者是否可以将整个FCL库拿出来,每次进行升级时,MCU再接收FCL库数据整体放到RAM中运行?
    • 用户21008489_世强回复: 先选择FCL工作模式,配置FCL库的基础参数,根据芯片型号设置RAM的起始地址,然后在section中的FCL_RESERVED.bss段为在RAM中存放FCL库运行的代码,即复制上面代码段的内容到此RAM中。如果定义了R_FCL_HANDLER_CALL_USER,则用户代码R_FCL_CODE_USER.text也在此RAM中运行。瑞萨FCL自编程库提供了很多接口函数,需要结合实际应用掉用不同接口函数。

      查看全部1条回复

  • 这一生关于你的风景 Lv3 高级工程师 2020-08-11
    请问如果RH850要BootLoader通过CAN实现软件升级,如果又要保存数据到DataFlash,FCL库和FDL库可以一起用吗 提问来源:https://www.sekorm.com/news/32243486.html
    • VincenLiu_世强回复: 可以的,你可以参考FCL,将FDL相关代码放到对应代码段,操作时会拷贝到RAM运行。

      查看全部4条回复

  • 用户33922725 Lv2. 工程师 2022-03-10
    请问一下,FCL库在RAM中运行的部分可以单独拿出来吗?就是让程序每次编译时只编译FCL库在Flash中运行的部分,在RAM中运行程序每次升级之前作为数据包接收过来放到RAM中和之前编译到Flash中的程序配合运行,可以这样吗?或者是否可以将整个FCL库拿出来,每次进行升级时,MCU再接收FCL库数据整体放到RAM中运行,期待回复,感谢!
  • 这一生关于你的风景 Lv3. 高级工程师 2020-08-11
    请问如果RH850要BootLoader通过CAN实现软件升级,如果又要保存数据到DataFlash,FCL库和FDL库可以一起用吗
没有更多评论了

相关推荐

【经验】关于瑞萨CS+编译器debug查看变量值的技巧

我们在使用瑞萨的CS+编译器开发RH850的MCU时,在调试的过程中,往往需要查看变量值的变化。这时候,我们需要将该变量添加到debug的watch1窗口当中,但是如果通过打断点的方式,将程序停在哪里,再去观察变量值,会发现变量值是不太准的。

2023-02-26 -  设计经验

【经验】瑞萨RH850基于CS+Smart Configurator开发调试GPIO

本文介绍瑞萨RH850开发环境搭建,Smart Configurator生成外设配置代码。安装软件采用CS+ V8.04.00,安装步骤比较简单,有说安装软件必须安装C盘的,通过实践验证安装在D盘同样可以使用。

2021-02-18 -  设计经验

【经验】如何解决32位汽车微控制器RH850自带的ADC采集精度不准的问题?

某日接到某客户反馈问题,其在产品上面使用RENESAS RH850系列32位汽车微控制器自带的ADC时,发现数值不是很准确,比手册数值大,波动大致0.02V,但是ADC自诊断测试数值很准。

2023-06-20 -  设计经验

【经验】RH850 MCU内置的智能加密单元ICU,保护车辆ECU系统免遭篡改或盗窃损害

瑞萨电子RH850 MCU内置的智能加密单元ICU很好的解决了这些问题,将秘钥存储在单独的存储区域中,CPU无法直接访问,需要通过专用机制来增强实际的防篡改功能,支持高端的加密操作如RSA,ECC等;可以提供防止软件操纵,连接硬件和软件,安全启动,网络节点中ECU的验证等安全服务。

2020-02-11 -  设计经验

【经验】RH850内置Dataflash中使用RFP进行擦除的操作说明

Dataflash的使用有一定的规则,首先了解下Dataflash的内部原理特性。一般来说,DataFlash的编程原理都是只能将 1 写为 0,而不能将 0 写为 1。所以在DataFlash编程之前,必须将对应的块擦除,而擦除的过程就是把所有位都写为 1 的过程,块内的所有字节变为 0xFF。本文将介绍使用Renesas的RH850系列的MCU时,使用RFP擦除整个chip的操作。

2019-08-26 -  设计经验

【经验】Renesas32位汽车微控制器RH850使用uart中断接收的方法

瑞萨RH850系列32位汽车微控制器(MCU)在各种可扩展的产品中提供高性能和极低的功耗。该系列提供新的和先进的汽车应用所需的丰富功能安全和嵌入式安全功能。RH850系列采用瑞萨电子40纳米工艺。

2023-05-28 -  设计经验

【经验】瑞萨RH850 CANFD全局接收FIFO buffer中断处理报文的方法介绍

在使用瑞萨(Renesas)RH850的CANFD进行通信时,有多种通信接收和发送的方法可以使用,本文主要介绍使用CANFD 全局接收FIFO buffer中断处理CANFD报文的方法。

2021-10-20 -  设计经验

【经验】如何在程序中修改RH850芯片的复位向量

本文介绍瑞萨RH850芯片如何修改复位向量。MCU的复位向量指的是MCU上电后,所跑的第一条指令所在的地址。车载器件需要以bootloader方式来升级程序,而bootlaoder将MCU的程序代码段分为两个代码段,甚至更多代码段。

2021-09-14 -  设计经验

【经验】瑞萨32位汽车微控制器RH850 ADC通道&ScanGroup模块设置介绍

RENESAS推出的RH850系列32位汽车微控制器(MCU)在各种可扩展的产品中提供高性能和极低的功耗。该系列提供新的和先进的汽车应用所需的丰富功能安全和嵌入式安全功能。本文中将为大家介绍改微控制器的ADC通道&ScanGroup模块设置。

2023-05-27 -  设计经验

【经验】RH850 MCU CSI使用从模式,应该这样来操作,否则无法接收

笔者在使用瑞萨RH850的MCU时,要使用SPI的从模式接收和发送,所以在设置时,将发送和接收同时使能,但无论如何,通过仿真watch寄存器配置均正常,竟然收不到数据;而如果只打开接收使能,却可以正常收到数据;这是怎么回事呢?本文具体介绍。

2020-06-27 -  设计经验

【经验】瑞萨MCU RH850系列使用DaVinci配置工具的基本操作步骤

瑞萨RH850系列可以使用GHS开发环境,那么对于DaVinci配置工具的使用方法对于许多人比较陌生,以下简要介绍一下DaVinci配置工具的使用方法。DaVinci相关软件包工具可以在瑞萨官网下载。

2022-12-01 -  设计经验

【经验】瑞萨RH850系列32位汽车微控制器缩短MCU上电初始化时间的方法

瑞萨RH850系列32位汽车微控制器(MCU)在各种可扩展的产品中提供高性能和极低的功耗。该系列提供新的和先进的汽车应用所需的丰富功能安全和嵌入式安全功能。

2023-05-08 -  设计经验

【经验】汽车级MCU RH850编程时如何设置ID码?

嵌入式程序设计时,为了保证不被破解或任意的修改,通常都采用ID加密的方式来进行单片机程序的保护。使用ID加密可以提高解密的难度,也是加密方式中最简单的一种方法。本文以瑞萨电子汽车级MCU RH850为例,介绍使用配套的开发工具E1和Renesas Flash Programming(以下简称RFP)来进行ID设置时,具体如何设置。

2019-11-20 -  设计经验

Achieving A Root of Trust With Secure Boot in Automotive RH850 and R-Car Devices

Renesas R-Car devices leverage hardware as the secure root of trust for building dependable, secure systems.

2021-12-27 -  设计经验

【经验】瑞萨32位MCU RH850 CS+环境设置的几个重要问题

本文以入门阶段遇到的问题为重点,讲解了瑞萨32位MCU RH850在CS+环境下新建一个完整的工程到顺利调试需要注意的几个设置。

2023-03-31 -  设计经验
展开更多

电子商城

查看更多

品牌:RENESAS

品类:芯片

价格:¥54.1044

现货: 0

品牌:

品类:

价格:

现货:

现货市场

查看更多

品牌:RENESAS

品类:32-BIT GENERAL MCU

价格:¥257.6400

现货:58,799

品牌:RENESAS

品类:16-BIT MCU

价格:¥5.5190

现货:910,635

品牌:RENESAS

品类:Diodes

价格:¥0.0511

现货:292,500

品牌:RENESAS

品类:MOSFET

价格:¥1.2134

现货:263,268

品牌:RENESAS

品类:MOSFET

价格:¥1.9902

现货:222,500

品牌:RENESAS

品类:MCU

价格:¥5.1500

现货:200,000

品牌:RENESAS

品类:MOSFET

价格:¥6.0884

现货:196,984

品牌:RENESAS

品类:microcontroller

价格:¥2.8532

现货:188,410

品牌:RENESAS

品类:MOSFET

价格:¥0.9533

现货:155,504

品牌:RENESAS

品类:晶体管驱动器

价格:¥12.1593

现货:141,383

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

服务

查看更多

TFT LCD液晶显示屏/模组定制

可定制显示屏的尺寸0.96”~15.6”,分辨率80*160~3840*2160,TN/IPS视角,支持RGB、MCU、SPI、MIPI、LVDS、HDMI接口,配套定制玻璃、背光、FPCA/PCBA。

最小起订量: 1000 提交需求>

高精密零件加工/五金零配件加工/CNC加工服务

加工精度:精密平面磨床正负0.002;铣床正负0.02,ZNC放电正负0.01。CNC加工材料:铝、钢、聚合物等材料。专注于半导体行业、医疗器械、汽车行业、新能源行业、信息技术行业零部件加工。

最小起订量: 1个 提交需求>

查看更多

授权代理品牌:接插件及结构件

查看更多

授权代理品牌:部件、组件及配件

查看更多

授权代理品牌:电源及模块

查看更多

授权代理品牌:电子材料

查看更多

授权代理品牌:仪器仪表及测试配组件

查看更多

授权代理品牌:电工工具及材料

查看更多

授权代理品牌:机械电子元件

查看更多

授权代理品牌:加工与定制

世强和原厂的技术专家将在一个工作日内解答,帮助您快速完成研发及采购。
我要提问

954668/400-830-1766(工作日 9:00-18:00)

service@sekorm.com

研发客服
商务客服
服务热线

联系我们

954668/400-830-1766(工作日 9:00-18:00)

service@sekorm.com

投诉与建议

E-mail:claim@sekorm.com

商务合作

E-mail:contact@sekorm.com

收藏
收藏当前页面