supsper1689 发表于 2008-3-25 15:59:11

问一个关于在mega8上移植ucos-ii的问题。

我刚接触这方面的东西,想把ucos-ii移植到mega8上,程序是从网上下的,在ICCAVR7中出现,
C:\iccv7avr\bin\imakew -f UCOS2.mak
    iccavr -c -e -D__ICC_VERSION="7.16A" -DATMega8-l -g -MEnhanced -MHasMul -Wa-W   -Wa-g D:\study\ucos_ii\ucos2_iccavr\iccavr\default_hook_functions.s
    iccavr -c -e -D__ICC_VERSION="7.16A" -DATMega8-l -g -MEnhanced -MHasMul -Wa-W   -Wa-g D:\study\ucos_ii\ucos2_iccavr\iccavr\OS_CORE.s
    iccavr -c -e -D__ICC_VERSION="7.16A" -DATMega8-l -g -MEnhanced -MHasMul -Wa-W   -Wa-g D:\study\ucos_ii\ucos2_iccavr\iccavr\os_cpu_c.s
    iccavr -c -e -D__ICC_VERSION="7.16A" -DATMega8-l -g -MEnhanced -MHasMul -Wa-W   -Wa-g D:\study\ucos_ii\ucos2_iccavr\iccavr\OS_FLAG.s
    iccavr -c -e -D__ICC_VERSION="7.16A" -DATMega8-l -g -MEnhanced -MHasMul -Wa-W   -Wa-g D:\study\ucos_ii\ucos2_iccavr\iccavr\OS_MBOX.s
    iccavr -c -e -D__ICC_VERSION="7.16A" -DATMega8-l -g -MEnhanced -MHasMul -Wa-W   -Wa-g D:\study\ucos_ii\ucos2_iccavr\iccavr\OS_MEM.s
    iccavr -c -e -D__ICC_VERSION="7.16A" -DATMega8-l -g -MEnhanced -MHasMul -Wa-W   -Wa-g D:\study\ucos_ii\ucos2_iccavr\iccavr\OS_MUTEX.s
    iccavr -c -e -D__ICC_VERSION="7.16A" -DATMega8-l -g -MEnhanced -MHasMul -Wa-W   -Wa-g D:\study\ucos_ii\ucos2_iccavr\iccavr\OS_Q.s
    iccavr -c -e -D__ICC_VERSION="7.16A" -DATMega8-l -g -MEnhanced -MHasMul -Wa-W   -Wa-g D:\study\ucos_ii\ucos2_iccavr\iccavr\OS_SEM.s
    iccavr -c -e -D__ICC_VERSION="7.16A" -DATMega8-l -g -MEnhanced -MHasMul -Wa-W   -Wa-g D:\study\ucos_ii\ucos2_iccavr\iccavr\OS_TASK.s
    iccavr -c -e -D__ICC_VERSION="7.16A" -DATMega8-l -g -MEnhanced -MHasMul -Wa-W   -Wa-g D:\study\ucos_ii\ucos2_iccavr\iccavr\OS_TIME.s
    iccavr -c -e -D__ICC_VERSION="7.16A" -DATMega8-l -g -MEnhanced -MHasMul -Wa-W   -Wa-g D:\study\ucos_ii\ucos2_iccavr\iccavr\test1.s
    iccavr -c -e -D__ICC_VERSION="7.16A" -DATMega8-l -g -MEnhanced -MHasMul -Wa-W   -Wa-g D:\study\ucos_ii\ucos2_iccavr\iccavr\uCOS_II.s
    iccavr -o UCOS2 -LC:\iccv7avr\lib -g -e:0x2000 -Wl-W -bfunc_lit:0x26.0x2000 -dram_end:0x45f -bdata:0x60.0x45f -dhwstk_size:30 -beeprom:0.512 -fihx_coff -S2 @UCOS2.lk
