【经验】使用CS+对RH850F1KM-S1的FCL的配置使用以及相关的经验技巧(一)
本文介绍了RH850 FCL的使用以及相关的经验技巧,使用的环境如下:
型号:R7F7016864
IDE:CS+
在以前,汽车控制系统的升级一般采用车厂招回或者在4S店中进行完成,从而对车主带来了许多不便,所以现在大多数车厂都在后续产品开发中加入了在线升级功能,即在控制系统中加入Bootloader自编程升级代码。针对部分车厂将瑞萨电子MCU中的RH850系列作为主控系统,可使用瑞萨提供的FCL自编程库,简单方便的完成代码升级。
想使用Bootloader自编程升级首先应熟练使用FCL库,瑞萨提供了FCL的使用例程,一般是先熟悉例程,然后移植所需要的相应代码到自己的工程中。而在把例程代码移植到自己工程中非常容易出现代码的编译报错,反复检查发现没有缺少移植文件,但是代码就是报错误。因此本文就FCL库的移植做简单说明介绍。
一、R7F7016864资源介绍
既然在使用的开发板芯片是R7F7016864,那么就必须对R7F7016864的片上资源(主要是ROM和RAM)有个明确的了解,查询芯片的用户手册得到图1.
图1 产品内存介绍
也就是说R7F7016864x的ROM:1Mbytes+64Kbytes, RAM:96+32+32 Kbytes,地址范围分别如图2 所示。
图2 flash及RAM地址介绍
二、安装及添加文件到自己的工程中
首先从官网上下载安装提供的FCL库文件。
FCL库官网地址:https://www.RENESAS.cn/cn/en/document/lbr/rh850-code-flash-libraries?language=en&r=488891
RH850 FCL用户手册地址:
https://www.renesas.cn/cn/en/document/apn/rh850-code-flash-libraries?r=488891
图3 FCL库文件
解压安装后对应目录,如图4所示,选择对应的例程和库文件
图4 FCL解压后库文件
再将官方库文件和对应的例程文件添加到自己的工程中,这里
图5 FCL添加相应文件到自己工程
图6 报警告
当添加完成后,编译会报如图6的警告,主要是工程中未分配section,通过在build toolàlink optionàsection中需要添加FCL需要的分配空间,如下图7所示。
图7 FCL需要的分配空间配置
三、修改
对于我们来说,我们大致需要修改的文件只有四个,fcl_cfg.h、fcl_descriptor.h,iodefine.h文件、target.h。
1、修改fcl_cfg.h文件
图8 fcl_cfg.h文件
图9 工作模式
关于这两种工作模式区别,可以参见FCL文件第3.2和第4.1章节。简单理解:
内部模式(internal mode) :不需要轮询库的状态,在自编程命令执行期间没有状态值的返回,直到命令执行结束,消耗RAM空间小。
用户模式 (user mode):用户代码运行在RAM区,在自编程命令执行期间,可以运行用户代码,用户可以轮询库的运行状态。需要消耗一定的RAM空间。
可以根据实际应用,定义库支持的功能,减少库的代码量,根据某前辈建议使用内部模式,因此修改为图10。
图10 修改工作模式
2、修改fcl_descriptor.h文件
图11 fcl_descriptor.h文件
再选择工作模式之后,需要配置FCL库的基础参数,保证与硬件一致,如图11所示。其中:
1)FCL_CPU_FREQUENCY_MHZ:配置CPU工作频率,需要注意的是,不要在库的运行期间改变CPU的工作频率,如果需要改变,改完后必须重新初始化FCL库。
2)FCL_AUTHENTICATION_ID:如果设备设置了ID验证码,需要提供相应的ID码,在FCL初始阶段需要验证ID,如果ID验证不通过,不能成功执行FCL命令,反之不要改动。
3)FCL_RAM_ADDRESS:通过查硬件手册,配置为自己芯片的Local RAM的起始地址。具体改动如图12.
图12 修改fcl_descriptor.h文件
3、修改iodefine.h文件
当修改完上述两个文件后,再次编译,发现如图13所示错误,经查,是fcl_user.c中调用target.h中两个宏定义,宏定义中该寄存器变量未定义,其实在dr7f701684.dvf.h中定义了,只是该文件加载的是iodefine.h文件,在iodefine.h文件中未进行定义,可在iodefine.h中重新定义如图14所示。
图13 编译报错误
图14 定义寄存器变量
4、修改target.h文件
图15 target.h文件部分内容
可以看出44-51行代码段是写保护,其实已经在r_device.h中定义了,可以删除。53-74行代码段是用于时钟配置,前述时钟配置描述中已经介绍,可能会由于寄存器名字不匹配报错,需要重新配置,此处我将其删除,并在时钟配置文件r_system.c中重新配置,如图16所示;当然也可直接在当前文件中修改。
图16 时钟配置
需要注意的是,在写和/或擦除代码或数据flash时,不要选择HS IntOSC和EMCLK作为时钟源,否则可能在写和/或擦除代码或数据flash发生失败。
四、操作流程如图17所示
图17 用户模式的操作流程
五、接口函数
瑞萨FCL自编程库的主要使用的接口函数有如下:
R_FCL_Init ,初始化库的函数,必须执行
R_FCL_CopySections,初始化库时进行代码拷贝,必须执行
R_FCL_CalcFctAddr,确认代码拷贝后的地址,按需要执行
R_FCL_GetVersionString ,获取FCL库的版本号,无须执行
R_FCL_Execute,用于进行flash的擦除,编程和校验等操作的接口函数,需要执行
R_FCL_Handler,在user模式时,用来给FCL后台处理代码
R_FCL_SuspendRequest,在user模式时,用来挂起FCL库程序
R_FCL_ResumeRequest,在user模式时,用来恢复挂起的FCL库程序
R_FCL_CancelRequest,在user模式时,用来取消在执行的FCL库程序
至此,即完成了所有配置,如何使用见“使用CS+对RH850F1KM-S1的FCL的配置使用以及相关的经验技巧(二)”
- |
- +1 赞 0
- 收藏
- 评论 0
本文由软饭硬吃提供,版权归世强硬创平台所有,非经授权,任何媒体、网站或个人不得转载,授权转载时须注明“来源:世强硬创平台”。
相关研发服务和供应服务
相关推荐
【经验】分享国民技术MCU如何使用自带的Bootloader进行烧录
国民技术的MCU支持通过UART或者USB方式与芯片通讯,实现用户程序(BIN 文件)的下载功能、获取芯片信息,擦除和配置芯片整个用户区、更新密钥、配置选项字节、跳转、复位等功能。
设计经验 发布时间 : 2021-08-23
【经验】如何利用EFM8系列MCU的BootLoader实现程序烧写
Silicon labs的EFM8系列MCU在出厂的时候是带有BootLoader的,用户可以利用USB或UART口通过BootLoader实现生产时的程序烧写,从而节省了PCB上的调试接口和使用调试器,为用户带来方便。
设计经验 发布时间 : 2018-04-29
【经验】雅特力MCU软件跳转到系统Bootloader的办法
雅特力MCU的memory map里面有一块系统存储区,存着系统的bootloader,是出厂已经固化好的一段代码,如果要执行必须要通过BOOT pin来配置,在系统复位后,BOOT pin被锁存,在复位之前将BOOT0拉高,BOOT1拉低,此时系统会从系统bootloader启动。但是在实际的项目中,BOOT pin一般是不会被引出来的。本文介绍一种使用软件跳转到系统bootloader的方法。
设计经验 发布时间 : 2021-02-21
【技术】 EFM8系列MCU BootLoader之HEX2BOOT工具解析
EFM8系列MCU是Silicon Labs公司在C8051Fxxx系列基础上推出的高性能低价格8位单片机。在工业、医疗、智能家居、传感器、通讯等行业已经得到广泛运用。
技术探讨 发布时间 : 2018-02-06
芯海科技亮相AutoSEMI 2024:“模拟信号链+MCU”赋能汽车电子创新
2024年5月23日,业界瞩目的“The 2nd AutoSEMI 2024智能汽车数字芯片大会”在上海盛大举行。芯海科技汽车电子产品线总经理董鹏受邀作为特邀嘉宾,发表了《模拟信号线+MCU 赋能汽车电子创新》的主题演讲,详细阐述了公司车规级系列产品进展及未来规划。
原厂动态 发布时间 : 2024-05-26
【技术】基于 AN945对EFM8系列MCU BootLoader使用说明的分析和补充
EFM8系列MCU是Silicon Labs公司在C8051Fxxx系列基础上推出的高性能低价格8位单片机。在工业、医疗、智能家居、传感器、通讯等行业已经得到广泛运用。
技术探讨 发布时间 : 2018-02-05
AT32 MCU亮相elexcon 2023,拓展高速USB应用新纪元,丰富汽车电子智能体验
8月23日,elexcon 2023深圳国际电子展在深圳会展中心(福田)正式拉开帷幕!雅特力携AT32 MCU精彩亮相,电机控制、工业控制、消费&商务、电力&电源、智能家电及汽车电子等热门领域产品齐聚,一展雅特力科技创新风采。
原厂动态 发布时间 : 2023-09-09
【经验】8位MCU EFM8系列内部BOOTLOADER的空间分配
本文介绍Silicon Labs的8位MCUEFM8系列内部BOOTLOADER占用FLASH空间的情况,及程序中对FLASH空间地址的分配。
设计经验 发布时间 : 2021-08-17
灵动精彩亮相elexcon 2023,全方位展示新品MCU及汽车电子、医疗健康、智能工业等创新方案
8月25日,为期三天的elexcon 2023深圳国际电子展于深圳福田会展中心圆满落下帷幕。本届展会中,灵动携MM32G0001、MM32SPIN0230等新品强势亮相,全方位展示了在汽车电子、医疗健康、智能工业、智慧家电、物联网等诸多领域的创新成果,受到了现场访客的热切关注。
原厂动态 发布时间 : 2023-08-29
EFM8LB低功耗8位MCU在使用BOOTLOADER时,如何让程序进入BOOTLOADER?
EFM8LB的芯片进入BOOTLOADER有三种方法。第一种:上电后如果0X0000地址的数据为0XFF,程序会直接进入BOOTLOADER. 第二种:在上电复 位时,如果C2D引脚保持低电平超过50uS,程序会进入BOOTLOADER.第三种: 应用程序将R0赋值为0XA5,然后执行软启动,启动后程序会自动进入 BOOTLOADER。
技术问答 发布时间 : 2017-10-10
32bit低功耗单片机EFM32系列产品,怎么实现Bootloader,如何进入Bootloader程序?
查看文档an0003_efm32_uart_bootloader,将binaries文件夹里面的bootloader-tinygecko.bin文件通过J-FLASH烧录进芯片。将SWDCLK引脚接高,复位芯片后就进入了bootloader。
技术问答 发布时间 : 2017-05-05
【IC】先楫高性能运动控制MCU HPM5300系列正式发布,直击工业自动化、新能源和汽车电子三大领域痛点!
近日,上海先楫半导体正式发布全新产品系列——高性能运动控制微控制器HPM5300,以强劲的性能、灵活的编码器优势、丰富的通讯接口和更小的封装等产品特点直击工业自动化、新能源和汽车电子三大热门领域应用痛点,助力行业实现高水平运控。
新产品 发布时间 : 2023-08-17
【经验】如何快速实现EFM32系列32位MCU用户自定义BootLoader功能
Silicon Labs的32位MCU EFM32系列广泛应用于物联网、智能家居、无线抄表、智能照明、可穿戴设备等领域。EFM32系列MCU在出厂时已将UART Bootloader 固化在片上Flash中,而且Silicon Labs提供UART Bootloader参考的源程序代码。本文介绍在自定义Bootloader功能时,可以直接参考的几个函数,更加快速的实现自定义Bootloader功能
设计经验 发布时间 : 2019-02-15
Silicon Labs的8bit MCU EFM8BB20系列在自定义bootloader程序时,在应用程序中启动bootloader程序,除了利用软件复位方式,让程序跳转到bootloader程序,能否能以收到某特殊指令的方式进入bootloader程序运行?
Silicon Labs的8bit MCU EFM8BB20系列bootloader起始地址为0xFBC0,在应用程序中可以自定义启动bootloader指令,比如当串口接收到某个指令后直接跳转到0xFBC0地址运行,就可以启动bootloader。
技术问答 发布时间 : 2019-02-11
中微半导出席2023全球MCU生态发展大会,多款MCU产品开发演示,覆盖汽车电子、电机控制等领域
中微半导深耕半导体行业二十余年,长期聚焦芯片技术升级与突破,目前已具备全面的产品生态和全方位的技术能力,能够以完善的品控体系与服务体系满足多领域客户需求。本次大会,中微半导将在B11号展位同期展示多款MCU产品开发演示,向您展出中微半导近期最新研发成果,产品覆盖汽车电子、电机控制、智能家电、消费电子等多重领域,并有经验丰富的工程师专家与您深入交流,期待莅临现场。
原厂动态 发布时间 : 2023-07-31
电子商城
现货市场
服务
可定制显示屏的尺寸0.96”~15.6”,分辨率80*160~3840*2160,TN/IPS视角,支持RGB、MCU、SPI、MIPI、LVDS、HDMI接口,配套定制玻璃、背光、FPCA/PCBA。
最小起订量: 1000 提交需求>
可烧录IC封装SOP/MSOP/SSOP/TSOP/TSSOP/PLCC/QFP/QFN/MLP/MLF/BGA/CSP/SOT/DFN;IC包装Tray/Tube/Tape;IC厂商不限,交期1-3天。支持IC测试(FT/SLT),管装、托盘装、卷带装包装转换,IC打印标记加工。
最小起订量: 1pcs 提交需求>
登录 | 立即注册
提交评论