很抱歉我没有用过这款单片机,但是从网站上面的FAQ中,我查到了一些信息,仅供您参考。 H8的堆栈指针的初值不能设定为计数地址,当您建立工程的时候,初始化的值是偶数地址。 但是,如果使用E8/E8a调试的时候,调试器自身会占用一定的用户堆栈空间,而这个分配在建立工程的时候已经自动在RAM中建立起来了。 但是,有时由于用户故意把堆栈指针设定于奇数地址,或者程序曾经跑飞过致使堆栈指针设定到了奇数地址等等情况后,就会报错“「Stack pointer is odd」”。 如果遇到这样的情况,单单复位单片机使不能将堆栈指针的起始地址改回来的,所以请在执行程序之前点击菜单-->View-->CPU-->Register,将堆栈指针手动修改为与初始值相同的值,可能是修改ER7或R7寄存器吧,我不太清楚,你可以自己找一下。 目前只能帮你这么多了,应该是E8/E8a调试H8单片机时的一个注意事项吧。仅供参考