ATMEL AT91SAM9X25 平台的开发流程

准备资料:1.交叉编译工具链

                  2.u-boot

                  3.linux 内核 

                  4.文件系统

           注意:以上代码均解压出来,把这四个文件夹放在同一级目录下

1.u-boot的编译

    (1)进入u-boot目录,进入Makefile文件修改

CROSS_COMPILE = $(shell pwd)/../arm-2007q1/bin/arm-none-linux-gnueabi-

  找到CROSS_COMPILE 编译条件注释,并且修改CROSS_COMPILE的值为交叉编译工具链下的路径,其中arm-2007q1为本人交叉编译工具链的文件夹名字。

(2) 输入以下命令,清除之前的配置,并选择当前芯片型号的配置来配置u-boot,最后用四线程编译。

make distclean
make at91sam9x5ek_nandflash_config
make -j4

(3)编译完成后,u-boot目录下的u-boot.bin 为我们生成的目录。编译完uboot之后,请将uboot根目录下tools目录中的mkimage文件放置到arm-none-linux-gnueabi交叉编译工具根目录的bin目录下(或者把mkimage加入环境变量中)。

2.内核的编译

(1)进入内核目录,进入Makefile文件修改

ARCH            ?= arm
CROSS_COMPILE   ?= $(shell pwd)/../arm-2007q1/bin/arm-none-linux-gnueabi-

找到ARCH和CROSS_COMPILE变量,修改其值为arm架构以及指定交叉编译工具链。

(2)选择芯片的内核配置

make at91sam9x5ek_defconfig

(3)可以根据自己的需要进行修改,内核的功能选择

make ARCH=arm menuconfig

(4)编译生成uImage ,uImage的路径为:linux内核源码arch/arm/boot

make  uImage  -j4 

  注意:以上对内核的操作均在内核根目录

3.ubi格式根文件系统的制作

    (1)安装制作ubi格式镜像文件的工具   

sudo apt-get install mtd-utils

    (2) 使用mkfs.ubifs命令将根文件系统制作为UBIFS镜像,其中rootfs为我们根文件系统的目录,rootfs.ubifs为制作出来的镜像文件

mkfs.ubifs -r rootfs -m 2048 -e 126976 -c 992 -o rootfs.ubifs

 (3)使用ubinize命令可将使用mkfs.ubifs命令制作的UBIFS文件系统镜像转换成可直接在FLASH上烧写的格式(带有UBI文件系统镜像卷标)

ubinize -o myrootfs.ubi -m 2048 -p 128KiB -s 512 -O 2048 ubinize.cfg

 其中myrootfs.ubi为我们烧写需要的镜像。ubinize.cfg为制作时的配置文件,其内容如下:

[ubifs]
mode=ubi
image=rootfs.ubifs
vol_id=0
vol_size=126MiB
vol_type=dynamic
vol_name=rootfs
vol_flags=autoresize
vol_alignment=1

4.烧录

  把生成的u-boot.bin 、uImage和myrootfs.ubi 三个文件放到烧录工具目录下进行烧录

参考博文:

1.ATMEL AT91SAM9X25官方推荐Uboot编译方法

2.ATMEL AT91SAM9X25官方推荐内核编译方法

3.有关ubi文件格式的解压

4.ubi文件制作的命令解析以及遇到的问题和解决方法

猜你喜欢

转载自blog.csdn.net/Ceekin/article/details/81332127