您的位置:首页 > 其它

01 OrangePi uboot编译

2017-12-25 16:44 806 查看
计算机系统的组成:

CPU , 内存, 输入/输出设备, 外存(硬盘)

单片机: 一个芯片上就是一个完整的计算机系统.

SOC: 片上系统(system on chip), 其实就是功能更强大的单片机

arm: 一种CPU核心(如:51(intel)). arm公司不会生产具体的硬件芯片, 只设计CPU核心.

arm通过与芯片厂家合作, 生产基于arm核心的具体CPU芯片.

基于arm的合作厂家有: 三星, 高通, MTK, 华为海思, 全志, TI, 晨星(MStar)

/////////////////////////////////////////////////////////

接线:

uart ttl转usb线

红色的ttl线是输出5v (注意只作uart用是不需要此接口的)

黑色线–> gnd

绿色线–> txd

白色线–> rxd

板上的调试接口:

gnd rx tx

/////////////////////////////////////////////////////////

pc机的启动过程:

bios —> grub —> kernel —> fs

arm启动过程:

bios(soc内部的rom) –> uboot —> kernel —> fs

grub 与 uboot都是bootloader的一种, 用于引导linux内核启动

///////////////////

源码及所需的工具下载:
https://pan.baidu.com/s/1mhU4a8K 密码: b375

先安装dtc工具(用于linux内核的设备树)
解包:   dtc-master.zip
进源码目录"dtc-master"后  "make && make install"

编译uboot:

1). 解包orangepi_sdk.tar.bz2
进入orangepi_sdk目录

2). mkdir output            //创建目录,用于存放编译生成的程序镜像
mkdir output/u-boot/     //创建uboot子目录
mkdir output/dtb/       //创建设备树子目录

yum install ncurses*   // ncurses是个终端的图形库, 用于配置编译项使用

进入toolchain/sunxi-tools目录:
执行make   //编译出用于生成内核的script.bin工具(bin2fex  fex2bin)
cp bin2fex fex2bin sunxi-fexc  /bin/   //复制这几个工具到系统的bin目录

3). 回到orangepi_sdk目录下:

make config_uboot  // 配置uboot, 出现配置界面后,直接退出就可以了.

make uboot         // 编译uboot
第一次时会发生错误: make_uboot.sh: line 31: mkimage: command not found
发生错误后: cp source/u-boot-2016.07/tools/mkimage /bin/
再次执行"make uboot"    //mkimage工具用于内核镜像上加文件头用

编译完成后,在output/u-boot/目录里有:
boot.scr                   script.bin                 u-boot-sunxi-with-spl.bin

// boot.src其实是个uboot环境变量存放文件

4). 把sd卡放入读卡器,再接入pc, 确认它的设备文件(一般是/dev/sdb)
make install_uboot sdcard=/dev/sdb   //把uboot镜像烧入sd卡的指定扇区位置 

5). 安装pc端的uart工具
yum install minicom*

配置minicom:  minicom -s
+-----[configuration]------+
| Filenames and paths      |
| File transfer protocols  |
| Serial port setup        |
| Modem and dialing        |
| Screen and keyboard      |
| Save setup as dfl        |
| Save setup as..          |
| Exit                     |
| Exit from Minicom        |
+--------------------------+
选择"Serial port setup"
+-----------------------------------------------------------------------+
| A -    Serial Device      : /dev/ttyUSB0                              |
|                                                                       |
| C -   Callin Program      :                                           |
| D -  Callout Program      :                                           |
| E -    Bps/Par/Bits       : 115200 8N1                                |
| F - Hardware Flow Control : No                                        |
| G - Software Flow Control : No                                        |
|                                                                       |
|    Change which setting?                                              |
+-----------------------------------------------------------------------+
注意: /dev/ttyS0表示PC机后面的RS232接口, usb转232接口得设为/dev/ttyUSB0

选择好后, “Save setup as dfl”, 保存好后,以后使用时直接输入命令"minicom"即可
// 退出minicom,  先按"ctrl+a", 松手后再按'q'键,即可选择退出

6). 把sd卡接到板子上,接上电源线,uart线.在minicom里会有信息:
U-Boot SPL 2016.07-cazure (May 22 2017 - 12:28:32)
DRAM: 512 MiB
Trying to boot from MMC1

U-Boot 2016.07-cazure (May 22 2017 - 12:28:32 +0800) Allwinner Technology

CPU:   Allwinner H3 (SUN8I 1680)
Model: Xunlong Orange Pi
DRAM:  512 MiB
MMC:   SUNXI SD/MMC: 0
In:    serial
Out:   serial
Err:   serial
Net:   No ethernet found.
starting USB...
USB0:   USB EHCI 1.00
USB1:   USB OHCI 1.0
scanning bus 0 for devices... 1 USB Device(s) found
Hit any key to stop autoboot:  0          //出现这句信息时按任意键就会停住
u-boot@orangepi#



                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  u-boot arm embed