找回密码
 立即注册
查看: 247|回复: 22

STC32G12K128的IAP升级

[复制链接]
  • TA的每日心情
    奋斗
    2024-3-23 10:17
  • 签到天数: 1 天

    [LV.1]初来乍到

    1

    主题

    12

    回帖

    55

    积分

    注册会员

    积分
    55
    发表于 2024-3-23 14:20:29 | 显示全部楼层 |阅读模式
    我参考官方的IAP下载程序,写了自己的IAP升级程序,目前问题是下载后代码无法跳转,具体信息如下:
    1.设置AP程序跳转地址为0XFF2000(已经将用户代码处的0xFF0000-0XFF0003的复位跳转指令映射至0XFF2000-0XFF2003处)

    2.用户程序已经按照官方手册设置了keil
    3.跳转函数采用官方的Demo


    现象:函数运行至跳转函数后,没有运行至AP代码,仍然在IAP代码内卡死在跳转函数


    附件图片为FLASH内部代码     

    烧录文件1

    烧录文件1




    烧录文件2

    烧录文件2



    芯片内部代码

    芯片内部代码


    麻烦看一下问题在哪里,为什么无法跳转运行
    回复 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    2024-3-23 10:17
  • 签到天数: 1 天

    [LV.1]初来乍到

    1

    主题

    12

    回帖

    55

    积分

    注册会员

    积分
    55
     楼主| 发表于 2024-3-23 14:56:57 | 显示全部楼层
    由于一些原因,不能用STC官方DEMO的上位机,所以本次升级用的其他超级终端升级,麻烦大家看一下,小弟感激不尽
    附件:AP串口测试代码(即上述AP代码)

    UART-USART.hex (7.43 KB, 下载次数: 10)

    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    12 小时前
  • 签到天数: 152 天

    [LV.7]常住居民III

    17

    主题

    370

    回帖

    1281

    积分

    荣誉版主

    积分
    1281
    发表于 2024-3-23 15:38:33 | 显示全部楼层
    在0xFF:0000-0XFF:1999装入BOOTLOADER。
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    12 小时前
  • 签到天数: 152 天

    [LV.7]常住居民III

    17

    主题

    370

    回帖

    1281

    积分

    荣誉版主

    积分
    1281
    发表于 2024-3-23 15:42:03 | 显示全部楼层
    然后在BOOTLOADER里设置好跳转。
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    2024-3-23 10:17
  • 签到天数: 1 天

    [LV.1]初来乍到

    1

    主题

    12

    回帖

    55

    积分

    注册会员

    积分
    55
     楼主| 发表于 2024-3-23 15:46:00 | 显示全部楼层
    你好,感谢回复。我的IAP程序是写在在0xFF0000-0XFF1FFF里面的,而且也设置了跳转,目前的问题是跳转失败
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    2024-3-23 10:17
  • 签到天数: 1 天

    [LV.1]初来乍到

    1

    主题

    12

    回帖

    55

    积分

    注册会员

    积分
    55
     楼主| 发表于 2024-3-23 15:48:36 | 显示全部楼层
    社区闲人 发表于 2024-3-23 15:42
    然后在BOOTLOADER里设置好跳转。

    你好,我设置了,但是跳转失败
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    12 小时前
  • 签到天数: 152 天

    [LV.7]常住居民III

    17

    主题

    370

    回帖

    1281

    积分

    荣誉版主

    积分
    1281
    发表于 2024-3-23 16:05:22 | 显示全部楼层
    用户代码规划到0x2000以后的空间,所以设置code range从0x2000开始
    为了让bootloader能准确跳到用户程序入口,所以需要将C_C51STARTUP定位到0x2000位置。
    C_STARTUP位于startup.a51里,它才是程序的真正入口,而不是main函数;
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    2024-3-23 10:17
  • 签到天数: 1 天

    [LV.1]初来乍到

    1

    主题

    12

    回帖

    55

    积分

    注册会员

    积分
    55
     楼主| 发表于 2024-3-23 16:22:00 | 显示全部楼层
    社区闲人 发表于 2024-3-23 16:05
    用户代码规划到0x2000以后的空间,所以设置code range从0x2000开始
    为了让bootloader能准确跳到用户程序入 ...

    20df37830338a18fd28d5fbd7ddaf79.png

    南海,如图,你说的这个在KEIL我也设置了啊,还是无法跳转

    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    6 小时前
  • 签到天数: 125 天

    [LV.7]常住居民III

    26

    主题

    1271

    回帖

    3957

    积分

    论坛元老

    积分
    3957
    发表于 2024-3-25 10:01:23 | 显示全部楼层
    wonderwhy 发表于 2024-3-23 16:22
    南海,如图,你说的这个在KEIL我也设置了啊,还是无法跳转

    这是设置中断偏移地址。
    跳转方法可以参考官方提供的用户IAP例程包里面ISP目录下的例子:
    截图202403250959194024.jpg


    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    2024-3-23 10:17
  • 签到天数: 1 天

    [LV.1]初来乍到

    1

    主题

    12

    回帖

    55

    积分

    注册会员

    积分
    55
     楼主| 发表于 2024-3-25 10:10:03 | 显示全部楼层
    乘风飞扬 发表于 2024-3-25 10:01
    这是设置中断偏移地址。
    跳转方法可以参考官方提供的用户IAP例程包里面ISP目录下的例子:

    你好,我其实就是用这个官方的代码跳转的,并且我的跳转地址设置在0XFF2000
    回复 支持 反对 送花

    使用道具 举报

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

    本版积分规则

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

    GMT+8, 2024-4-27 18:32 , Processed in 0.070642 second(s), 67 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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