当前位置: 首页 > news >正文

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都能成为你解…...

Agent 性能优化:降低 Token 消耗的 5 个技巧

Agent 性能优化:降低 Token 消耗的 5 个技巧系列文章: 《AI Agent 开发实战》第 7 期 难度等级: ⭐⭐⭐⭐ 预计耗时: 35 分钟🎯 本文目标 学会优化 AI Agent 性能: ✅ 减少 Token 消耗✅ 提高响应速度✅ 降…...

【24年最新算法】首发CPO-XGBoost回归+交叉验证 基于冠豪猪优化算法-XGBoost多变量回归预测

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…...

Pandoc:5步掌握全能文档转换的极简工作流

Pandoc:5步掌握全能文档转换的极简工作流 【免费下载链接】pandoc Universal markup converter 项目地址: https://gitcode.com/gh_mirrors/pa/pandoc 价值定位:为什么每个开发者都需要一款"格式翻译官" 当你需要将Markdown笔记转换为…...

手把手教你用R玩转MSigDB:从数据库下载、基因集构建到GSEA/GSVA完整流程

手把手教你用R玩转MSigDB:从数据库下载、基因集构建到GSEA/GSVA完整流程 如果你正在寻找一个权威的基因集数据库来支持你的转录组功能分析,MSigDB(Molecular Signatures Database)无疑是首选。作为Broad研究所维护的核心资源&…...

麦橘超然Flux效果展示:多风格AI绘画作品集锦

麦橘超然Flux效果展示:多风格AI绘画作品集锦 1. 惊艳开篇:当AI画笔遇见专业级表现 在数字艺术创作领域,我们常常面临一个两难选择:要么使用云端AI服务但受限于网络和隐私,要么部署本地工具却要忍受复杂的配置和显存焦…...

Windows下RedisInsight保姆级安装教程:从下载到连接Redis全流程详解

Windows平台RedisInsight全流程实战指南:从零搭建高效Redis可视化环境 Redis作为当下最流行的内存数据库之一,其强大的性能与丰富的数据结构深受开发者青睐。但在日常开发中,仅通过命令行操作Redis难免效率低下——这正是RedisInsight的价值所…...

掌握Nemo文件管理器:Cinnamon桌面环境的高效文件管理利器

掌握Nemo文件管理器:Cinnamon桌面环境的高效文件管理利器 【免费下载链接】nemo File browser for Cinnamon 项目地址: https://gitcode.com/gh_mirrors/ne/nemo Nemo作为Cinnamon桌面环境的默认文件管理器,不仅仅是一个简单的文件浏览器&#xf…...

vLLM-v0.17.1实操手册:SSH环境下vLLM服务日志实时分析与性能诊断

vLLM-v0.17.1实操手册:SSH环境下vLLM服务日志实时分析与性能诊断 1. vLLM框架简介 vLLM是一个专注于大语言模型(LLM)推理和服务的高性能开源库,由加州大学伯克利分校的天空计算实验室(Sky Computing Lab)发起,现已发展为社区驱动的项目。它…...

机器人离线编程专访:我是SiemensMCD与pdps用户,该不该切换为国产机器人设计与仿真软件iRobotCAM

摘要: 作为Siemens MCD与PDPS的用户,我从PDPS切换到其它软件时会考虑哪些因素,该不该切换到国产的iRobotCAM,本文通过专该机器人设计与仿真软件专家的形式,提供行业从业者的视角,阐述iRobotCAM的产品特点与适用性。工业…...

别再被‘小样本’难倒了!用Python的PyMC3库实战层次贝叶斯模型

用PyMC3解锁小样本分析:层次贝叶斯建模实战指南 当你的数据集像便利店冰柜里的酸奶——每个品类只有零星几瓶时,传统统计方法往往会束手无策。想象你正分析20个城市的新开门店周销售额,每个城市却只有3-5条数据记录。这时,层次贝叶…...