stm32m157 U-boot 测试
自烧写测试烧写错误 STM32CubeProgrammer 报错ip parsing error: mmcl报错Layout line 5: ip parsing error: mmcl根本原因Tsv 配置文件写错IP 字段写了mmcl正确是mmc1数字 1不是字母 l L 的小写。 看截图表格你的 ssb1 那一行 IP 列写的是mmcl把数字 1 写成字母 L 小写l。这里也要选对#Opt Id Name Type Device Offset Binary - 0x01 fsbl1-boot Binary none 0x0 tf-a-stm32mp157d-atk-serialboot.stm32 - 0x03 ssbl-boot Binary none 0x0 u-boot.stm32 P 0x04 fsbl1 Binary mmc1 boot1 tf-a-stm32mp157d-atk-trusted.stm32 P 0x05 fsbl2 Binary mmc1 boot2 tf-a-stm32mp157d-atk-trusted.stm32 P 0x06 ssbl Binary mmc1 0x00080000 my-u-boot.stm32cd configs //进入 uboot 的 configs 目录 cp stm32mp15_trusted_defconfig stm32mp15_atk_trusted_defconfig //拷贝此时在 uboot 的 configs 目录下就存在一个名为“stm32mp15_atk_trusted_defconfig”的默认 配置文件这个默认配置文件就是给我们开发板使用的。创建默认配置设备树在 uboot 的源码目录下运行以下命令cd arch/arm/dts/ //进入 uboot 设备树目录 cp stm32mp157d-ed1.dts stm32mp157d-atk.dts //复制.dts cp stm32mp15xx-edx.dtsi stm32mp157d-atk.dtsi //复制.dtsi cp stm32mp157a-ed1-u-boot.dtsi stm32mp157d-atk-u-boot.dtsi //复制.dtsi修改电源管理设置sdmmc1 { pinctrl-names default, opendrain, sleep; pinctrl-0 sdmmc1_b4_pins_a; pinctrl-1 sdmmc1_b4_od_pins_a; pinctrl-2 sdmmc1_b4_sleep_pins_a; st,neg-edge; broken-cd; bus-width 4; vmmc-supply v3v3; status okay; }; sdmmc2 { pinctrl-names default, opendrain, sleep; pinctrl-0 sdmmc2_b4_pins_a sdmmc2_d47_pins_a; pinctrl-1 sdmmc2_b4_od_pins_a sdmmc2_d47_pins_a; pinctrl-2 sdmmc2_b4_sleep_pins_a sdmmc2_d47_sleep_pins_a; non-removable; st,neg-edge; bus-width 8; vmmc-supply v3v3; keep-power-in-suspend; status okay; };网络驱动修改ethernet0 { status okay; pinctrl-0 ethernet0_rgmii_pins_a; pinctrl-1 ethernet0_rgmii_pins_sleep_a; pinctrl-names default, sleep; phy-mode rgmii-id; max-speed 1000; phy-handle phy0; mdio0 { #address-cells 1; #size-cells 0; compatible snps,dwmac-mdio; phy0: ethernet-phy0 { reg 0; }; }; };从图13.2.6.3中可以看到 “ethernet5800a00 address not set.”字样说明已经找到了网络外设并且网络外设已经启动但是还是会报“No ethernet found.”错误这是因为uboot启动的时候获取不到MAC地址我们只需要设置一些地址相关的环境变量即可前面讲解uboot的设置好地址相关环境变量以后就可以在uboot中使用网络了用网线将开发板上的网络接口与电脑或者路由器连接起来保证开发板和电脑在同一个网段内通过ping命令来测试一下网络连接命令如下网络相关命令的时候已经讲过了命令如下setenv ipaddr 192.168.1.250 //开发板 IP 地址 setenv ethaddr 00:04:9f:04:d2:35 //开发板网卡 MAC 地址 setenv gatewayip 192.168.1.1 //开发板默认网关 setenv netmask 255.255.255.0 //开发板子网掩码 setenv serverip 192.168.1.249 //服务器地址也就是 Ubuntu 地址 saveenvping 192.168.1.249STM32MP1 开发高频踩坑1(数字一) 和l(L 小写) 看混。#include stm32mp157.dtsi #include stm32mp15xd.dtsi #include stm32mp15-pinctrl.dtsi #include stm32mp15xxaa-pinctrl.dtsi #include stm32mp157-m4-srm.dtsi #include stm32mp157-m4-srm-pinctrl.dtsi #include stm32mpl57d-atk.dtsi#include stm32mpl57d-atk.dtsi 应该是#include stm32mp157d-atk.dtsiUSB OTG设备树修改1、添加usb_phy_tuning子节点在这一小节里我们就给uboot添加USB_OTG功能操作stm32mp157d-atk.dtsi这个文件在根节点“/”下添加名为“usb_phy_tuning”的子节点节点内容如下usb_phy_tuning: usb-phy-tuning { st,hs-dc-level 2; st,fs-rftime-tuning; st,hs-rftime-reduction; st,hs-current-trim 15; st,hs-impedance-trim 1; st,squelch-level 3; st,hs-rx-offset 2; st,no-lsfs-sc; };添加STUSB1600 I2C子节点正点原子STM32MP157开发板上的USB OTG接口类型为Type-C使用STUSB1600芯片来实现此接口功能STUSB1600有一个I2C接口此I2C接口用来配置芯片因此我们还需要在设备树中添加STUSB1600相关的I2C节点内容。将如下内容添加到stm32mp157d-atk.dtsi的最后面i2c1 { pinctrl-names default, sleep; pinctrl-0 i2c1_pins_a; pinctrl-1 i2c1_pins_sleep_a; i2c-scl-rising-time-ns 100; i2c-scl-falling-time-ns 7; status okay; /delete-property/dmas; /delete-property/dma-names; stusb160028 { compatible st,stusb1600; reg 0x28; interrupts 2 IRQ_TYPE_EDGE_FALLING; interrupt-parent gpiog; pinctrl-names default; pinctrl-0 stusb1600_pins_a; status okay; vdd-supply vin; connector { compatible usb-c-connector; label USB-C; power-role dual; power-opmode default; port { con_usbotg_hs_ep: endpoint { remote-endpoint usbotg_hs_ep; }; }; }; }; };由于STUSB1600是挂在STM32MP157的I2C1接口下因此示例代码13.2.7.2是向I2C1节点追加内容stusb1600节点添加usb接口相关节点继续向stm32mp157d-atk.dtsi文件添加USB接口相关节点内容内容如下usbh_ehci { phys usbphyc_port0; status okay; }; usbotg_hs { phys usbphyc_port1 0; phy-names usb2-phy; usb-role-switch; status okay; port { usbotg_hs_ep: endpoint { remote-endpoint con_usbotg_hs_ep; }; }; }; usbphyc { status okay; };上述代码中有三个节点usbh_ehci、usbotg_hs和usbphyc其中usbotg_hs默认就有我们在前面将其屏蔽掉了完成以后如图13.2.7.3所示在stm32mp157d-atk-u-boot.dtsi文件中添加usbotg_hs节点最后我们需要在stm32mp157d-atk-u-boot.dtsi文件里面添加usbotg_hs节点节点内容如下所示usbotg_hs { phys usbphyc_port1 0; phy-names usb2-phy; u-boot,force-b-session-valid; hnp-srp-disable; /* TEMP: force peripheral for USB OTG */ dr_mode peripheral; // 删掉 usb-role-switch; port { usbotg_hs_ep: endpoint { remote-endpoint con_usbotg_hs_ep; }; }; };至此uboot下的USB OTG就已经修改完成重新编译uboot并烧写然后使用ums命令测试看看能不能将EMMC模拟成U盘挂载到电脑上命令如下做到这里保存修改的文件编译和拷贝。把STM32MP157D-ATK开发板的USB_OTG接口连接到电脑里重启开发板接着运行以下命令ums 0 mmc 1如果电脑上出现如图13.2.7.5所示的磁盘说明USB OTG工作成功LCD驱动修改RGB LCD 7 寸 1024×600 屏幕节点uboot也是支持LCD显示的但是要进行相应的设置主要是设置屏幕背光、屏幕时序参数这些这些直接在设备树里面修改即可。打开stm32mp157d-atk.dts文件在里面添加LCD相关节点信息首先在根节点“/”下添加panel_backlight和panel_rgb这两个节点节点内容如下示panel_backlight: panel-backlight { compatible gpio-backlight; gpios gpiod 13 GPIO_ACTIVE_HIGH; default-on; status okay; }; panel_rgb: panel-rgb { compatible simple-panel; pinctrl-names default, sleep; pinctrl-0 ltdc_pins_b; pinctrl-1 ltdc_pins_sleep_b; backlight panel_backlight; status okay; port { panel_in_rgb: endpoint { remote-endpoint ltdc_ep0_out; }; }; display-timings { native-mode timing0; timing0: timing0 { /* 7寸 1024*600 */ clock-frequency 51200000; hactive 1024; vactive 600; hfront-porch 160; hback-porch 140; hsync-len 20; vback-porch 20; vfront-porch 12; vsync-len 3; }; }; };第1~6行panel_backlight为LCD的背光控制节点主要指定LCD背光IO所使用的引脚正点原子的STM32MP157开发板LCD背光引脚为PD13。第8~38行panel_rgb为RGB LCD节点指定了LTDC接口所使用的IO、屏幕时序参数等。第11~12行指定LTDC接口的IOltdc_pins_b和ltdc_pins_sleep_b定义在stm32mp15-pinctrl.dtsi文件中。第22~35行的display-timings是非常重要的LCD时序参数不同的屏幕其时序参数不同这里演示的是正点原子7寸1024*600分辨率的。正点原子有4款RGB接口屏幕分别为4.3寸480*272和800*480分辨率、7寸800*480和1024*600分辨率这款屏幕时序参数如表13.2.9.1所示最后还需要在stm32mp157d-atk.dts文件里面向ltdc节点追加一些内容内容如下ltdc { status okay; pinctrl-names default; port { #address-cells 1; #size-cells 0; ltdc_ep0_out: endpoint0 { reg 0; remote-endpoint panel_in_rgb; }; }; };执行 ./stm32mp157d_alientek.sh 报权限不够问题分析plaintextrm: 无法删除include/config/dtc.h: 权限不够报错核心include/config下面的文件所有者不是当前普通用户 user大概率之前用 sudo/root 编译过 uboot生成的头文件属于 root现在普通用户执行脚本清理删不掉 root 的文件。现象uboot 的make clean/make distclean会尝试删除include/config/*文件是 root 权限普通 user 无删除权限。方案 1修复目录文件权限推荐不要一直用 sudo 编译 uboot在my_uboot目录下执行把整个源码目录所有者改回你当前普通用户userbashsudo chown -R $USER:$USER .执行完再跑你的编译脚本bash./stm32mp157d_alientek.shError: arch/arm/dts/stm32mp157d-atk.dtsi:223.17-31 syntax errorError: arch/arm/dts/stm32mp157d‑atk.dtsi:223.17‑31 syntax error FATAL ERROR: Unable to parse input tree报错指向第 223 行dtsusb_phy_tuning: usb‑phy‑tuning{问题根源设备树节点语法节点名称后面的左大括号{前面必须要有空格。 你代码dtsusb_phy_tuning: usb‑phy‑tuning{usb‑phy‑tuning和{紧贴在一起缺少空格DTC 编译器报语法错误。修改正确写法dtsusb_phy_tuning: usb‑phy‑tuning {在usb‑phy‑tuning与{之间加一个空格。完整修正片段dtsusb_phy_tuning: usb‑phy‑tuning { st,hs‑dc‑level 2; st,fs‑rftime‑tuning; st,hs‑rftime‑reduction; st,hs‑current‑trim 15; st,hs‑impedance‑trim 1; st,squelch‑level 3; st,hs‑rx‑offset 2; st,no‑lsfs‑sc; };Error: arch/arm/dts/stm32mp157d-atk.dtsi:223.17-20 syntax error FATAL ERROR: Unable to parse input tree scripts/Makefile.lib:308: recipe for target arch/arm/dts/stm32mp157d-atk.dtb failed make [2]: *** [arch/arm/dts/stm32mp157d-atk.dtb] Error 1 make [2]: *** 正在等待未完成的任务.... dts/Makefile:38: recipe for target arch-dtbs failed make [1]: *** [arch-dtbs] Error 2 Makefile:1090: recipe for target dts/dt.dtb failed make: *** [dts/dt.dtb] Error 2 useruser-virtual-machine:~/linux/atk-mp usb_phy_tuning: usb‑phy‑tuning { st,hs‑dc‑level 2; st,fs‑rftime‑tuning; st,hs‑rftime‑reduction; st,hs‑current‑trim 15; st,hs‑impedance‑trim 1; st,squelch‑level 3; st,hs‑rx‑offset 2; st,no‑lsfs‑sc; };错误定位报错stm32mp157d‑atk.dtsi:223.17‑20 syntax error现在行号直接指向源文件 223 行就是usb_phy_tuning: usb‑phy‑tuning {这一行。看你贴出来的代码里所有横线usb‑phy‑tuning、st,hs‑dc‑level里面的-不是英文减号是中文长破折号‑ 肉眼看着像横线但 dtc 编译器不认直接报语法错误。问题字符对比❌ 错误你现在的中文破折号usb‑phy‑tuning✅ 正确英文半角减号usb-phy-tuning所有属性里面的横线全部要替换成英文-st,hs‑dc‑level→st,hs-dc-levelst,fs‑rftime‑tuning→st,fs-rftime-tuningst,hs‑rftime‑reduction→st,hs-rftime-reductionst,hs‑current‑trim→st,hs-current-trimst,hs‑impedance‑trim→st,hs-impedance-trimst,squelch‑level→st,squelch-levelst,hs‑rx‑offset→st,hs-rx-offsetst,no‑lsfs‑sc→st,no-lsfs-sc完整正确代码复制这个这里全部是英文减号dtsusb_phy_tuning: usb-phy-tuning { st,hs-dc-level 2; st,fs-rftime-tuning; st,hs-rftime-reduction; st,hs-current-trim 15; st,hs-impedance-trim 1; st,squelch-level 3; st,hs-rx-offset 2; st,no-lsfs-sc; };操作步骤删除原来 223 行开始这一整块粘贴上面这段CtrlS保存文件清理再编译

