Linux第43步_移植ST公司uboot的第4步_uboot测试

uboot移植结束后,需要进行测试。

1、烧录程序

1)、将STM32MP157开发板的网络接口与路由器的网络接口通过网线连接起来。

2)、将开发板的串口和电脑通过USB线连接起来。

3)、将开发板的USB OTG接口和电脑通过USB线连接起来。

4)、将开发板上拨码开关拨到“000”位置。

5)、给开发板上电。

6)、准备烧录文件

tf-a-stm32mp157d-atkserialboot.stm32,是我们移植TF-A得到的。

tf-a-stm32mp157d-atk-trusted.stm32,是我们移植TF-A得到的。

uboot.stm32,是我们移植uboot得到的。

④、atk-image-bootfs.ext4借用正点原子的,文件路径:D:\Linux安装\08、系统镜像\08、系统镜像\02、出厂系统镜像\01、STM32CubeProg烧录固件包\atkimage-bootfs.ext4。

⑤、tf-a.tsv,FlashLayout文件(脚本文件),见下面的路径:

系统镜像\02、出厂系统镜像\01、STM32CubeProg烧录固件包\flashlayout\ atk_emmc-stm32mp157d-atk-qt.tsv,需要将这个文件重命名为“tf-a.tsv”。

将上述文件拷贝到“C:\Program Files\STMicroelectronics\images\my-tfa”

见下图:

7)、使用“Notepad++”软件打开“tf-a.tsv”;

点击“视图”,显示符号“, “显示空格与制表符”,修改后保存,见下图如下:

8)、打开“STM32CubeProgrammer”

9)、点击“Connect”

10)、点击“Open file”,得到下图:

11)、选择“tf-a.tsv”,点击“打开”,点击“Browse”,选择“my-tfa”文件,然后点击“Download”,见下图:

12)、将开发板断电,将拨码开关设置为010,再上电。

13)、等串口输出“Hit any key to stop autoboot:  1”,需要立即按下回车健”,得到下图

2、测试开发板网络连接

1)、使用网线将STM32MP157开发板上的网络接口与电脑或者路由器连接起来; 

2)、使用串口设置“网络地址环境变量”

已知虚拟机网络参数:

虚拟机IP地址:“192.168.2.180

虚拟机网关:“192.168.2.1

虚拟机子网掩码:“255.255.255.0

开发板的“网络地址环境变量”设置如下:

setenv ipaddr 192.168.2.178       //开发板“IP地址”

setenv ethaddr 00:04:9f:04:d2:36  //开发板网卡“MAC地址”,48位

setenv gatewayip 192.168.2.1      //开发板默认网关

setenv netmask 255.255.255.0      //开发板子网掩码

setenv serverip 192.168.2.180     //服务器地址,也就是“Ubuntu地址”

saveenv

见下图操作:

3)、测试开发板网络连接

输入“ping 192.168.2.180”,见下图操作:

3、测试USB OTG设备

1)、输入“ums 0 mmc 1

注意:正点原子STM32MP157开发板只有一个USB OTG接口,它可以用作USB SLAVE,对应的索引为0,所以ums后面跟的是0,mmc后面跟的是1,表示将EMMC挂载到“虚拟机”上,同理:ums 0 mmc 0表示将TF卡挂载到虚拟机上

见下图操作:

2)、查看虚拟机桌面是否有U盘图标,见下图:

注意:在虚拟机上发现磁盘bootfs,说明USB OTG工作成功。

3)、双击“bootfs”,得到下图:

4)、结束U盘挂载,在串口输入“CTRL+C键”,见下图操作:

  1. 查询是否使能“boot”和“bootd”命令

输入:“? boot

输入:“? bootd

见下图:

如果串口上出现上述信息,表示开发板使能了“boot”命令。

boot”和“bootd执行的是同一个函数。

5、从EMMC启动Linux

1)、输入“ext4ls mmc 1:2”,查看EMMC的分区2;

EMMC的分区2中存放了15个文件:

boot.scr.uimg

lost+found,这是一个文件夹;

mmc0 extlinux,这是一个文件夹;

mmcl extlinux,这是一个文件夹;

stm32mp157d-atk.dtb,这是移植uboot时,生成的“.dtb”设备树文件;

stm32mp157d-atk-hdmi.dtb,这是“.dtb”设备树文件;

stm32mp157d-atk-mipi.dtb,这是“.dtb”设备树文件;

stm32mp157d-atk-spdif.dtb,这是“.dtb”设备树文件;

uInitrd,是initialized RAM disk的缩写,启动时存在于内存的文件系统;

alientek 1024x600.bmp,这是一个图片文件,用来测试LCD能否显示;

alientek 1280x800.bmp,这是一个图片文件,用来测试LCD能否显示;

alientek 480x272.bmp,这是一个图片文件,用来测试LCD,适合我的开发板

