0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

stm32mp1 Cortex M4开发篇1:stm32CubeIDE开发环境搭建

华清远见工控 2021-10-13 17:52 次阅读

写在前面:

本文章为《ARM Cortex-M4裸机开发篇》系列中的一篇,,全系列总计14篇。笔者使用的开发平台为华清远见FS-MP1A开发板(STM32MP157开发板),Cortex-M4裸机开发篇除了讲M4裸机开发外,还会讲解通过M4控制资源扩展板上的各种传感器执行器模块(包括空气温湿度传感器LED灯、数码管、蜂鸣器、震动马达、按键中断、风扇等),本篇是M4控制资源扩展板中的一篇。

资源扩展板是FS-MP1A开发板的扩展模块,主要包含了10余种助主流传感器、执行器件、总线控制器件,非常方便项目扩展用。可拓展开发智慧家庭、智能医疗、智能安防、工业控制、图像识别、环境检测等方向的10个左右综合项目,华清远见开发板也将配套提供所有项目的说明文档、实验源码、应用程序等资料

针对FS-MP1A开发板,除了Cortex-M4裸机开发篇外,还包括其他多系列教程,包括Cortex-A7开发篇、FreeRTOS篇、Linux基础及应用开发篇、Linux系统移植篇、Linux驱动开发篇、硬件设计篇、人工智能机器视觉篇、Qt应用编程篇、Qt综合项目实战篇等。

资源扩展板介绍

硬件介绍

poYBAGFmcj6AXKrxAAKh90fgDqA915.jpg

资源扩展板可开发项目

poYBAGFmcj6AXKrxAAKh90fgDqA915.jpg

Cortex-M4 开发环境搭建

STM32CubeIDE是一个高级C / C ++开发平台,具有用于STM32微控制器微处理器的外设配置,代码生成,代码编译和调试功能。它基于ECLIPSE™/ CDT框架和用于开发的GCC工具链,以及用于调试的GDB。它允许集成数百个现有插件,这些插件可以完善ECLIPSE™IDE的功能。

主要特点:

  • 集成STM32CubeMX,可提供以下服务:

STM32微控制器和微处理器的选择

引脚排列,时钟,外设和中间件配置

项目创建和初始化代码的生成

  • 基于Eclipse™/ CDT,以支持Eclipse™的附加软件,GNU C / C ++为ARM ®工具链和GDB调试器
  • 其他高级调试功能包括:

CPU内核,外设寄存器和内存视图

实时变量观看视图

系统分析和实时跟踪(SWV)

CPU故障分析工具

  • 支持ST-LINK(STMicroelectronics)和J-Link(SEGGER)调试探针
  • 从Atollic导入项目® TrueSTUDIO ®和AC6系统工作台的STM32(SW4STM32)
  • 多操作系统支持:Windows ®,Linux的®和MacOS ®,仅64位版本

STM32CubeIDE软件获取

https://www.st.com/content/st_com/en/products/development-tools/software-development-tools/stm32-software-development-tools/stm32-ides/stm32cubeide.html?dl=C1Xl1v%2FULQ0dLNXhPUM9vg%3D%3D%2CcrEvVZcaQVFOpw%2BiBXN5OniVodWnWIjZczA3UQRxaf4t4IqBoA4ynj7KVdsgDWQkzo61Vd7IFSR48HcBaQB0YRJ%2BkmDJE3FQokO6ZkDEdtElQtf%2F5O4k7L07zP26x1rzWypenTcR3xmxW8zQdk0cZSrFINp1v0rofptktxG1ZiaKxBEZk%2BfFyQsFB9NEmpcO3%2Fali0QZwOaXOvoFFoLamIQEGD0T1zvkxSvhtnVFDrXK1rl7wv7VhFB0FbFa8NwpLv9lNr8K2z%2F9hdTjaL5tTN%2FRTqQyx%2FVXZA1UBill%2FgmJ7GsUcR3KHgrSsnv2S3bvl%2FddwcRJzcECHruxxQm562Y87gHg8Ff7A5ybUDdZAnFKsshPEc9Op6unaXrXQKSNEADXkZYJ6T5trp1%2Be%2FgJHmQIysU%2BW7aYcXaGK4N9Lc7SHVRIqA4IX1vVw2plCG9z&uid=QchKIdBoOeE1wsFONZ4se/WuF3wDZMRC

poYBAGFmcj6AJvNYAABfKQWnGl8691.jpg

光盘路径【华清远见-FS-MP1A开发资料\01-工具软件\st-stm32cubeide_1.5.0_8698_202

01117_1050_x86_64.exe】

STM32CubeIDE安装

不能在中文路径下安装

双击

