(1)0411-imx6ull的启动方式、UBOOT,【面试总结】

59 阅读7分钟

3.Uboot使用实验

uboot官网: www.denx.de/wiki/U-Boot…

1.uboot编译

1.安装ncurses库

sudo apt-get install libncurses5-dev 

2.传输uboot源码压缩包
可以在user下新建文件夹linux,再新建uboot文件夹,再新建alientek_uboot文件夹,传输uboot文件。
在这里插入图片描述
3.解压缩uboot源码压缩包

tar -vxjf uboot-imx-2016.03-2.1.0-g8b546e4.tar.bz2

4.我是512MB(DDR3)+8GB(EMMC)核心板。
新建sheel脚本文件“mx6ull_alientek_emmc.sh”。

#!/bin/bash 
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- distclean 
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- (加空格)            
mx6ull_14x14_ddr512_emmc_defconfig 
make V=1 ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j12

三行shell脚本的作用是清理工程、配置ubbot,编译uboot。
5.赋予脚本可执行权限,编译脚本

chmod +x mx6ull_alientek_emmc.sh
./mx6ull_alientek_emmc.sh

2.安装交叉编译环境

1.将如下路径的交叉编译器上传到linux环境。
可以新建如下文件夹home/user/linux/tool。
在这里插入图片描述
2.在ubuntu中新建目录

sudo mkdir /usr/local/arm

3.在home/user/linux/tool目录下执行如下命令,复制到/usr/local/arm中,并解压。

sudo cp gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf.tar.xz /usr/local/arm/ -f 
sudo tar -vxf gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf.tar.xz 

4.使用vi打开/etc/profile文件夹,修改环境变量

sudo vi /etc/profile

打开后,在最下面输入:

export PATH=$PATH:/usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin

修改好后重启。
5.重启后,安装其他库。

sudo apt-get install lsb-core lib32stdc++6

6.验证是否安装成功。

arm-linux-gnueabihf-gcc -v 

3.安装imxdownload软件

1.将imxdownload软件拷贝到工程文件下。
在这里插入图片描述
2.赋予权限

chmod 777 imxdownload

3.插入SD卡
在这里插入图片描述
4.使用imxdownload软件向sd卡中烧写程序

./imxdownload led.bin /dev/sdd

4.uboot烧写与启动

1.将sd卡插入u盘,插到电脑上
使用imxdownload软件将uboot编译文件烧写到sd卡中

chmod 777 imxdownload //给予 imxdownload 可执行权限,一次即可 
./imxdownload u-boot.bin /dev/sdd //烧写到 SD 卡,不能烧写到/dev/sda 或sda1 设备里面!

2.将sd卡插入开发板,boot设置为从sd卡启动,即:10 000010。
使用usb线,将usb_ttl与电脑相连。
在这里插入图片描述
3.在电脑上打开mobaxterm软件,设置好串口参数,复位开发板,在3s内按下回车键。
在这里插入图片描述

5.学习10类uboot命令

在这里插入图片描述

一、信息查询命令
1.bdinfo
查看板子信息
2.printenv
输出环境变量信息
3.version
查看uboot版本号

二、环境变量操作命令
1.setenv 
用于设置或者修改环境变量的值
2.saveenv
保存修改后的环境变量
eg:
setenv bootdelay 5
saveenv

三、内存操作命令
1.md
显示内存值
eg:
md.b 80000000 14
查看以 0X80000000 开始的 20 个字节的内存值,14是16进制
2.nm 
修改指定地址的内存值
eg:
nm.l 80000000
0x12345678
以.l 格式修改 0x80000000 地址的数据为 0x12345678
3.mm 
修改指定地址内存值
比nm有自增,就是输入后,会显示下一个地址的值,问询是否修改,不修改,输入q即可
4.mw
使用一个指定的数据填充一段内存
eg:
mw.l 80000000 0A0A0A0A 10
使用.l 格式将以 0X80000000 为起始地址的 0x10 个
内存块(0x10 \* 4=64 字节)填充为 0X0A0A0A0A
5.cp
数据拷贝命令
eg:
cp.l 80000000 80000100 10
使用.l 格式将 0x80000000 处的地址拷贝到 0X80000100 处,长度为0x10 个内存块(0x10 \* 4=64 个字节)
6.cmp
用于比较两段内存的数据是否相等
eg:
cmp.l 80000000 80000100 10
使用.l 格式来比较 0x80000000 和 0X80000100 这两个地址数据是否相等,比较长度为 0x10 个内存块(16 \* 4=64 个字节)


四、网络操作命令
在这里插入图片描述
在这里插入图片描述在这里插入图片描述

1.ping
是否可以和服务器(Ubuntu 主机)进行通信
2.dhcp 
从路由器获取 IP 地址
3.nfs
通过 nfs 可以在计算机之间通过网络来分享资源
eg:
nfs 80800000 192.168.1.253:/home/zuozhongkai/linux/nfs/zImage
使用 nfs 命令来将 zImage 下载到开发板 DRAM0X80800000 地址处
4.tftp
通过网络下载东西到 DRAM 中,只是 tftp 命令使用的 TFTP 协议,Ubuntu 主机作为 TFTP 服务器。因此需要在 Ubuntu 上搭建 TFTP 服务器


五、EMMC和SD卡操作命令
1.
六、FAT 格式文件系统操作命令

1.fatinfo
查询指定 MMC 设备分区的文件系统信息
在这里插入图片描述
在这里插入图片描述
2.fatls
查询 FAT 格式设备的目录和文件信息
在这里插入图片描述
3.fstype
查看MMC设备某个分区的文件系统格式
在这里插入图片描述
4.fatload
将指定的文件读取到 DRAM
在这里插入图片描述
5.fatwrite
在这里插入图片描述

收集整理了一份《2024年最新物联网嵌入式全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升的朋友。 img img

如果你需要这些资料,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人

都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!