相关新闻

魔兽世界API文档查询太散?我把自己常用的宏工具站直接搬到了本地

魔兽世界API文档查询太散?我把自己常用的宏工具站直接搬到了本地

魔兽世界API文档查询太散?我把自己常用的宏工具站直接搬到了本地 【免费下载链接】wow_api Documents of wow API -- 魔兽世界API资料以及宏工具 项目地址: https://gitcode.com/gh_mirrors/wo/wow_api 写这篇文章之前,先说个让我抓狂的夜晚。给魔…

2026/9/25 17:22:10 阅读更多 →
Windows CMD命令提示符实用指南与高效操作技巧

Windows CMD命令提示符实用指南与高效操作技巧

1. 为什么每个Windows用户都应该掌握CMD刚接触Windows系统的用户往往会对那个黑底白字的"命令提示符"窗口感到困惑——这玩意儿看起来像是上个世纪的产物,为什么在图形界面如此发达的今天,我们还需要学习这种"古老"的工具&#xff1…

2026/9/27 19:59:01 阅读更多 →
PoB 新手 18 分钟上手:一次搞定天赋模拟与伤害计算

PoB 新手 18 分钟上手:一次搞定天赋模拟与伤害计算

PoB 新手 18 分钟上手:一次搞定天赋模拟与伤害计算 【免费下载链接】PathOfBuilding Offline build planner for Path of Exile. 项目地址: https://gitcode.com/GitHub_Trending/pa/PathOfBuilding 凌晨一点,你还在论坛里反复刷新那套号称"…

