了解更多关于bootloader 的C语言实现,请加我QQ: 1273623966 (验证信息请填 bootloader),欢迎咨询或定制bootloader(在线升级程序)。

  由于有了RH850 F1KM bootloader的经验,F1L C语言bootloader的开发比较顺利。由于上位机是HyperTerminal, 这个bootloader 我叫它hyperbootloder_F1L, 下面就简单介绍下,相比较hyperbootloader_F1KM, 它有以下不同

1. hdwinit

2. memory map

3. FCL 宏

首先介绍hdwinit的不同,在boot.asm文件中,代码都是汇编,但是看懂问题不大。比较坑人的是,新建CS+工程时,已经选择了正确的芯片型号,完了,自动生成的boot.asm文件中hdwinit, 既然还有以下提示:

;-----------------------------------------------------------------------------
; hdwinit
; Specify RAM addresses suitable to your system if needed.
;-----------------------------------------------------------------------------

CS+, 太蠢,为什么就不能生成不用调整直接就可以用的呢? 通过查看datasheet后,我的改动如下

RETENTION_RAM_ADDR    .set    0xfee00000
RETENTION_RAM_END .set 0xfee07fff .align 2
_hdwinit:
mov lp, r14 ; save return address mov RETENTION_RAM_ADDR, r6
mov RETENTION_RAM_END, r7
jarl _zeroclr4, lp ; clear Retention RAM mov r14, lp
jmp [lp]

接下来是介绍memory map的不同, F1KM R7F701684 是1M 的code flash, 容量非常大,memory map 随手定义的,bootloader 是 0~0x17FFF, application 是 0x18000 ~ 0xFFFFF。 bootloader 实际上不需要那么大的空间。F1L我用的是 R7F701011, code flash 只有256K的容量,所以我重新规划了memory map, bootloader 区间是0~0x0FFFF, application 区间是 0x10000~0x3FFFF. 其实bootloader区间还可以继续缩小。

接下了就是最大的坑了,在FCL library 里面有个文件 fcl_cfg.h. 在这个文件中一定不能define R_FCL_NO_BFA_SWITCH, 否则调用FCL API时一直会有exception. debug时的现象就是FCL OPEN时会跳到exception handler (中断程序)中去,具体是哪种exception我没有去探究。总之这个一定要注意,在FCL user manual中有提到F1KM 等一些芯片需要得define R_FCL_NO_BFA_SWITCH 这个宏。 F1L 不需要,所以一定不要define.

//#define R_FCL_NO_BFA_SWITCH

hyperbootloder_F1L 和 hyperbootloader_F1KM 一样非常简单好用,不需要写上位机,直接用超级终端hyperTerminal就可以,很适合实验室或开发阶段使用。

