jialaolian 发表于 2012-12-29 14:36:30

关于51单片机的Bootloader问题,请问各位

      最近给一个51内核的soc单片机弄一个Bootloader,Bootloader的功能是方便软
件升级,单片机上电时检测是否需要升级,如果需要升级则响应上位机的通信要求,
插写自身的flash。升级完成后自动跳转到应用程序中执行。

   碰到了个问题,当程序跳转到应用程序中时好像不能进入中断了,其他程序能正
常执行,但是不能进入中断函数执行函数了

   我的bootloader预留空间大小为0x2000,应用程序开始地址为0x2000,我是让
bootloader程序和应用程序分开编译的,然后将两个hex文件合在一起,在bootloader
中跳转

    我的应用程序中的startup.a51文件修改成0x2000,然后编译器的interrupt vectors at address
也已经修改为0x2000,但是还是不能执行应用程序中的中断程序

    这是为什么呢?有没有哪位朋友做过这个的,给小弟点拨下,不甚感激。

jialaolian 发表于 2012-12-29 15:14:24

忘记了说一点,Bootloader中未用中断

zhanyanqiang 发表于 2012-12-29 16:32:19

不懂,顶你一下,顺便等答案~~~~

netawater 发表于 2012-12-29 16:58:47

硬件中断地址是固定的,51是从0x03开始,你可以检查这个地方的指令,编译器的interrupt vectors at address这个设置想必改不了bootloader这个地方的指令。

jialaolian 发表于 2012-12-30 11:59:36

嗯,是的,正如楼上朋友说的那样,我没有处理中断向量的重映射


谢谢了,呵呵
页: [1]
查看完整版本: 关于51单片机的Bootloader问题,请问各位