2026/9/27 21:55:02 阅读更多 →

最新新闻

Zhzznengti《智能体》词条汉语拼音字母标调拼写实测案例

Zhzznengti《智能体》词条汉语拼音字母标调拼写实测案例

此文基于这项规则:汉语拼音字母标调规则 Zhzznengti Zhzznengti (agent) shzhh nenggou ganzh huanljngr bng caequh xngdon y shlxan tedng muzbiao d dailix ti. Tap key s ruanjanc, yngrjanc huo yi g xirtonx, jusbeir ziczhuxing, shsdyingxing h jiohuz ne…

2026/10/1 2:42:03 阅读更多 →
DBX 数据库结构对比与AI SQL优化实战指南:如何快速定位环境差异并搞定慢查询

DBX 数据库结构对比与AI SQL优化实战指南:如何快速定位环境差异并搞定慢查询

DBX 数据库结构对比与AI SQL优化实战指南:如何快速定位环境差异并搞定慢查询 【免费下载链接】dbx 25 MB lightweight cross-platform database client for 100 databases, including MySQL, PostgreSQL, SQLite, Redis, MongoDB, DuckDB, SQL Server, and Dameng. …

2026/10/1 2:42:03 阅读更多 →
对象检测数据集解析:以 D2L 香蕉检测数据集为例的数据加载与标注格式实战指南