自己用C语言写RH850 F1L serial bootloader的更多相关文章

  1. 自己用C语言写RH850 F1KM serial bootloader

    了解更多关于bootloader 的C语言实现,请加我QQ: 1273623966 (验证信息请填 bootloader),欢迎咨询或定制bootloader(在线升级程序). 手上有块Renesas ...

  2. 自己用C语言写dsPIC / PIC24 serial bootloader

    了解更多关于bootloader 的C语言实现,请加我QQ: 1273623966 (验证信息请填 bootloader),欢迎咨询或定制bootloader(在线升级程序). HyperBootlo ...

  3. 自己用C语言写单片机PIC18 serial bootloader

    了解更多关于bootloader 的C语言实现,请加我QQ: 1273623966 (验证信息请填 bootloader),欢迎咨询或定制bootloader(在线升级程序). HyperBootlo ...

  4. 自己用C语言写单片机PIC16 serial bootloader

    了解更多关于bootloader 的C语言实现,请加我QQ: 1273623966 (验证信息请填 bootloader),欢迎咨询或定制bootloader(在线升级程序). 为什么自己写bootl ...

  5. 自己用C语言写NXP S32K144 serial bootloader

    了解更多关于bootloader 的C语言实现,请加我QQ: 1273623966 (验证信息请填 bootloader) 欢迎咨询或定制bootloader(在线升级程序). NXP S32K144 ...

  6. C语言RH850 F1L serial bootloader和C#语言bootloader PC端串口通信程序

                   了解更多关于bootloader 的C语言实现,请加我QQ: 1273623966 (验证信息请填 bootloader),欢迎咨询或定制bootloader(在线升级程 ...

  7. 自己用C语言写NXP S32K116 serial bootloader

    了解更多关于bootloader 的C语言实现,请加我QQ: 1273623966 (验证信息请填 bootloader),欢迎咨询或定制bootloader(在线升级程序). 每次我有了新的EVA ...

  8. C语言RH850 F1KM serial bootloader和C#语言bootloader PC端串口通信程序

    了解更多关于bootloader 的C语言实现,请加我QQ: 1273623966 (验证信息请填 bootloader),欢迎咨询或定制bootloader(在线升级程序). 今天我要介绍的RH85 ...

  9. C语言dsPIC / PIC24 serial bootloader和C#语言bootloader PC端串口通信程序

    了解更多关于bootloader 的C语言实现,请加我QQ: 1273623966 (验证信息请填 bootloader),欢迎咨询或定制bootloader(在线升级程序). 新dsPIC/PIC2 ...

随机推荐

  1. mysql累加、累减

    累加 先上表结构: CREATE TABLE `abc` ( `jidu` ) NOT NULL AUTO_INCREMENT, `jine` ) DEFAULT NULL, PRIMARY KEY ...

  2. python+opencv中最近出现的一些变化( OpenCV 官方的 Python tutorial目前好像还没有改过来?) 记一次全景图像的拼接

    最近在学习过程中发现opencv有了很多变动, OpenCV 官方的 Python tutorial目前好像还没有改过来,导致大家在学习上面都出现了一些问题,现在做一个小小的罗列,希望对大家有用 做的 ...

  3. git branch stash

    一.branch(分支) 1.创建分支 git branch dev 2.切换分支 git branch dev 3.合并分支 git merge bug 4.查看分支 git branch 5.删除 ...

  4. ORM基础5

    一.一对一 场景:字段多,且一部分字段使用率高 优点:提高效率 实质:唯一的外键 # Person表 class Person(models.Model): id = models.AutoField ...

  5. java.lang.UnsupportedOperationException: Manual close is not allowed over a Spring managed SqlSession

    java.lang.UnsupportedOperationException: Manual close is not allowed over a Spring managed SqlSessio ...

  6. Nmap使用教程(二)

    TCP空闲扫描 这种先进的扫描方法允许对目标进行一个真正的盲目TCP端口扫描(即没有数据包从你的真实IP地址发送到目标).相反独特的侧信道攻击利用僵尸主机上可预测的IP分段ID序列生成来收集关于目标的 ...

  7. 3、python第三方库的安装方式

    在学习Python过程中,经常要用到很多第三方库,面对各种不同情况,Python为我们提供了多种安装方法,这里主要介绍三种 方法:pycharm在线安装.pip在线安装(强烈推荐).离线安装. 方式一 ...

  8. 事件总线 EventBus

    661. .net中事件模型很优雅的实现了观察者模式,同时被大量的使用在各种框架中. [2016-04-30 10:52:42]662. Prism框架中实现了一个典型的EventAggregator ...

  9. Centos搭建PXE,安装部署操作系统

    centos系统搭建PXE网络安装centos+ubuntu+Windows Centos搭建PXE,安装部署操作系统 一 . 原理: 1.什么是PXE: PXE(Pre-boot Execution ...

  10. 19_07_07校内训练[xor]

    题意 长度为n的数组,上面有k个位置是1,现在有l种长度的连续全1串,要求用最少的次数将这个数组异或成全0的数组.n<=1E5,k<=10,l<=100. 思考 先将数组进行异或的差 ...