FreeRTOS 临界区

在并行编程中,并行存取共享的资源时,常常会导致意外和错误的结果。例如下面代码task1和task2都通过串口打印消息,但由于任务调度,消息被截断了。

1#include <stm32f4xx.h>
2#include <FreeRTOS.h>
3#include <task.h>
4#include <uart.h>
5 
6void task1(void* args);
7void task2(void* args);
查看全文

FreeRTOS 任务的状态

xTaskCreate函数创建任务时,即为任务赋予了优先级。可以使用vTaskPrioritySet函数来修改任务的优先级,它的第一个参数是任务句柄、第二个参数是优先级,这个函数必须在调度器启动之后才能调用。相应的,uxTaskPriority函数返回一个任务的优先级。

1#include <task.h>
2void vTaskPrioritySet(TaskHandle_t xTask,UBaseType_t uxNewPriority);
3 
4UBaseType_t uxTaskPriorityGet(TaskHandle_t xTask);
5//返回任务的优先级
查看全文
查看全文

Jetson Nano 系统安装配置

  1. Jetson Download Center 下载 系统镜像
  2. 使用镜像烧录软件(如 Rufus 等)将镜像烧录到内存卡上。
  3. 将内存卡插到 Jetson 上,插电自动开机,配置都使用默认值即可。
  4. Jetson 的镜像预装了 CUDA,但是运行 nvcc 会提示找不到,将 /usr/local/cuda/bin/ 加入 PATH 环境变量即可。
查看全文

FreeRTOS 搭建开发环境

本文使用Keil MDK和STM32为例

首先需要下载FreeRTOS的源码:http://www.freertos.org/。当前最新版本为9.0.0,其源码目录如下图 :

Image

FreeRTOS/Demo目录下已经有许多工程可以直接使用,例如FreeRTOS\Demo\CORTEX_STM32F103_Keil就是STM32F103在Keil下的工程。不过这个工程是针对小容量STM32F103的,对于其他型号的STM32芯片,需要自己组织工程。

查看全文