[样例程序]--RL78 bootloader via UART for CCRL

一个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文件和初始生成不一样, 有改动, 请参考修改).

  • 感谢黄工的回答,另外我这里在参考例程适配到RL78/F14 R5F10PGJ下,出现点问题:
    参考例程,设置段地址如图,

    编译出现.const超出范围错误的提示:

    E0562320:Section address overflowed out of range : ".const"

    另外这里也进行了设置,编译还是同样出现上面的错误,

    看RL78/F14 R5F10PGJ的memory space如下:

    =================================

    我这边把.const段去掉之后,让编译器自动分配,可以编译成功,看map是将.const的start地址定到了0x3000的位置。

    所以就想问下,为什么把.const定到0x2200的位置会报错?

    另外,让编译器自动分配的话是否会有问题呢?

    如果可以的话,黄工能否详细讲解下例程中那些段所设置的起始地址的参考依据呢?

  • 黄工,你好,有没有RX210的OTA参考工程,我看你的RL78的OTA工程,好像两款芯片的差别别较大,我用的芯片是R5F5210BBxFB

  • 黄工,你好:

    请教一下,我单独建立一个工程,不是建立子工程做这个BOOT

    我按照例程把section分配改了(所用单片机FLASH、 RAM大小和例程单片机一样),".const"删除了,启动文件里const部分也注释掉了

    但是编译报错说const地址溢出了。

    1.请问是别的什么地方需要配置吗?

    2.把BOOT工程和APP分成两个工程有啥注意点吗?

  • 黄工你好,我看在128K的ROM里。 你这边设置 app area = 2000-1FFFF。 但是FLASH_END_ADDRESS 为什么= 1FBFF,而不是1FFFF。 是flash的最后一块(1024字节)不能操作吗,不能存放app吗。

  • 最后的 512B 或 256B 需要预留给debug