Board logo

标题: s08 bootloader [打印本页]

作者: yywhut    时间: 2010-8-9 11:03     标题: s08 bootloader

请教各位大虾:
我想做个MC9S08DZ60的BOOTLOADER,发现它的中断重映射功能不太好用,因为寄存器不是可以随意读写的,是从flash中映射过来的,所以这个功能不太好用,现在只能用中断二次跳转这种方法,但是又发现一个问题,就是它的中断进入的时候硬件在压堆栈的时候,只压了pc,x,a,ccr,没有压h,而是编译器自动添加了一条语句pshh.这样就存在一个问题.因为bootloader 里面的中断会有一条pshh, 而用户应用程序里面中断也会有一条pshh,这样就会出现错误,不知道该怎么解决这个问题.

如果我在bootloader 里面的中断中强行加一句pulh, 不让bootloader里面去压这个寄存器,然后进行跳转,但是跳转又要用到h,不压又破坏了h.
不知道跳转能不能以莫个地址中的数据做为指针来跳转?
比如说0x3000是个 flash地址,里面存放了用户的中断程序地址0x4000,
我想以0x3000中的内容进行跳转,
试了下jmp [0x3000] 这样写不行.
必须要asm ldhx 0x3000; 然后jmp 0,x; 这样写才行.这样就把h寄存器給破坏了.
请教有什么解决办法吗?
作者: yywhut    时间: 2010-8-9 13:49

strongchen  大哥,帮个忙吧?
作者: w5299263    时间: 2010-8-16 14:46

高深那,一句看不懂。
作者: Henry_Yu    时间: 2010-9-3 23:01

中断向量映射,两级跳转,一个跳到保护区内固定位置,一个跳到保护区外的相应位置




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