【Ubuntu20-荔枝派Zero】-Uboot开发

【Ubuntu20-荔枝派Zero】-Uboot开发

虚拟机(VMware 16 Pro)安装Ubuntu20环境省略

安装荔枝派Docker环境

sudo apt-get install docker.io
//docker version  查看是否安装成功
sudo groupadd docker  添加docker用户组
sudo gpasswd -a username docker  // username 是你的用户名 , 将登录用户添加到docker用户组中
newgrp docker  更新docker用户组
docker pull zepan/licheepi
docker run -d -p 6666:22 zepan/licheepi /usr/sbin/sshd -D
  • 这样就安装并开启的容器ssh服务,只需连接主机的6666端口,以root用户,licheepi密码登录即可进行开发操作。
  • docker下各文件默认存放在/var/lib/docker下

Uboot编译

 cd u-boot  //进入docker环境中的uboot源码目录
 // arm-linux-gnueabihf-gcc -v   查看交叉编译环境
 make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- LicheePi_Zero_480x272LCD_defconfig  使用通用480*272屏幕
 make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- LicheePi_Zero_800x480LCD_defconfig  使用通用800*480屏幕
 time make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- 2>&1 | tee build.log  编译

  • 在当前目录下就生成了待烧录的uboot文件,名字为u-boot-sunxi-with-spl.bin
  • 可使用date命令查看当前时间,使用ls -all命令查看所有文件的创建时间,找到最新生成的uboot bin文件即可

Uboot烧录

使用usb转串口线,连接串口,默认配置为uart0 ,速率为115200(左数第三和第四脚)
左数第三和第四脚

全志FEL模式
1. TF卡和 spi flash 同时没有可启动镜像
即不插卡,且焊接的是新的或者没有有效镜像的spi flash,上电就会自动进入fel下载模式。
2. TF卡中有进入fel模式的特殊固件 fel-sdboot.sunxi
如果spi flash已经有了启动镜像,那么需要在TF卡中烧入一个sunxi提供的 启动工具 , 那么插入该TF卡启动会进入fel模式;
命令:dd if=fel-sdboot.sunxi of=/dev/mmcblk0 bs=1024 seek=8
PS:上述命令是因为uboot按照规定需要放在SD卡的8K字节偏移处才能被找到启动
3. 上电时SPI_MISO拉低到地
该引脚为boot引脚,上电时如果为低电平即会进入fel下载模式。
虚拟机编译安装-全志Fel-tools烧写工具
参考 https://blog.csdn.net/p1279030826/article/details/112719638
git clone https://github.com/Icenowy/sunxi-tools.git
//git clone -b 分支名称 项目地址
注意:如果要烧录到 spi-flash ,sunxi-tools 要切换到 spi-rebase 分支,并且spi flash需要确认已焊接上去。
// sudo apt-get install pkg-config pkgconf zlib1g-dev libusb-1.0-0-dev
注意:Ubuntu20.04会提示pkgconf和现有版本冲突,不安装即可,即换为下面命令,如果没安装过pkgconf 可以用上面的命令
sudo apt-get install pkg-config zlib1g-dev libusb-1.0-0-dev
make
sudo make install   //这样在命令敲入sunxi按Tab键能够自动补全就说明安装好了
  • 因为我们使用的是SPI FLASH测试uboot,所以选择第三种烧录方式,在上电前将SPI_MISO拉低到地就会进入FEL模式了。
  • usb连接芯片后,在VMware中勾选相应USB设备映射到虚拟机
  • 在这里插入图片描述
sudo sunxi-fel ver //虚拟机中使用(注意不能在docke中直接使用,因为USB设备是映射到虚拟机里,而没有映射到docker中)此命令查看芯片是否进入了FEL模式

//识别到芯片会显示  
AWUSBFEX soc=00001681(unknown) 00000001 ver=0001 44 08 scratchpad=00007e00 00000000 00000000

//未识别会显示
ERROR: Allwinner USB FEL device not found!

从docker中拷贝uboot到虚拟机中
docker ps //查看docker ID
形如:f483bd2ab207   zepan/licheepi   "/usr/sbin/sshd -D"   2 hours ago   Up 2 hours

其中f483bd2ab207   即是docker ID,我们取前四位f483即可正常使用

docker cp f483:/root/u-boot/u-boot-sunxi-with-spl.bin ./u-boot-sunxi-with-spl.bin  //从docker中拷贝到虚拟机当前目录下
烧录uboot
  • 烧到RAM中,重启后丢失,测试使用
sudo sunxi-fel uboot u-boot-sunxi-with-spl.bin

//或者执行烧录地址
sudo sunxi-fel -p write 0x40000000 u-boot-sunxi-with-spl.bin
sudo sunxi-fel exec 0x40000000
  • 烧到SPI FLASH中,重启后永久生效
注意:如果要烧录到 spi-flash ,sunxi-tools 要切换到 spi-rebase 分支,并且spi flash需要确认已焊接上去。

sudo sunxi-fel -p spiflash-write 0 u-boot-sunxi-with-spl.bin
100% [================================================]   414 kB,   76.8 kB/s 
即可重新上电启动
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Cortex-A7处理器在使用U-Boot引导时的详细流程如下: 1. 上电初始化:当处理器上电时,硬件会进行一系列的初始化操作,例如初始化时钟、外设等。 2. 引导加载:处理器会从预定义的启动设备(例如Flash)中加载U-Boot引导程序到内存中。 3. 启动引导程序:处理器跳转到U-Boot引导程序的入口点,开始执行引导程序的代码。 4. 初始化环境:U-Boot会进行一些基本的初始化操作,例如设置栈指针、初始化寄存器等。 5. 初始化设备:U-Boot会初始化与处理器相关的外设,例如内存控制器、串口控制器等。 6. 读取启动配置:U-Boot会读取配置文件(例如uEnv.txt)或者环境变量,以确定启动参数和启动选项。 7. 加载内核镜像:根据配置文件或环境变量中指定的地址和名称,U-Boot会从启动设备中加载操作系统的内核镜像到内存中。 8. 设置启动参数:U-Boot会将加载的内核镜像的地址、参数等信息传递给内核,以便内核正确启动和初始化。 9. 跳转到内核:U-Boot会通过设置寄存器等方式,将控制权转交给加载的内核镜像的入口点,从而启动操作系统的运行。 需要注意的是,U-Boot是一个开源的引导程序,具体的流程可能会根据不同的硬件平台和U-Boot版本有所差异。上述流程是一般情况下的典型流程,可作为参考。在实际使用中,可以根据需求对U-Boot进行配置和定制,以满足特定的应用场景和需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值