GD32F205在IAR上移植FreeRTOS

2024-04-20 23:08
文章标签 移植 iar freertos gd32f205

本文主要是介绍GD32F205在IAR上移植FreeRTOS,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

  • 简述:
  • 第一步:准备最简工程与系统
  • 第二步:拷贝源码
  • 第三步:编译器IAR配置
  • 第四步:工程代码修改
  • 第五步:编译工程

简述:

1、主芯片:GD32F205VET6
2、编译器:IAR V8.40.1
3、系统:FreeRTOS V9.0

第一步:准备最简工程与系统

1、准备一个GD32F205VET6最简单的IAR工程;
2、准备FreeRTOS V9.0 源码,下载链接;

第二步:拷贝源码

1、将FreeRTOS V9.0 源码全部拷贝到最简工程;
在这里插入图片描述

2、删除不必要的文件
删除“portable”文件夹中多余文件,留下“IAR”、"MemMang”
在这里插入图片描述

第三步:编译器IAR配置

1、添加编译器工程目录和文件;
在这里插入图片描述

2、添加头文件路径
在这里插入图片描述
在这里插入图片描述

3、配置仿真器;
在这里插入图片描述

第四步:工程代码修改

1、拷贝FreeRTOS系统源码中“Demo”中的“CORTEX_STM32F103_IAR”中的“FreeRTOSConfig.h”文件拷贝到自己的工程中的“FreeRTOS”文件中的“include”中;
在这里插入图片描述
2、添加系统宏定义
在“FreeRTOSConfig.h”文件添加系统宏定义
在这里插入图片描述
在这里插入图片描述
都知道大家喜欢源码,就把需要添加的贴出来吧:

#if defined(__ICCARM__) || defined(__CC_ARM) || defined(__GNUC__)#include <stdint.h>extern uint32_t SystemCoreClock;
#endif#define configCPU_CLOCK_HZ			( SystemCoreClock )#define xPortPendSVHandler 	PendSV_Handler
#define vPortSVCHandler 	SVC_Handler

3、注释重复定义函数;
把“gd32f20x_it.c”文件中的“SVC_Handler”、“PendSV_Handler”函数注释掉
在这里插入图片描述

4、添加系统滴答时钟函数;
在“gd32f20x_it.c”文件中的“SysTick_Handler”函数中添加FreeRTOS系统滴答时钟函数“xPortSysTickHandler”
在这里插入图片描述
5、在main函数创建task
在这里插入图片描述

第五步:编译工程

1、编译工程并下载调试;
在这里插入图片描述

参考:
1、正点原子《STM32F1 FreeRTOS开发手册_V1.1.pdf》
2、网友总结

这篇关于GD32F205在IAR上移植FreeRTOS的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/921563

相关文章

FreeRTOS-基本介绍和移植STM32

FreeRTOS-基本介绍和STM32移植 一、裸机开发和操作系统开发介绍二、任务调度和任务状态介绍2.1 任务调度2.1.1 抢占式调度2.1.2 时间片调度 2.2 任务状态 三、FreeRTOS源码和移植STM323.1 FreeRTOS源码3.2 FreeRTOS移植STM323.2.1 代码移植3.2.2 时钟中断配置 一、裸机开发和操作系统开发介绍 裸机:前后台系

FreeRTOS内部机制学习03(事件组内部机制)

文章目录 事件组使用的场景事件组的核心以及Set事件API做的事情事件组的特殊之处事件组为什么不关闭中断xEventGroupSetBitsFromISR内部是怎么做的? 事件组使用的场景 学校组织秋游,组长在等待: 张三:我到了 李四:我到了 王五:我到了 组长说:好,大家都到齐了,出发! 秋游回来第二天就要提交一篇心得报告,组长在焦急等待:张三、李四、王五谁先写好就交谁的

FreeRTOS学习笔记(六)队列

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、队列的基本内容1.1 队列的引入1.2 FreeRTOS 队列的功能与作用1.3 队列的结构体1.4 队列的使用流程 二、相关API详解2.1 xQueueCreate2.2 xQueueSend2.3 xQueueReceive2.4 xQueueSendFromISR2.5 xQueueRecei

FreeRTOS学习笔记(二)任务基础篇

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、 任务的基本内容1.1 任务的基本特点1.2 任务的状态1.3 任务控制块——任务的“身份证” 二、 任务的实现2.1 定义任务函数2.2 创建任务2.3 启动任务调度器2.4 任务的运行与切换2.4.1 利用延时函数2.4.2 利用中断 2.5 任务的通信与同步2.6 任务的删除2.7 任务的通知2

FreeRTOS学习笔记(四)Freertos的中断管理及临界保护

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、Cortex-M 中断管理1.1 中断优先级分组1.2 相关寄存器1.3 相关宏定义1.4 FreeRTOS 开关中断 二、临界段及其保护2.1 taskENTER_CRITICAL( ) 和 taskEXIT_CRITICAL( )2.2 taskENTER_CRITICAL_FROM_ISR( )

RT-Thread(Nano版本)的快速移植(基于NUCLEO-F446RE)

目录 概述 1 RT-Thread 1.1 RT-Thread的版本  1.2 认识Nano版本 2 STM32F446U上移植RT-Thread  2.1 STM32Cube创建工程 2.2 移植RT-Thread 2.2.1 安装RT-Thread Packet  2.2.2 加载RT-Thread 2.2.3 匹配相关接口 2.2.3.1 初次编译代码  2.2.3.

龙芯+FreeRTOS+LVGL实战笔记(新)——05部署主按钮

本专栏是笔者另一个专栏《龙芯+RT-Thread+LVGL实战笔记》的姊妹篇,主要的区别在于实时操作系统的不同,章节的安排和任务的推进保持一致,并对源码做了改进和优化,各位可以先到本人主页下去浏览另一专栏的博客列表(目前已撰写36篇,图1所示),再决定是否订阅。此外,也可以前往本人在B站的视频合集(图2所示)观看所有演示视频,合集首个视频链接为: 借助RT-Thread和LVGL

libmad音频解码库-Linux交叉编译移植

下载并解压libmad-0.15.1b.tar.gz 下载链接:https://downloads.sourceforge.net/mad/libmad-0.15.1b.tar.gz $tar -xvf libmad-0.15.1b.tar.gz$cd libmad-0.15.1b 1、先执行下面的命令:这条命令是为了适配高版本的gcc,因为高版本的gcc已经将-fforce-mem去除了:

arm linux lua移植

lua: lua home 1.下载lua源码 lua下载 lua-5.3.4.tar.gz 2.解压: tar xvf lua-5.3.4.tar.gz 3.修改makefile and luaconf.h $修改 lua-5.3.4/Makefile #INSTALL_TOP= /usr/local INSTALL_TOP= $(shell pwd)/out #修改安装目录(当前目录/o

FreeRTOS学习笔记—④RTOS通信管理篇/同步互斥与通信(正在更新中)

二、RTOS的核心功能   RTOS的核心功能块主要分为任务管理、内核管理、时间管理以及通信管理4部分,框架图如下所示:   (1)任务管理:负责管理和调度任务的执行,确保系统中的任务能够按照预期运行。   (2)内核管理:负责系统核心功能的管理,包括内存、中断、异常处理和系统启动等。   (3)时间管理:负责所有与时间相关的操作,包括系统时钟、定时器、任务延迟和周期性任务的执行。   (4)通