当前位置: 首页 > news >正文

2.1 linux中uboot移植

--

 ---------------------------------------------------------------------------------------

(一)友善之臂介绍:

README for FriendlyARM Tiny4412

说明:本u-boot源代码由三星原厂提供,并由友善之臂修改移植,以适用于Tiny4412开发板平台。
仅供嵌入式爱好者学习研究之用,友善之臂不对此提供任何技术支持和维护。

-----------------------------------------------------
1. Build uboot

a) 安装好toolchain (arm-linux-gcc-4.5.1-v6-vfp-20120301.tgz)并设置好
环境变量PATH,保证可以正常使用。

b) 解压 uboot_tiny4412-20130729.tgz 并进入相应的目录
tar xzf uboot_tiny4412-20130729.tgz

c) 配置 uboot 并编译
cd uboot_tiny4412
make tiny4412_config
make

生成u-boot.bin

d) 编译 用于生成bl2 的工具
make -C sd_fuse
或者
cd sd_fuse; make


-----------------------------------------------------
2. 制作启动 Tiny4412 的SD卡

a) 先准备一张4G或以上的SDHC卡
注意:该卡的已有数据将会被破坏,因此请先对SD卡上的数据进行备份。

b) fusing SD card
假设SD卡已被PC Linux识别为/dev/sdb, 以root用户运行以下命令即可:
cd sd_fuse/tiny4412
./sd_fusing.sh /dev/sdb


-----------------------------------------------------
3. 使用SD卡启动 Tiny4412 并烧写Android

a) 将已经制作好的SD卡插到 Tiny4412 板上,拨动S2切换到SDBOOT,同时连接
串口线到PC且假设已经准备好。

b) 开发板加电,然后在串口控制台(如minicom),按任意键进入uboot 命令行模式

c) 对SD卡进行分区
输入以下uboot命令即可对SD卡进行分区:
fdisk -c 0 320 806 518
重新分区后,可重新格式化FAT分区
fatformat mmc 0:1

d) 进入fastboot模式以烧写Android
使用USB线连接Tiny4412的MICRO_USB口到PC,然后输入以下uboot命令:
fastboot

e) 烧写 Android 到SD卡
首先请准备好Android image,包括: zImage, ramdisk-u.img, system.img
在PC端输入以下命令进行烧写:
fastboot flash kernel zImage (烧写kernel)

fastboot -w (格式化userdata和cache)

fastboot flash ramdisk ramdisk-u.img (烧写ramdisk)

fastboot flash system system.img (烧写system)

f) 也可以在PC端通过fastboot烧写uboot到SD卡
先手动生成bl2.bin
cd sd_fuse/tiny4412
../mkbl2 ../../u-boot.bin bl2.bin 14336

然后输入以下命令:
fastboot flash fwbl1 E4412_N.bl1.bin

fastboot flash bl2 bl2.bin

fastboot flash bootloader ../../u-boot.bin

fastboot flash tzsw E4412_tzsw.bin


-----------------------------------------------------
4. 使用SD卡启动 Android

a) 如果是使用HD700,则烧写完成后直接重启Tiny4412 即可自动启动 Android

b) 如果是使用S700,则需要在uboot上设置kernel命令行参数:
setenv bootargs console=ttySAC0,115200n8 androidboot.console=ttySAC0 lcd=S700
saveenv
然后重启Tiny4412即可。

 -----------------------------------------------------------------------------------------------------------

 (二)编译结果

tiny4412中uboot编译成功

o lib/lzo/liblzo.o net/libnet.o post/libpost.o board/samsung/tiny4412/libtiny4412.o --end-group /opt/FriendlyARM/tiny4412/uboot/uboot_tiny4412/arch/arm/lib/eabi_compat.o -L /opt/FriendlyARM/toolschain/4.5.1/lib/gcc/arm-none-linux-gnueabi/4.5.1 -lgcc -Map u-boot.map -o u-boot
arm-linux-ld: warning: creating a DT_TEXTREL in object.
arm-linux-objcopy -O srec u-boot u-boot.srec
arm-linux-objcopy --gap-fill=0xff -O binary u-boot u-boot.bin
root@phone-desktop:/opt/FriendlyARM/tiny4412/uboot/uboot_tiny4412# make -C sd_fuse
make:进入目录'/opt/FriendlyARM/tiny4412/uboot/uboot_tiny4412/sd_fuse'
gcc -o    mkbl2 V310-EVT1-mkbl2.c
gcc -o    sd_fdisk sd_fdisk.c
make:离开目录“/opt/FriendlyARM/tiny4412/uboot/uboot_tiny4412/sd_fuse”
root@phone-desktop:/opt/FriendlyARM/tiny4412/uboot/uboot_tiny4412#

 

