解决编译“ 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
后,编译通过。

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

Android编译问题记录

Android系统编译问题    获取Android源码流程: 从 https://code.google.com/p/git-repo/downloads/list  下载repo脚...
  • sdvch
  • sdvch
  • 2015年03月11日 15:25
  • 956

Trustzone 硬件架构

1. 用于ARMv8-A / ARMv7-A / ARMv6Z的ARM TrustZone 基本介绍TrustZone技术为全系统的安全性和可信赖平台的创建提供了基础。系统的任何部分都可以设计为安全的...
  • yiyueming
  • yiyueming
  • 2017年06月13日 16:00
  • 639

解决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
  • 3229

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

解决编译“ Error: selected processor does not support ARM mode 'smc 0'”问题
  • kuangzuxiaoN
  • kuangzuxiaoN
  • 2017年05月17日 08:54
  • 1171

gperftools 移植到arm

1.https://gperftools.googlecode.com/files/gperftools-2.0.tar.gz 2.tar zxvf 进行解压 3.cd gperftools-...
  • mynameislu
  • mynameislu
  • 2014年05月28日 11:23
  • 1757

ARM指令之精髓DMB,DSB,ISB指令

4.3.5 汇编语言:指令隔离(barrier)指令和存储器隔离指令 CM3 中的另一股新鲜空气是一系列的隔离指令(亦可以译成“屏障”、“路障”,可互换使用——译者 注)。它们在一些结构比较复杂的存...
  • guojing3625
  • guojing3625
  • 2013年11月22日 08:57
  • 10866

将mdk工程转为cmake工程探索(一)

将mdk工程转为cmake工程探索 os:ubuntu 16.04cmake 基本命令add_executable($(project) $(source)) 将source 编译成可执行文件 ...
  • LFTUUI
  • LFTUUI
  • 2017年02月02日 00:22
  • 510

29. secure world对smc请求的处理------monitor模式中的处理

libteec和tee_supplicant调用接口之后最终会调用到OP-TEE驱动来触发对应的SMC操作。在OP-TEE驱动中触发SMC操作的方法是调用arm_smccc_smc(a0, a1, a...
  • shuaifengyun
  • shuaifengyun
  • 2017年06月12日 16:04
  • 1013

解决方案 VB编写的数据库程序在Win7 SP1编译无法在XP系统上使用的问题

解决方案 VB编写的数据库程序在Win7 SP1编译无法在XP系统上使用的问题 可能出现的错误提示有: 1、430 Class does not support Automation or do...
  • woolnil
  • woolnil
  • 2012年09月14日 20:18
  • 8974

VB6在64位WIN7系统加载组件报错:Object library not registered 的解决

VB6在Win7的64位系统上加载组件时,有可能出现下面的错误提示:(“Object library not registered”)...
  • tanaya
  • tanaya
  • 2014年04月22日 21:51
  • 6766
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:解决编译“ Error: selected processor does not support ARM mode `smc #0”问题
举报原因:
原因补充:

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