从0构建一个基于STM32F103的类FreeRTOS系统内核 - 1 工程创建

用于记录自己学习FreeRTOS内核的例程。
第一章首先是准备工作。主要使用CUBE来生成一个空项目,用于后续移植RTOS内核使用

开发板介绍

准备工作:
 (1) 一块正点原子的STM32精英开发板,主控是STM32F103ZET6。具体参数见图:
在这里插入图片描述
开发板的实际图如下:
在这里插入图片描述

  • 在进行正式的RTOS书写之前,我需要验证这个开发板是否能够正常下载和运行程序。为此,我需要首先就是下载这个开发板的部分资料,网址如下
    正点原子精英版资料;给的百度网盘,这点绝对差评!

启动第一个程序

为了验证开发板的基础工能是否正常,我决定第一个程序是点亮开发板上的一个LED来验证.为了方便配置和快速生成代码,我决定学习STM32cube的相关内容,这可以帮助我快速上手,只需要修改相应的管脚信息我就能点亮LED.STM32cube的安装教程附上安装教程
接下来开始正式配指STM32CUBE来启动开发板。参考视频教程正点原子CUBE 参考的文字教程是正点原子的STM32精英版资料和SRM32Cube工程.
我的具体操作如下:

  • 安装STM32CUBE 需要在官网注册账号并下载 其次 需要下载JAVA便于顺利安装STM32CUBE
  • 接下来,打开STM32CUB。界面如图所示:

在这里插入图片描述

  • 进入下面的界面
    在这里插入图片描述

  • 再进入下一个界面
    在这里插入图片描述

  • 我们需要依次配置上方的pinout Clock Project三个主菜单和它们的子项目

  • 首先来配指管脚的相关的工能,因为我们需要是LED点亮,因此,我们需要查看硬件原理图,查阅到我这块开发板是LED0是连接的PB5管脚,且是需要下来输出才行。因此按照配指如图所示

在这里插入图片描述

  • 接下来使能RCC始终了时钟来启动GPIO,配置如下
    在这里插入图片描述
    这里面值得注意的是时钟源的选择,一般会HSE会外挂一个8Mhz的晶振作为时钟源,LSE会外挂一个32Khz
    的晶振做时钟源。因此,按图中配指即可,没有时钟源择选disable

  • 再设置sys项目,该项用于配指DEBUG模式
    在这里插入图片描述
    我们日后若用到再来配指,这里选择图中的选项,则只会用到最少的管脚资源

  • 接下来配指STM32的时钟树,如图所示
    在这里插入图片描述

  • 接下里,配指具体的STM32工程的生成文件
    在这里插入图片描述

  • 对上一个点的(4)做一个说明,最后下载STM32F1的依赖包,我们可以回到主页面(一开始打开那个界面),点击如图所示的选项

在这里插入图片描述
进入之后,选择对应的最新依赖包即可

在这里插入图片描述

  • 最后下载需要参考正点原子的官方教程,我们使用串口下载,标准的下载步骤是:
    1, 把 B0 接 V3.3
    2, 保持 B1 接 GND
    3, 按一下复位按键
    4, 使用上位机软件下载代码
    5,配指下载工具中的下载时序

在这里插入图片描述

  • 下载验证,完美!

在这里插入图片描述

  • 中断设置

我们的任务是利用STM32CubeMX快速准备一个STM32空项目为RTOS做准备。
项目中提到需要将NVIC选择4为抢占优先级,并设置SysTick 和 PendSV 中断设置为最低优先级,至于为什么这么设置,需要到后面详细介绍,所以如下图所示
在这里插入图片描述
其余在设置以下外部时钟晶振即可和配置系统时钟即可

创建好内容后,我们需要做的就是先搭好框架。在工程的根目录下,我们创建一个RTOS内核文件夹,里面子文件加为Inc Src 分别为头文件和源文件的存放文件夹
RTOS的目录如下\

1 Inc
 1.1FreeRTOS.h,用来包含 RTOS 所有的头文件
 1.2FreeRTOSConfig.h,用来配置裁剪 RTOS 的功能
 1.3list.h,双向链表数据结构头文件
 1.4portMacro.h,用来统一 RTOS 中用到的类型和定义一些功能宏
 1.5task.h,任务管理头文件
2 Src
 2.1list.c,双向链表数据结构源文件
 2.2prot.c,用来定义与底层芯片架构有关的函数和中断服务函数
 2.3task.c,任务管理源文件\

相应的,MDK中需要添加进去\

在这里插入图片描述

至此,我们便创建了一
个最基础的STM32空项目,后续的RTOS内核会基于此工程创建。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值