![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
FreeRTOS
文章平均质量分 78
qq_34613314
这个作者很懒,什么都没留下…
展开
-
FreeRTOS中断优先级管理
CM3内核有16个中断, 优先级通过 SCB->SHP[0] to SCB->SHP[11] 设置/****** Cortex-M3 Processor Exceptions Numbers ***************************************************/ NonMaskableInt_IRQn = -14, /*!< 2 Non Maskable Interrupt原创 2021-07-07 14:06:25 · 443 阅读 · 0 评论 -
STM32串口读取一帧数据USART_IT_IDLE
stm32 串口读取数据中断USART_IT_RXNE:读取到一个数据产生中断USART_IT_IDLE:读取到一帧数据产生中断以前串口读取一帧数据的方法:收到数据后重置定时器的值,等到定时器超时的时候就知道一帧数据读取完了,不过今天有了新的方法,我们可以从USART_IT_IDLE来判断是否读取完成了一帧数据。void USART_Config(void){ GPIO_InitTypeDef GPIO_InitStructure; USART_InitTypeDef USART_Init原创 2021-06-23 20:02:07 · 3565 阅读 · 2 评论 -
FreeRTOS API笔记
消息队列两个任务之间要通信,要传输数据使用消息队列xQueueCreat();xQueueSend() //默认添加在队尾xQueueSendToFont()//添加在队头xQueueReceive()//从队尾接收xQueueReceive() //从队列接收数据,然后删除xQueuePeek() //接收数据并不删除信号量二值信号量用来同步任务,计数信号量表示资源的可使用数,使用的是消息队列一样的数据结构xSemaphoreCreateBinary() //创建二值信号量xSema原创 2021-06-23 14:30:09 · 126 阅读 · 0 评论 -
FreeRTOS中多种信号量
信号量信号量(Semaphore)是一种实现任务间通信的机制,可以实现任务之间同步或者临界资源的互斥访问,常用于协助一组互相竞争的任务来访问临界资源。在多任务系统中,各任务之间需要同步或者互斥实现临界资源的保护,信号量功能可以为功能可以为用户提供这方面的支持抽象来讲,信号量是一个非负整数所有获取它的任务都会将该整数减一(获取它当然是为了使用资源),当该整数值为零时,所有试图获取它的任务都将处于阻塞状态。通常一个信号量的计数值用于对应有效的资源数,表示剩下的可被占用的互斥资源数。其值的含义分两种情况:原创 2021-06-21 19:26:41 · 414 阅读 · 0 评论 -
cortex-m3中寄存器
简介Cortex‐M3 是一个 32 位处理器内核。 内部的数据路径是 32 位的, 寄存器是 32 位的, 存储器接口也是 32 位的。 CM3 采用了哈佛结构,拥有独立的指令总线和数据总线,可以让取指与数据访问并行不悖。 这样一来数据访问不再占用指令总线,从而提升了性能。 为实现这个特性, CM3 内部含有好几条总线接口,每条都为自己的应用场合优化过,并且它们可以并行工作。但是另一方面,指令总线和数据总线共享同一个存储器空间(一个统一的存储器系统)。换句话说,不是因为有两条总线,可寻址空间原创 2021-06-17 17:02:06 · 1607 阅读 · 2 评论 -
pnedSV和SVC
pendSV什么是pendSV:PendSV是可悬起异常,如果我们把它配置最低优先级,那么如果同时有多个异常被触发,它会在其他异常执行完毕后再执行,而且任何异常都可以中断它pendSV有什么作用让我们举个简单的例子来辅助理解。假设有这么一个系统,里面有两个就绪的任务,并且通过SysTick异常启动上下文切换。但若在产生 SysTick 异常时正在响应一个中断,则 SysTick异常会抢占其 ISR。在这种情况下,OS是不能执行上下文切换的,否则将使中断请求被延迟,而且在真实系统中延迟时间还往往不可原创 2021-06-17 14:50:51 · 272 阅读 · 0 评论 -
FreeRTOS编程风格
FreeRTOS使用的都是标准C语言的的数据类型,但是针对不同的处理器,对C语言的数据类型又重新进行了定义,比如char重新定义成了portCHAR,这里的port表示接口的意思。用户并非一定要遵守FreeRTOS的风格,任然可以直接使用C语言的标准类型,在FreeRTOSzhon ,int型从不使用,只是用short和long,在cortex-M系列MCU中,short为16位,long 为32位。数据类型重定义在portmacro.h中数据类型新定义的数据类型实际数据类型(C..原创 2021-06-16 11:48:24 · 453 阅读 · 0 评论