找回密码
 立即注册
查看: 3145|回复: 26

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

[复制链接]
  • 打卡等级:偶尔看看II
  • 打卡总天数:21
  • 最近打卡:2025-04-04 22:11:37
已绑定手机

36

主题

287

回帖

824

积分

高级会员

积分
824
发表于 2024-3-15 12:29:17 来自手机 | 显示全部楼层 |阅读模式

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


自己做了个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是干什么的 ?
自己估摸着这几个配置挺重要的,要是弄懂了应该能有用
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看II
  • 打卡总天数:21
  • 最近打卡:2025-04-04 22:11:37
已绑定手机

36

主题

287

回帖

824

积分

高级会员

积分
824
发表于 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
都是自己按感觉胡来的,是不是这块有问题?
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:217
  • 最近打卡:2024-11-15 09:12:27

29

主题

722

回帖

2790

积分

荣誉版主

积分
2790
发表于 2024-3-15 18:32:03 | 显示全部楼层
1.在BL 的startup.a51映射中断表
ORG 0003H
LJMP 2003H
...

吧用到的中断 再跳转一下

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

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

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:217
  • 最近打卡:2024-11-15 09:12:27

29

主题

722

回帖

2790

积分

荣誉版主

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

截图202403151834232249.jpg

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:452
  • 最近打卡:2025-05-01 06:20:50
已绑定手机

13

主题

1257

回帖

2971

积分

金牌会员

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

ORG 0003H

正解
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看II
  • 打卡总天数:21
  • 最近打卡:2025-04-04 22:11:37
已绑定手机

36

主题

287

回帖

824

积分

高级会员

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

ORG 0003H

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

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:57
  • 最近打卡:2025-04-29 14:15:11

6

主题

33

回帖

596

积分

高级会员

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

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:422
  • 最近打卡:2025-05-01 09:54:52
已绑定手机

19

主题

3190

回帖

4866

积分

论坛元老

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

使用道具 举报 送花

  • 打卡等级:偶尔看看II
  • 打卡总天数:21
  • 最近打卡:2025-04-04 22:11:37
已绑定手机

36

主题

287

回帖

824

积分

高级会员

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

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

使用道具 举报 送花

  • 打卡等级:偶尔看看II
  • 打卡总天数:21
  • 最近打卡:2025-04-04 22:11:37
已绑定手机

36

主题

287

回帖

824

积分

高级会员

积分
824
发表于 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, 2025-5-2 00:22 , Processed in 0.148052 second(s), 110 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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