stm32MP135裸机编程:修改官方GPIO例程在DDR中点亮第一颗LED灯
0 参考资料
轻松使用STM32MP13x - 如MCU般在cortex A核上裸跑应用程序.pdf
正点原子stm32mp135开发板&原理图
STM32Cube_FW_MP13_V1.1.0
STM32CubeIDE v1.15
1 需要修改那些地方
1.1 修改LED引脚
本例使用开发板的PI3引脚链接的LED作为我们点亮的第一颗LED灯,开启我们的基于stm32MP135的裸机编程生涯。

LED1就是我们需要控制的LED灯,低电平点亮,高电平熄灭。
1.2 修改用户程序在DDR中运行
在《轻松使用STM32MP13x - 如MCU般在cortex A核上裸跑应用程序》中可以很清晰看到我们的用户程序是运行在DDR中(也可以运行在SYSRAM中,只有128KB)。

除此之外,我们还需要为用户程序添加stm32头标识,相关说明如下:

2 基于官方GPIO例程进行修改LED驱动
2.1 导入官方GPIO例程
将V1.1.0软件包的GPIO_EXTI工程导入到stm32CubeIDE中:

2.2 删除main函数中的无关部分

main函数只保留HAL_Init()和SystemClock_Config(),其余部分全部注释掉。
2.3 添加LED初始化部分

__HAL_RCC_GPIOI_CLK_ENABLE();/*Configure GPIO pin : PI3 */GPIO_InitStruct.Pin = GPIO_PIN_3;GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;GPIO_InitStruct.Pull = GPIO_NOPULL;GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;HAL_GPIO_Init(GPIOI, &GPIO_InitStruct);HAL_GPIO_WritePin(GPIOI, GPIO_PIN_3, GPIO_PIN_RESET);
初始化PI3管脚为推挽输出,初始化完之后输出低电平点亮LED。
2.4 让LED闪烁起来
只是点亮一颗LED灯看起来很枯燥,我们在while循环中让LED以一秒为周期闪烁起来,代码如下:

while (1){/* USER CODE END WHILE *//* USER CODE BEGIN 3 */HAL_Delay(1000);HAL_GPIO_TogglePin(GPIOI, GPIO_PIN_3);}
3 基于官方GPIO例程进行修改程序运行在DDR
3.1 当代码量超过SYSRAM(128KB)的大小时,需要将程序运行在DDR。首先打开C/C++ Build 配置,在Preprocessor中添加USE_DDR宏定义

3.2 修改链接文件名,重命名为 “stm32mp13xx_a7_ddr.ld”并导入GCC链接脚本


这里重命名只是为了便于区分。
3.3 修改REGION_ALIAS定义到DDR区域
打开用户程序链接脚本,使用DDR作为用户程序空间。

3.4 为用户程序添加stm32头标识
为用户程序加入STM32 Header,可在工程配置的post-build steps中加入如下命令:“(path_to_STM32CubeMP13 Package)/Utilities/ImageHeader/postbuild_STM32MP13.sh" "${gnu_tools_for_stm32_compiler_path}" "${BuildArtifactFileBaseName}"
我们只需要将path_to_STM32CubeMP13 Package修改成我们为STM32CubeMP13开发包
存放路径即可:

至此,所有修改宣告完成,编译官方GPIO例程即可。终端打印区显示信息如下:

