打印

基于Keil的RTE配置GD32开发环境,移植FreeRTOS

[复制链接]
2450|16
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
10多年前就用STM32了,最近从STM32转到GD32,感觉国产的芯片发展是真的快,不但更便宜,还更快更好用了(是在是受不了STM32 I2C BUSY的那个BUG)。

先说下,实际上STM32的程序可以直接烧了到GD32里面,用串口或者是JLINK、DAP下载器都可以,程序会直接运行。

STM32最简单的开发应该是用STM32CubeMX+Keil 或者是 STM32CubeIDE(个人感觉不如keil)。而GD32我试了一下,应该最快最方便的应该是用keil 的 RTE工具生成。我测试了一下,其实STM32也是可以用类似的方法从RTE生成的。

开发环境+工具:
Keil 5.28

GD32F10x_AddOn_V2.3.0(从GigaDevice下载,或者是keil 的包管理工具下都行)

JLINK

最小工程创建具体步骤:
1、新建工程,选择器件:



使用特权

评论回复
沙发
远芳侵古道|  楼主 | 2024-5-19 23:14 | 只看该作者
在打开的RTE配置里面,选择几个最基本的组件,然后生成代码。

使用特权

评论回复
板凳
远芳侵古道|  楼主 | 2024-5-19 23:15 | 只看该作者
新建用户代码。

另外需要注意的是,RTE集成的芯片的启动代码(startup.s),是hd(高密度版本的)。我对比了一下,这个启动代码应该是兼容中密度的(例如我现在用的就是103c8),但是如果是其他版本的,需要自己更换。

使用特权

评论回复
地板
远芳侵古道|  楼主 | 2024-5-19 23:16 | 只看该作者
写一个最简单的main程序

使用特权

评论回复
5
远芳侵古道|  楼主 | 2024-5-19 23:17 | 只看该作者
GD32的编译器需要配置使用5.06的,默认的是5,是无法正常调试的

使用特权

评论回复
6
远芳侵古道|  楼主 | 2024-5-19 23:17 | 只看该作者
选择调试器以及调试接口,按自己的实际硬件来。

使用特权

评论回复
7
远芳侵古道|  楼主 | 2024-5-19 23:18 | 只看该作者
允许调试,可以看到程序正常运行。

使用特权

评论回复
8
远芳侵古道|  楼主 | 2024-5-19 23:18 | 只看该作者
另外,默认用的是108M的速度,这个可以根据自己的需求进行变更。

使用特权

评论回复
9
远芳侵古道|  楼主 | 2024-5-19 23:18 | 只看该作者
默认生成的代码里面是没有中断入口的。如果需要的话可以自己拖一个现成的中断文件,或者是需要什么中断,自己写一个,入口的名字都在startup里面写了。

使用特权

评论回复
10
远芳侵古道|  楼主 | 2024-5-19 23:20 | 只看该作者
融合FreeRTOS:
1、在RTE里面选上FreeRTOS的组件

使用特权

评论回复
11
远芳侵古道|  楼主 | 2024-5-19 23:20 | 只看该作者
中断相关的需要进行两处修改。因为STM32/GD32都是16级的中断有限级,与FreeRTOSConfig.h里面的默认值是不一样的,不改会卡死在RTOS的代码里面。

使用特权

评论回复
12
远芳侵古道|  楼主 | 2024-5-19 23:21 | 只看该作者
简单写一段创建进程的测试代码:
#include <freertos.h>
#include <task.h>
#include <gd32f10x.h>

//#include "stm32f10x_conf.h"

TaskHandle_t test1_hdl;

void test1(void *pvPara)
{
  while (1)
  {
    vTaskDelay(500);
  }
}

int main()
{

  taskENTER_CRITICAL();
  xTaskCreate(
    (TaskFunction_t) test1,
    "test1",
    256,
    (void *)NULL,
    1,
    &test1_hdl
  );
  
  taskEXIT_CRITICAL();
   
  vTaskStartScheduler();
  while (1);
}

使用特权

评论回复
13
远芳侵古道|  楼主 | 2024-5-19 23:21 | 只看该作者
可见程序准确执行,并停留在任务的调试点里面。

使用特权

评论回复
14
lidi911| | 2024-5-23 20:27 | 只看该作者
GD32不便宜吧

使用特权

评论回复
15
wangtaohui| | 2024-7-31 22:22 | 只看该作者
GD32的开发流程与STM32类似,使用Keil和RTE工具,可以快速创建一个最小GD32工程,配置开发环境,并编写基本代码进行测试。

使用特权

评论回复
16
亚瑟| | 2024-7-31 23:00 | 只看该作者
keil里可以配置freertos吗

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

82

主题

842

帖子

0

粉丝