微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > 嵌入式系统设计讨论 > 2.am4379交叉编译工具+kernel和uboot编译+tf系统验证

2.am4379交叉编译工具+kernel和uboot编译+tf系统验证

时间:10-02 整理:3721RD 点击:

4-搭建AM437x的Linux开发环境.pdf6-Linux内核编译方法.pdf
5-1-U-Boot编译.pdf
7-Linux SD系统启动卡制作方法.pdf
创龙公司提供了完备的用户手册可供参考,不过文档比较老旧,所以我这里只是参考,按照自己的实际条件来搭建开发环境。如果对这些不清楚则尽量按照文档来搭建环境以免出现一些不该出现的错误。
我这里单独一台PC机安装ubuntu系统来作为开发环境,而且是最新的ubuntu16.04 x64位操作系统。ubuntu系统安装网上有很多教程可以参考。


交叉编译工具也一样是64位,gcc-linaro-4.9-2015.05-x86_64_arm-linux-gnueabihf.tar.xz
安装非常方便,可以解压文件到任何地方我这里是/opt/linux-tools,然后添加环境变量,记得重启系统。


接下解压kernel和uboot的代码,kernel选择最新的linux-3.14.43,因为这样最简单。下面是编译,一切顺利应该很快就编译出我们需要的文件。
make ARCH=arm CROSS_COMPILE=${AM4379_CROSSTOOL} distclean
make ARCH=arm CROSS_COMPILE=${AM4379_CROSSTOOL} tisdk_am437x-evm_defconfig
make ARCH=arm CROSS_COMPILE=${AM4379_CROSSTOOL} am437x-gp-evm.dtb
make ARCH=arm CROSS_COMPILE=${AM4379_CROSSTOOL} zImage -j4
make ARCH=arm CROSS_COMPILE=${AM4379_CROSSTOOL} modules -j4
make ARCH=arm CROSS_COMPILE=${AM4379_CROSSTOOL} distclean
make ARCH=arm CROSS_COMPILE=${AM4379_CROSSTOOL} am43xx_evm_config
make ARCH=arm CROSS_COMPILE=${AM4379_CROSSTOOL} -j4
接下来我们来验证一下编译出来的kernel和uboot是否可用?
首先来看看am4379开发板的BOOT开关设置,在文档1-2-TL437x-EasyEVM开发板硬件说明书.pdf中有一些说明如下图:


不过从实际来看这个说明跟开发板有一定的出入。我的实际操作经验:下图这样的全1设置是nand flash启动,另外一张图01100的设置为tf卡启动方式。



把开发板设置为tf卡方式启动,查看其uboot和kernel的信息,可以看出其编译时间为2016.7.11。


下面是如何制作tf系统启动卡,创龙的文档中有一种方法,应该可以制作一个tf系统启动卡(我这里没有验证,因为我的ubuntu系统版本较高,导致sfdisk版本不匹配,脚本无法执行)。我是使用fdisk直接分区,分区情况类似下图,只是大小可能不一样。


下面kernel和uboot文件拷贝,将下面四个文件拷贝到tf卡中。记得sync。
cp /opt/am4379/kernel/linux-3.14.43/arch/arm/boot/zImage /media/root/rootfs/boot/
cp /opt/am4379/kernel/linux-3.14.43/arch/arm/boot/dts/am437x-gp-evm.dtb /media/root/rootfs/boot/
cp /opt/am4379/U-Boot/src/u-boot.img  /media/root/boot/
cp /opt/am4379/U-Boot/src/MLO  /media/root/boot/
当然一张空白卡可不光需要这个四个文件,还有rootfs等等。详细可以看创龙提供的7-Linux SD系统启动卡制作方法.pdf文档。
然后开机启动抓一些信息,编译时间,交叉编译工具等信息都可以看到,对比前后信息可以确定我们编译的文件被加载了。


总结一下知识要点:
1)交叉编译工具选择原则;2)kernel和uboot编译命令详细含义;3)fdisk分区方法。

虽然有手册,搞起来还是很费劲的啊。

大侠说的真是太简单

按照他人非常详细的步骤操作一遍,三个月后50%的几率你什么都忘记了,只记得自己做过而已。只有真的去做,遇到问题,解决问题才能有收获,才能真的掌握原理,举一反三。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top