找回密码
 立即注册
查看: 532|回复: 4

如何增大8H8K64U的bootloader空间

[复制链接]
  • 打卡等级:常住居民II
  • 打卡总天数:87
  • 最近打卡:2025-04-27 06:53:22

12

主题

54

回帖

611

积分

高级会员

积分
611
发表于 2024-8-10 17:28:22 | 显示全部楼层 |阅读模式
大虾们,有人改写8H8K64U的USB的bootloader吗?

我把bootloader空间增大到8K,可以下载成功,但是跳转失败,具体步骤如下。
1: 修改config文件的LDR_SIZE值。
      #define LDR_SIZE                0x2000        //0x1000=4K

2: isr.asm文件的LDR_SIZE   
     LDR_SIZE    EQU     2000H

3:修改APP的配置信息。
     Target的Eprpm Start改为0x2003,Eprom Size改为0xDC00.
      C51的Interrupt Vectors at address改为0x2000
截图202408101723201694.jpg
截图202408101724555331.jpg
回复

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:87
  • 最近打卡:2025-04-27 06:53:22

12

主题

54

回帖

611

积分

高级会员

积分
611
发表于 2024-8-10 18:55:49 | 显示全部楼层
把启动地址设置为0x1000时,编译后0x1000位置文件如下:
0FE0  FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
0FF0  FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
1000  02 1B 00 90 01 32 74 01 F0 22 22 02 10 CE 90 01
1010  08 E0 64 04 70 24 90 01 00 E0 64 02 70 1C 90 01
1020  05 E0 70 16 90 01 03 E0 70 79 90 01 02 E0 70 73
1030  90 01 06 E0 70 02 A3 E0 60 02 80 67 90 01 04 E0

把启动地址设置为0x2000时,编译后0x2000位置文件如下:
1FE0  FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
1FF0  FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
2000  FF FF FF 90 01 32 74 01 F0 22 22 02 20 CE 90 01
2010  08 E0 64 04 70 24 90 01 00 E0 64 02 70 1C 90 01
2020  05 E0 70 16 90 01 03 E0 70 79 90 01 02 E0 70 73
2030  90 01 06 E0 70 02 A3 E0 60 02 80 67 90 01 04 E0

理论上0x2000位置也应该02 1B 00 90开始的啊。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:87
  • 最近打卡:2025-04-27 06:53:22

12

主题

54

回帖

611

积分

高级会员

积分
611
发表于 2024-8-11 07:05:08 | 显示全部楼层
本帖最后由 古人来者_昌 于 2024-8-11 07:09 编辑

使用STC-ISP导出Hex文件,就正确了,但是STC-ISP(用户版)查看就丢失了前3个字节。
截图202408110703594196.jpg
截图202408110704317539.jpg
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:87
  • 最近打卡:2025-04-27 06:53:22

12

主题

54

回帖

611

积分

高级会员

积分
611
发表于 2024-8-11 08:40:45 | 显示全部楼层
本来想改造USB接口的Bootloader,但是在主循环加入点代码后,下载就失败了,应该是加入代码后,USB使用查询方式时间长了,导致下载失败。
    while (1)
    {         
            LEDTime++;
        usb_isr();
        dfu_events();
                WatchDog();

                //if( ((LEDTime % LED_FLASH_TIME) == 0) && (DFUCommandFlag == 1) )                //加入这两行代码后,USB下载失败               
                //        LED_PIN = ~LED_PIN;
                                       
    }
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:415
  • 最近打卡:2025-04-30 09:58:34
已绑定手机

39

主题

2006

回帖

6843

积分

论坛元老

积分
6843
发表于 2024-8-12 10:38:17 | 显示全部楼层
古人来*** 发表于 2024-8-11 07:05
使用STC-ISP导出Hex文件,就正确了,但是STC-ISP(用户版)查看就丢失了前3个字节。
...

STC-ISP(用户版)固定设置应用程序从1000H开始。
回复 支持 反对

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-2 15:37 , Processed in 0.128864 second(s), 74 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表