pYYBAGFmcj6AVCyRAAAM2SjeDaY803.jpg

进行安装

poYBAGD1MCGAUKdBAACWdeeJ6vY978.png

poYBAGD1MCWAaINQAABdfPtD8Ok319.png

可自行选择路径安装

pYYBAGFmcj6AfTeoAABGKv_10mE724.jpg

poYBAGFmcj-APo-9AABRHpySFxY858.jpg

弹出需要安装STLINK驱动,选择安装

poYBAGD1MDKAGghxAADFlfHV7UQ749.png

poYBAGD1MDaAcfv4AAApQ-sj_iY117.png

poYBAGD1MDuALTGDAACMgHBN7ow118.png

安装完成后如上图。

STM32CubeIDE软件安装完成后同样ST-Link驱动也安装完成,ST-Link连接至PC,可在设备管理器中看到ST-link Debug和STMicroelectronics STLink Virtual COM Port串口

pYYBAGD1MD-AT_Q1AABc-nZg3Hk621.png

注意:如果设备管理器中ST-Link驱动无法识别,带有惊叹号,需在高级启动中禁用驱动程序强制签名

STM32CubeIDE软件使用

双击桌面图标打开软件,选择workspace目录

pYYBAGFmcj-AVN6cAABO1FP2kxQ850.jpg

软件界面

pYYBAGFmcj-AbsOBAABygIkO1bg877.jpg

新建工程

打开STM32CubeIDE->File->New->STM32 Project

poYBAGD1ME2AVPeTAACVnz-qkMk546.png

可以在左侧搜索框内输入芯片型号STM32MP157A进行搜索,选择对应芯片,点击Next

poYBAGFmcj-ASM-mAAC8KlaJkAU786.jpg

填写工程名,点击Finsh

poYBAGD1MFWAXdlzAABW-5r3LmY634.png

点击Yes打开配置页面

pYYBAGD1MFqAKmnWAAAp3TMlYLo989.pngpoYBAGFmcj-AF6saAAEDRfefWWQ542.jpg

搜索框内搜索LED对应GPIO引脚PZ5、PZ6、PZ7,左键点击设置为GPIO_Output

pYYBAGD1MGOAQN6wAAC-3IaQ2Ns189.png

在Code Generator处选择为每个外设生成单独的C和H文件,这样设置方便阅读代码

poYBAGD1MGmAams0AACpGOkAn0s579.png

完成以上设置后,Ctrl+S保存,会提示是否需要生成代码,选择Yes即可自动生成代码。系统会自动生成System Clock代码

poYBAGD1MG2ADAi6AAAgBCPP1k8477.png

可以在左侧工程文件夹看到生成的工程,CA7文件夹是给A7核使用的。Drivers文件夹是ST提供的HAL_Drivers,用户无需修改。LED_CM4子工程是我们生成的M4内核的工程代码。

pYYBAGD1MHKAXkD2AAC0tr4gJYk085.png

导入已有工程

在 Project Explorer 窗口中右击鼠标,选择“Import…”,如下图所示

poYBAGD1MHaAECK2AABm4QskvyY608.png

选择“Import…”后, 出现如下图所示的窗口, 选中“Existing Project Into Workpace”, 然后点击

“Next”

pYYBAGD1MHqAXB-mAABurMiDrgg250.png

点击Browse选择工程存放路径,勾选需要添加的工程,点击Finish

poYBAGD1MH-ACWQuAACG-kcvcTo992.png

点击 finish 后,工程就已经导入成功了

编译下载

开发板连接

拨动开发板启动拨码至001,开发板上电,使开发板处于Engineering mode,就可以进行开发或调试CM4固件了,连接好ST-LINK和开发板

pYYBAGFmckCASQDcAADmxL9PPaw612.jpg

pYYBAGFmckCATcaEAACNafeY7bE886.jpg

工程编译

pYYBAGD1MI6AAs7zAAAWIZ__Mk0419.png

Debug调试

选择Debug按键

poYBAGD1MJKAaXBQAAAcODjIsEo721.png

选择STM32 Cortex-M C/C++ Application

poYBAGD1MJaALoX-AACiyFdMFqc386.png

调试器 下选择thru JTAG/SWD link (Engineering mode) ,完成点击Debug

poYBAGFmckCAD1WyAACfOLkB4IY581.jpg

选择Switch

pYYBAGD1MJ-AMn90AAA63B5XzFQ096.png

点击运行

