在网上看的关于stm32mp157的开发教程太少了,于是乎写一篇踩坑笔记,仅供学习参考

大概流程:在虚拟机通过stm32cubeprogrammer烧录镜像,然后烧录成功之后,给stm32mp157连接网线,使得开发板有ip地址,然后通过scp复制把文件拷贝到开发板,然后在开发板上运行qt代码,就部署成功了!!!

这个不仅仅是stm32mp157的开发流程,也是linux开发板的一篇教程,基本都是,虚拟机安装ubuntu,然后通过ssh连接烧录,把对应可执行文件放到开发板,然后就运行

由于stm32mp157的开发资料较少,所以我们可以参考正点原子的stm32mp157开发板资料,或者华清远见的抑或是百问嵌入式的,虽然开发板不一样,但是资料都是可以互通的,可以使用配套资料里面的虚拟机和镜像,方便很多,并且也有很多工具和资料

链接;

正点原子:STM32MP157开发板 — 正点原子资料下载中心 1.0.0 文档

华清远见:华清远见STM32MP157 Linux开发板 - 华清远见研发中心

百问网:🎫100ASK_STM32MP157_PRO开发板 — 百问网资料下载中心 3.0 文档

ok啊兄弟们,有资料就是事半功倍了呀

也可以参考这篇教程:STM32MP157使用记录:OpenSTLinux试用与开发体验-CSDN博客

1.第一步:安装虚拟机

原因:可以使用虚拟机安装stm32cubeprogrammer,下载安装镜像,而且qt的开发也可以用虚拟机来安装,然后部署到开发板,虚拟机好处多多,window也能做,只不过会比较慢

步骤:下载安装VMware,并且安装Ubuntu镜像

安装过程不再叙述,你随便在上面找一个里面都有详细的教程

2.在虚拟机中,安装基本环境

sudo apt update
sudo apt install -y build-essentialsudo apt install -y gawk git-core diffstat texinfo gcc-multilib chrpath socat cpio python3-pip python3-pexpect xz-utils debianutils iputils-ping python3-git python3-jinja2 libegl1-mesa libsdl1.2-dev pylint3 pylint xterm
sudo apt install -y xsltproc docbook-utils fop dblatex xmlto
sudo apt install -y libmpc-dev libgmp-dev
sudo apt install -y libncurses5 libncurses5-dev libncursesw5-dev libssl-dev linux-headers-generic u-boot-tools device-tree-compiler bison flex libyaml-dev libmpc-dev libgmp-dev
sudo apt install -y python-is-python3# 设置使MMC支持分为16个分区
echo 'options mmc_block perdev_minors=16' > /tmp/mmc_block.conf
sudo mv /tmp/mmc_block.conf /etc/modprobe.d/mmc_block.conf

硬件连接:

注意有些usb线质量不行,供电电流迟迟达不到,建议使用品质较好的usb线,手机充电线就很不错。

 3.在虚拟机安装stm32cubeprogrammer,并且下载镜像openstlinux

烧录是通过 USB OTG 那个口进行的(DFU模式)。需要注意的是烧录过程中设备会断开重新连接,如果使用虚拟机的话需要把这个USB设备设置为自动转到虚拟机或是在重新连接的过程中手动转到虚拟机。

注意:烧录镜像的时候,要保证开发板背后的俩个开关全部关闭,拨杆到off,俩个都是,等到烧录结束之后,再打开到on,不然虚拟机的stm32cubeprogrammer一直检测不到usb的DFU,我原本以为是没下载好dfu的驱动,其实是这个拨杆的问题

STM32CubeProgrammer用来将系统二进制文件烧录到TF卡或eMMC中,可以从下面选择合适的版本下载:
https://www.st.com/en/development-tools/stm32cubeprog.html
我这里通过Ubuntu自带的浏览器下载,得到的 en.stm32cubeprg-lin_v2-10-0.zip 文件位于 ~/Downloads/ 目录下。也可以使用window下载,下载之后,复制到虚拟机就可以

cd ~/Downloads/
unzip en.stm32cubeprg-lin_v2-10-0.zip 
./SetupSTM32CubeProgrammer-2.10.0.linux

 当然我也建议使用windows来安装stm32cubeprogrammer,然后使用windows来下载也可以。

