打印
[开发工具]

如何在MDK 下嵌入汇编语言?

[复制链接]
7020|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
天灵灵|  楼主 | 2009-2-12 15:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
请问在 MDK 下如何嵌入 汇编程序? 
参考帮助文件 __asm { .... ..... } 
提示错误:....sourcecommon.c(458): error: #1113: Inline assembler not permitted when generating Thumb code 

是否那里还需要设置?
沙发
天灵灵|  楼主 | 2009-2-12 16:09 | 只看该作者

请教香水城 版主!

请教香水城 版主!

使用特权

评论回复
板凳
香水城| | 2009-2-12 16:13 | 只看该作者

错误提示不是很清楚吗:不允许在Thumb模式使用嵌入汇编

使用特权

评论回复
地板
computer00| | 2009-2-12 16:17 | 只看该作者

改成ARM模式试试。应该是在工程选项里面设置的。

使用特权

评论回复
5
天灵灵|  楼主 | 2009-2-12 16:21 | 只看该作者

那要怎么改啊 ?

我这里好像就是ARM模式的啊

在那里改,请教下!!

我看帮助文件里写的是 
在程序头和尾加入 

#pragma arm 
   
汇编代码

#pragma thumb

式过了不好用 提示错误 ,处理器不支持
....sourcecommon.c(455): error:  #1114-D: this feature not supported on target architecture/processor

使用特权

评论回复
6
lut1lut| | 2009-2-12 17:41 | 只看该作者

内联汇编和内嵌汇编

LZ顶楼的错误在于,__asm("指令");这种语法是内联汇编的语法。

而RMDK下,内联汇编仅支持ARM汇编语言,不支持Thumb或者Thumb-2汇编语言;但内嵌汇编器支持Thumb和Thumb-2。

LZ5楼的错误在于,“target architecture/processor”及STM32的core cortex-M3是thumb-2指令,所以不支持ARM模式。

因此,对于STM32 在RMDK工具下,只能采用内嵌汇编的方式。

举例如下:

__asm void wait()
{
    nop
    BX lr
}

然后在之后的C代码中调用该函数:

void delay()
{
wait(); 
}

使用特权

评论回复
7
Airwill| | 2009-2-12 20:57 | 只看该作者

我也撞墙了才研读编译器说明而搞明白这点

不清楚, 为什么RMDK的内联汇编不支持Thumb

使用特权

评论回复
8
天灵灵|  楼主 | 2009-2-13 10:13 | 只看该作者

非常感谢 6楼 lut1lut

非常感谢 
6楼 lut1lut 
我已经测试成功了!

我对 “内联汇编和内嵌汇编” 概念不是很清楚。
你讲的很好,很明了。
再次感谢 lut1lut 及 在本楼回帖的朋友们!!!

开心!!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

8

主题

31

帖子

0

粉丝