前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >STM32MP157D-DK1 STM32CubeID使用与M核开发

STM32MP157D-DK1 STM32CubeID使用与M核开发

作者头像
xxpcb
发布2024-01-10 15:49:18
1310
发布2024-01-10 15:49:18
举报

干货福利,第一时间送达!

STM32MP157具有A7内核核M4内核,前面介绍的一些文章,都是在A7内核上进行的,本篇来介绍M4内核的开发,以及开发时要用到的STM32 CubeIDE软件的使用。

1 STM32 CubeIDE创建LED工程

STM32CubeIDE是一体式多操作系统开发工具,是STM32Cube软件生态系统的一部分。

下载地址:https://www.st.com/zh/development-tools/stm32cubeide.html#st-get-software

首先要先安装STM32 CubeIDE,普通的exe安装,这里不展开介绍。

1.1 新建工程

文件,新建,STM32工程

第一次会进行一些文件的下载

等待下载完成后界面如下,有4个窗口切换标签:

  • MCU/MPU Selector:MCU/MPU芯片选择窗口
  • Board Selector:ST官方的一些开发板选择窗口
  • Example Selector:示例程序选择窗口,ST官方开发板的一些现有示例
  • Corss Selector:交叉引用工具窗口,选择对应的CPU型号,会弹出一个相同系统的CPU型号的资源对比界面

在搜索框输入STM32MP157D后,右边可以看到4个具体的型号,其中STM32MP157DAC1中描述的是STM32MP157D-DK1开发板,那就选这个:

点Next之后,设置工程的名称,例如01_LED,可以勾选Use default location指定位置:

再Next之后,点击Firmware Updater可修改固件包的位置:

点Finish之后,会弹出Open Associated Perspective的窗口,点Yes即可:

下载某些文件需要登录ST账号,没登录可能会提示类似如下失败的弹窗,可以先不管,后面再处理。

然后来到这个界面,又有4个可切换的窗口的标签:

  • Pinout & Configuration:引脚配置窗口
  • Clock & Configuration:时钟配置窗口
  • Project Manager:项目管理配置窗口
  • Tool:相关工具配置窗口

刚才说到,因为没登录ST的账号,有些文件没下载成功。现在可以再来下载,点击菜单Help中的Manage embedded software packsges,弹出如下窗口,找到STM32MP1,勾选Pachage,点击安装:

然后就会再次下载:

下载完成,关联成功,就会变成绿色的方块:

可以在下载位置查看下载的文件:

1.2 配置引脚

使用LED中的LD7进行LED控制,根据文档,对应的是PH7引脚,高电平点亮:

搜索PH7引脚,设置为Output模式:

然后再右键,设置Pin Reserved,选择Cortex-M4 FW。

点击左边的System Core,再点到GPIO,可以进行GPIO配置,如上下拉、速率等:

然后,时钟可以不用再配置,项目管理这里,注意勾选如下两项:

  • Copy only the necessary library files,工程会从 STM32Cube MCU 软件包中拷贝需要用到的 HAL 库文件, 没用到的不会拷贝
  • Generate peripheral initialization as a pair of '.c/.h' files per peripheral ,表示让每个外设生成独 立的'.c/.h'文件,如果此项不勾选,那么外设相关的初始化代码将会生成在 man.c 中了

最后Ctrl+S保存,会提示要生成代码,点Yes即可:

然后还会有一个弹窗,点Yes即可:

1.3 修改代码并编译

在main.cpp中,添加控制LED亮灭逻辑代码:

代码语言:javascript
复制
HAL_GPIO_WritePin(LD7_GPIO_Port,LD7_Pin,GPIO_PIN_SET);
HAL_Delay(500);
HAL_GPIO_WritePin(LD7_GPIO_Port,LD7_Pin,GPIO_PIN_RESET);
HAL_Delay(500);

注意代码添加的位置,要添加在成对出现的BEGIN和END的区域之间:

然后点击“小锤子”图标进行编译,可以看到如上图0错误0警告。

2 烧录程序测试

2.1 切换BOOT启动模式

开发板的BOOT配置BOOT0为OFF,BOOT1为ON,板子的ST-LINK接口连接板子到电脑。

2.2 配置ST-Link

菜单中Run中选择Debug Configurations...

然后,双击STM32 Cortex-M C/C++ Application 就会自动创建和打开名为HAL_LED_CM4 Debug 的配置项:

切换到调试器窗口,选择thru JTAG/SWD link:

然后点击 Aply,Debug 开始调试。

第一次在 STM32CubeIDE 用 ST-Link 下载程序的话,系统会提示更新 ST-LINK 固件:

弹出的窗口中,选择ST-LINK:

然后再重新插拔USB线,点击Open in update mode,弹出如下界面:

点击 Upgrade 更新 ST-Link 固件,等待更新完成即可

2.3 调试运行程序

然后继续在刚才的调试器窗口,点击Debug 开始调试

全速运行后,可以看到LD7的橘色灯会循环亮灭:

2.4 通过Linux系统运行elf固件

将板子的BOOT开关切换到从SD卡启动Linux系统,然后将STM32 CubeIDE编译出的elf文件:

如01_LED_CM4.elf拷贝到开发板的/lib/firmware目录中,添加可执行权限,然后使用如下指令即可运行M4内核的程序:

代码语言:javascript
复制
#加载固件
echo 01_LED_CM4.elf >/sys/class/remoteproc/remoteproc0/firmware  
#启动固件
echo start >/sys/class/remoteproc/remoteproc0/state

3 总结

本篇介绍了STM32MP157D-DK1开发板M核程序的开发流程,包括STM32CubeIDE创建工程,引脚配置与程序编写,最终实现了基础了LED亮灭实验。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2024-01-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 码农爱学习 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 干货福利,第一时间送达!
  • 1 STM32 CubeIDE创建LED工程
    • 1.1 新建工程
      • 1.2 配置引脚
        • 1.3 修改代码并编译
        • 2 烧录程序测试
          • 2.1 切换BOOT启动模式
            • 2.2 配置ST-Link
              • 2.3 调试运行程序
                • 2.4 通过Linux系统运行elf固件
                • 3 总结
                相关产品与服务
                项目管理
                CODING 项目管理(CODING Project Management,CODING-PM)工具包含迭代管理、需求管理、任务管理、缺陷管理、文件/wiki 等功能,适用于研发团队进行项目管理或敏捷开发实践。结合敏捷研发理念,帮助您对产品进行迭代规划,让每个迭代中的需求、任务、缺陷无障碍沟通流转, 让项目开发过程风险可控,达到可持续性快速迭代。
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档