裸机增加移植FreeRTOS(百问网7天物联网智能家居笔记5)

在这里插入图片描述

1. 将FreeRTOS-Kernel 拷贝到 4_MiddleWare 文件夹下:

在这里插入图片描述
2. 新建FreeRTOSConfig.h
在这里插入图片描述
● 根据官方参考和实际需求添加修改‘
○ 系统时钟
■ configCPU_CLOCK_HZ
● CPU时钟,就是我们常说的主频。注意:单位是Hz。
● 如:STM32F407主频为168M:#define configCPU_CLOCK_HZ (168000000)
■ configSYSTICK_CLOCK_HZ
● 这个需要确认下
■ configTICK_RATE_HZ
● 系统滴答,即系统每秒钟滴答的次数,可以说是系统的心跳,但需要和主频区分开来。系统滴答的值要根据CPU主频来看,一般主频越高,取值相对越大,一般在100至1000之间。
● 系统滴答决定vTaskDelay。比如:#define configTICK_RATE_HZ (1000)则:vTaskDelay(1000),表示延时1S。
○ 改变宏configTICK_RATE_HZ的值,可以改变系统节拍时钟的中断频率,也间接的改变了系统节拍时钟周期(T=1/f)。
○ 比如设置宏configTICK_RATE_HZ为100,则系统节拍时钟周期为10ms,设置宏configTICK_RATE_HZ为1000,则系统节拍时钟周期为1ms。
在这里插入图片描述
○ 内存分配
在这里插入图片描述

● 钩子函数的设置(默认,不用更改)
在这里插入图片描述
● run time 和 task 任务的定义(默认,不用更改)
在这里插入图片描述

● 协同程序的依赖定义
● 软件定时器的依赖定义
● 内核中断的配置
在这里插入图片描述
● MPU 功能配置(有MPU 需要关注)
● ARMV8 配置(不需要专门配置)
● 操作功能
在这里插入图片描述
● 三个内核中断宏定义(重要)
○ 优先调用 FreeRTOS 文件的 3个内核中断,所以 Cotex-M3 内核中的3个中断用 weak 修饰

//      FreeROTS内核中断         Cotex-M3内核中断
#define vPortSVCHandler			SVC_Handler
#define xPortPendSVHandler		PendSV_Handler
#define xPortSysTickHandler		SysTick_Handler

在这里插入图片描述
4. 添加内核源码到工程:
在这里插入图片描述
● 添加文件
在这里插入图片描述
● 设置编译路径
在这里插入图片描述
5. 创建任务 、 开启任务调度
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值