pYYBAGFmckCAEO--AAC8rqcgKNE398.jpg

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • ARM
    ARM
    +关注

    关注

    134

    文章

    9087

    浏览量

    367398
  • 嵌入式
    +关注

    关注

    5082

    文章

    19107

    浏览量

    304835
  • Linux
    +关注

    关注

    87

    文章

    11294

    浏览量

    209344
  • STM32
    +关注

    关注

    2270

    文章

    10896

    浏览量

    355757
  • 开发板
    +关注

    关注

    25

    文章

    5033

    浏览量

    97378
收藏 人收藏

    评论

    相关推荐

    ST×米尔STM32MP25x线下培训会

    STM32MP257D是ST推出的搭载了双核Cortex-A35@1.5GHz和Cortex-M33@400MHz的微处理器。米尔电子基于STM32MP257D推出了MYD-LD25X
    的头像 发表于 12-06 01:00 209次阅读
    ST×米尔<b class='flag-5'>STM32MP</b>25x线下培训会

    使用STM32CubeIDE建的MP257F工程会出现大量缺库现象,为什么?

    在使用STM32MP257开发板和STM32CubeIDE创建工程时,我遇到了在导入OpenAMP库后编译工程出现的问题。编译时提示找不到某些库文件。为了解决这一问题,我尝试从
    发表于 07-24 07:23

    STM32CubeIDE编译工程报错如何解决?

    arm-none-eabi-gcc \"../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c\" -mcpu=cortex-m4 -std
    发表于 07-23 07:06

    请问stm32cubeide怎么取ImageER_IROM1Limit?

    MDK的时候取image大小是用\"ImageER_IROM1Limit\"这样的,但是stm32cubeide用不了,大家有什么办法吗?谢谢
    发表于 05-29 06:03

    STM32cubeide如何能打开以前cubemx工程文件(*.ioc文件)?

    请教: STM32cubeideSTM32CubeMX+编译器的整合版本 为了缩减开发时间,想直接打开原来cubemx的项目。 请教:STM32cubeide如何能打开以前cubem
    发表于 04-16 08:03

    怎样使用STM32MP157A-DK1探索板的m4和SAI协议做音频开发,比如录音?

    怎样使用STM32MP157A-DK1探索板的m4和SAI协议做音频开发,比如录音? M4开发包没有audio codec的接口可以使用,
    发表于 04-11 06:53

    STM32CubeIDE生成STM32F4Discovery的RTOS工程无法运行的原因?怎么解决?

    遇到问题的步骤: 1. 打开STM32CubeIDE, 然后新建STM32工程 2. 选择板子, 型号为:STM32F407-DISC1, 然后命名为: test407 3. 在
    发表于 04-11 06:16

    STM32CubeMX生成stm32cubeide工程报错的原因?怎么解决?

    使用STM32CubeMX,建立了STM32F103VC的工程文件,能够生成IAR工程,正常使用没有问题。由于IAR调试时老是闪退,想换STM32CubeIDE用用,安装了最新的1.42版本。但就是
    发表于 04-07 07:14

    STM32H757XI使用STM32CubeIDE双核一起调试,cortex-M7无法运行怎么解决?

    ) != RESET) (timeout-- &gt; 0)); 然后用尽时间进入Error_Handler(void)。 但是与此同时cortex-M4可以正常调试。 如果不勾选
    发表于 04-01 06:02

    MCU友好过渡MPU,米尔基于STM32MP135开发板裸机开发应用笔记

    体验。米尔提供了支持裸机开发环境,接下来就让我们介绍如何在米尔的STM32MP135开发板上进行裸机开发。​
    发表于 03-29 18:35

    请问STM32CubeIDE如何查看代码总行数?

    近期填写资料,需要写当前项目源代码总行数,使用的STM32CubeIDE开发的,想请教一下,这个IDE怎么看代码的总行数?
    发表于 03-28 07:07

    使用STM32CubeIDE初始化STM32407的SPI1(PB3)初始化失败的原因?怎么解决?

    使用STM32CubeIDE初始化STM32407的SPI1(PB3)初始化失败,有人知道原因吗?
    发表于 03-25 07:50

    stm32mp135f的开发环境能不能像普遍的mp1系列去搭建呢?

    我们要使用stm32mp135f芯片,它的开发环境能不能像普遍的mp1系列去搭建呢(例如stn32mp
    发表于 03-20 06:32

    盘点那些硬件+项目学习套件:STM32MP157 Linux开发板及入门常见问题解答

    主控芯片: ST首款Cortex-A系列MPU,STM32MP157双核异构,2*Cortex-A7核+1Cortex-M4核 存储容量
    发表于 02-01 14:25

    STM32CubeIDE找不到elf

    STM32CubeIDE是STMicroelectronics公司推出的一款集成开发环境(IDE),用于开发STM32系列微控制器的应用程序
    的头像 发表于 01-02 16:32 1782次阅读