一个RL78 bootloader样例程序.
MCU: RL78G13, R5F100LE, 64K ROM,
IDE: CS+ for CCRL.
通讯口为UART, Xmodem, 发送bin文件
Boot : 0000 - 1FFFH, Boot的_start 在0xd8,
APP: 2000 - FFFFH, 其中2000开始的FLASH_TABLE是虚拟向量表( ftable.asm), 通过向量表映射实现中断访问, APP的程序入口地址(_start)在2200H
对于不同的ROM size移植, 只要将App的地址作相应的平移.
样例程序 4150.OTA_Test_0319.zip
硬件手册 https://www.renesas.cn/us/zh/document/man/rl78g13-users-manual-hardware?r=1054286
和资源分配表https://www.renesas.cn/us/zh/document/mat/rl78-family-self-ram-list-flash-self-programming-library-rev305
请认真参照样例程序(section定义, 和其他build option设置 ) 和 硬件手册, 资源分配表构建自己的bootloader. 如果编译和调试过程中发生错误, 再仔细看看自己的工程和样例之间的差异(asm文件和初始生成不一样, 有改动, 请参考修改).
cstart.asm只是做了基本的堆栈初始化, 段的配置等操作, 不设计用户IO, timer的初始化, 所以hdwinit就是预留一个接口做这件事的,
你是什么单位看看是不是需要给你们安排线下支持. 私信给我han.huang.yk@renesas.com
黄工,向您请教几个问题,您方便解答一下吗?
屏蔽了的是没有用到, 不要去考虑.
.db, .db2, .db4 分别定义1byte, 2byte, 4byte, 这里是构建的App的(虚拟)向量表
0xfffffff, 相当于没有中断
BR是汇编无条件跳转指令
BR !!Function_name, 是跳转到中断服务程序, 这里是和boot的build tool里面的设置相对应的, 如下图.
此样例程序, boot不使用中断, 把中断向量表留给了App使用, 因为只有一个硬件的中断向量在boot区(0-7F), 所以中断发生后, 从0-7fH某一地址, 指向到 0x2000+offset, 再从这个地址跳转(BR 汇编指令)到Function_name(中断服务程序), 也就是这里做了一个虚拟的中断向量表.
如果你要用某一个中断, 就参考RL78/G13 HM中断一章节的中断向量表, 然后把上面的表对应的地址改成 BR !!function_name
BR !!Function_name 一共占用4byte, 所以这个虚拟向量表每一个中断对应4byte. 你可以通过simulator, 在debug状态下, 参照memory, 结合程序, 加深对这部分的理解.
想问下有单片机寄存器自检的例程么
https://www.renesas.com/us/en/document/scd/1221981?r=2116216
可以去看看, IEC60730的样例程序.
有没有R7F0C014B的样例程序,他这个需要一个库,这库要怎样添加到过程呀
还有就是CPU自检,看门狗自检,ADC自检,这样的有例程么
压缩文件里面有文档.
黄工,您好,这个ftable.asm文件时怎么生成的,我的工程没有这个文件,是要手动导入吗?
这个样例程序, 是一个完整的工程, flash.asm是构建一个虚拟的向量表. 你的工程我不清楚. 如你需要构建自编程, 请参考本样例程序.
我的工程里没有 ftable.asm这个文件,这个文件是要手动导入吗,还是编译器哪个地方设置好了,自动生成后手动导入。
如果你的工程, 是自己建的, 你需要把上面样例工程里面的flash_table.asm等, 已经build option作相应的修改.这个文件可以直接copy的自己的工程里面去.
hello 黄工,请问如何把boot + App整合成一个hex/mot文件,有什么工具吗?