alientek 800x480.bmp,这是一个图片文件,用来测试LCD能否显示;

uImage,这是uboot专用的映像文件;

5.4.31-gca8f6cddb这是Linux文件

其中比较重要的就是4个“.dtb设备树文件”和Linux内核的“uImage镜像文件”。

2)、设置bootcmd 环境变量,从EMMC里面读取系统文件:

出现“STM32MP>”时输入:

setenv bootcmd 'ext4load mmc 1:2 c2000000 uImage;ext4load mmc 1:2 c4000000 stm32mp157d-atk.dtb;bootm c2000000 - c4000000'

出现“STM32MP>”时输入: saveenv

出现“STM32MP>”时输入: boot

6、从网络启动Linux

1)、检查是否安装“NFS服务”和“SSH服务”。

2)、记得前面曾经在“linux”目录下创建过一个“nfs”的文件夹,这个是用来供nfs服务器使用。

使用tftp从ubuntu中下载“Image”和“.dtb设备树文件”;

将“Linux镜像文件”和“Linux根文件系统”放到ubuntu下的tftp中;

设置Linux从网络启动。

这样不需要频繁烧写EMMC,每次重新编译Linux内核或某个Linux驱动后,就可以使用“cp命令”,将其文件拷贝到这个指定的文件夹即可,加快了开发速度,方便了调试。

STM32MP> setenv bootcmd 'tftp c2000000 uImage;tftp c4000000 stm32mp157d-atk.dtb;bootm c2000000 - c4000000'

STM32MP> saveenv

STM32MP> boot

设置好以后,uboot 先从tftp服务器下载uImage和stmm32mp157d-atk.dtb这两个文件,然后启动。

7LCD测试

从EMMC中读取“alientek_800x480.bmp”,保存到内存C0000000地址处。

1)、输入“mmc dev 1回车”,切换到EMMC设备

2)、输入“ext4ls mmc 1:2回车”查看“EMMC分区2”有哪些文件和目录,

其中alientek_800x480.bmp符合当前开发测试

3)、输入“ext4load mmc 1:2 C2000000 alientek_800x480.bmp回车”,将EMMC分区2中的alientek_800x480.bmp读到内存C2000000地址处;

4)、输入“bmp info c2000000回车”,显示图片信息;

5)、输入“bmp display c2000000 0 0回车”,显示 bmp;

至此,uboot测试完成。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/378613.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

nodeJS 的 npm 设置国内高速镜像之淘宝镜像的方法

1、我们知道 nodeJS 是老外搞出来的,服务器放在了国外,国内的小朋友访问起来会比较慢,阿里巴巴的淘宝给出了有力支持,现在我们就将 nodeJS 的镜像地址切换为国内的淘宝镜像。 2、查看当前的镜像地址: npm get registr…

前端学习之路(6) npm详解

npm 是什么? npm(node package manager):node.js 的包管理器,用于node插件管理(包括安装、卸载、管理依赖等) ,npm 是随同 node.js 一起安装的包管理工具,能解决 node.j…

HTTP2:netty http2 StreamChannel多流实现与Http2StreamFrame解码器的源码分析

netty http2 server侧的核心逻辑个人认为,主要在编解码处理器和Stream Transform Channel这块,分别处理Http2 消息帧的编解码,以及连接的多流处理机制。对应用的处理类分别: ChannelHandlerDescio.netty.handler.codec.http2.Htt…

编译OpenSSL时报错,Can‘t locate IPC/Cmd.pm in @INC

编译OpenSSL 3.0.1时报错,错误信息如下 解决方法: 安装perl-CPAN yum install -y perl-CPAN进入CPAN的shell模式,首次进入需要配置shell,按照提示操作即可(本人perl小白,全部选择默认配置,高…

Python算法题集_环形链表

Python算法题集_环形链表 题234:环形链表1. 示例说明2. 题目解析- 题意分解- 优化思路- 测量工具 3. 代码展开1) 标准求解【集合检索】2) 改进版一【字典检测】3) 改进版二【双指针】 4. 最优算法 本文为Python算法题集之一的代码示例 题234:环形链表 …

FPGA高端项目:解码索尼IMX327 MIPI相机转USB3.0 UVC 输出,提供FPGA开发板+2套工程源码+技术支持

目录 1、前言免责声明 2、相关方案推荐我这里已有的 MIPI 编解码方案 3、本 MIPI CSI-RX IP 介绍4、个人 FPGA高端图像处理开发板简介5、详细设计方案设计原理框图IMX327 及其配置MIPI CSI RX图像 ISP 处理图像缓存UVC 时序USB3.0输出架构FPGA逻辑设计工程源码架构SDK软件工程源…

数学建模-灰色预测最强讲义 GM(1,1)原理及Python实现

