解决方法:编译IMX6ULL裸机中断程序提示错误selected processor does not support `cpsid i‘ in ARM mode

2023-05-16

一、问题

编译IMX6ULL野火裸机中断程序出现错误:

arm-none-eabi-gcc -g -c start.S 
start.S: Assembler messages:
start.S:45: Error: selected processor does not support `cpsid i' in ARM mode
start.S:57: Error: selected processor does not support `cps #0x12' in ARM mode
start.S:61: Error: selected processor does not support `cps #0x1F' in ARM mode
start.S:65: Error: selected processor does not support `cps #0x13' in ARM mode
start.S:70: Error: selected processor does not support `blx r2' in ARM mode
start.S:73: Error: selected processor does not support `cpsie i' in ARM mode
start.S:131: Error: selected processor does not support `cps #0x13' in ARM mode
start.S:135: Error: selected processor does not support `blx r2' in ARM mode
start.S:139: Error: selected processor does not support `cps #0x12' in ARM mode

二、原因

因为arm-none-eabi-gcc的版本比较高,不支持以上指令。

查看当前gcc版本:
arm-none-eabi-gcc -v
当前版本为10.3.1

三、解决方法

3.1 下载Linaro GCC

Linaro 是一间由ARM发起,与其它ARM SOC公司共同投资的非盈利性质的开放源代码软件工程公司,Linaro 开发了很多软件,最著名的就是 Linaro GCC 编译工具链(编译器)。

官网下载:
【老版本,稳定版】https://releases.linaro.org/components/toolchain/binaries/
【新版本,开发版】https://snapshots.linaro.org/gnu-toolchain/
百度网盘:https://pan.baidu.com/s/1w7-PwMcCwXZpOhjfQYFxQg?pwd=2jh0 提取码:2jh0

  • 选择版本号

  • 选择ARM架构类型

  • 选择具体的编译器平台

  • 创建存放编译器的目录
    sudo mkdir /usr/local/arm

  • 将编译器复制到刚刚的目录
    sudo cp gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf.tar.xz /usr/local/arm/ -f

  • 将编译器工具进行解压
    sudo tar -vxf gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf.tar.xz

  • 修改环境变量,使编译器永久生效
    使用 VI 打开/etc/profile 文件:
    sudo vi /etc/profile
    打开/etc/profile 以后,在最后面输入如下所示内容:
    export PATH=$PATH:/usr/local/arm/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf/bin

  • 修改好以后就保存退出,重启系统,交叉编译工具链(编译器)就安装成功了
    sudo reboot

  • 安装完成后使用如下命令查看版本
    arm-linux-gnueabihf-gcc –v

  • 如果是Linaro 4.9的老版本编译器,还需要安装额外的库
    sudo apt-get install lsb-core lib32stdc++6

3.2 修改makefile

  • 使用 VIM 打开/embed_linux_driver_tutorial_imx6_code-master/bare_metal/interrupt_init/makefile 文件:
    vim makefile

  • arm-none-eabi- 修改为 arm-linux-gnueabihf-
    修改后:

  • 重新编译成功


• 由 Leung 写于 2023 年 3 月 19 日

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

解决方法:编译IMX6ULL裸机中断程序提示错误selected processor does not support `cpsid i‘ in ARM mode 的相关文章

随机推荐