liangqingxin 发表于 2008-11-9 09:13:46

移植UCOSII时,C函数无法识别汇编函数【恢复】

移植UCOSII到AVR128时,C函数无法识别汇编函数,汇编函数也无法调用C函数,汇编函数(OSStartHighRdy OSCtxSw)、C函数( OSIntCtxSw OSTimeTick OSExit OSIntExit)都无法报错为未定义。不知道是为什么?在汇编函数OS_CPU_A.S中,已经将汇编函数声明为.global  C函数声明为.extern了,但还是同样的错误,不知道那里出问题了,郁闷中,弄了好几天了,找不出来错误来,我用的UCOSII源代码是252版本的,来自邵贝贝那本书的源代码。请各位高手指点下,谢谢了。

fengxiasha 发表于 2008-12-20 03:04:39

楼主是否看清楚所采用编译器 C掉汇编的规则 ?



例如 如果是GCC的话 C调汇编函数 汇编函数定义须在前加下划线 例如:



定义如下汇编函数 :



.public _test

_test: .proc

           //  .....

    retf

.endp



C中调用格式为:



extern void test(void);

int main()

{

    test();

}











本贴被 fengxiasha 编辑过,最后修改时间:2008-12-20,03:18:20.

liangqingxin 发表于 2008-11-10 08:40:32

我是用AVRSTUDIO和avrgcc的开发环境。工程文件如下所上传的文件。真搞不懂那里出了什么问题。期待大虾的解答。。。。。。

这是AVRSTUDIO+AVRGCC的工程文件ourdev_491552.rar(文件大小:86K) (原文件名:my_ucos2.rar) 

marlbroro 发表于 2008-11-9 16:41:52

建议楼主将makefile文件放到上面来。

bcfai123 发表于 2009-9-30 18:16:14

mark
页: [1]
查看完整版本: 移植UCOSII时,C函数无法识别汇编函数【恢复】