关于51单片机的Bootloader问题,请问各位
最近给一个51内核的soc单片机弄一个Bootloader,Bootloader的功能是方便软件升级,单片机上电时检测是否需要升级,如果需要升级则响应上位机的通信要求,
插写自身的flash。升级完成后自动跳转到应用程序中执行。
碰到了个问题,当程序跳转到应用程序中时好像不能进入中断了,其他程序能正
常执行,但是不能进入中断函数执行函数了
我的bootloader预留空间大小为0x2000,应用程序开始地址为0x2000,我是让
bootloader程序和应用程序分开编译的,然后将两个hex文件合在一起,在bootloader
中跳转
我的应用程序中的startup.a51文件修改成0x2000,然后编译器的interrupt vectors at address
也已经修改为0x2000,但是还是不能执行应用程序中的中断程序
这是为什么呢?有没有哪位朋友做过这个的,给小弟点拨下,不甚感激。 忘记了说一点,Bootloader中未用中断 不懂,顶你一下,顺便等答案~~~~ 硬件中断地址是固定的,51是从0x03开始,你可以检查这个地方的指令,编译器的interrupt vectors at address这个设置想必改不了bootloader这个地方的指令。 嗯,是的,正如楼上朋友说的那样,我没有处理中断向量的重映射
谢谢了,呵呵
页:
[1]