问题的关键是在烧录什么的镜像,这里我们烧录openstlinux

镜像链接:​OpenSTLinux BSP 软件包在哪里下载呢

上面这个是镜像下载:

下面这个是工具下载,交叉编译器的工具

 下载好镜像之后

连接设备,打开下面目录中对应的烧录配置文件(.tsv):
~/mp157/ecosystem/starter/stm32mp1-openstlinux-5.10-dunfell-mp1-21-11-17/images/stm32mp1/flashlayout_st-image-weston/(里面还有一层,找到)

 注意的是,这个里面有几个开发板的镜像,请选择正确对应开发板的镜像源


然后二进制文件路径选择下面这个:
~/mp157/ecosystem/starter/stm32mp1-openstlinux-5.10-dunfell-mp1-21-11-17/images/stm32mp1/(这个路径选文件夹)
最后点击 Download 进行烧录即可

 等待十几分钟之后,就可以烧录进去了,这就是烧录后的显示

4.qt的安装和编译

我们需要在虚拟机中安装qt,并且把qt的工程编译,然后把编译后的工程放到开发板

安装qt,这里也不叙述,网上资料很多,而且前面的资料链接里面也有对qt的安装和部署

这一步最重要的是安装交叉编译器,这里我们使用st提供的交叉编译器,

这里就是交叉编译器的下载位置 

我们应该下载mp1-dev-x86这个交叉编译器,因为arm那个编译器是专门给arm架构的编译器,我们虚拟机是x86架构,所以使用x86架构的

cd ~/Downloads/
tar xvf en.SDK-x86_64-stm32mp1-openstlinux-5.10-dunfell-mp1-21-11-17.tar.xz# 建立SDK安装目录
mkdir -p ~/mp157/ecosystem/developer/SDK
# 执行脚本安装SDK
chmod +x stm32mp1-openstlinux-5.10-dunfell-mp1-21-11-17/sdk/st-image-weston-openstlinux-weston-stm32mp1-x86_64-toolchain-3.1.11-openstlinux-5.10-dunfell-mp1-21-11-17.sh
./stm32mp1-openstlinux-5.10-dunfell-mp1-21-11-17/sdk/st-image-weston-openstlinux-weston-stm32mp1-x86_64-toolchain-3.1.11-openstlinux-5.10-dunfell-mp1-21-11-17.sh -d $HOME/mp157/ecosystem/developer/SDK# 设置SDK
# 下面方式是临时的,每次打开终端都需要重新设置
cd ~/mp157/ecosystem/developer/
source SDK/environment-setup-cortexa7t2hf-neon-vfpv4-ostl-linux-gnueabi
# echo $ARCH
# echo $CROSS_COMPILE
# $CC --version
# echo $OECORE_SDK_VERSION

使用 make 进行编译。编译得到的二进制文件可以通过网络传输到开发板中(比如使用 scp gtk_hello_world root@<board ip address>:/usr/local 方式),然后在开发板中运行(比如通过串口终端来运行)。运行运行上面程序会在开发板的屏幕上出现一个带有按钮的窗体:

 然后在开发板就能运行,这个页面了

问题:怎么设置开发板连接到笔记本来共享网络

解决方案:

一、设置电脑为WLAN共享模式
1、在桌面右键wifi图标,选择--打开网络和Internet设置。

2、选择更改适配器选项

3、右击WLAN选择属性 

4、设置WLAN共享设置(家庭网络连接设置为,你开发板和电脑有线连接,用的是哪个网卡,就选择哪个)

 5、跳出电脑提示,电脑自动分配网关,开发板通过该ip上网(记住网关:192.168.137.1)

 二、设置以太网IP
1、选择以太网属性

2、 双击lnternet协议版本4(TCP/IPv4)属性

3、查看lnternet协议版本4的ip地址是否为共享WLAN所对应的ip(若不是,则需要自己设置)

 

参考文章:开发板上网(保姆级教程)_开发板联网-CSDN博客

以上就是mp157,设计页面设置的一个教程了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/pingmian/89827.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/89827.shtml
英文地址,请注明出处:http://en.pswp.cn/pingmian/89827.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

