我在atmega128上移植ucos—ii的代码,感觉OS_CPU_S.S代码中有一段地址设置如下:
SREG=0X3FTCNT2=0X24SPL=0X3DSPH=0X3E
编译后程序无错
但我有疑问就是atmega128定义的地址如下:
SREG=0X5FTCNT2=0X44SPL=0X5DSPH=0X5E
改后编译出现如下错误:
E OS_CPU_S.s(160): 93 not in range between 0 and 63!E OS_CPU_S.s(160): 94 not in range between 0 and 63!E OS_CPU_S.s(161): 95 not in range between 0 and 63!E OS_CPU_S.s(195): symbol '_OSCtxSw': address changed at phase 3: old 0064 new 005E at line 195!E OS_CPU_S.s(197): 95 not in range between 0 and 63!E OS_CPU_S.s(198): 94 not in range between 0 and 63!E OS_CPU_S.s(198): 93 not in range between 0 and 63!E OS_CPU_S.s(218): 93 not in range between 0 and 63!E OS_CPU_S.s(218): 94 not in range between 0 and 63!E OS_CPU_S.s(219): 95 not in range between 0 and 63!E OS_CPU_S.s(258): symbol '_OSIntCtxSw': address changed at phase 3: old 0122 new 0110 at line 258!E OS_CPU_S.s(259): 93 not in range between 0 and 63!E OS_CPU_S.s(260): 94 not in range between 0 and 63!E OS_CPU_S.s(283): 93 not in range between 0 and 63!E OS_CPU_S.s(283): 94 not in range between 0 and 63!E OS_CPU_S.s(284): 95 not in range between 0 and 63!E OS_CPU_S.s(297): symbol '_OSTickISR': address changed at phase 3: old 01A2 new 0186 at line 297!E OS_CPU_S.s(299): 95 not in range between 0 and 63!E OS_CPU_S.s(305): 68 not in range between 0 and 63!E OS_CPU_S.s(317): 95 not in range between 0 and 63E:\ICCAVR7.22\bin\imakew.exe: Error code 1E:\ICCAVR7.22\bin\imakew.exe: 'OS_CPU_S.o' removed.
不知如何呢?唉 我感觉应该没错,但是出现如上错误,我以查找了很多资料,不知问题所在,希望能给予解答,十分感谢!