zoukankan      html  css  js  c++  java
  • RH850 FCL的使用

    一、前言

    调试的电路板为瑞萨F1KM系列,使用的FCL库版本为2.13,应用说明手册为R01US0078ED0213,手册和库都可以在官网下载到。

    好,进入正题。

    使用CS+版本时参考库提供的CC-RH_200文件夹 ,此文件夹下的FCL文件夹为源码文件,在调试时,添加此文件夹下所有文件,此文件夹下的文件都不要进行更改。

    其中RH850-D1M1A、RH850-D1x、RH850-F1H、RH850-F1x、RH850-F1K文件下的文件为参考代码文件夹,根据芯片型号选择参考代码,进行调试。

    根据F1KM系列我们选择F1K系列。在不了解具体流程前还是要按照参考代码进行调试,否则真有坑啊,由于之前理解擦写动作函数可以不在RAM中运行,导致调试时频繁出错,

    不清楚问题出现哪里,后来理解了参考代码擦除操作是在RAM中的进行的,这个坑才跳出来。由于调试过程中遇到很多问题,在这里总结一下注意事项及相关操作方法。

    二、工程的配置

    2.1.在工程文件Section中添加FCL库所需要的段

    2.1.1 ROM中添加

    R_FCL_CODE_ROM.text

    R_FCL_CONST.const

    R_FCL_CODE_USRINT.text

    R_FCL_CODE_USR.text

    R_FCL_CODE_RAM.text

    R_FCL_CODE_ROMRAM.text

    R_FCL_CODE_RAM_EX_PROT.text

    2.1.2 RAM中添加

    R_FCL_DATA.bss

    FCL_RESERVED.bss

    关于FCL_RESERVED.bss段

    由于此段的内定义的数据大小为宏FCL_RAM_EXECUTION_AREA_SIZE  为0x8000,共32K,占用了整个Local RAM大小,

    由于在调试时Retention RAM中的变量在CS+ 中不正常,所以将FCL_RESERVED.bss段定义在Retention 段内,保证了调试程序时,变量的正常使用。

    关于FCL_RAM_EXECUTION_AREA_SIZE  宏定义的大小应该可是进行修改的,在调试成功后,将宏定义改为了0x6000,擦写操作也能正常进行,但为了

    保险起见,我们还是不要进行修改了,以防后面埋了个坑,反正定义也是在Retention RAM段,不影响正常变量的定义。

    三、文件的修改

    3.1 fcl_descriptor.h

    根据上面FCL_RESERVED.bss段定义的Retention RAM起始地址,修改fcl_descriptor.h文件中的宏定义FCL_RAM_ADDRESS。

    根据实际设置时钟大小进行FCL_CPU_FREQUENCY_MHZ的修改,

    FCL_AUTHENTICATION_ID为安全ID,如果不使用,不需要进行修改。

    3.2 关于boot.sam的修改

    此定义为清零 RAM范围定义,将set后设置为芯片RAM正常地址

    GLOBAL_RAM_ADDR 
    GLOBAL_RAM_END 
    LOCAL_RAM_ADDR 
    LOCAL_RAM_END 

    四、初始化过程

    4.1 调用R_FCL_Init (&sampleApp_fclConfig_enu)函数

    4.2 调用R_FCL_CopySections();函数

    4.3 在内存中运行以下两个函数

    FCLUser_Open ();
    DRV_CodeFlashEnvInit();

    两个函数。参考库提供的参考main.c的 方法为

    fpFct = ( uint32_t (*)() )R_FCL_CalcFctAddr ( (uint32_t)(&FCL_Ctrl) );
    fpFct ();

    此处一定注意运行是在RAM中进行的,此处有坑,我就跳里了,不要直接运行FCL_Ctrl ()函数哦!!!

    五、注意事项

    调试成功后可以参考fcl_ctrl.c的例程,编写自己的接口程序了,新编写文件时,注意在源文件头添加#pragma section text "R_FCL_CODE_USR"的定义

    将代码定义到R_FCL_CODE_USR段内,否则有坑!!!

    编写好库文件后可以将fcl_ctrl.c移除工程文件了,进行接口函数的验证,擦除,写数据等。

    通过程序擦写FLASH后,mem窗口查看内容不会立即显示,多调试下载几次代码就正常了。

    总结完毕,欢迎讨论。

     

  • 相关阅读:
    Memcached下载、安装及使用演示。
    Redis和Memcache对比及选择
    Log4Net.Config配置信息《转》
    常用正则表达式!收藏
    关于ViewData,ViewBag,TempData三者学习记录!
    C#实战Microsoft Messaging Queue(MSMQ)消息队列(干货)<转>
    C# AutoResetEvent
    C#英文面试常见问题[转]
    Highsoft.Highcharts 5.0.6439.38401 key
    vs2017安装后自动应用许可证
  • 原文地址:https://www.cnblogs.com/hkj8808/p/13186613.html
Copyright © 2011-2022 走看看