初探MYD-AM335x开发板

MYD-AM335x(NAND)

安装工具

部署开发环境

Ubuntu 16.04 64位桌面版

$ sudo apt-get install build-essential git-core libncurses5-dev u-boot-tools 
$ sudo apt-get install flex bison texinfo zip unzip zlib1g-dev gettext 
$ sudo apt-get install gperf libsdl-dev libesd0-dev 
$ sudo apt-get install g++ xz-utils 
$ sudo apt-get install subversion

安装32位兼容库

$sudo apt-get install libc6-i386 lib32stdc++6 lib32z1

配置交叉编译工具

将官方提供的04-Linux_source文件内所有文件考入自己创建的WORKDIR文件目录下

设置交叉编译工具

$ cd WORKDIR/Toolchain 
$ tar xvf gcc-linaro-5.3-2016.02-x86_64_arm-linux-gnueabihf.tar.xz
临时修改环境变量
$ export PATH=$PATH:/home/fish/WORKDIR/Toolchain/gcc-linaro-5.3-2016.02-x86_64_arm-linux -gnueabihf/bin 
$ export ARCH=arm 
$ export CROSS_COMPILE=arm-linux-gnueabihf-
永久修改环境变量
vi ~/.profile

在行尾添加:

export ARCH=arm 
export CROSS_COMPILE=arm-linux-gnueabihf- 
export PATH=$PATH:/home/fish/WORKDIR/Toolchain/ gcc-linaro-5.3-2016.02-x86_64_arm-linux-gnueabihf/bin
更新环境变量
source ~/.profile
测试环境变量是否更新成功
$echo $ARCH 
arm 

$echo $CROSS_COMPILE 
arm-linux-gnueabihf-
交叉编译器验证
$ arm-linux-gnueabihf-gcc -vUsing built-in specs. COLLECT_GCC=arm-linux-gnueabihf-gcc ……Thread model: posix gcc version 5.3.1 20160113 (Linaro GCC 5.3-2016.02)

构建系统

Bootloader

目的:得到U-Boot

进入Bootloader目录,解压U-boot源码压缩包

自己创建myir-u-boot文件夹,将解压后文件放入此文件夹

$ cd WORKDIR/Bootloader 
$ tar -jxvf myir-u-boot.tar.bz2 
$ cd myir-u-boot				

编译u-boot

$ make distclean 
$ make myd_c335x_defconfig 
$ make

编译完成后,会在myir-u-boot下生成要用到的MLOu-boot.img文件

Kernel

目的:得到Linux内核

进入Kernel目录,解压内核源码压缩包

自己创建myir-kernel文件夹,将解压后的文件放入此文件夹

$ cd <WORKDIR>/Kernel 
$ tar -jxvf myir-kernel.tar.bz2 
$ cd myir-kernel

编译内核,注意事项

  1. 需配置环境变量 INSTALL_MOD_PATH
  2. 内核修改后,内核模块要和内核 zImage 一起编译
$ export INSTALL_MOD_PATH=$HOME/export/rootfsa/ 
$ make distclean 
$ make myd_c335x_defconfig 
$ make zImage dtbs 
$ make modules 
$ make modules_install

编译完成后,会在myir-kernel/arch/arm/boot目录下生成zImage文件

​ 在myir-kernel/arch/arm/boot/dts目录下生成设备树的二进制.dtb文件

Filesystem

进入Filesystem目录,解压文件系统压缩包

自己创建myir- buildroot文件夹,将解压后的文件放入此文件夹

$ cd WORKDIR/Filesystem/myir-buildroot/ 
$ make myd_c335x_defconfig

打开配置界面的命令

$ make menuconfig

配置bootloader代码来源

$ cd WORKDIR/Bootloader/myir-u-boot
$ git init
$ git add . -f
$ git commit -m "Initial Version" -a

并在配置界面-BootloadersU-boot Version路径替换成

/home/fish/WORKDIR/Bootloader/myir-u-boot/.git

配置Kernel代码来源同理

根据自己需求再在配置界面进行相应更改

最后编译

$ make

等待很长一段时间后,在

WORKDIR/Filesystem/myir-buildroot/output/images

下得到bootloader,kernel,以及各种格式的文件系统镜像

系统更新

使用NAND Flash启动

Nand启动映像的更新需要借助于u-boot来完成。不管NAND Flash是否有数据,都可以利用TF卡启动的u-boot 对NAND Flash更新映像。

TF卡制作

  1. 用光盘目录03-Tools目录下的HP USB Disk Storage Format Tool 2.0.6工具将TF卡格式化为FAT或FAT32文件系统
  2. 将光盘目录02-Images\Linux-image目录下的映像文件拷贝到TF卡中
  3. 将自己的MLOu-boot.imgzImagemyd_c335x.dtb,rootfs.ubi文件拷贝到TF卡进行替换

更新

将带有系统映象的TF卡插入开发板,连接对应板子设置启动方式的跳线帽的1-2脚,上电启动,在u-boot 的提示读秒处,按下键盘上任意键进入u-boot

出现MYIR>#表示进入u-boot命令行

U-Boot 2016.05 (Jan 09 2017 - 19:37:43 +0800) Watchdog enabled I2C: ready DRAM: 512 MiB NAND: 512 MiB MMC: OMAP SD/MMC: 0, OMAP SD/MMC: 1 *** Warning - bad CRC, using default environment Net: cpsw Press SPACE to abort autoboot in 2 seconds 
MYIR>#

若u-boot分区有调整,需输入nand erase.chip擦除整个NAND Flash,无则直接下一步

MYIR># nand erase.chip NAND erase.chip: device 0 whole chip Erasing at 0x1ffe0000 -- 100% complete. OK

进入u-boot命令行后,输入run updatesys

MYIR># run updatesys switch to partitions #0, OK mmc0 is current device reading MLO 55092 bytes read in 10 ms (5.3 MiB/s) NAND write: device 0 offset 0x0, size 0xd734 55092 bytes written: OK reading myd_c335x.dtb 39229 bytes read in 10 ms (3.7 MiB/s)NAND write: device 0 offset 0x80000, size 0x993d 39229 bytes written: OK reading u-boot.img 321300 bytes read in 34 ms (9 MiB/s) NAND write: device 0 offset 0xc0000, size 0x4e714 321300 bytes written: OK reading zImage 4480016 bytes read in 396 ms (10.8 MiB/s) NAND write: device 0 offset 0x200000, size 0x445c10 4480016 bytes written: OK reading rootfs.ubi 24248320 bytes read in 2111 ms (11 MiB/s) NAND write: device 0 offset 0xa00000, size 0x1720000 24248320 bytes written: OK 
MYIR>#

再次出现MYIR>#,断电拔出TF卡,连接对应板子设置启动方式的跳线帽的2-3脚,重新上电,即可从Nand Flash启动,输入账户名root登录

你可能感兴趣的:(学习笔记)