!ERROR file 'OS_CORE.o': undefined symbol 'push_gset1'
!ERROR file 'OS_CORE.o': undefined symbol 'push_gset2'
!ERROR file 'OS_CORE.o': undefined symbol 'push_gset3'
!ERROR file 'OS_FLAG.o': undefined symbol 'push_gset4'
!ERROR file 'OS_FLAG.o': undefined symbol 'push_gset5'
!ERROR file 'OS_CORE.o': undefined symbol '_OSIntCtxSw'
!ERROR file 'OS_CORE.o': undefined symbol '_OSCtxSw'
!ERROR file 'os_cpu_c.o': undefined symbol '_OSTickISR'
!ERROR file 'OS_CORE.o': undefined symbol 'pop_gset1'
!ERROR file 'OS_CORE.o': undefined symbol 'pop_gset2'
!ERROR file 'OS_CORE.o': undefined symbol 'pop_gset3'
!ERROR file 'OS_FLAG.o': undefined symbol 'pop_gset4'
!ERROR file 'OS_FLAG.o': undefined symbol 'pop_gset5'
!ERROR file 'OS_CORE.o': undefined symbol '_OSStartHighRdy'
!E test1.o(163): Code address 0:0x28 already contains a value
!E test1.o(163): Code address 0:0x29 already contains a value
!E test1.o(163): Code address 0:0x2a already contains a value
!E test1.o(163): Code address 0:0x2b already contains a value
C:\iccv7avr\bin\imakew.exe: Error code 1
Done: there are error(s). Exit code: 1. Tue Mar 25 15:57:34 2008
找了半天也没有资料啊,有谁帮忙指点一下啊。或者说说看那些书啊

yangsen 发表于 2008-3-25 16:12:21

icc里带有一个移植的例子不过好像有错,我曾经移植到M162上,M8跑ucos很勉强吧。会不会是你的ROM溢出了,有些模块链接不进去?你换个大点的CPU编译试试。

supsper1689 发表于 2008-3-25 16:43:50

yangsen。谢谢你。
我换成mega128后,把由ROM的造成问题解决了,但是还有:
!ERROR file 'OS_CORE.o': undefined symbol 'push_gset1'
!ERROR file 'OS_CORE.o': undefined symbol 'push_gset2'
!ERROR file 'OS_CORE.o': undefined symbol 'push_gset3'
!ERROR file 'OS_FLAG.o': undefined symbol 'push_gset4'
!ERROR file 'OS_FLAG.o': undefined symbol 'push_gset5'
!ERROR file 'OS_CORE.o': undefined symbol '_OSIntCtxSw'
!ERROR file 'OS_CORE.o': undefined symbol '_OSCtxSw'
!ERROR file 'os_cpu_c.o': undefined symbol '_OSTickISR'
!ERROR file 'OS_CORE.o': undefined symbol 'pop_gset1'
!ERROR file 'OS_CORE.o': undefined symbol 'pop_gset2'
!ERROR file 'OS_CORE.o': undefined symbol 'pop_gset3'
!ERROR file 'OS_FLAG.o': undefined symbol 'pop_gset4'
!ERROR file 'OS_FLAG.o': undefined symbol 'pop_gset5'
!ERROR file 'OS_CORE.o': undefined symbol '_OSStartHighRdy'
C:\iccv7avr\bin\imakew.exe: Error code 1
Done: there are error(s). Exit code: 1.

yangsen 发表于 2008-3-25 16:52:27

你在源程序里找找'push_gset1' 这些变量,看看定义在那里,_OSIntCtxSw' _OSCtxSw' _OSStartHighRdy' 是在汇编里的一个程序是不是没有声明成extern,_OSTickISR可以是汇编语言的也可以是C语言的,不过要用汇编写接口,icc好久不用了,我忘了当时怎么处理这个函数的了

chenerbox1 发表于 2008-3-25 16:57:17

感觉 ucos ii 移植到mega8上意义不大吧

yangsen 发表于 2008-3-25 17:00:58

找到我移植到162的文件发给你,你试试
点击此处下载ourdev_238520.rar(文件大小:20K)
页: [1]
查看完整版本: 问一个关于在mega8上移植ucos-ii的问题。