解決編譯核心時“ 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))。
再次編譯即可。