系统版本:Ubuntu18.04-64
编译器版本:gcc version 7.4.0 (Ubuntu/Linaro 7.4.0-1ubuntu1~18.04.1)
uboot版本:2018.07 -linux4sam_6.0
板子型号:at91sama5d3x-xplained
MCU型号:sama5d36
内核移植主要是裁剪一些不需要的功能,使用对应的交叉工具链把内核重新编译,设备树文件按照硬件去配置。
一、配置文件路径
arch/arm/configs/sama5_defconfig
//配置文件路径
arch/arm/configs/sama5_defconfig
//声明环境变量,指定交叉编译器
$ export CROSS_COMPILE=arm-linux-gnueabi-
//先按照默认配置编译内核文件,看是否会报错,编译出来的文件先进行烧录,是否能正确引导文件系统;
$ make ARCH=arm sama5_defconfig
$ make ARCH=arm
//图形化配置窗口调出
$ make ARCH=arm menuconfig
//单独编译设备树文件,生成dtb文件
$ make ARCH=arm dt
二、把编译的zImage和dtb文件烧录板子,根据打印信息,分析出硬件驱动的情况。
1、内核接收uboot传递过来的分区信息,要和设备树中的分区一致,后面再细讲;
Kernel command line: console=ttyS0,115200 earlyprintk mtdparts=atmel_nand:256k(bootstrap)ro,768k(uboot)ro,256K(env_redundant),256k(env),512k(dtb),6M(kernel)ro,-(rootfs) rootfstype=ubifs ubi.mtd=6 root=ubi0:rootfs
2、GPIO控制器驱动OK
AT91: PM: standby: standby, suspend: ulp0
gpio-at91 fffff200.gpio: at address (ptrval)
gpio-at91 fffff400.gpio: at address (ptrval)
gpio-at91 fffff600.gpio: at address (ptrval)
gpio-at91 fffff800.gpio: at address (ptrval)
gpio-at91 fffffa00.gpio: at address (ptrval)
pinctrl-at91 ahb