IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> 使用STM32CUBEMX+Embedded Studio开发STM32 -> 正文阅读

[嵌入式]使用STM32CUBEMX+Embedded Studio开发STM32

1.Segger Embedded Studio 简介

Segger Embedded Stadio 是segger公司新开发的嵌入式编译器环境(IDE),可以用于管理,构建,测试和部署嵌入式应用程序,Nordic 的SDK往后的只更新项目工程到SES开发环境,Keil和IAR不再支持。
主要特征:
1.适用于嵌入式C/C ++编程的专业IDE解决方案
2.跨平台:可在Windows,macOS和Linux上运行
3.包含Clang/LLVM和GCC C/C++编译器
4.高度优化的运行时库,可实现最佳性能和最小代码量
5.具有无缝J-Link集成的功能丰富的调试器
6.强大的项目管理器和源代码编辑器
7.基于软件包的项目生成器,适用于所有常见的微控制器
8.多线程构建可最大程度地减少构建时间
9.免费用于任何非商业用途,例如教育和评估目的,没有任何限制

2.开发环境

  1. STM32CUBEMX
  2. Embedded Studio(V5.40)
  3. STM32H743IITX小系统开发板

3.开始(以及会出现的问题)

1.使用STM32CubeMX配置一个点灯小Demo工程,我的开发板上配置的是PB1。
2.按照下图所示配置生成Keil工程
生成工程
3.打开Segger Embedded Studio 按照下图所示导入刚才生成的Keil工程
导入
4.选择使用外部编译链(下方选择KEIL的编译器位置)
在这里插入图片描述
5.编写一个简单的LED闪烁程序

/* USER CODE BEGIN 0 */
uint8_t count_num = 0;
/* USER CODE END 0 */

/**
 1. @brief  The application entry point.
 2. @retval int
  */
int main(void)
{
  /* Enable I-Cache---------------------------------------------------------*/
  SCB_EnableICache();

  /* Enable D-Cache---------------------------------------------------------*/
  SCB_EnableDCache();

  /* MCU Configuration--------------------------------------------------------*/

  /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
  HAL_Init();
  /* Configure the system clock */
  SystemClock_Config();
  /* Initialize all configured peripherals */
  MX_GPIO_Init();
  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
  while (1)
  {

    HAL_GPIO_TogglePin(GPIOB,GPIO_PIN_1);
    HAL_Delay(100);
    HAL_GPIO_TogglePin(GPIOB,GPIO_PIN_1);
    HAL_Delay(100);
    count_num++;
    if(count_num == 5)
    {
      count_num = 0;
    }
  }
}

6.点击DEBUG中的GO即可打开调试
在这里插入图片描述
在这里我们发现虽然我们的LED工程已经跑起来了,LED灯已经开始闪烁了。但是当我们查看右上角的变量窗体里面提示(Restricted memory range)意味着我们并没有追踪到这一个变量,在调试中是不可以接受的。那么我们应该怎么去解决这个问题呢,下面将继续介绍。

4.解决办法

经过我的高强度的网上冲浪,我在Segger官方的文档里找到了这个答案!其实导入到上面一步并没有完全完成所有的工作,我们还需要导入设备的内存映射,Flash配置等文件。(官方文档的连接会附在文后,有兴趣的兄弟可以自己阅读一下)。下面我将简单的演示一下如何完成全部工作。
1.在下图所示的位置下载相关芯片的支持包。
在这里插入图片描述
2.按照下图所示的位置,打开支持包的路径建立相关的芯片支持文件夹

3.建立芯片支持文件夹
将以下特定于设备的文件从包文件夹复制到一个新文件夹中。
启动代码 /Source/_Startup.s.
矢量表 /Source/_Vectors.s.
链接器脚本 /Scripts/_Flash.icf.
内存映射 /XML/<设备名称>_MemoryMap.xml。
寄存器文件 /XML/<设备名称>_Registers.xml。
均在文件内,仔细寻找便是
在这里插入图片描述
5.完成对相关内容的设置
打开项目设置切换至Comon设置
在这里插入图片描述

在 Code -> Linker -> Linker Script File 中添加 .icf 文件.
在 Code -> Linker -> Memory Map File 中添加 the *_MemoryMap-.xml 文件.
在 Debug -> Debugger -> Register Definition File 中添加 *_Registers.xml 文件.
在这里插入图片描述
在这里插入图片描述
重新构建后开启仿真
在这里插入图片描述
可以看见右上角的变量已经可以成功显示了,实验完成!!!

参考链接

Segger官方参考文档
Embedded Studio 下载地址

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2022-03-21 21:07:25  更:2022-03-21 21:09:53 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 6:51:43-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码