MCU开发 您所在的位置:网站首页 iar导入pack包报错 MCU开发

MCU开发

2024-01-21 03:26| 来源: 网络整理| 查看: 265

前言

今年芯片市场真是命运多舛,受到疫情的影响,上游晶圆短缺,直接导致今年芯片产能不足,连STM32这样的通用MCU也出现价格涨价甚至价格翻翻,但生活总得继续,STM32价格太贵也只能尝试使用国产的MCU,最受关注的当属兆易创新GD32,今年的产品基本就在这个平台上开发了,从习惯STM32的HAL库开发到GD32的类似标准库开发的转变总归还是有些不适应,而且还不能用STMStuido这样监控变量,既然要走破釜沉舟这条路,不如来个釜底抽薪,重新调研一下现在常用的IDE。 得知目前可以用JLINK的JScope来替换STMStudio来监控变量,而且还能达到超高速的记录数据,顿时对JLINK产生了好感,也关注到他们公司SEEGER也出了自己的IDE,不仅是跨平台的,而且运行速度均秒杀Keil和IAR,这一下提起了兴趣,因此写下这个系列专题,打算跟SES死磕到底啦! 该系列所需所有软件均同步到百度云,有需要可以自行下载

链接:https://pan.baidu.com/s/1Fn5wivYGfe3jSwHbfInUUA 提取码:8q5q

软件下载和安装

SEGGER Embedded Studio for ARM 最新的版本已经更新到V5.30,下载地址:https://www.segger.com/downloads/embedded-studio/ 在这里插入图片描述 不仅支持window,还支持mac和linux。

软件安装

下载安装包后,安装过程比较简单,基本上一直下一步就好 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述

在这里插入图片描述

安装插件

安装完软件后,第一次打开会提示License,这个软件对个人和教育是免费使用的,直接点击Continue跳过

在这里插入图片描述 会默认新建一个工程

在这里插入图片描述 我们是准备开发GD32,这里需要安装一下支持的插件,和KEIL的PACK一样 在这里插入图片描述 弹出一个更新的提示,选择Yes

在这里插入图片描述 等待结束后,会列出现在适配的插件库,可以看到CMSIS的最新版本是5.0.4这个有点过时了,后面再写个博文来介绍如何使用最新的CMSIS库。下拉找到我们要使用的GD32的型号

在这里插入图片描述 右击选择Install Selected Packages。

在这里插入图片描述 可以看到Action变成了Install。

在这里插入图片描述 点击下一步,列出了即将要安装的插件清单

在这里插入图片描述 安装结束后会提示安装成功的提示,点击完成 在这里插入图片描述

新建工程

这里开始新建一个工程 在这里插入图片描述 这里提示是新建一个工程到新的解决方案中,还是将新建一个工程到现在的解决方案中,当有多个工程需要管理时,可以选择第二个,这里以第一个为示例。 在这里插入图片描述 选择一个C/C++的工程,并配置好工程名和工程路径 在这里插入图片描述 这里选择型号,编译器,输出格式,以及头文件路径和打印宏定义,堆栈空间等。

在这里插入图片描述 关于编译器的选择,可以参考SEEGER的编译器测试表,地址: https://www.segger.com/products/development-tools/embedded-studio/technology/tools/segger-compiler/

在这里插入图片描述 在这里插入图片描述

添加相关启动文件和脚本文件

在这里插入图片描述

在这里插入图片描述 点击完成后,可以得到一个默认工程,这个工程是打印Hello World,连上板子,编译F7运行F5可以得到调试效果 我用的板子是GD32F303的开发板以及JLINK

在这里插入图片描述

在这里插入图片描述 SES的特点是使用JLINK作为调试器后,会自动将printf重定向到JLINK_RTT里,这样可以节省一路串口来打印信息,非常方便。后来有时间还会介绍如何使用RTT配合SCOPE来监控变量。

在这里插入图片描述

第一个点灯程序

从工程目录里也可以看出,该工程里还没有GD32的外设库。 我们在源文件目录右键选择添加Add Existing Items

在这里插入图片描述 在弹出的对话框中找到GD32的插件库安装目录:

C:\Users\ZhangHao\AppData\Local\SEGGER\SEGGER Embedded Studio\v3\packages\GD32F30x\CMSIS\Device\Source

添加必要的文件

在这里插入图片描述 参考systick.cpp文件来配置对应的嘀嗒定时器参数。

在这里插入图片描述 从板子原理图上可以看到有两个LED分别接在了PB14和PB15上。

在这里插入图片描述 编写代码,让两个灯交替闪烁,同时打印计时时间。

在这里插入图片描述

/********************************************************************* * SEGGER Microcontroller GmbH * * The Embedded Experts * ********************************************************************** -------------------------- END-OF-HEADER ----------------------------- File : main.c Purpose : Generic application start */ #include #include #include static volatile int ticks = 0; void SysTick_Handler(void) { ticks++; } static void delay(int n) { unsigned endTicks = ticks + n; while (ticks printf("ticks = %d\n", ticks); gpio_bit_set(GPIOB,GPIO_PIN_14); gpio_bit_reset(GPIOB,GPIO_PIN_15); delay(200); gpio_bit_reset(GPIOB,GPIO_PIN_14); gpio_bit_set(GPIOB,GPIO_PIN_15); delay(200); } // Disable SysTick interrupt SysTick->CTRL &= ~SysTick_CTRL_ENABLE_Msk; exit(EXIT_SUCCESS); } /*************************** End of file ****************************/

在这里插入图片描述 开发板上的两颗LED灯开始交替闪烁

在这里插入图片描述

结语

第一次体验到这里就结束了,SEGGER体验上比Keil和IAR要美观很多,而且调试界面功能非常丰富,当然也有一些适应的过程,后续为逐步改善我们的代码和参数。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有