查看: 3880|回复: 7

[其他] 16位dsp 中断向量重新映射 INTC_VBA bootloader

[复制链接]

该用户从未签到

4

主题

10

帖子

0

新手上路

Rank: 1

积分
48
最后登录
2014-12-11
发表于 2014-9-24 17:17:31 | 显示全部楼层 |阅读模式
各位路过的大侠好!
          鄙人最近刚开始做84789的bootloader ,开始感觉云里雾里,网上查阅了很多资料之后也是模模糊的感觉。目前有几个眼前的问题想请教各位,还请不吝赐教。
1 bootloader程序里的中断向量应该放在哪块地址上?用户程序区还是bootloader区?是不是INTC_VBA指向的地方就是中断向量放置区?
2 当bootloader结束时,是通过重新映射的中断矢量跳转到用户程序的吗? 跳到用户程序之后是不是又要重新经历一遍,_Entry_point(),_inin56800(),这些初始化程序,然后才执行main().
3 看到例程的注释里有说,本例程用的是快速中断(fast interrupt),不用跳到中断向量表,直接就执行中断服务程序。这个跟普通的中断有什么区别?

麻烦各位大侠了!谢谢
我知道答案 目前已有7人回答
回复

使用道具 举报

该用户从未签到

145

主题

4926

帖子

0

金牌会员

Rank: 6Rank: 6

积分
9267
最后登录
1970-1-1
发表于 2014-9-25 09:33:48 | 显示全部楼层
楼主你好,我会把你的题转给我们的DSC工程师,他会帮你解答,还请耐心等待下。
回复 支持 反对

使用道具 举报

该用户从未签到

0

主题

218

帖子

0

中级会员

Rank: 3Rank: 3

积分
472
最后登录
1970-1-1
发表于 2014-9-25 11:40:22 | 显示全部楼层
关于56F84789的详细描述,可以参考这个应用笔记:
http://cache.freescale.com/files ... app_note/AN4759.pdf
回复 支持 反对

使用道具 举报

该用户从未签到

0

主题

218

帖子

0

中级会员

Rank: 3Rank: 3

积分
472
最后登录
1970-1-1
发表于 2014-9-25 14:16:21 | 显示全部楼层
bootloader程序里的中断向量仍然是从地址 0x00000000开始的,请看bootloader工程(AN4759SW.zip)里面的link command 文件。 bootloader结束时,直接跳转到用户程序的入口地址, 入口地址存放在program falsh 的地址0x1F3FD–0x1F3FE中。

bootloader中的快速中断是在函数_EntryPoint()中设置的,见下面的代码。中断函数的入口地址在寄存其中设置,不从中断矢量表进入。
/* Fast interrupt 0 setting */
  setReg(INTC_FIM0, 0x33);             /* Vector number for fast interrupt 0 */
  setReg(INTC_FIVAL0, (volatile dword)fisr_sci_rx_full); /* Low address of interrupt routine */
  setReg(INTC_FIVAH0, ((volatile dword)fisr_sci_rx_full >> 16U) & 0xFFFFU); /* High address of interrupt routine */
  /* Fast interrupt 1 setting */
  setReg(INTC_FIM1, 0x34);             /* Vector number for fast interrupt 1 */
  setReg(INTC_FIVAL1, (volatile dword)fisr_sci_rx_full); /* Low address of interrupt routine */
  setReg(INTC_FIVAH1, ((volatile dword)fisr_sci_rx_full >> 16U) & 0xFFFFU); /* High address of interrupt routine */
回复 支持 反对

使用道具 举报

该用户从未签到

4

主题

10

帖子

0

新手上路

Rank: 1

积分
48
最后登录
2014-12-11
 楼主| 发表于 2014-9-25 14:25:51 | 显示全部楼层
FSL_TICS_ZJJ 发表于 2014-9-25 09:33
楼主你好,我会把你的题转给我们的DSC工程师,他会帮你解答,还请耐心等待下。 ...

非常谢谢您,超级版主-FSL_TICS_ZJJ。期待您的回复
回复 支持 反对

使用道具 举报

该用户从未签到

4

主题

10

帖子

0

新手上路

Rank: 1

积分
48
最后登录
2014-12-11
 楼主| 发表于 2014-9-25 14:27:14 | 显示全部楼层
FSL_TICS_Fiona 发表于 2014-9-25 14:16
bootloader程序里的中断向量仍然是从地址 0x00000000开始的,请看bootloader工程(AN4759SW.zip)里面的lin ...

非常感谢您,让我清晰的了解了什么是快速中断。谢谢啦
回复 支持 反对

使用道具 举报

该用户从未签到

145

主题

4926

帖子

0

金牌会员

Rank: 6Rank: 6

积分
9267
最后登录
1970-1-1
发表于 2014-9-25 14:28:35 | 显示全部楼层
IPMSM—门 发表于 2014-9-25 14:25
非常谢谢您,超级版主-FSL_TICS_ZJJ。期待您的回复

你好,FSL_TICS_Fiona就是我们的DSC工程师,他已经帮你解答了。
如果你有不明白的地方,可以继续向他请教。
另外如果你的问题解决了,还请帮我们及时结贴,在问题标题结尾加上(已解决)。
回复 支持 反对

使用道具 举报

该用户从未签到

4

主题

10

帖子

0

新手上路

Rank: 1

积分
48
最后登录
2014-12-11
 楼主| 发表于 2014-9-25 15:06:18 | 显示全部楼层
FSL_TICS_Fiona 发表于 2014-9-25 14:16
bootloader程序里的中断向量仍然是从地址 0x00000000开始的,请看bootloader工程(AN4759SW.zip)里面的lin ...

FSL_TICS_Fiona,您好
       请问INTC_VBA是不是指向中断向量表的复位向量?中断向量表的重新映射是不是要用INTC_VBA寄存器?
另外bootloader区跟别的flash存储区是一样的吗,假如它现在只有3kb我能不能给它分配成6kb的空间?  还有一个现象就是现在没用mem_copy()函数把bootflash里的程序复制到ram,同样也可以把程序数据写入其他flash区。   期待您的回复!麻烦您了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

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

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

GMT+8, 2025-7-24 01:15 , Processed in 0.101864 second(s), 29 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

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