这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 综合技术 » 基础知识 » ADS1 ADS1。2中怎么嵌入汇编语言呢?

共2条 1/1 1 跳转至

ADS1 ADS1。2中怎么嵌入汇编语言呢?

院士
2006-09-17 18:14:16     打赏
ADS1 ADS1。2中怎么嵌入汇编语言呢?



关键词: 怎么     嵌入     汇编语言    

院士
2006-12-22 22:43:00     打赏
2楼
问 各位大哥:

有个问题我不太明白,请问在ADS1。2的C编译环境下,怎么嵌入汇编程序呢?怎么调用由汇编语言做的函数呢?请指点一二,谢谢。
1: 这个参观一下44b0的boot代码就明白了不管是C语言,还是汇编语言,它们的函数和变量都在符号表中存在.只要申明该变量或者函数为全局变量,那么汇编和C语言就可以互相调用.
在C语言中嵌入少量汇编的语句是:
_asm_(....) 2: C嵌入汇编的方法很多资料书籍都有介绍,方法如下:
  __ARM
    {
    LDR    R5,[R6]
    }


   3: 不行哦,老兄刚才试了一下两位建议的方法,好像都不能编译呢,代码如下:
OS_ENTER_CRITICAL();    
__ARM
{
    LDR    R5,[R6]
    MRS    r0, cpsr
}
   temp =0x1234;

出错:
Error   : C2456E: undeclared name, inventing 'extern int __ARM'
Main.c line 558   

Error   : (Serious) C2284E: expected ';' after command - inserted before '{'
Main.c line 558   

Error   : C2456E: undeclared name, inventing 'extern int LDR'
Main.c line 559   

Error   : (Serious) C2284E: expected ';' after command - inserted before 'R5'
Main.c line 559   

Error   : C2456E: undeclared name, inventing 'extern int R5'
Main.c line 559   

Error   : (Serious) C2291E: <expression> expected but found ''
Main.c line 559   

Error   : C2456E: undeclared name, inventing 'extern int R6'
Main.c line 559   

Error   : (Serious) C2284E: expected ';' after command - inserted before 'MRS'
Main.c line 560   

Error   : C2456E: undeclared name, inventing 'extern int MRS'
Main.c line 560   

Error   : (Serious) C2284E: expected ';' after command - inserted before 'r0'
Main.c line 560   

Error   : C2456E: undeclared name, inventing 'extern int r0'
Main.c line 560   

Error   : C2456E: undeclared name, inventing 'extern int cpsr'
Main.c line 561   

Error   : (Serious) C2284E: expected ';' after command - inserted before '}'
Main.c line 561   

4: 是不是哪里还好设置?是不是哪里还好设置? 5: herder file ok??

共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]