自己制作的网站模板以后可以修改吗,c2c网站建设策划书,做广告图片用什么软件,wordpress 文艺主题1、任务与中断的优先级
(1)相同优先级任务轮流执行。
(2)高优先级任务打断低优先级任务。
(3)中断可以打断所有优先级的任务。
2、任务优先级
(1)优先级的取值范围是#xff1a;0~(configMAX_PRIORITIES – 1)#xff0c;数值越大优先级越高。
(2)FreeRTOS会确保最高优…1、任务与中断的优先级
(1)相同优先级任务轮流执行。
(2)高优先级任务打断低优先级任务。
(3)中断可以打断所有优先级的任务。
2、任务优先级
(1)优先级的取值范围是0~(configMAX_PRIORITIES – 1)数值越大优先级越高。
(2)FreeRTOS会确保最高优先级的、可运行的任务马上就能执行对于相同优先级的、可运行的任务轮流执行。
(3)FreeRTOS的调度器可以使用2种方法来快速找出优先级最高的、可以运行的任务。使用不同的方法时configMAX_PRIORITIES 的取值有所不同。
(4)通用方法
使用C函数实现对所有的架构都是同样的代码。对configMAX_PRIORITIES的取值没有限制。但是configMAX_PRIORITIES的取值还是尽量小因为取值越大越浪费内存也浪费时间。configUSE_PORT_OPTIMISED_TASK_SELECTION被定义为0、或者未定义时使用此方法。
(4)架构相关的优化的方法
使用这种方法时configMAX_PRIORITIES的取值不能超过32。架构相关的汇编指令可以从一个32位的数里快速地找出为1的最高位。使用这些指令可以快速找出优先级最高的、可以运行的任务。configUSE_PORT_OPTIMISED_TASK_SELECTION被定义为1时使用此方法。
3、Tick
(1)对于同优先级的任务它们“轮流”执行。怎么轮流你执行一会我执行一会。一会怎么定义人有心跳心跳间隔基本恒定。FreeRTOS中也有心跳它使用定时器产生固定间隔的中断。这叫Tick、滴答比如每10ms发生一次时钟中断。
(2)举例
假设t1、t2、t3发生时钟中断两次中断之间的时间被称为时间片(time slice、tick period)时间片的长度由configTICK_RATE_HZ 决定假设configTICK_RATE_HZ为100那么时间片长度就是10ms。(1/100hHZ 10ms) (3)相同优先级的任务切换
任务2从t1执行到t2。在t2发生tick中断进入tick中断处理函数选择下一个要运行的任务执行完中断处理函数后切换到新的任务任务1。任务1从t2执行到t3。 4、使用Tick衡量时间
(1)使用方法
// 等待2个Tick假设configTICK_RATE_HZ100, Tick周期时10ms, 等待20ms
vTaskDelay(2); // 还可以使用pdMS_TO_TICKS宏把ms转换为tick等待100ms
vTaskDelay(pdMS_TO_TICKS(100));
(2)注意基于Tick实现的延时并不精确比如 vTaskDelay(2) 的本意是延迟2个Tick周期有可能经过1个Tick多一点就返回了。(产生两个Tick中断就返回了) (3)使用vTaskDelay函数时建议以ms为单位使用pdMS_TO_TICKS把时间转换为Tick。这样的代码就与configTICK_RATE_HZ无关即使配置项configTICK_RATE_HZ改变了我们也不用去修 改代码。