|
技术交流 | 电路欣赏 | 工控天地 | 数字广电 | 通信技术 | 电源技术 | 测控之家 | EMC技术 | ARM技术 | EDA技术 | PCB技术 | 嵌入式系统 驱动编程 | 集成电路 | 器件替换 | 模拟技术 | 新手园地 | 单 片 机 | DSP技术 | MCU技术 | IC 设计 | IC 产业 | CAN-bus/DeviceNe |
大侠帮帮忙:在c中嵌入汇编语言报错(问题解决) |
作者:geergeer 栏目:DSP技术 |
首先对浏览帖子的大侠表示感谢!!小弟在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:小弟在定义芯片寄存器的头文件里只定义了几个程序要用到的寄存器,程序中也只是对要用到的寄存器进行了初始化 * - 本贴最后修改时间:2006-10-18 9:23:16 修改者:geergeer |
2楼: | >>参与讨论 |
作者: 56789 于 2006/10/17 21:23:00 发布:
c54 的汇编指令好像分为两类,好像不能同时用的 0 |
3楼: | >>参与讨论 |
作者: geergeer 于 2006/10/18 8:15:00 发布:
感谢 感谢 56789 的回复,小弟在c中嵌入仅有的一条汇编语句难道会冲突??这条语句没有语法错误吧?? |
4楼: | >>参与讨论 |
作者: geergeer 于 2006/10/18 9:11:00 发布:
问题解决 在嵌入的汇编语句里的引号与汇编语句之间要存在空格!!! 例如 asm("RSBX INTM") 不行,而asm(" RSBX INTM ")是可以的,这个错误对于菜鸟级的小弟而言,查得好苦啊 |
|
|
免费注册为维库电子开发网会员,参与电子工程师社区讨论,点此进入 |
Copyright © 1998-2006 www.dzsc.com 浙ICP证030469号 |