打印

KEIL C51如何设置重映射中断地址

[复制链接]
6142|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
称序匠人|  楼主 | 2009-12-7 19:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 称序匠人 于 2009-12-7 19:43 编辑

0-0x1000 我用来写的bootloader 代码 避开 没有使用到中断函数
0x1000 后写用户代码
[1]
用户代码 我设置了STARTup.a51 中 设置如下

                CSEG    AT      0x1000
?C_STARTUP:     LJMP    STARTUP1
[2]
keil 软件options-->c51  将Interrupt vectors at address :改成0x1000
[3]
options-->BL51 LOCATE的CODE  设置值  0x1000  这里是不是设置不对?

我试下了如上配置后 下载bootloader 代码 再从0x1000下载用户代码就
程序一运行就出错

相关帖子

沙发
不亦心| | 2009-12-7 21:24 | 只看该作者
来听课的

LZ的名字不错,哈哈:D

使用特权

评论回复
板凳
arm_fan168| | 2009-12-7 21:49 | 只看该作者
向量重映射得在硬件支持的前提下,不是改改连接器就得了。

使用特权

评论回复
地板
因特网用户| | 2009-12-8 09:05 | 只看该作者
51不能中断向量重新映射啊  所以你要在bootloader的中断向量地址那些地方安排一些跳转指令 跳到下载程序的中断服务程序入口

使用特权

评论回复
5
xwj| | 2009-12-8 09:12 | 只看该作者
3楼、4楼正解。
这个需要硬件支持的。

使用特权

评论回复
6
jerkoh| | 2009-12-8 10:47 | 只看该作者
本帖最后由 jerkoh 于 2009-12-8 11:07 编辑

使用特权

评论回复
7
ejack| | 2009-12-8 12:24 | 只看该作者
除非你能保证用户代码也绝对不用中断,否则这样做没有意义。
LZ做Bootloader的思路方向似乎搞反了。

使用特权

评论回复
8
myzgy| | 2017-11-7 13:46 | 只看该作者
bootload 不使用中断可以做升级程序

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

13

主题

36

帖子

0

粉丝