




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
本文当逐步介绍如何建立系统搭建Linux系统平台将按照启动顺序一步一步制作1;Bootstrap,2;u-boot3;linux-kernel4;ubifs根文件系统11月初完成了bootstrap1.1.6,uboot2010.09,linux2.6.30的移植工作代码全部由官网下载,然后打补丁,修改源码,编译,生成镜像,下载到开发板上运行,并良好运行,本文件夹内分3个部分进行详细说明每部分的具体移植操作下载说明; 程序下载基于Mcuzone提供的批处理下载方法;主要内容在tcl文件中, 直接修改文件可以更改下载文件名字,以及uboot将要传给kernel的参数 和一些uboot的环境参数,具体内容要参考tcl文件的注释Bootstrapbootstrap下载网址/linux4sam/at91bootstrap/tree/5series_1.1移植采用的是Bootstarp-v1.16,操作 参考文档构建9G20的linux系统中的uboot编译方法交叉编译器默认为友善的arm-linux-gcc4.4.3,ubuntu10.04下制作1:获取源码: 通过如下命令,将 bootstrap 源码下载到当前目录: wget /dyn/resources/prod_documents/AT91Bootstrap1.16.zip 然后使用如下命令解压: unzip AT91Bootstrap1.16.zip2: 测试编译环境 cd Bootstrap-v1.16/board/at91sam9g20ek/nandflash make CROSS_COMPILE=arm-linux- 然后开始编译,这个make仅仅是为了证明环境可以编译生成所需要的bin文件 编译完成后检查当前文件夹中是否包含nandflash_at91sam9g20ek.bin, 若包含则证明正常,可以使用3:修改源码 a,增加nandflash的支持 cd Bootstrap-v1.16/include/nand_ids.h 在文件中找到一个支持nand设备的列表,在其中增加本设计使用的128Mb的nandflash (K9F1G08U0A) /* Supported NandFlash devices */ static struct SNandInitInfo NandFlash_InitInfo = 0xecF1, 0x400, 0x20000, 0x800, 0x40, 0x0, K9F1G08U0A0, 0xecda, 0x800, 0x20000, 0x800, 0x40, 0x0, K9F2G08U0M0, b,增加NAND recovery 功能 对于 SAM9x,所谓 NAND recovery,就是一种通过按键擦除 NAND 第一个 block 的 功能。对应按键为PA31, 如果 bootstrap 带有 NAND recovery 功能,根据提示按住特定按钮然后重启开发 板即可。 bootstrap 会检测到按键按下,然后擦除 NAND 第一个 block,然后再次按 下复位键。芯片再次启动后,内部的 SAM-BA 由于不能在 NAND 上检测到合法的启动程 序,就会启动 boot ROM 的代码,也就可以再次连接 PC 上的 SAM-BA 软件。 由于bootstrap中已经集成了该功能,代码在boad/at91sam9g20ek下的at91sam9g20ek.c中,因此不再修改,但该按键必须切记,当接低电平时有效4:修改配置, bootstrap的可配置选项位于编译目录下的.h文件,对于sam9g20,在Bootstrap-v1.16/board/at91sam9g20ek/nandflash/at91sam9g20ek.h文件中, 这个配置文件对不同的芯片,也有相似的结构,包含了时钟,PLL 设置,SDRAM 时序等等。 该头文件中还定义了 bootstrap 需要加载的代码位于 NAND 的地址,长度,以及复制到 SDRAM 的目的地址 。 这些参数一般不需要修改。除非要改变 u-boot 在 NAND上烧写位置,或者 u-boot 尺寸超大,又或者用于加 载用户的其它应用(bootstrap 不仅限于加载 u-boot)。从 Application Settings 中还可以看到该配置用于 NAND(#define CFG_NANDFLASH),而且打开了 DEBUG 信息输出,正式版本可以去掉 DEBUG 信息,提升速度。 对于 SAM9G20,需要注释掉下面的 XTAL 定义,使用 18.432MHz 的 XTAL: #define CRYSTAL_16_36766MHZ (实际文档中未发现该项,若有需注释掉)5,编译源码 代码修改完成后,保存退出,然后使用下面的命令编译即可 cd Bootstrap-v1.16/board/at91sam9g20ek/nandflash/ make CROSS_COMPILE=arm-linux-生成的nandflash_at91sam9g20ek.bin即是可以烧写到nandflash的启动的bootstrap 参考文章:/s/blog_48be95950100xkuj.htmlU-Boot移植采用的是uboot2010-09,操作 参考文档构建9G20的linux系统中的uboot编译方法交叉编译器默认为友善的arm-linux-gcc4.4.3,ubuntu10.04下制作1:获取源码:wget ftp:/ftp.denx.de/pub/u-boot/u-boot-2010.09.tar.bz2tar jxvf u-boot-2010.09.tar.bz2cd u-boot-2010.092:修改源码: 由于本设计中不包含LCD,不设置启动画面,因此略过LCD设置相关内容,默认即可 a,修改时钟频率 配置文件u-boot-2010.09/include/configs/at91sam9g20ek.h , #define CONFIG_SYS_AT91_MAIN_CLOCK 16367660 /16.367MHZ 改为 :#define CONFIG_SYS_AT91_MAIN_CLOCK 18432000 b,修改内核匹配参数 mach type 源码 board/atmel/at91sam9260ek/at91sam9260ek.c gd-bd-bi_arch_number = MACH_TYPE_AT91SAM9G20EK; 改为 gd-bd-bi_arch_number = MACH_TYPE_AT91SAM9G20EK_2MMC;3: 检查配置文件: 在uboot-2010-09主目录下,gedit Makefile;然后在文件中搜索at91sam9g20ek, 找到后可以确认支持9g20的板子,不做修改,然后关闭4:编译配置文件:(未说明则默认在uboot-2010-09主目录下) make at91sam9g20ek_nandflash_config CROSS_COMPILE=arm-linux-5: 编译源码 make CROSS_COMPILE=arm-linux-等待编译完成,即在主目录下生成了u-boot.bin,以及其它的工具最重要的是mkiamge附注; 彻底清除编译的命令: make CROSS_COMPILE=arm-linux- distclean本目录下的uboot源码一完成修改,可复制到linux下直接从第四步开始编译镜像 Linux Kernel说明:由于内核代码数量较大,本文件夹下并没有修改好的源码需要用户按照自己的需求或者按照教程指导一步步制作编译环境: ubuntu10.04 arm-linux-gc4.4.3 友善的1,获取源码及补丁 运行下面命令获取 Linux-2.6.30 的源码以及 at91 对应的两个 patch: wget /pub/linux/kernel/v2.6/linux-2.6.30.tar.bz2 wget .za/AT91RM9200/2.6/2.6.30-at91.patch.gz wget /pub/linux/2.6.30-at91/2.6.30-at91-exp.4.tar.gz2,打补丁 首先把源码下载到一个文件夹中,然后复制到linux系统下,仍在同目录下 运行如下命令展开源码包,并按顺序打 patch: tar jxvf linux -2.6.30.tar.bz2 tar zxvf 2.6.30-at91-exp.4.tar.gz cd linux -2.6.30 zcat ./2.6.30-at91.patch.gz | patch -p1 for p in ./2.6.30-at91-exp.4/*; do patch -p1 $p; done 留意一下 patch 的信息输出,应该没有错误和冲突。3,打完补丁后,在linux源码根目录下先复制默认的配置文件作为kernel配置的基础。 cp arch/arm/configs/at91sam9g20ek_2mmc_defconfig .config 然后启动内核配置界面 make ARHC=arm xconfig (可以按照教程一步步的配置,也可以直接把已经做好的配置单复制到linux内核的根目 录下) 本程序限于篇幅,将只介绍复制配置单的办法, 将已经可以下载的内核的根目录下复制.config文件,然后复制到将要进行编译的源码根目录下,替换掉原来的.config文件然后运行make ARCH=arm xconfig 检查配置项目是否达到要求达到要求后将开始编译(强调 : 这一步要反复检查,尤其是ubi文件系统,以及各项选项都有明确的说明必须仔细核对)4,保存好配置界面,然后开始在源码的根目录下运行 make ARCH=arm CROSS_COMPILE=arm-linux-等待编译完成后,cd linux-2.6.30/arch/arm/boot/ mkimage -A arm -O linux -T kernel -C none -a 0x20008000 -e 0x20008000 -n Linux-2.6.30 -d ./zImage ./uImage30.bin生成uimage,这时可以把生成的uimage复制到下载文件夹中,改名为9g20r即可下载文件系统ubuntu环境下:首先安装mtd-utilssudo apt-get install mtd-utilscd /mcuzone/nfsroot (目录结构为/mcuzone/nfsroot/basefs)在PC上制作镜像mkfs.ubifs -r ./basefs/ -m 2048 -e 129024 -c 800 -o ubifs.img /注意 调整分区时需重新制作根文件系统,只需要调整-c的参数即可,要稍小于at91sam9g20-2smmc.c中的nand的partition1的大小 计算方法为分区大小100MB/(-p)128KIB=-C参数生成可烧录的镜像ubinize -o ubi.img -m 2048 -p 128kiB -s 512 ./ubinize.cfg 命令参数-r:制定文件内容的位置 (即PC的存放文件系统的目录)-m:页面大小 (与nand相关)-e:逻辑擦除块大小 (与nand相关)-p:物理擦除块大小 (与nand相关)-c:最大的逻辑擦除块数量(注意这个块的数量是要按照物理块大小算出来的,如块大小(-p参数)是128KiB, 芯片大小是128MB,而该ubi的mtd分区表设置大小为100MB,那个这个-c参数就是800,这个块数不算上坏块数的)-s:最小的硬件输入输出页面大小,ubinize.cfg文件(自己编写)内容ubifs mode=ubi image=ubifs.img vol_id=0 vol_size=100MiB vol_type=dynamic vol_name=rootfs vol_flags=autoresize/*以上为cfg文件内容/调整分区需要重新编译内核编译内核是需要调整nand分区,在源码目录下ARCH/arm/mach-at91/board-at9
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 企业财务共享数字化转型流程重构与落地方案
- 人工智能与学前教育智能应用效果评估方案
- 电源行业生产安全培训课件
- 测定食物中的能量课件
- 数字化会员管理2025:餐饮行业客户忠诚度提升路径研究报告
- 建筑方案设计理念100字
- 理论学习中心组上半年学习工作总结
- 襄阳企业活动策划方案模板
- 宁夏员工激励活动方案策划
- 建筑方案设计报建深度
- EN61238-1额定电压36kV电力电缆用压接和机械连接器 试验方法和要求
- 各种轴载换算计算方法
- 专利法全套ppt课件(完整版)
- (高职)《会展策划》(第三版)ppt课件(完整版)
- 自动插件机操作指导书
- 商超类企业抖音代运营方案(综合)
- 海上保险法课堂笔记(国航上课版)
- 精选文档大跨度梁板混凝土浇筑方案
- 数学算24点题目
- 顾问式销售培训(PPT46页)
- 高考作文卷面书写
评论
0/150
提交评论