遗像照片尺寸要求及手机制作打印方法

遗像作为寄托哀思的重要载体&#xff0c;其规格和质量都有严格要求。本文将详细介绍遗像照片的标准尺寸规范&#xff0c;并提供使用手机快速制作合规遗像的完整方案。一、遗像照片的标准尺寸要求遗像照片的尺寸主要分为传统黑白遗像和现代彩色遗像两种规格。传统黑白遗像一般采…

适配器模式 (Adapter Pattern)

适配器模式 (Adapter Pattern) 适配器模式是一种结构型设计模式&#xff0c;用于解决两个不兼容接口之间的兼容性问题&#xff0c;充当两个不同接口之间的桥梁。 &#x1f31f; 核心思想转换接口&#xff1a;将一个类的接口转换成客户端期望的另一个接口&#xff0c;使原本不兼…

03-虚幻引擎蓝图类的各父类作用讲解

虚幻引擎&#xff08;Unreal Engine&#xff09;的蓝图系统提供了多种父类&#xff0c;每种父类都有其特定的用途和生命周期。理解这些父类的作用&#xff0c;是高效使用蓝图开发游戏的基础。以下是虚幻引擎中常见蓝图父类的详细讲解&#xff1a;1. Actor 作用&#xff1a;所有…

141 个 LangChain4j Maven 组件分类解析、多场景实战攻略

