FCL库官网地址:Code Flash Libraries (Flash Self Programming Libraries) | Renesas
RH850 FCL库与用户手册地址:RH850/F1KM-S4 Design Support Resources | Renesas
一、FCL的移植过程
(1)添加文件到自己的工程中
1.安装官网提供的FCL库文件
2.解压安装后对应目录介绍
3.将官方库文件和对应的用户文件添加到自己的工程中
(2)CS+工程中的添加FCL需要的段
二、FCL库中的文件介绍(在用户手册中有介绍)
对于我们来说,我们大致需要修改的文件只有两个
- fcl_cfg.h
- fcl_descriptor.h
(1)fcl_cfg.h 文件中的修改
#define R_FCL_COMMAND_EXECUTION_MODE R_FCL_HANDLER_CALL_USER
//修改成
#define R_FCL_COMMAND_EXECUTION_MODE R_FCL_HANDLER_CALL_INTERNAL
使用R_FCL_HANDLER_CALL_INTERNAL模式可以少点坑,除了无法查询操作状态,其他没有太大的差别
(2)fcl_descriptor.h 文件中的修改
#define FCL_CPU_FREQUENCY_MHZ (240) /*!< CPU frequency in MHz */
#define FCL_AUTHENTICATION_ID {0xFFFFFFFF, \
0xFFFFFFFF, \
0xFFFFFFFF, \
0xFFFFFFFF} /*!< 128Bit authentication ID */
#define FCL_RAM_ADDRESS 0xFEBC0000 /*!< RAM address range blocked for FCL */
- FCL_CPU_FREQUENCY_MHZ 修改成自己MCU的主频
- FCL_AUTHENTICATION_ID 若无设置验证ID,不需要改动
- FCL_RAM_ADDRESS 查芯片手册,修改成自己芯片手册的Local RAM 起始地址
三、FCL库大致使用流程
在编写自己的应用函数的时候,一定要参考示例。具体可以查看用户手册与用例展示,以下仅做简略介绍
- R_FCL_Init (&sampleApp_fclConfig_enu) 初始化FCL库
-
R_FCL_CopySections () 将使用的链接段从ROM复制到RAM中的新地址
-
FCLUser_Open() 准备Flash编程硬件,用于Flash修改操作
-
myRequest.command_enu = R_FCL_CMD_PREPARE_ENV; FCL库准备环境
R_FCL_Execute (&myRequest);
-
myRequest.command_enu = R_FCL_CMD_DISABLE_LOCKBITS; Flash解锁
R_FCL_Execute (&myRequest);
-
myRequest.command_enu = R_FCL_CMD_ERASE; Flash擦除
myRequest.idx_u32 = sector;
myRequest.cnt_u16 = cnt;
R_FCL_Execute (&myRequest);
-
myRequest.command_enu = R_FCL_CMD_WRITE; Flash写
myRequest.bufferAdd_u32 = (uint32_t)sourAddr;
myRequest.idx_u32 = targetAddr;
myRequest.cnt_u16 = cnt;
R_FCL_Execute (&myRequest);