(三)目录分析

Directory Hierarchy:
====================

/arch            Architecture specific files    #拱结构的特定文件
  /arm            Files generic to ARM architecture  #ARM文件通用的ARM架构
    /cpu        CPU specific files CPU特定文件
      /arm720t        Files specific to ARM 720 CPUs
      /arm920t        Files specific to ARM 920 CPUs
    /at91rm9200    Files specific to Atmel AT91RM9200 CPU
    /imx        Files specific to Freescale MC9328 i.MX CPUs
    /s3c24x0    Files specific to Samsung S3C24X0 CPUs
      /arm925t        Files specific to ARM 925 CPUs
      /arm926ejs    Files specific to ARM 926 CPUs
      /arm1136        Files specific to ARM 1136 CPUs
      /ixp        Files specific to Intel XScale IXP CPUs
      /pxa        Files specific to Intel XScale PXA CPUs
      /s3c44b0        Files specific to Samsung S3C44B0 CPUs
      /sa1100        Files specific to Intel StrongARM SA1100 CPUs
    /lib        Architecture specific library files
  /avr32        Files generic to AVR32 architecture
    /cpu        CPU specific files
    /lib        Architecture specific library files
  /blackfin        Files generic to Analog Devices Blackfin architecture
    /cpu        CPU specific files
    /lib        Architecture specific library files
  /i386            Files generic to i386 architecture
    /cpu        CPU specific files
    /lib        Architecture specific library files
  /m68k            Files generic to m68k architecture
    /cpu        CPU specific files
      /mcf52x2        Files specific to Freescale ColdFire MCF52x2 CPUs
      /mcf5227x        Files specific to Freescale ColdFire MCF5227x CPUs
      /mcf532x        Files specific to Freescale ColdFire MCF5329 CPUs
      /mcf5445x        Files specific to Freescale ColdFire MCF5445x CPUs
      /mcf547x_8x    Files specific to Freescale ColdFire MCF547x_8x CPUs
    /lib        Architecture specific library files
  /microblaze        Files generic to microblaze architecture
    /cpu        CPU specific files
    /lib        Architecture specific library files
  /mips            Files generic to MIPS architecture
    /cpu        CPU specific files
    /lib        Architecture specific library files
  /nios2        Files generic to Altera NIOS2 architecture
    /cpu        CPU specific files
    /lib        Architecture specific library files
  /powerpc        Files generic to PowerPC architecture
    /cpu        CPU specific files
      /74xx_7xx        Files specific to Freescale MPC74xx and 7xx CPUs
      /mpc5xx        Files specific to Freescale MPC5xx CPUs
      /mpc5xxx        Files specific to Freescale MPC5xxx CPUs
      /mpc8xx        Files specific to Freescale MPC8xx CPUs
      /mpc8220        Files specific to Freescale MPC8220 CPUs
      /mpc824x        Files specific to Freescale MPC824x CPUs
      /mpc8260        Files specific to Freescale MPC8260 CPUs
      /mpc85xx        Files specific to Freescale MPC85xx CPUs
      /ppc4xx        Files specific to AMCC PowerPC 4xx CPUs
    /lib        Architecture specific library files
  /sh            Files generic to SH architecture
    /cpu        CPU specific files
      /sh2        Files specific to sh2 CPUs
      /sh3        Files specific to sh3 CPUs
      /sh4        Files specific to sh4 CPUs
    /lib        Architecture specific library files
  /sparc        Files generic to SPARC architecture
    /cpu        CPU specific files
      /leon2        Files specific to Gaisler LEON2 SPARC CPU
      /leon3        Files specific to Gaisler LEON3 SPARC CPU
    /lib        Architecture specific library files
