网站公告列表

  没有公告

加入收藏
设为首页
联系站长
您现在的位置: 61IC中国电子在线 >> 服务导航 >> 帮助中心 >> C5000 >> 文章正文
  在c中嵌入汇编语言报错(问题解决)         ★★★ 【字体:
在c中嵌入汇编语言报错(问题解决)
作者:61IC    文章来源:本站原创    点击数:    更新时间:2007-1-2    

 

问题如下:

 

小弟在ccs的c541 device simulator环境下编了一个串口输出的小程序,编译没报错,但是run起来功能没实现,单步调的时候发现:用*st1=0x0000;的语句赋值给st1时,该寄存器的INTM(全局中断使能)位没有变,依然为复位时的1,看了一下书,书上说该位不能用存储器写的方式设置,于是小弟程序改为嵌入汇编语句:
asm(“RSBX INTM”);让INTM清0以使能全局中断
结果系统编译报错:
-------------------------  dsptestprogram.pjt - Debug  -------------------------
[dsptestprogram.c] "C:\CCStudio_v3.1\C5400\cgtools\bin\cl500" -g -fr"C:/CCStudio_v3.1/MyProjects/dsptestprogram/Debug" -d"_DEBUG" -@"Debug.lkf" "dsptestprogram.c"
"C:\DOCUME~1\haoyun\LOCALS~1\Temp\TI33610", ERROR!   at line 165: [E0002]
         Invalid mnemonic specification   <————错误提示
    RSBX INTM

1 Assembly Error, No Assembly Warnings

Errors in Source - Assembler Aborted

>> Compilation failure

[vectors.asm] "C:\CCStudio_v3.1\C5400\cgtools\bin\cl500" -g -fr"C:/CCStudio_v3.1/MyProjects/dsptestprogram/Debug" -d"_DEBUG" -@"Debug.lkf" "vectors.asm"

Build Complete,
  1 Errors, 0 Warnings, 0 Remarks.
有没有大侠知道是怎么回事吗??小弟实在菜得很~~
ps:小弟在定义芯片寄存器的头文件里只定义了几个程序要用到的寄存器,程序中也只是对要用到的寄存器进行了初始化

 

解答如下:

 

问题解决了,在嵌入的汇编语句里的引号与汇编语句之间要存在空格!!!
例如 asm("RSBX INTM") 不行,而asm(" RSBX INTM ")是可以的,这个错误对于菜鸟级的小弟而言,查得好苦啊

               欢迎点击进入:TI德州中文网   (国内唯一针对TI应用的中文技术网站)    文章录入:admin    责任编辑:admin 
  • 上一篇文章:

  • 下一篇文章:
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    最新热点 最新推荐 相关文章
    LF2407 出现的怪问题
    DSP2812中定义软中断
    观察不了寄存器的值?
    线电压如何转换为相电压?
    C语言中的 .switch段
    F2812的CCS和2407的CCS是一样…
    TMS320LF2407 AD疑问
    有没有什么技巧/方法保证烧写…
    为什么自己建立的项目没有CM…
    如何将*.h文件加到项目的Inc…
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    站长:61IC 湘ICP备05002478号