目录 一、GM(1,1)模型预测原理 二、GM(1,1)模型预测步骤 2.1 数据的检验与处理 2.2 建立模型 2.3 检验预测值 三、案例 灰色预测应用场景:时间序列预测 灰色预测的主要特点是模型使用的…

改变AI服务器:探索界面互连芯片技术的创新突破

根据TrendForce的数据,AI服务器的出货量约为130,000台,占全球服务器总出货量的约1%。随着微软、Meta、百度和字节跳动等主要制造商相继推出基于生成式AI的产品和服务,订单量显著增加。预测显示,在ChatGPT等应用的持续需求推动下&a…

Java+微信小程序实现智慧家政系统 JAVA+Vue+SpringBoot+MySQL

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块三、系统展示四、核心代码4.1 查询家政服务4.2 新增单条服务订单4.3 新增留言反馈4.4 小程序登录4.5 小程序数据展示 五、免责说明 一、摘要 1.1 项目介绍 基于微信小程序JAVAVueSpringBootMySQL的智慧家政系统&#xff0…

TCP 传输控制协议

1 TCP 1.1 TCP 最主要的特点 1.TCP 是面向连接的运输层协议。 2.每一条 TCP 连接只能有两个端点 (endpoint),每一条 TCP 连接只能是点对点的(一对一)。 3.TCP 提供可靠交付的服务。 4.TCP 提供全双工通信。 5.面向字节流 TCP 中的“流…

redisson源码解析

由于synchronized跟ReetrantLock是JVM级别的锁,在分布式情况下失效,这时候我们通常会选择redisson基于redis封装好的分布式锁。下面我们一起来分析以下redisson的源码。 使用方式 流程 getLock源码 给命令执行器赋值给看门狗时间赋值,默认30…

【芯片设计- RTL 数字逻辑设计入门 11.1 -- 状态机实现 移位运算与乘法 1】

文章目录 移位运算与乘法状态机简介SystemVerilog中的测试平台VCS 波形仿真 阻塞赋值和非阻塞赋值有限状态机(FSM)与无限状态机的区别 本篇文章接着上篇文章【芯片设计- RTL 数字逻辑设计入门 11 – 移位运算与乘法】 继续介绍,这里使用状态机…

PCA与梯度上升法

PAC 主成分分析(Principal Component Analysis) 一个非监督的机器学习算法主要用于数据的降维通过降维,可以发现更便于人类理解的特征其他应用:可视化;去噪 如何找到这个让样本间间距最大的轴? 如何定义样…

【我与Java的成长记】之String类详解

系列文章目录 能看懂文字就能明白系列 C语言笔记传送门 Java笔记传送门 🌟 个人主页:古德猫宁- 🌈 信念如阳光,照亮前行的每一步 文章目录 系列文章目录🌈 *信念如阳光,照亮前行的每一步* 前言一、字符串构…

zabbix配置主动监控

1.准备一台新的主机,安装相关软件包。 [rootsishi ~]# rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm [rootsishi ~]# yum -y install zabbix-agent2.修改zabbix-agent端的配置文件 [rootsishi ~]# vim /etc/z…

图像处理入门:OpenCV的基础用法解析

图像处理入门:OpenCV的基础用法解析 引言OpenCV的初步了解深入理解OpenCV:计算机视觉的开源解决方案什么是OpenCV?OpenCV的主要功能1. 图像处理2. 图像分析3. 结构分析和形状描述4. 动态分析5. 三维重建6. 机器学习7. 目标检测 OpenCV的应用场…

SegmentAnything官网demo使用vue+python实现

一、效果&准备工作 1.效果 没啥好说的,低质量复刻SAM官网 https://segment-anything.com/ 需要提一点:所有生成embedding和mask的操作都是python后端做的,计算mask不是onnxruntime-web实现的,前端只负责了把rle编码的mask解…

【MacOS】装 mac-win10 双系统(2017年的老mac,Intel芯片)

Navigator 一、前情二、完整过程2.1 Mac系统迁移2.2 分区合并2.3 下载win10镜像2.4 安装win102.5 安装驱动等2.6 设置默认启动系统 一、前情 昨天给学妹的mac装软件。发现之前她找维修店装了双系统,但是win10根本不能用,搞得乱七八糟的,于是…

产品经理学习-产品运营《海报制作》

如何策划一款优秀的海报 海报是什么? 是一种将文字和图片结合的信息传递形式;其作用和目的是把想传递给用户的信息高效的传递出去,让用户在极短的时间内产生兴趣,进而产生收藏、分享等行为。 海报的类型: 类型 特点 …

qt/c++实现表情选择框

💂 个人主页:pp不会算法^ v ^ 🤟 版权: 本文由【pp不会算法v】原创、在CSDN首发、需要转载请联系博主 💬 如果文章对你有帮助、欢迎关注、点赞、收藏(一键三连)和订阅专栏哦 实现功能 。编解码的设计 。映射关系设计 。匹配机制设计 演示效…