141 个 LangChain4j Maven 组件分类解析、多场景实战攻略 文章目录 141 个 LangChain4j Maven 组件分类解析、多场景实战攻略 1. 引言 2. LangChain4j 组件分类 2.1. 核心模块 (Core Modules) 2.2. LLM 集成 (LLM Integrations) 2.3. 向量存储集成 (Embedding Store Integratio…

Python可迭代归约函数深度解析:从all到sorted的进阶指南

在Python中&#xff0c;归约函数&#xff08;Reduction Functions&#xff09;是处理可迭代对象的利器。它们通过遍历元素并逐步收敛为单个结果&#xff0c;广泛应用于数据分析、逻辑判断和数值计算等场景。本文将系统梳理这些函数的核心特性、使用技巧及底层逻辑&#xff0c;助…

大带宽服务器都有哪些应用场景?

大带宽服务器凭借着高速的数据传输能力和强大的网络承载能力&#xff0c;通常被企业应用在需要高流量和高并发处理能力的业务场景当中&#xff0c;下面&#xff0c;就让我们共同了解一下大带宽服务器的应用场景吧&#xff01;首先&#xff0c;随着科学技术的快速发展&#xff0…

爬虫实战指南:从定位数据到解析请求的全流程解析

爬虫的本质是什么&#xff1f; 爬虫的本质就是用代码模拟人类在浏览器里的操作&#xff0c;像点击网页、填写表单、提交数据等行为&#xff0c;自动化地进行网页数据的获取和处理。比如&#xff1a; 发送 GET 请求 来请求网页内容&#xff0c;相当于你在浏览器地址栏输入网址…

Sentinel dashboard 添加context-path后无法信息无法上传问题

Sentinel dashboard 添加context-path后无法加载问题 添加server.servlet.context-path/sentinel后可以正常访问&#xff0c;但是客户端启动后信息上报失败。 transport: dashboard: localhost:8858/sentinel 经查阅文档需要加入api-path&#xff0c;但是我配置提示无api-path所…

iOS —— 3Gshare项目总结与思考

登陆注册及推出主页面这部分有两种写法&#xff1a;一种是在SceneDelegate中推出LoginVC&#xff0c;后在判断登陆成功后退去主要程序。另一种则是先加载主程序&#xff0c;后推出登陆页面。通过同组同学实践证明&#xff0c;后者在推出登陆页面时会闪一下&#xff0c;因此还是…

硅基计划3.0 学习总结 贰 顺序表与链表 初版

文章目录一、顺序表——ArrayList1. 实现自己MyArrayList1. 实现add基础方法2. 实现指定位置加元素add方法3. 完善数组打印方法display4. 完善根据下标找元素get5. 完善判断数字是否在数组中contains6. 根据数字找下标indexOf7. 更新指定下标元素set8. 获取数组有效长度size9. …

Postman/Apipost中使用Post URL编码发送含换行符参数的问题分析

Postman/Apipost中使用Post URL编码发送含换行符参数的问题分析 在使用Postman或Apipost等API测试工具进行POST请求时&#xff0c;当参数中包含换行符(\n或\r)通过UI界面复制参数时会遇到参数发送失效的问题。 问题原因分析URL编码规范限制&#xff1a; x-www-form-urlencoded格…

Swap Face 使用遇到的问题

INFO Extracting: 文件名 ERROR Unable to extract model file: File is not a zip file 因为插件没有下载成功&#xff0c;可以开个代理。复制报错的网址下载模型&#xff0c;解压后手动放入D:\Program Files\faceswap\.fs_cache\ 插件GIT地址 chttps://github.com…

误操作后快速恢复数据 binlog 解析为反向 SQL

误操作后快速恢复数据 binlog 解析为反向 SQL 1.前言 本文将介绍使用 reverse_sql 工具将 GreatSQL 数据库的 binlog 解析为反向 SQL 语句。模拟误操作后&#xff0c;恢复数据。该工具可以帮助客户在发生事故时快速恢复数据&#xff0c;避免进一步的损失。使用 reverse_sql 工具…

ABP VNext + Grafana Loki:集中式日志聚合

&#x1f4dd; ABP VNext Grafana Loki&#xff1a;集中式日志聚合 &#x1f4da; 目录&#x1f4dd; ABP VNext Grafana Loki&#xff1a;集中式日志聚合一、引言✨ TL;DR二、环境与依赖&#x1f6e0;️ 平台版本&#x1f517; NuGet 包⚙️ 基础服务三、Serilog Loki 集成…

分布在内侧内嗅皮层(MEC)的带状细胞对NLP中的深层语义分析有什么积极的影响和启示

带状细胞&#xff08;Band Cells&#xff09;作为内侧内嗅皮层&#xff08;Medial Entorhinal Cortex, MEC&#xff09;层Ⅱ/Ⅲ的核心空间编码单元&#xff08;如网格细胞、头方向细胞等&#xff09;&#xff0c;其独特的神经计算机制为自然语言处理&#xff08;NLP&#xff09…

Django Ninja

Django Ninja 是一个用于 Django 框架的快速、现代化的 API 开发库&#xff0c;旨在简化构建高性能、类型安全的 RESTful API。它受到 FastAPI 的启发&#xff0c;结合了 Django 的强大功能和 FastAPI 的简洁与现代化设计&#xff0c;特别适合需要快速开发、易于维护且具有强类…

iic时序

数据和应答信号都规定在SCL在高电平期间&#xff0c;SDA电平稳定&#xff1b;SCL在低电平期间&#xff0c;SDA电平才可以变化。要不然容易被误认为起始或停止信号。应答信号&#xff1a;1. 第九个SCL之前的低电平期间将SDA拉低2. 确保在SCL为高电平时&#xff0c;SDA为稳定的低…

GitHub+Git新手使用说明

Git Git是一个在本地用于随时保存和查看历史版本的软件Git的三个概念&#xff1a;提交commit、仓库repository、分支branch Git安装 在电脑里面按winR&#xff0c;输入cmd进入终端后输入git --version&#xff0c;然后再次输入where git&#xff0c;查看git所在位置 Git常用语句…

前端图像视频实时检测

需求&#xff1a;在目标检测时&#xff0c;我们要求前端能够将后端检测的结果实时渲染在图片或者视频上。图片是静态的&#xff0c;只需要渲染一次&#xff1b;而视频是动态的&#xff0c;播放时需要根据帧数来实时渲染标注框&#xff0c;可以想象视频就是由一张张图片播放的效…

如何解决pip安装报错ModuleNotFoundError: No module named ‘sqlalchemy’问题

【Python系列Bug修复PyCharm控制台pip install报错】如何解决pip安装报错ModuleNotFoundError: No module named ‘sqlalchemy’问题 摘要 在使用 PyCharm 控制台执行 pip install sqlalchemy 后&#xff0c;仍然在代码中提示 ModuleNotFoundError: No module named sqlalche…