可以看到我们的程序被定义在DDR的首地址。
相关文章:
stm32MP135裸机编程:修改官方GPIO例程在DDR中点亮第一颗LED灯
0 参考资料 轻松使用STM32MP13x - 如MCU般在cortex A核上裸跑应用程序.pdf 正点原子stm32mp135开发板&原理图 STM32Cube_FW_MP13_V1.1.0 STM32CubeIDE v1.151 需要修改那些地方 1.1 修改LED引脚 本例使用开发板的PI3引脚链接的LED作为我们点亮的第一颗LED灯,…...
探索乡村振兴新模式:发挥科技创新在乡村振兴中的引领作用,构建智慧农业体系,助力美丽乡村建设
随着科技的不断进步,乡村振兴工作正迎来前所未有的发展机遇。科技创新作为推动社会发展的重要力量,在乡村振兴中发挥着越来越重要的引领作用。本文旨在探讨如何发挥科技创新在乡村振兴中的引领作用,通过构建智慧农业体系,助力美丽…...
机器学习笔记:focal loss
1 介绍 Focal Loss 是一种在类别不平衡的情况下改善模型性能的损失函数最初在 2017 年的论文《Focal Loss for Dense Object Detection》中提出这种损失函数主要用于解决在有挑战性的对象检测任务中,易分类的负样本占据主导地位的问题,从而导致模型难以…...
Python编程:解锁超能力,开挂人生!
在当今数字化时代,编程技能变得日益重要,而Python作为一门功能强大且易于学习的编程语言,已经成为许多人的首选。掌握Python,确实可以让你在技术领域如鱼得水,仿佛拥有了超能力一般。 Python的简易语法和丰富的库资源…...
TSINGSEE青犀视频:城市道路积水智能监管,智慧城市的守护者
随着城市化进程的加快,城市道路网络日益复杂,尤其在夏季,由于暴雨频发,道路积水问题成为影响城市交通和市民生活的重要因素之一。传统的道路积水监测方式往往依赖于人工巡逻和简单的监控设备,这些方法存在效率低下、响…...
几款免费又好用的项目管理工具(甘特图)
选择甘特图工具时,我们不仅要考虑工具的基本功能,还要考虑其易用性、团队协作能力、定制性以及与其他软件的集成能力。以下是几款好用的甘特图工具及它们的优点和不足,帮助你来选择适合自己的工具: 1、进度猫 特点: 任…...
落地台灯什么牌子的比较好?五款适合学生使用的大路灯分享
以往只知道养孩子难,但到底有多难,心里确实没有个切实的预期,但随着我家孩子越长越大,我才知道原来想要把孩子的身心健康照顾好到底是有多难!吃、穿、住、行无一不要精心挑选,就是为了能给他营造一个更好的…...
(免费领源码)基于 node.js#vue#mysql的网上游戏商城35112-计算机毕业设计项目选题推荐
摘 要 本论文主要论述了如何使用node.js语言开发一个基于vue的网上游戏商城,本系统将严格按照软件开发流程进行各个阶段的工作,本系统采用的数据库是Mysql,使用node.js的koa技术技术构建的一个管理系统,实现了本系统的全部功能。在…...
[2024-06]-[大模型]-[Ollama] 0-相关命令
常用的ollama命令[持续更新中] ollama更新: curl https://ollama.ai/install.sh |sh带着flash attention启动: OLLAMA_FLASH_ATTENTION1 ollama serve停止ollama服务: sudo systemctl stop ollama note:目前遇到sudo systemctl …...
Image组件无法设置长按事件
最近对image 设置长按事件,通过api发现有个长按事件 LongPressGesture,但是使用了长按没反应,于是看文档,文档描述如下: 当组件默认支持可拖拽时,如Text、TextInput、TextArea、HyperLink、Image和RichEd…...
计算机网络 —— 数据链路层(VLAN)
计算机网络 —— 数据链路层(VLAN) 什么是VLAN为什么要有VLANVLAN如何实现IEEE 802.1Q 我们今天来看VLAN: 什么是VLAN VLAN(Virtual Local Area Network,虚拟局域网)是一种网络技术,它将一个物…...
Redis基本操作介绍
1. 安装与启动 安装:Redis支持多种操作系统,包括Linux、Windows等。从Redis官网下载相应的安装包,并按照系统要求进行安装。启动: Linux系统:在终端中,进入Redis的安装目录,运行redis-server命…...
Unity3d使用3D WebView for Windows and macOS打开全景网页(720云)操作问题记录
问题描述 使用Unity3d内嵌网页的形式打开720云中的全景图这个功能,使用的是3D WebView for Windows and macOS插件,720云的全景图在浏览器上的操作是滑动鼠标滚轮推远/拉近全景图,鼠标左键拖拽网页可以旋转全景图内容。网页的打开过程是正常…...
把文件从一台linux机器上传到另一台linux机器上
文章目录 1,第一种情况1.1 先测试2台机器是否可以互相通信1.2 对整个文件夹里面的所有内容进行传输的命令1.3 检查结果 2,第二种情况2.1,单个文件传输的命令 1,第一种情况 我这里有2台linux机器, 机器A:19…...
WT32-ETH01作为TCP Server进行通讯
目录 模块简介WT32-ETH01作为TCP Server设置W5500作为TCP Client设置连接并进行通讯总结 模块简介 WT32-ETH01网关主要功能特点: 采用双核Xtensa⑧32-bit LX6 MCU.集成SPI flash 32Mbit\ SRAM 520KB 支持TCP Server. TCP Client, UDP Server. UDP Client工作模式 支持串口、wi…...
mvn install -DskipTests
mvn install -DskipTests mvn install -DskipTests 不用做测试的打包代码...
Lua搭建网站后台教程
本文讲解如何使用二进制发布包和FastWeb网站管理工具搭建站点 FastWeb网站管理工具 使用该工具可快速在Windows平台部署。支持官方或三方模块的自动安装、日志调试、版本更新等。 1、下载最新版本压缩包 2、解压到任意目录(建议英文) 3、运行 ①点击 [设置]->[安装] 部…...
Java | Leetcode Java题解之第137题只出现一次的数字II
题目: 题解: class Solution {public int singleNumber(int[] nums) {int a 0, b 0;for (int num : nums) {b ~a & (b ^ num);a ~b & (a ^ num);}return b;} }...
大数据技术Hbase列数据库——topic3
目录 启动Hadoop启动HbaseHbase常用Shell命令基本命令关于表的操作增删改查询 启动Hadoop 1.到Hadoop安装目录下输入命令 sbin/start-all.sh[rootlocalhost hadoop-2.7.1]# sbin/start-all.sh This script is Deprecated. Instead use start-dfs.sh and start-yarn.sh Starti…...
Sklearn基础教程:机器学习界的瑞士军刀
Sklearn基础教程:机器学习界的瑞士军刀 引言 在机器学习的世界里,sklearn(Scikit-learn)就像是一把瑞士军刀,小巧、多功能,而且非常实用。无论你是数据科学家还是编程新手,sklearn都能成为你解…...
2026年腾讯云部署OpenClaw/Hermes Agent 配置Token Plan怎么快速上手?看这篇
2026年腾讯云部署OpenClaw/Hermes Agent 配置Token Plan怎么快速上手?看这篇。OpenClaw是开源的个人AI助手,Hermes Agent则是一个能自我进化的AI智能体框架。阿里云提供计算巢、轻量服务器及无影云电脑三种部署OpenClaw 与 Hermes Agent的方案、百炼Toke…...
Laravel集成DeepSeek AI:官方SDK配置与实战指南
1. 项目概述与核心价值最近在折腾一个AI相关的Laravel项目,需要集成一个靠谱的文本生成模型。市面上大模型API不少,但要么贵,要么不稳定,要么就是国内访问延迟感人。直到我发现了deepseek-php/deepseek-laravel这个包,…...
如何用Python自动化脚本轻松抢到大麦网演唱会门票
如何用Python自动化脚本轻松抢到大麦网演唱会门票 【免费下载链接】DamaiHelper 大麦网演唱会演出抢票脚本。 项目地址: https://gitcode.com/gh_mirrors/dama/DamaiHelper 还在为抢不到心仪演唱会门票而烦恼吗?面对秒光的票源和昂贵的黄牛票,手动…...
从理论到实践:Ceres、G2O与GTSAM在位姿图优化中的核心实现与对比
1. 位姿图优化:从理论到代码的完整视角 想象你正在搭建一个室内扫地机器人,它需要同时完成两件事:构建房间地图(Mapping)和确定自身位置(Localization)。这就是典型的SLAM问题。而位姿图优化&am…...
Cesium实战:GeoJSON面数据贴地加载与边界线精准绘制方案
1. 问题背景:GeoJSON面数据贴地加载的边界线消失现象 第一次用Cesium加载GeoJSON面数据时,我遇到了一个让人抓狂的问题——当开启clampToGround: true实现贴地效果后,原本清晰的边界线突然消失了。这就像给地图蒙上了一层半透明的纱…...
Midjourney v7艺术风格跃迁路径:从基础写实到超现实叙事的5阶能力模型,含GPT-4o协同提示链模板
更多请点击: https://intelliparadigm.com 第一章:Midjourney v7艺术风格跃迁路径总览 Midjourney v7 并非简单迭代,而是以扩散模型架构重构与多模态风格理解为内核的范式跃迁。其核心突破在于引入「语义风格锚点(Semantic Style…...
Neovim AI编程助手codecompanion.nvim:无缝集成与高效开发实践
1. 项目概述:一个为Neovim而生的AI编程伴侣如果你和我一样,是个深度依赖Neovim进行日常开发的程序员,那么你一定经历过这样的时刻:面对一段复杂的逻辑,需要反复查阅文档;或者写一个函数时,卡在某…...
RK3568网关实战:如何用1TOPS NPU在智慧农业里做实时虫情监测?
RK3568网关实战:如何用1TOPS NPU在智慧农业里做实时虫情监测? 在智慧农业的浪潮中,虫害监测一直是困扰农户的核心问题。传统依赖人工巡查的方式不仅效率低下,还容易错过最佳防治时机。而基于RK3568边缘计算网关的实时虫情监测方案…...
Promises/A+性能优化指南:让你的异步代码运行得更快
Promises/A性能优化指南:让你的异步代码运行得更快 【免费下载链接】promises-spec An open standard for sound, interoperable JavaScript promises—by implementers, for implementers. 项目地址: https://gitcode.com/gh_mirrors/pr/promises-spec 在Ja…...
树莓派智能画布:从Raspbian部署到NeoPixel灯光系统集成
1. 项目概述:打造一个会发光的智能画布如果你和我一样,对嵌入式硬件和创意编程的结合着迷,那么将一块普通的画布变成一个由代码控制的动态灯光装置,绝对是一件充满乐趣和成就感的事情。这个项目,我称之为“CompuCanvas…...
