解决编译“ Error: selected processor does not support ARM mode `smc #0”问题

原创 2012年05月16日 11:07:16

在用arm2011.09编译器编译pandaboard的x-loader时遇到如下编译问题:

 Error: selected processor does not support ARM mode `smc #0

google了一下,貌似这样的问题还是挺多的,有几种方法,一一实验。

1.

replacing in arch/arm/mach-omap2/Makefile:

AFLAGS_sleep24xx.o                      :=-Wa,-march=armv6
AFLAGS_sleep34xx.o                      :=-Wa,-march=armv7-a

to:

AFLAGS_sleep24xx.o                      :=-Wa,-march=armv6
AFLAGS_sleep34xx.o                      :=-Wa,-march=armv7-a$(plus_sec)

helps compiling (see also: https://patchwork.kernel.org/patch/369681/)

在config.mk中修改后,实验无效,

$(plus_sec)
为空,无效。

2. uboot的faq,http://www.denx.de/wiki/ELDK-5/FrequentlyAskedQuestionsAndAnswers,标题Cannot compile Linux kernel version 2.6.32 for armv7a

Question:
I want to compile a vendor-provided old Linux kernel tree (kernel version 2.6.32) with ELDK 5.0 for the armv7a configuration. Unfortunately this fails with errors like this one:
 ...
  CC      arch/arm/kernel/sysfs_v7.o
/tmp/ccwkv7On.s: Assembler messages:
/tmp/ccwkv7On.s:249: Error: selected processor does not support ARM mode `smc #0'
/tmp/ccwkv7On.s:289: Error: selected processor does not support ARM mode `smc #0'
make[1]: *** [arch/arm/kernel/sysfs_v7.o] Error 1

Answer:
Your kernel tree is too old for the ELDK 5.0 tool chain.You can work around this problem by applying the following patch to your kernel tree:
--- arch/arm/kernel/sysfs_v7.c.ORIG   2011-01-27 11:47:54.000000000 +0100
+++ arch/arm/kernel/sysfs_v7.c   2011-05-10 08:51:58.953252638 +0200
@@ -76,7 +76,8 @@
    asm ("mrc p15, 0, %0, c1, c0, 1" : "=r"(val));
    SETBITS(val, 0xff8, new);
    val &= ~2;
-   asm ("mov r0,  %0   \n\t"
+   asm (".arch_extension sec\n\t"
+        "mov r0,  %0   \n\t"
         "mov r12, #3   \n\t"
         "smc #0      \n\t"
         :: "r"(val) : "r0", "r12");
@@ -107,7 +108,8 @@
 
    asm ("mrc p15, 1, %0, c9, c0, 2" : "=r"(val));
    SETBITS(val, 0xbc00000, new);
-   asm ("mov r0,  %0   \n\t"
+   asm (".arch_extension sec\n\t"
+        "mov r0,  %0   \n\t"
         "mov r12, #2   \n\t"
         "smc #0      \n\t"
         :: "r"(val) : "r0", "r12");

在代码中添加
.arch_extension sec
后,编译通过。

总结:应该是代码写法与编译器有冲突,需要在代码中声明扩展指令段

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

libmad编译移植到A20

第一次写博客和大家分享劳动成果,如果写得不好请大家海涵 我用的平台是蜂鸟开发板(全志A20)。 在网上下载的libmad-0.15.1b.tar.gz,百度一搜一大把,我就不提供链接了。 解压后执行:...

ubuntu编译qt5.3 WebKit

要编译基于QT的WebKit,首先要安装QT(我这里安装的QT5.3.1)。QT5.3.1源码下载http://download.qt-project.org/archive/qt/5.3/5.3.1...

解决NDK交叉编译 selected processor does not support ARM mode libtheora的错误

下载最新的libtheora, wget http://downloads.xiph.org/releases/theora/libtheora-1.2.0alpha1.tar.gz 解压缩,然后使...
  • zangcf
  • zangcf
  • 2014-03-26 17:54
  • 3001

解决编译“ Error: selected processor does not support ARM mode 'smc 0'”问题

解决编译“ Error: selected processor does not support ARM mode 'smc 0'”问题

江湖奇侠传152回 endurer注:知圆营连云岛娶东夷公主 酒鬼隐屋梁上敬新郎新娘

第一百五十二回 荒岛上数言结同志 喜筵前一卮奉新人   知圆从红莲寺中逃出后,蓄发起俗后各处云游,觅地营巢,将此孤悬海中的无人荒岛取名连云岛,利用在红莲寺积下,藏放在外的资财,招收亡命之徒努力经营,岛...

驱动——使用readb,编译错误

最近在写一个驱动用readb和writeb等函数出现了错误,驱动在使用readb和writeb函数出现了如下的错误: /tmp/ccSI6uHX.s: Assembler messages: /tm...

RT3070wifi+linux(TMS320DM368)移植

参考文章: http://blog.sina.com.cn/s/blog_5d534d2201016t4j.html http://bbs.csdn.net/topics/390152921 ...

编译Linux3.16内核时出错说找不到includenux/compiler-gcc5.h

问题: 编译Linux3.16内核时 交叉编译环境用sudo apt-get install gcc-arm-linux-gnueabi命令获取时,出错说找不到includenux/compiler-...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)