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

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日

悬赏问题

  • ¥30 电脑误删了手机的照片怎么恢复?
  • ¥15 (标签-python|关键词-char)
  • ¥15 python+selenium,在新增时弹出了一个输入框
  • ¥15 苹果验机结果的api接口哪里有??单次调用1毛钱及以下。
  • ¥20 学生成绩管理系统设计
  • ¥15 来一个cc穿盾脚本开发者
  • ¥15 CST2023安装报错
  • ¥15 使用diffusionbert生成文字 结果是PAD和UNK怎么办
  • ¥15 有人懂怎么做大模型的客服系统吗?卡住了卡住了
  • ¥20 firefly-rk3399上启动卡住了