查看: 5863|回复: 6

[其他] 请教飞思卡尔中断向量映射的问题

[复制链接]

该用户从未签到

2

主题

8

帖子

0

新手上路

Rank: 1

积分
30
最后登录
1970-1-1
发表于 2010-10-25 14:44:54 | 显示全部楼层 |阅读模式
<div id="bbs_main_body"><div id="article_body_746861">我用的是MCF51AC256单片机,因为要做BOOT升级,我就把应该程序的中断向量映射到RAM中运行,映射完成后,程序可以正常跑,但是中断进不去。
我的工程是用None模式建的
我的程序是这样定义的:
中断向量表存放在0X4000的FLASH里,程序运行后,映射到0x800000的RAM里。
中断映射函数:

void VectorMapping(void)

    dword *pdst,*psrc;
    byte i;
    
    asm (move.l  #0x00800000,d0);
    asm (movec   d0,vbr);
   
    pdst = (dword)0x00800000;
    psrc = (dword)0x00004000;
   
    for (i=0;i
我知道答案 目前已有5人回答
回复

使用道具 举报

该用户从未签到

27

主题

418

帖子

0

新手上路

Rank: 1

积分
228
最后登录
1970-1-1
发表于 2010-10-25 15:25:06 | 显示全部楼层

RE:请教飞思卡尔中断向量映射的问题

你都不给积分了,我还回答吗?

该用户从未签到

27

主题

418

帖子

0

新手上路

Rank: 1

积分
228
最后登录
1970-1-1
发表于 2010-10-25 15:25:30 | 显示全部楼层

RE:请教飞思卡尔中断向量映射的问题

呵呵,开个玩笑,是不是中断向量基址寄存器没设置对。
  • TA的每日心情
    难过
    2021-12-15 16:01
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    305

    主题

    4701

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    377
    最后登录
    2023-8-16
    发表于 2010-10-25 15:41:17 | 显示全部楼层

    RE:请教飞思卡尔中断向量映射的问题

    在映射中断的时候,要在start中设置中断向量地址。导致这个结果是因为,程序还默认跳转到你原先的地址,而此时,你里面程序的向量地址和你写入RAM中的程序向量地址是不一样的。
    该会员没有填写今日想说内容.

    该用户从未签到

    2

    主题

    8

    帖子

    0

    新手上路

    Rank: 1

    积分
    30
    最后登录
    1970-1-1
     楼主| 发表于 2010-10-26 15:13:53 | 显示全部楼层

    回复:请教飞思卡尔中断向量映射的问题

    回复第 4 楼 安 于2010-10-25 07:41:17发表:
    在映射中断的时候,要在start中设置中断向量地址。导致这个结果是因为,程序还默认跳转到你原先的地址,而此时,你里面程序的向量地址和你写入RAM中的程序向量地址是不一样的。 

    你说的很对,我也觉得中断还是跳到原来的地址去了,因为原来的地址已经空了,所以它不中断了
    但是,我怎么才能让它跳到我要设置RAM的地址呢,请指点
     
  • TA的每日心情
    难过
    2021-12-15 16:01
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    305

    主题

    4701

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    377
    最后登录
    2023-8-16
    发表于 2010-10-27 08:49:04 | 显示全部楼层

    RE:请教飞思卡尔中断向量映射的问题

    你可以看卡手册中是不是有对于中断向量列表的说明。还有例程中有没有中断向量的配置。
    该会员没有填写今日想说内容.

    该用户从未签到

    3

    主题

    15

    帖子

    0

    新手上路

    Rank: 1

    积分
    29
    最后登录
    1970-1-1
    发表于 2010-11-23 16:49:15 | 显示全部楼层

    RE:请教飞思卡尔中断向量映射的问题

    很简单。这是多app boot必须的技术。在原来的中断ISR里写一个程序,该程序根据要选择的APP来跳转。一般就是个地址入口表。举个例子:
      void interrupt 25 _ISR()
      {
          Pfunc();
      }
      i一般来自于上位机的通讯命令。boot就可以进入相应的中断服务程序。可以选择进入boot的中断或者自定义的APP的中断。
    pfunc存放你的多个APP的中断入口地址。一般在设计的时候就分配好地址了。动态也可以做到。不赘述。
    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-7-21 03:30 , Processed in 0.100711 second(s), 27 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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