/api            Machine/arch independent API for external apps
/board            Board dependent files
/common            Misc architecture independent functions
/disk            Code for disk drive partition handling
/doc            Documentation (don't expect too much)
/drivers        Commonly used device drivers
/examples        Example code for standalone applications, etc.
/fs            Filesystem code (cramfs, ext2, jffs2, etc.)
/include        Header Files
/lib            Files generic to all architectures
  /libfdt        Library files to support flattened device trees
  /lzma            Library files to support LZMA decompression
  /lzo            Library files to support LZO decompression
/net            Networking code
/post            Power On Self Test
/rtc            Real Time Clock drivers
/tools            Tools to build S-Record or U-Boot images, etc.

 ----

翻译:

/拱结构的特定文件
  / ARM文件通用的ARM架构
    / CPU CPU特定文件
      / ARM720T特定的文件向ARM处理器720
      / ARM920T特定的文件向ARM处理器920
    / AT91RM9200文件的具体爱特梅尔AT91RM9200 CPU
    / IMX文件具体到飞思卡尔i.MX MC9328的CPU
    / s3c24x0文件具体到三星的CPU S3C24X0
      / arm925t特定的文件向ARM处理器925
      / ARM926EJS特定的文件向ARM处理器926
      / ARM1136特定的文件向ARM处理器1136
      / IXP文件具体到英特尔XScale处理器IXP
      / PXA文件适用于Intel XScale PXA系列处理器
      / S3C44B0文件具体到三星S3C44B0处理器
      / SA1100具体的文件对英特尔的StrongARM处理器SA1100
    / lib下的具体架构库文件
  / AVR32文件一般为AVR32架构
    / CPU CPU特定文件
    / lib下的具体架构库文件
  / Blackfin处理器通用的文件ADI公司Blackfin架构
    / CPU CPU特定文件
    / lib下的具体架构库文件
  / I386文件通用的i386架构
    / CPU CPU特定文件
    / lib下的具体架构库文件
  / m68k的文件通用的m68k的架构
    / CPU CPU特定文件
      / mcf52x2文件具体到飞思卡尔的ColdFire处理器MCF52x2
      / MCF5227X文件具体到飞思卡尔的ColdFire处理器MCF5227X
      / MCF532X文件具体到飞思卡尔的ColdFire处理器MCF5329
      / mcf5445x文件具体到飞思卡尔的ColdFire MCF5445x处理器
      / mcf547x_8x文件具体到飞思卡尔的ColdFire处理器MCF547x_8x
    / lib下的具体架构库文件
  /文件的MicroBlaze通用的架构的MicroBlaze
    / CPU CPU特定文件
    / lib下的具体架构库文件
  / MIPS文件一般以MIPS架构
    / CPU CPU特定文件
    / lib下的具体架构库文件
  / NIOS2文件一般以Altera NIOS2架构
    / CPU CPU特定文件
    / lib下的具体架构库文件
  / PowerPC的文件通用的PowerPC架构
    / CPU CPU特定文件
      / 74xx_7xx文件具体到飞思卡尔MPC74xx和7xx的处理器
      / MPC5XX特定的文件飞思卡尔处理器MPC5XX
      / mpc5xxx特定的文件飞思卡尔MPC5xxx的CPU
      / mpc8xx特定的文件飞思卡尔MPC8xx处理器
      / mpc8220特定的文件飞思卡尔MPC8220处理器
      / MPC824X特定的文件飞思卡尔MPC824X的CPU
      / MPC8260特定的文件飞思卡尔MPC8260处理器
      / MPC85XX特定的文件飞思卡尔MPC85XX处理器
      / ppc4xx文件具体到AMCC的PowerPC处理器4XX
    / lib下的具体架构库文件
  / SH文件一般以SH架构
    / CPU CPU特定文件
      / SH2文件具体到SH2的CPU
      / SH3文件具体到SH3处理器
      / SH4文件具体到SH4的CPU
    / lib下的具体架构库文件
  / SPARC文件通用于SPARC架构
    / CPU CPU特定文件
      / LEON2文件具体到Gaisler LEON2 SPARC CPU
      / LEON3文件具体到Gaisler LEON3 SPARC CPU
    / lib下的具体架构库文件
外部应用程序/ API机/弓独立的API
/板板相关文件
/常见的其它架构的独立功能
磁盘驱动器分区处理/编码盘
/ DOC文档(不要期待太多)
/驱动器常用的设备驱动程序
对于独立的应用程序,等等。/例子示例代码
/ FS文件系统代码(CRAMFS,EXT2,JFFS2等)
/包含头文件
/ LIB文件通用于所有架构
  / libfdt库文件,以支持平板设备树的
  / LZMA库文件,以支持LZMA压缩
  / LZO库文件,以支持LZO压缩
/ NET网络代码
/ POST开机自检
/ RTC实时时钟驱动器
/工具工具来构建S-记录或U-Boot的图像等。

 (五)常识

linux和uboot是两个独立的文件结构

uboot:

 linux:

--

android系统的启动文件却在android系统中:

android系统:

linux-3.0.31是android系统的内核。这两个文件是android系统

内核:

应用:

启动项:

 

 

 (四)文档介绍

 

---------

转载于:https://www.cnblogs.com/Ph-one/p/4511982.html

相关文章:

  • A9裸机
  • Tiny4412汇编流水灯代码,Tiny4412裸机LED操作[1]
  • Exynos 4412的启动过程分析[2]
  • Tiny4412之C语言实现流水灯,Tiny4412裸机程序[3]
  • sudo: ./sd_fusing.sh:找不到命令
  • 2.2linux内核移植简介
  • linux0.11文件分析
  • Linux内核3.0移植并基于Initramfs根文件系统启动
  • linux系统灵活运用灯[android课程3]
  • linux ramdisk
  • fork()和vfork()区别
  • linux上进程状态查询
  • LINUX进程优先级实现
  • linux中应用程序main函数中没有开辟进程的,它应该在那个进程中运行呢?
  • Linux上程序执行的入口--Main
  • @jsonView过滤属性
  • Android系统模拟器绘制实现概述
  • Docker容器管理
  • ECMAScript入门(七)--Module语法
  • ES6系列(二)变量的解构赋值
  • Facebook AccountKit 接入的坑点
  • Flannel解读
  • gf框架之分页模块(五) - 自定义分页
  • golang中接口赋值与方法集
  • javascript 总结(常用工具类的封装)
  • js ES6 求数组的交集,并集,还有差集
  • python docx文档转html页面
  • Python语法速览与机器学习开发环境搭建
  • Redis 懒删除(lazy free)简史
  • 从setTimeout-setInterval看JS线程
  • 动态魔术使用DBMS_SQL
  • 回顾2016
  • 解决jsp引用其他项目时出现的 cannot be resolved to a type错误
  • 解析带emoji和链接的聊天系统消息
  • 每个JavaScript开发人员应阅读的书【1】 - JavaScript: The Good Parts
  • 前端之React实战:创建跨平台的项目架构
  • 悄悄地说一个bug
  • 体验javascript之美-第五课 匿名函数自执行和闭包是一回事儿吗?
  • elasticsearch-head插件安装
  • JavaScript 新语法详解:Class 的私有属性与私有方法 ...
  • 阿里云ACE认证之理解CDN技术
  • ### Error querying database. Cause: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException
  • #每日一题合集#牛客JZ23-JZ33
  • $forceUpdate()函数
  • (10)Linux冯诺依曼结构操作系统的再次理解
  • (2020)Java后端开发----(面试题和笔试题)
  • (附源码)springboot家庭财务分析系统 毕业设计641323
  • (附源码)ssm教师工作量核算统计系统 毕业设计 162307
  • (附源码)计算机毕业设计SSM智能化管理的仓库管理
  • (三)centos7案例实战—vmware虚拟机硬盘挂载与卸载
  • (已解决)报错:Could not load the Qt platform plugin “xcb“
  • (原)记一次CentOS7 磁盘空间大小异常的解决过程
  • * 论文笔记 【Wide Deep Learning for Recommender Systems】
  • ****** 二十三 ******、软设笔记【数据库】-数据操作-常用关系操作、关系运算
  • .bat批处理(七):PC端从手机内复制文件到本地