白菜心心 2022-01-27 13:03 采纳率: 0%
浏览 56

C8051Fbootloader跳转问题求解?

最近写了一个F120的bootloader,F120有128kbflash,程序FLASH分配如下:


//地址区域划分
#define D_APP_START        0x00000            // APP区起始地址
#define D_APP_LIMIT        0x1E000            // APP区结束地址:120KByte

#define D_RUN_ADDRESS     0x1E001            // APP运行地址,到boot有512Byte空间,可以保存跳转地址

#define D_BOOT_ADDR        0x1E201         // Boot程序存储地址
#define D_BOOT_LIMIT       0x1FA01            // Boot区结束地址:4KByte

#define D_FLASH_LIMIT       0x1FBFD            // FLASH可操作区结束地址-存储非易失性数据

我将bootloader,放在高地址区域。在keil中进行了相应的设置:将target-> BL51 loacation ->code range 设置为boot存储的地址0x1E201-0x1FA01 ,然后 将CODE->设置为 ?C_C51STARTUP(1E001) 。
擦除之前保存地址0,1,2中的数据,擦除后在重新将保存的0,1,2中的数据写回去。主要是后一步,启动后如何跳转进boot呢,是不是在地址3处写入跳转地址0x1E001,进入boot后检测有没有下载信号,如果没有,则跳转到APP区执行程序,那么如何跳回去呢?.。有些混乱,求指正?

  • 写回答

3条回答 默认 最新

  • qllaoda 2022-01-27 13:15
    关注

    51汇编指令不支持超过64K的地址空间

    评论

报告相同问题?

问题事件

  • 创建了问题 1月27日