当前位置: 首页 > news >正文

优质的外国网站通辽做网站制作

优质的外国网站,通辽做网站制作,检察院门户网站建设,商丘市网站建设推广一. RTOS的概念 // 经典单片机程序 void main() {while (1){喂一口饭();回一个信息();} } ------------------------------------------------------ // RTOS程序 喂饭() {while (1){喂一口饭();} }回信息() {while (1){回一个信息();} }void main() {create_task(喂饭);cr…

一. RTOS的概念

// 经典单片机程序
void main()
{while (1){喂一口饭();回一个信息();}
}
------------------------------------------------------
// RTOS程序    
喂饭()
{while (1){喂一口饭();}
}回信息()
{while (1){回一个信息();}
}void main()
{create_task(喂饭);create_task(回信息);start_scheduler();while (1){sleep();}
}

二.FreeRTOS目录结构

三.从官方源码裁剪

1. 下载

2. 删减目录

3. 编译、执行

4. 添加串口打印功能

  • 去掉无关的代码:LCD等

  • 增加串口打印功能

    • 初始化串口

    • 实现fputc

四. 创建任务

BaseType_t xTaskCreate( TaskFunction_t pxTaskCode, // 函数指针, 任务函数const char * const pcName, // 任务的名字const configSTACK_DEPTH_TYPE usStackDepth, // 栈大小,单位为word,10表示40字节void * const pvParameters, // 调用任务函数时传入的参数UBaseType_t uxPriority, // 优先级TaskHandle_t * const pxCreatedTask // 任务句柄, 以后使用它来操作这个任务); 

1.创建第一个任务 

void Task1Function(void*param)//函数指针
{while(1){printf("1");}
}/*-----------------------------------------------------------*/int main( void )
{TaskHandle_t xHandleTask1;
#ifdef DEBUGdebug();
#endifprvSetupHardware();printf("hello,world,nimade!\r\n");xTaskCreate(Task1Function,"Task1",100,NULL,1,&xHandleTask1);//创建任务/* Start the scheduler. */vTaskStartScheduler();/* Will only get here if there was not enough heap space to create theidle task. */return 0;
}

不断的执行1 

2.创建第二个任务 

void Task1Function(void*param)
{while(1){printf("1");}
}
void Task2Function(void*param)
{while(1){printf("2");}
}
/*-----------------------------------------------------------*/int main( void )
{TaskHandle_t xHandleTask1;
#ifdef DEBUGdebug();
#endifprvSetupHardware();printf("hello,world,nimade!\r\n");xTaskCreate(Task1Function,"Task1",100,NULL,1,&xHandleTask1);xTaskCreate(Task2Function,"Task2",100,NULL,1,NULL);//这里没有加句柄/* Start the scheduler. */vTaskStartScheduler();/* Will only get here if there was not enough heap space to create theidle task. */return 0;
}

3.动态内存的使用 

        TCB_t * pxNewTCB;//任务控制块BaseType_t xReturn;

对于每一个任务都有一个TCB_t 结构体,对于这个结构体可以使用动态分配也可以静态分配。动态分配在程序里面使用 xTaskCreate();

    TaskHandle_t xTaskCreateStatic( TaskFunction_t pxTaskCode,const char * const pcName, /*lint !e971 Unqualified char types are allowed for strings and single characters only. */const uint32_t ulStackDepth,void * const pvParameters,UBaseType_t uxPriority,StackType_t * const puxStackBuffer,StaticTask_t * const pxTaskBuffer ){
void Task1Function(void*param)
{while(1){printf("1");}
}
void Task2Function(void*param)
{while(1){printf("2");}
}
void Task4Function(void*param)
{while(1){     printf("3");}
}/*-----------------------------------------------------------*/
StackType_t xTask4Stack[100];//100*4字节
StaticTask_t xTask4TCB;StackType_t xIdleTaskStack[100];//100*4字节
StaticTask_t xIdleTaskTCB;void vApplicationGetIdleTaskMemory( StaticTask_t ** ppxIdleTaskTCBBuffer,StackType_t ** ppxIdleTaskStackBuffer,uint32_t * pulIdleTaskStackSize )
{*ppxIdleTaskTCBBuffer = &xIdleTaskTCB;*ppxIdleTaskStackBuffer = xIdleTaskStack;*pulIdleTaskStackSize = 100;
}int main( void )
{LED_Init();TaskHandle_t xHandleTask1;
#ifdef DEBUGdebug();
#endifprvSetupHardware();printf("hello,world,nimade!\r\n");xTaskCreate(Task1Function,"Task1",100,NULL,1,&xHandleTask1);xTaskCreate(Task2Function,"Task2",100,NULL,1,NULL);xTaskCreateStatic(Task4Function,"Task4",100,NULL,1,xTask4Stack,&xTask4TCB);/* Start the scheduler. */vTaskStartScheduler();/* Will only get here if there was not enough heap space to create theidle task. */return 0;
}

http://www.yayakq.cn/news/905150/

相关文章:

  • 网站切图谁来完成wordpress 小工具插件
  • 注册企业网站网站快照不更新原因
  • 西宁建设厅人事局网站搭建网站首页
  • 作品集展示的网站徐州做网站软件
  • 深圳英迈思做网站好么连山网站建设
  • 自己做报名网站网络推广是什么工作内容
  • 建站平台哪家好wordpress中下载按钮
  • 电子商务网站功能页面出口俄罗斯的外贸公司
  • 网站备案查询 站长天津自助建站
  • 3d建站域名注册 万网
  • 网站备案承诺书填写网页界面设计中表单的组成部分有
  • 网站页面设计欣赏青岛网站设计哪家便宜
  • 手机网站建站平台邮箱163注册
  • 用于公司网站建设的费用记帐分录wordpress语言包下载
  • 江门网站设计价格wordpress商城插件主题
  • 凉山西昌网站建设wordpress 国外 服务器
  • 网页设计与网站开发教程网站交换链接如何实施
  • 网站设计岗位的职责与要求网站设计的建设目的
  • 中英企业网站模板功能网站
  • 企业网站建设费用详情常州 wordpress
  • 设计网站特点推动
  • 漳州网站建设 林那些网站可以做淘宝店铺推广
  • 花木网站源码哪些网站可以做免费外贸
  • 哪些网站可以做推广游戏租号网站怎么建设
  • 石景山周边网站建设国际摄影网
  • opencart做外贸网站怎样网站开发有什么职位
  • 营业执照怎么注销百度代做seo排名
  • 视差 网站wordpress调用导航
  • 信息发布的网站怎么做备案 网站错了
  • 北京做网站找哪家好网站主编 做啥