FreeRTOS
mail-mail
路漫漫其修远兮,吾将上下而求索。
展开
-
FreeRTOS简单移植到STM32F103ZET6
一、从官网下载FreeRTOS源码,下载地址为: Freertos源码二、下载后进行解压缩,会得到以下文件: 进一步打开FreeRTOS会看到: 再打开Source文件夹: 以上就是FreeRTOS全部的源码。三、移植到STM32 1、建立STM32的工程文件夹。 图中,使用keil5建立的工程。2、FreeRTOS移植 下面对FreeRTOS文件夹下内容进行说明。 1)其中对移植起原创 2017-06-27 08:46:03 · 3827 阅读 · 2 评论 -
stm32 freertos 之串口中断
一、中断处理函数void USART1_IRQHandler(void){ BaseType_t xHigherPriorityTaskWoken; xHigherPriorityTaskWoken = pdFALSE; u8 cChar; if(USART_GetITStatus (USART1,USART_IT_RXNE)!=RESET) { cChar=USART_Rec...原创 2018-04-20 14:32:39 · 15529 阅读 · 1 评论 -
stm32 FreeRTOS中如何创建任务
#include "config.h"#include "global.h"#include "stdio.h"#include "PC.h"#include "FreeRTOS.h"#include "task.h"#include "list.h"void vLED1Task(void *pvParameters){ while(1) {原创 2018-04-20 11:36:35 · 1583 阅读 · 0 评论 -
Freertos中vTaskDelay()是怎么用的
1、常见的使用场景void vLED_Task(void *pvParameters){ while(1) { Heartbeat_LED(); vTaskDelay(1000/portTICK_RATE_MS ); }}说明:上面这段代码的意思是,led翻转后经过多少个时间片后再次进入了反转状态。2、逐步解析// #define portTICK_RATE_MS portTIC...原创 2018-04-20 11:00:03 · 34602 阅读 · 2 评论 -
freertos学习-4 调试
下面的步骤记录freertos的调试过程。这里的调试方法主要是教会大家如何获取任务的执行情况,通过获取的任务信息,可以进一步的配置和优化工程,这种方法非常实用,建议初学者必须掌握。很多时候,我们需要了解任务的执行状态,任务栈的使用情况以及各个任务的 CPU 使用率,这时就需要用到官方提供的两个函数 vTaskList 和 vTaskGetRunTimeStats。用户就可以通过这两个函数获得任务的执原创 2017-12-25 10:29:34 · 2625 阅读 · 0 评论 -
堆栈的区别
原文:http://student.csdn.net/link.php?url=http://www.top-e.org%2Fjiaoshi%2Fhtml%2F427.html格式和部分内容稍作修改。在计算机领域,堆栈是一个不容忽视的概念,我们编写的C语言程序基本上都要用到。但对于很多的初学着来说,堆栈是一个很模糊的概念。堆栈:一种数据结构、一个在程序运行时用于存放的地方,这可能是很多初学者的认识,转载 2017-12-22 10:17:37 · 12083 阅读 · 1 评论 -
Freertos学习--3
3.2延迟中断管理二值信号量可以在某个特殊的中断发生时,让任务解除阻塞,相当于让任务与中断同步。这样就可以让中断事件处理量大的工作在同步任务中完成,中断服务例程(ISR)中只是快速处理少部份工作。 信号量可以看作是一个深度为 1 的队列。这个队列由于 最多只能保存一个数据单元,所以其不为空则为满(所谓”二值”)。延迟处理任务调用xSemaphoreTake()时,等效于带阻塞时间地读取队列,如果队原创 2017-12-21 13:43:01 · 204 阅读 · 0 评论 -
FreeRTOS学习--2
1.10调度算法简述本章的示例程序已经演示了 FreeRTOS 在什么时候以及以什么方式选择一个什么样的任务来执行。每个任务都赋予了一个优先级。每个任务都可以存在于一个或多个状态。在任何时候都只有一个任务可以处于运行状态。调度器总是在所有处于就绪态的任务中选择具有最高优先级的任务来执行。 这种类型的调度方案被称为”固定优先级抢占式调度”。所谓”固定优先级”是指每个任务都被赋予了一个优先级,原创 2017-12-21 10:32:14 · 239 阅读 · 0 评论 -
FreeRTOS学习--1
1.5任务优先级每个任务都会运行一个时间片。要能够选择下一个运行的任务,调度器需要在每个时间片的结束时刻运行自己本身。一个称为心跳中断的周期性中断用于此目的。时间片的长度通过心跳中断的频率进行设定,心跳中断频率由FreeRTOSConfig.h中的编译时配置常量configTICK_RATE_HZ进行配置。如果,configTICK_RATE_HZ设为100hz,则时间片的长度为10ms。1.6扩充原创 2017-12-21 09:50:29 · 845 阅读 · 0 评论 -
移植FreeRTOS一定要修改startup_stm32f10x_hd.s的启动文件吗?
在Cortex M使用FreeRTOS时,建立工程项目,经常会应为start_xxx.s与port.c、portasm.s中的中断函数名不同困惑:是在start_xxx.s修改为:vPortSVCHandler/xPortPendSVHandler/xPortSysTickHandler?还是在port.c、portasm.s 修改为SVC_Handler/PendSV_Handler/SysTic原创 2017-07-10 10:07:02 · 1928 阅读 · 0 评论 -
FreeRTOS的第一个任务是怎么跑起来的
一、一般在程序末尾会有一个vTaskStartSheduler();函数int main(void){ BSP_INIT(); BinarySemaphore=xSemaphoreCreateBinary(); if(BinarySemaphore!=NULL) { printf("semaphore c原创 2017-07-10 09:17:16 · 1941 阅读 · 0 评论 -
stm32 移植freertos时的注意事项
1、stm32中断向量表配置在STM32使用中由于中断优先级的设置采用的是库函数,因此要请保证所有的优先级设置为可抢占优先级,具体实现方式是在RTOS启动前调用函数:NVIC_PriorityGroupConfig(NVIC_PriorityGroup_4 );设置 NVIC 的优先级分组为 4 表示支持 0-15 级抢占优先级(注意, 0-15 级是16 个级别,包含 0 级), 不支持子优先...原创 2018-04-20 17:37:36 · 1699 阅读 · 0 评论