对象检测数据集解析:以 D2L 香蕉检测数据集为例的数据加载与标注格式实战指南

文档教程人工智能深度学习NLP计算机视觉强化学习 【免费下载链接】d2l-en Interactive deep learning book with multi-framework code, math, and discussions. Adopted at 500 universities from 70 countries including Stanford, MIT, Harvard, and Cambridge. 项目地址&am…

2026/10/1 2:42:03 阅读更多 →
2026网络安全职场全景:零基础转行路径、薪资真相与35岁危机

2026网络安全职场全景:零基础转行路径、薪资真相与35岁危机

这两年我后台私信里,被问得最多的问题翻来覆去就是那么几个:“零基础转网络安全到底行不行?”“学网络安全是不是得先会写代码?”“听说网安岗35岁就被优化,是真的吗?”以及最经典的那个——“网上那些招聘…

2026/10/1 2:42:03 阅读更多 →
Adobe Substance 3D 2024-2025全链路更新实战:Painter、Designer、Sampler、Stager四件套深度评测

Adobe Substance 3D 2024-2025全链路更新实战:Painter、Designer、Sampler、Stager四件套深度评测

Adobe Substance 3D系列在2024到2025这个时间节点上做了一次相当有分量的更新,圈子里讨论度很高。我前后用了大概三周时间,把Substance 3D Painter、Designer、Sampler和Stager这四个核心工具的新版本都跑了一遍,覆盖了从材质制作、纹理绘制到…

