Board logo

标题: 怎么改变中断服务程序入口? [打印本页]

作者: ky3453079    时间: 2006-12-8 10:17     标题: 怎么改变中断服务程序入口?

S12系列的片子,我想把中断服务程序入口,改到0x1000处去执行那边的代码。不知道要怎么弄?
作者: seuafu2005    时间: 2006-12-8 16:07

如果用Codewarrior开发的话,修改prm文件中的reset vector中指向的地址就可以了
作者: ky3453079    时间: 2006-12-8 16:19

能不能举个例子,比如说我现在要修改22号中断向量的中断服务程序入口改到0x1000处?
再问个如何用汇编指令将数据存到另外一页中的某个地址(假设0x018000)?外部已扩张了RAM

(在采用分页机制的情况下) 

[此贴子已经被作者于2006-12-8 16:19:02编辑过]


作者: yunfeng    时间: 2006-12-10 18:42

中断程序必须放在固定页中,即$4000-7FFF, $C000-$FF00
如果想放在固定页中的特定地址:
在prm文件中,分为几段,比如SEG1为$5000-$57FF,在中断服务程序之前加入:#pragma CODE_SEG SEG1


作者: ky3453079    时间: 2006-12-11 09:03

那我想把中断程序中要执行的程序放到别的页中,在中断服务程序中用个跳转指令跳过去
这样做有没有意义?
作者: strongchen    时间: 2006-12-11 09:52

这样做当然可以,但是为什么要这样?除非非分页地址中放不下了。
作者: ky3453079    时间: 2006-12-11 11:30

我是想提高中断程序里面的执行速度,把他放到RAM中节省时间。
如果我在中断加跳转指令,会不会浪费时间?有没有直接把中断向量更改到RAM那边的方法。如何把一个数组的地址定义到外部RAM的确定地址中?

[此贴子已经被作者于2006-12-11 11:30:34编辑过]


作者: strongchen    时间: 2006-12-11 14:38

把程序放到RAM中并不会加快程序的执行速度。
作者: ky3453079    时间: 2006-12-11 15:23

那有没有把中断向量更改到RAM那边的方法?
如果我采用分页机制情况下,把外部的RAM弄到页00-30这边,之后我把一个数组(全局变量)定义在页1中,好象在主程序中,无法对这个数组直接赋值。
作者: ky3453079    时间: 2006-12-13 17:19

没人帮我解答下么?
作者: strongchen    时间: 2006-12-15 15:17

你可以让中断矢量直接指向RAM,中断后程序就会跳入RAM中。但你必须保证所跳入的地址中有有效的程序代码,否则程序会跑飞。
作者: ky3453079    时间: 2006-12-18 08:56

怎么弄使中断矢量直接指向RAM?
作者: jallee    时间: 2006-12-19 09:51

请问中断怎么使用。最好给给个例子。有没有关于这个方面的资料,急需!
不胜感激~




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0