交叉编译器

IMX6ULL系列学习记录-kernel篇

泄露秘密 提交于 2020-02-08 09:17:59
主题:IX6ULL kernel移植记录(参考官方文档i.MX_BSP_Porting_Guide) 硬件平台:野火IMX6ULL 软件:ubuntu19.04 交叉编译器:gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf U-Boot:uboot-imx-rel_imx_4.1.15_2.1.0_ga kernel:linux-imx-rel_imx_4.1.15_2.1.0_ga 日期:2019-11-10 目的:从NXP官方的IMX6IMX6ULL参考板移植kernel到用户IMX6ULL。 过程: 2.1 kernel版本选择 linux-imx-rel_imx_4.1.15_2.1.0_ga.tar 2.2 找到配置文件目录 arch/arm/configs 在此目录里面可以查看到关于imx系列的配置文件,但是IMX6ULL是arm-v7架构的,所以有俩选型,带mfg的是可以使用mfg工具烧写整个系统的,这里我后续将使用SD卡烧写,所以不需要mfg版,还有一个问题,经过对比发现不带mfg版配置比mfg版本的默认配置细致一点多一点,比如后续说到了sii902x驱动(lcd转hdmi)在mfg版本中就没有配置,而非mfg版已经默认配置好了。 mx_v4_v5_defconfig imx_v6_v7_defconfig

arm-linux-gcc交叉编译器安装

两盒软妹~` 提交于 2019-12-10 05:01:50
在网上下载arm-linux-gcc-4.4.3.tar.gz。 1 、解压#tar -zxvf arm-linux-gcc-4.4.3.tar.gz 2 、打开解压目录,将FriendlyARM文件夹拷贝到文件夹usr/local/。 cd /usr/local/ cp -rv FriendlyARM /usr/local/ (交叉编译程序集都在/usr/local/arm/4.4.3/bin) 3 、修改环境变量,将交叉编译器的路径加入到PATH。 方法一(未测过):修改/etc/bash.bashrc文件 #vi /etc/bash.bashrc 在最后加上: export PATH=$PATH:/usr/local/FriendlyARM/toolschain/4.4.3/bin export PATH 方法二(测试,无用):修改/etc/profile文件: # vi /etc/profile 增加路径设置,在末尾添加如下,保存/etc/profile文件: export PATH=$PATH:/usr/local/FriendlyARM/toolschain/4.4.3/bin 方法三:#export PATH=$PATH:/usr/local/FriendlyARM/toolschain/4.4.3/bin 其实,直接采用方法三即可。 4 、立即使新的环境变量生效。

fatal error: linux/compiler-gcc5.h: No such file or directory

假装没事ソ 提交于 2019-12-04 17:46:10
可能大家在编译内核、u-boot或者其他的时候遇到过这样子的问题 我们高高兴兴、满怀信心的敲下make这个万金油命令后却沮丧的发现结果并不如我们期待的那样子的,出现了这样子的错误信息 fatal error: linux/compiler-gcc5.h: No such file or directory 哇塞,真是沮丧呀,然后就是在网上无边无际的找解决办法,当然万能的百度也给了我很多答案,大多包括以下几种: 1、将inclue/linux/中的compiler-gcc4.h或者compiler-gcc3.h亦或者其他compiler-gcc.h复制为include/linux/compiler-gcc5.h 2、将ubuntu发行版中的compiler-gcc5.h直接拷贝到include/linux目录中 3、在网上找一个大神的compiler-gcc5.h放入include/linux之中 我仔仔细细的试了上面所有的方法,最后很明显以失败告终,所以我不得不想其他办法,经过了很长时间的思考后,我决定降低arm-linux的版本,我把交叉编译器的版本从5.3降低到了4.7,经过一番正常的折腾之后,哇塞,成功了,可以编译了。 降低交叉编译器的版本 sudo apt install gcc-4.7-arm-linux-gnueabi 来源: CSDN 作者: haosouwj 链接:

交叉编译器 arm-linux-gnueabi 和 arm-linux-gnueabihf 的区别

断了今生、忘了曾经 提交于 2019-12-04 03:40:27
自己之前一直没搞清楚这两个交叉编译器到底有什么问题,特意google一番,总结如下,希望能帮到道上和我有同样困惑的兄弟..... 原文链接 http://www.hi-beiyu.com/archives/312 一. 什么是ABI和EABI 1) ABI: 二进制应用程序接口(Application Binary Interface (ABI) for the ARM Architecture) 在计算机中,应用二进制接口描述了应用程序(或者其他类型)和操作系统之间或其他应用程序的低级接口. ABI涵盖了各种细节,如: 数据类型的大小、布局和对齐; 调用约定(控制着函数的参数如何传送以及如何接受返回值),例如,是所有的参数都通过栈传递,还是部分参数通过寄存器传递;哪个寄存器用于哪个函数参数;通过栈传递的第一个函数参数是最先push到栈上还是最后; 系统调用的编码和一个应用如何向操作系统进行系统调用; 以及在一个完整的操作系统ABI中,目标文件的二进制格式、程序库等等。 一个完整的ABI,像Intel二进制兼容标准 (iBCS) ,允许支持它的操作系统上的程序不经修改在其他支持此ABI的操作体统上运行。 ABI不同于应用程序接口(API),API定义了源代码和库之间的接口,因此同样的代码可以在支持这个API的任何系统中编译