2026/10/1 2:42:03 阅读更多 →
ng-table高级美化技巧:自定义单元格、数据行与表头模板的完整指南

ng-table高级美化技巧:自定义单元格、数据行与表头模板的完整指南

ng-table高级美化技巧:自定义单元格、数据行与表头模板的完整指南 【免费下载链接】ng-table Simple table with sorting and filtering on AngularJS 项目地址: https://gitcode.com/gh_mirrors/ng/ng-table ng-table 是一款为 AngularJS 打造的轻量级表格增…

2026/10/1 2:41:03 阅读更多 →

日新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 0:00:30 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 0:00:30 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 1:01:17 阅读更多 →

周新闻

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解 【免费下载链接】spirula-studio Cross-vendor 3D Gaussian Splatting trainer - video to splat to mesh, Vulkan or CUDA. 项目地址: https://gitcode.com/GitHub_Trending/sp/spirula-studio Sp…

2026/9/30 13:14:22 阅读更多 →
SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南 模板网站太丑不够用?别急着加滤镜,那是治标不治本。很多老板盯着后台流量掉得眼红,却还在纠结首页Banner的圆角是不是3像素。这就像穿着西装去挖土,姿势不对,努力白费。我整理这份 速查手册…

2026/9/30 18:13:06 阅读更多 →
FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏 【免费下载链接】FireRed-OpenStoryline FireRed-OpenStoryline is an AI video editing agent that transforms manual editing into intention-driven directing through natural language …

2026/9/30 13:14:49 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 0:00:30 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 0:00:30 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 1:01:17 阅读更多 →