导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→51高手看过来[liulu8382]

 *第20334篇: 51高手看过来

  
楼 主:liulu8382 2004年3月22日11:11
 51高手看过来
怎么把C和汇编合在一起?
我知道的有两种,
第一,直接在C程序中加入汇编
   例如:
#pragma asm
NOP ;
NOP
NOP
MOV P1, #0
#pragma endasm
   我编译不成功,编译结果如下
Build target 'Target 1'
compiling testjianhe1.C...
TESTJIANHE1.C(14): error C272: 'asm/endasm' requires src-control to be active
TESTJIANHE1.C(163): error C272: 'asm/endasm' requires src-control to be active
Target not created
查过资料,方法如下,但不知怎么做,望高手指教。
当编译器在命令行加入”src”选项时,在”asm”和”endasm”中的代码将被复制到输出的SRC文件中如果你不指定”src”选项编译器将忽略在”asm”和”endasm”中的代码很重要的一点是编译器不会编译你的代码并把它放入它所产生的目标文件中必须用得到的.src文件经过编译后再得到.obj文件从上面的文件将得到下面的.src文件


第二种方法就是在一个项目里面编译两个不同的文件,这个方法的怎么实现。望高手指教,

急急

  
2楼:guest 2004年3月23日13:15
 选项设置
Generate Assem

选项设置
Generate Assembler SRC File
Assemble SRC File
勾上
再试试看
  
3楼:guest 2004年3月25日16:36
 main.c
extern void 

main.c
extern void a_func (void);

void main (void)
{
a_func ();
}
a_fun.a51
NAME A_FUNC

?PR?a_func?A_FUNC    SEGMENT CODE
 EXTRN CODE (c_func)
 PUBLIC a_func

 RSEG  ?PR?a_func?A_FUNC
a_func:
 USING 0
 LCALL  c_func
 RET

 END
c_func.c
void c_func (void)
{
}
這是從c51 調用A51 然后再調用C51


  
4楼:guest 2004年12月2日17:21
 如何导入工程?请大虾指点[em00]
如何导入工程?请大虾指点

>>>>>>对该主题发表你的看法

本主题贴数4,分页: [第1页]


[上一篇主题]:求助!控制器为SEED1335的液晶显示如何打印曲线?

[下一篇主题]:FLASH MEMORY