FreeRTOS 任务创建和删除(静态)
#define configSUPPORT_STATIC_ALLOCATION 1 //打开静态方法
StackType_t TaskStackBuffer[50]; //任务堆栈大小
StaticTask_t TaskTCBBuffer; //任务控制块大小
StackType_t TaskStackBuffer0[50];
StaticTask_t TaskTCBBuffer0;
StackType_t TaskStackBuffer1[50];
StaticTask_t TaskTCBBuffer1;
TaskHandle_t taskhandle0;
TaskHandle_t taskhandle1;
StaticTask_t pxIdleTaskTCBBuffer;
StackType_t pxIdleTaskStackBuffer[configMINIMAL_STACK_SIZE];
//需要用户添加定义
void vApplicationGetIdleTaskMemory( StaticTask_t **ppxIdleTaskTCBBuffer,
StackType_t **ppxIdleTaskStackBuffer,
uint32_t *pulIdleTaskStackSize )
{
*ppxIdleTaskTCBBuffer = &pxIdleTaskTCBBuffer;
*ppxIdleTaskStackBuffer = pxIdleTaskStackBuffer;
*pulIdleTaskStackSize = configMINIMAL_STACK_SIZE;
}
void vTask0(void *t)
{
int i = 0;
while(1)
{
i++;
if(i == 5)
{
vTaskDelete(taskhandle1);
printf("vTask0: delete vTask1.\r\n");
}
printf("vTask: 0.\r\n");
vTaskDelay(1000);
}
}
void vTask1(void *t)
{
while(1)
{
printf("vTask: 1.\r\n");
vTaskDelay(1000);
}
}
void start_vTask(void *t)
{
taskhandle0 = xTaskCreateStatic( vTask0,
"vTask0",
50,
( void * ) NULL,
2,
(StackType_t *const)TaskStackBuffer0,
(StaticTask_t *const)&TaskTCBBuffer0 );
taskhandle1 = xTaskCreateStatic( vTask1,
"vTask1",
50,
( void * ) NULL,
3,
(StackType_t *const)TaskStackBuffer1,
(StaticTask_t *const)&TaskTCBBuffer1 );
vTaskDelete(NULL);
}
int main(void)
{
xTaskCreateStatic( start_vTask,
"start_vTask",
50,
( void * ) NULL,
1,
(StackType_t *const)TaskStackBuffer,
(StaticTask_t *const)&TaskTCBBuffer );
vTaskStartScheduler();
}
运行结果:
FreeRTOS 任务创建和删除(静态)的更多相关文章
- FreeRTOS 任务创建和删除(动态)
TaskHandle_t taskhandle; TaskHandle_t taskhandle1; void vTask(void *t) { int i = 0; while(1) { i++; ...
- 各种隐藏 WebShell、创建、删除畸形目录、特殊文件名、黑帽SEO作弊(转自核大大)
其实这个问题,经常有朋友问我,我也都帮大家解决了…… 但是现在这些现象越来越严重,而且手法毒辣.隐蔽.变态,清除了又来了,删掉了又恢复了,最后直接找不到文件了,但是访问网站还在,急的各大管理员.站长抓 ...
- 创建并使用静态库(ar 命令)
创建并使用静态库(ar 命令) archive命令的功能是:创建或改动归档文件或者从归档文件里析取信息.能够简单的理解为一个打包工具,将成员文件依照一定的规则构建到.a文件里, ...
- FreeRTOS-01移植及任务创建和删除
根据正点原子FreeRTOS视频整理 单片机:STM32F207VC FreeRTOS源码版本:v10.0.1 任务创建和删除API函数: 工程列表: 1. main.c /**/ #include ...
- linux初级学习笔记二:linux操作系统及常用命令,文件的创建与删除和命名规则,命令行展开以及linux中部分目录的作用!(视频序号:02_3)
本节学习的命令:tree,mkdir,rmdir,touch,stat,rm 本节学习的技能:Linux中主要的目录作用以及特殊的目录文件: 文件的命名规则,命令行展开: 文件的创建与删除: Linu ...
- c++动态数组的优点,创建和删除
动态数组可以有两种使用方式: 1:不能预先知道数组的大小使用动态数组 传统数组(静态数组)是需要在程序运行前,就指定大小,比如说 int i = 10; int a[i]; 这种就是不合法的. 因为函 ...
- linux命令 - ln - 创建和删除软、硬链接
linux命令 - ln - 创建和删除软.硬链接 在Linux系统中,内核为每一个新创建的文件分配一个Inode(索引结点),每个文件都有一个惟一的inode号.文件属性保存在索引结点里,在访问文件 ...
- DOM创建和删除节点、HTML DOM常用对象[转]
创建和删除节点:——核心DOM 1. 创建单个元素节点:3步: 1. 创建空元素节点对象: var elem=document.createElement("标 ...
- MySQL索引的创建、删除和查看
MySQL索引的创建.删除和查看 此文转自http://blogold.chinaunix.net/u3/93470/showart_2001536.html 1.索引作用 在索引列上,除了上面提到的 ...
随机推荐
- matplotlib实战
plt.imshow(face_image.mean(axis=2),cmap='gray') 图片灰度处理¶ size = (m,n,3) 图片的一般形式就是这样的 rgb 0-255 jpg图 ...
- Locust性能测试-分布式执行的方法(亲测ok)
来源:https://www.cnblogs.com/yoyoketang/p/11681370.html 前言 使用Locust进行性能测试时,当一台单机不足以模拟所需的用户数量的时候,可以在多台机 ...
- matlab @(x)构造匿名函数
一起来学演化计算-matlab@(x)构造匿名函数 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考文献 https://www.ilovematlab.cn/thread-81614-1 ...
- haproxy高可用、负载均衡集群
HAProxy提供高可用性.负载均衡以及基于TCP和HTTP应用的代理,支持虚拟主机,它是免费.快速并且可靠的一种解决方案.根据官方数据,其最高极限支持10G的并发.另外其支持从4层至7层的网络交换, ...
- 报错:Error starting Jetty. JSON Metrics may not be available.java.net.BindException:地址已在使用
报错背景: 刚在CDH中集成Flume插件,启动报错 报错现象: Error starting Jetty. JSON Metrics may not be available. java.net.B ...
- js Date.parse()时区问题
比较两个时间,parse() 方法可解析一个日期时间字符串,并返回 1970/1/1 午夜距离该日期时间的毫秒数.Date.parse时间多了8小时. 正确的方法: var nowDate = Dat ...
- 如何固定table表格宽度,样式不受容器影响
之前有篇关于LODOP打印超文本表格,两个样式相同的表格,出现错位的情况.该博文地址:LODOP打印表格错位的几种情况该文试验了两种现象,第一种浏览器页面显示错位,打印预览也错位,第二种浏览器页面表格 ...
- vmware darwin mac 下载地址
- -
- 【C/C++开发】C中调用C++函数
C中如何调用C++函数? 前阵子被问及一个在C中如何调用C++函数的问题,当时简单回答是将函数用extern "C"声明,当被问及如何将类内成员函数声明时,一时语塞,后来网上查了下 ...
- C# RESTful API
C# RESTful API REST 全称是 Representational State Transfer,有人说它是一种风格,并非一种标准,个人觉得挺有道理.它本身并没有创造新的技术.组件与服务 ...