找回密码
 立即注册
查看: 406|回复: 19

Boot loader跳转到用户程序后 | 编译器重映射中断向量入口地址

[复制链接]
  • TA的每日心情
    开心
    2024-4-4 18:10
  • 签到天数: 11 天

    [LV.3]偶尔看看II

    7

    主题

    36

    回帖

    173

    积分

    注册会员

    积分
    173
    发表于 2024-3-15 12:29:17 来自手机 | 显示全部楼层 |阅读模式
    自己做了个bootloader结果就出问题了用的 STC8H8K64U
    Bootloader预先烧在0~0x1fff,功能是从flash里读出用户程序,
    以0x2000为起点写入芯片,然后跳转到0x2000运行。

    发现程序里涉及中断的地方都失效了,其他功能都好好的,
    感觉是用户程序配置的问题?

    关于配置还有几点不清楚的,麻烦各位大神了
    1:start up a51第125行CSEG AT 0是什么意思?
    2:option for target里的Target选项,那个off chip code memory选填的范围是干什么的 ?
    3:option for target里的c51选项,interrupt vetcor at address是干什么的 ?
    自己估摸着这几个配置挺重要的,要是弄懂了应该能有用
    回复 送花

    使用道具 举报

  • TA的每日心情
    开心
    2024-4-4 18:10
  • 签到天数: 11 天

    [LV.3]偶尔看看II

    7

    主题

    36

    回帖

    173

    积分

    注册会员

    积分
    173
     楼主| 发表于 2024-3-15 12:33:49 来自手机 | 显示全部楼层
    用户程序可以运行,但中断失效,bootloader里没涉及任何中断。
    失败时候用的配置是
    STC-ISP  选64k eeprom
    cseg at 2000h
    Off chip code memory从0x2000~0xE000
    Interrupt vector  at address输入的是0x2000
    都是自己按感觉胡来的,是不是这块有问题?
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    2024-5-5 08:35
  • 签到天数: 143 天

    [LV.7]常住居民III

    29

    主题

    558

    回帖

    2144

    积分

    荣誉版主

    积分
    2144
    发表于 2024-3-15 18:32:03 | 显示全部楼层
    本帖最后由 gentleman 于 2024-3-15 18:34 编辑

    1.在BL 的startup.a51映射中断表

    ORG 0003H
    LJMP 2003H
    ...

    吧用到的中断 再跳转一下


    2.APP 的中断入口 改2000
    截图202403151830209342.jpg

    1 喜欢他/她就送朵鲜花吧,赠人玫瑰,手有余香!
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    2024-5-5 08:35
  • 签到天数: 143 天

    [LV.7]常住居民III

    29

    主题

    558

    回帖

    2144

    积分

    荣誉版主

    积分
    2144
    发表于 2024-3-15 18:34:27 | 显示全部楼层
    中断表在手册查

    截图202403151834232249.jpg

    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    昨天 08:23
  • 签到天数: 112 天

    [LV.6]常住居民II

    10

    主题

    584

    回帖

    936

    积分

    高级会员

    积分
    936
    发表于 2024-3-15 21:42:15 | 显示全部楼层
    gentleman 发表于 2024-3-15 18:32
    1.在BL 的startup.a51映射中断表

    ORG 0003H

    正解
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    2024-4-4 18:10
  • 签到天数: 11 天

    [LV.3]偶尔看看II

    7

    主题

    36

    回帖

    173

    积分

    注册会员

    积分
    173
     楼主| 发表于 2024-3-16 07:45:01 来自手机 | 显示全部楼层
    gentleman 发表于 2024-3-15 18:32
    1.在BL 的startup.a51映射中断表

    ORG 0003H

    我的天,还能这么玩!!我上网搜了一下一直以为c51不能映射中断向量呢,学习了!
    1710546228236.jpg
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    无聊
    昨天 10:58
  • 签到天数: 14 天

    [LV.3]偶尔看看II

    6

    主题

    33

    回帖

    396

    积分

    中级会员

    积分
    396
    发表于 2024-3-16 08:49:42 | 显示全部楼层
    想问下你的bootloader用了多少K的flash?是串口更新吗?
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    半小时前
  • 签到天数: 77 天

    [LV.6]常住居民II

    4

    主题

    685

    回帖

    1084

    积分

    金牌会员

    积分
    1084
    发表于 2024-3-16 10:24:36 来自手机 | 显示全部楼层
    学习下,官方不是有例子吗
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    2024-4-4 18:10
  • 签到天数: 11 天

    [LV.3]偶尔看看II

    7

    主题

    36

    回帖

    173

    积分

    注册会员

    积分
    173
     楼主| 发表于 2024-3-16 11:43:01 来自手机 | 显示全部楼层
    虹涛犹珷 发表于 2024-3-16 08:49
    想问下你的bootloader用了多少K的flash?是串口更新吗?

    预算12K,现在写出来的将近8K了
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    2024-4-4 18:10
  • 签到天数: 11 天

    [LV.3]偶尔看看II

    7

    主题

    36

    回帖

    173

    积分

    注册会员

    积分
    173
     楼主| 发表于 2024-3-16 11:47:57 来自手机 | 显示全部楼层
    虹涛犹珷 发表于 2024-3-16 08:49
    想问下你的bootloader用了多少K的flash?是串口更新吗?

    相对64K来说确实有点大了,主要是想从FLASH里解析FAT实现程序的动态加载,其实就是从FLASH里选择性的更新程序。
    MSC程序本身就是一个可供加载的APP,通过加载它实现跟电脑的信息交换
    回复 支持 反对 送花

    使用道具 举报

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

    本版积分规则

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

    GMT+8, 2024-5-21 07:09 , Processed in 0.072023 second(s), 68 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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