1. 1、本文档共14页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
freeRTOS概要1

freeRTOS 任务篇;多任务操作系统的使用可以简化应用程序的设计: 1. 操作系统的多任务和任务间通信的机制允许复杂的应用程序被分成一系列更小的和更多的可以管理的任务。 2. (程序的)划分(partitioning)让软件测试更容易, 团队工作分解(work breakdown within teams),也有利于代码复用。 3. 复杂的定时和先后顺序的细节 可以从应用程序代码中 删除。(因为)这成为操作系统的职责。;软实时: 保证用户体验,在恰当的时限内响应用户输入;int main( void ) { prvSetupHardware(); xTaskCreate(vLEDFlashTask,(signed char *)Led1 flash,configMINIMAL_STACK_SIZE, (void *)NULL,mainFLASH_TASK_PRIORITY,(xTaskHandle *)NULL); /* Start the scheduler. */ vTaskStartScheduler(); for(;;); /* Will only get here if there was not enough heap space to create the idle task. */ return 0; };void vLEDFlashTask(void * pvParameters) { portTickType xlastFlashTime; xlastFlashTime=xTaskGetTickCount(); for(;;) { vTaskDelayUntil(xlastFlashTime,(portTickType)100/portTICK_RATE_MS); LED2_ON(); vTaskDelayUntil(xlastFlashTime,(portTickType)100/portTICK_RATE_MS); LED2_OFF(); } };任务的资源:内存,堆栈 任务的属性:优先级 任务的内容:任务函数 任务的状态: 运行,就绪,阻塞,挂起 任务的API:xTaskCreate() 创建任务 vTaskPrioritySet() 设置优先级 uxTaskPriorityGet() 读取优先级 vTaskDelete() 删除任务 vTaskSuspend() 挂起任务 vTaskResume() 唤醒任务 ;portBASE_TYPE xTaskCreate( pdTASK_CODE pvTaskCode, //任务函数指针 const signed portCHAR * const pcName,//任务名 unsigned portSHORT usStackDepth,//栈大小 void *pvParameters,//任务参数 unsigned portBASE_TYPE uxPriority,//任务优先级 xTaskHandle *pxCreatedTask ); //任务句柄;vTaskDelay() vTaskDelayUntil()更精确的周期性;实战演练 要求: 在经过剪裁,运行在STM32小板上 的freeRTOS基础上,增加任务。让第二 个LED在片子复位后10秒钟开始闪烁;Step2 控制面板-硬件和声音-添加蓝牙设备-选择输入配对密码-在设备管理器中查看COM口-打开超级终端连接-OK!;double A[9]={1,2,3,0,2,3,0,0,3}; double B[9];;为嘛?;1.IO口配置结构体不同 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_15; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT; GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz; GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL; GPIO_Init(GPIOD, GPIO_InitStructure);

文档评论(0)

yaocen + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档