最近闲,有大把时间。想学习下linux内核核心层的一些东西。准备使用几年前买的周立功的imx280开发板。
最后移植成功的代码放在: https://github.com/QtForQT/imx280_zlg.git
现在是 u-boot-2017.09 + Linux 4.19.88
一 内核修改
修改了arch/arm/boot/dts/imx28-evk.dts 里面调试串口使用的pin,和内存大小。
duart: serial@80074000 {
pinctrl-names = "default";
pinctrl-0 = <&duart_pins_b>;
status = "okay";
};
周立功的板子使用的是 duart_pins_b这一组的gpio
memory@40000000 {
reg = <0x40000000 0x04000000>;
};
内存也只有64MB
二 文件系统rootfs制作
利用buildroot制作的rootfs
make freescale_imx28evk_defconfig
make menuconfig
之前使用arm官网下载的交叉编译工具直接编译的busybox通过 readelf -a查看Tag_CPU_arch这个值一直是 V7而imx280使用的是v5te指令集。通过-march 和 mcpu选项也没有改变生成的指令集,中间.o文件全部是正确的。最后连接出来依然是V7指令集。