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

最近在用arm-2014.05编译器编译Linux内核时,出现如下问题:

 Error: selected processor does not support ARM mode 'smc 0'

这是我使用的交叉编译器:

解决步骤:

(1)arch/arm/mach-exynos/include/mach/smc.h文件:

              在第54行和第69下面添加:

    __asm__ volatile (
       +       ".arch_extension sec\n"        //
        "smc    0\n"
        : "+r"(reg0), "+r"(reg1), "+r"(reg2), "+r"(reg3)
    );

(2)arch/arm/mach-exynos/sleep-exynos4.S文件:
              在第43行上面添加:

#ifdef   CONFIG_ARM_TRUSTZONE
          .arch_extension sec
#endif


(3)arch/arm/mach-exynos/idle-exynos4.S文件:
             在第47行上面添加:

#ifdef   CONFIG_ARM_TRUSTZONE
          .arch_extension sec
#endif


再次使用make zImage命令,发现出现新的错误:

Can't use 'defined(@array)' (Maybe you should just omit the defined()?) at kernel/timeconst.pl line 373.
/home/skyfall/kernel/kernel/iTop4412_Kernel_3.0/kernel/Makefile:140: recipe for target 'kernel/timeconst.h' failed
make[1]: *** [kernel/timeconst.h] Error 255
Makefile:953: recipe for target 'kernel' failed

这个问题我在是编译树莓派内核时遇到过,修改kernel/timeconst.pl文件内容,

将if (!defined(@val)) 改为if (!(@val))。

再次编译即可。

猜你喜欢

转载自blog.csdn.net/zxy131072/article/details/84987232