uC/OS
文章平均质量分 59
小灰俠
渣渣研、创业党、=Software and hardware technology supporter!
展开
-
轻松理解链表、物联网、uC/OS链表、FREERTOS链表
先给出链表所用结构体定义:/* 节点结构体定义 */struct xLIST_ITEM{ TickType_t xItemValue; /* 辅助值,用于帮助节点做顺序排列 */ struct xLIST_ITEM * pxNext; /* 指向链表下一个节点 */ struct xLIST_ITEM * pxPrevious; /* 指向链表前一个节点 */ void * pvOwner; /* 指向拥有该节点的内核对原创 2021-12-07 16:04:27 · 3125 阅读 · 0 评论 -
uC/OS任务信号量
在实际任务间的通信中,一个或多个任务发送一个信号量或者消息给另一个任务是比常见的,而一个任务给多个任务发送信号量和消息相对比较少。前面所讲的信号量和消息队列均是单独的内核对象,是独立于任务存在的。这两章要讲述的任务信号量和任务消息队列是任务特有的属性,紧紧依赖于一个特定任务。 任务信号量和任务消息队列分别与多值信号量和消息队列非常相似,不同之处是,前者仅发布给一个特定任务,而后者可以发布给多个任务。因此,前者的操作相对比较简单,而且省时。如果任务信号量和任务消息队列可以满足设计需求,那么尽量不要使用转载 2021-12-03 14:39:07 · 294 阅读 · 0 评论 -
ARM汇编指令:STRH指令、STRB指令、STR指令、LDR指令、LDRH指令、LDRB指令、LDM指令
STRH指令STRH指令的格式为:STR{条件}H源寄存器,<存储器地址>STRH指令用于从源寄存器中将一个16位的半字数据传送到存储器中。该半字数据为源寄存器中的低16位。指令示例:STRHR0,[R1];将寄存器R0中的半字数据写入以R1为地址的存储器中。STRHR0,[R1,#8];将寄存器R0中的半字数据写入以R1+8为地址的存储器中。STRB指令STRB指令的格式为:STR{条件}B源寄存器,<存储器地...原创 2021-12-02 14:39:54 · 14180 阅读 · 0 评论 -
STM32的寄存器、uC/OS 寄存器必备基础知识、ARM、Cortex-M4、Cortex-M3、中断寄存器
ARMCortex处理器的寄存器——数据处理与控制寄存器大部分能够访问通用寄存器的指令都可以访问R0-R12。其中:低位寄存器(R0~R7)能够被所有访问通用寄存器的指令访问;高位寄存器(R8~R12)能够被所有32位通用寄存器指令访问,而不能被所有的16位指令访问。寄存器R13被用作堆栈指针(SP) ,用于访问堆栈。寄存器R14为子程序连接寄存器(LR)寄存器R15是程序计数寄存器(PC),指向当前的程序地址。ARMCortex-M4F处理器的寄存器——特殊功能寄存器程序状态字...转载 2021-12-01 11:58:55 · 1218 阅读 · 0 评论 -
uC/OS 时间戳和时间戳的使用
关于时间戳,首先要明白一点:时间戳是一个计数器,且记录的是内核的HCLK运行的个数。看代码时间戳(time stamp)即TS.时间戳的初始化代码在函数void CPU_Init (void);#define DEF_DISABLED 0u#define DEF_ENABLED 1u#if ((CPU_CFG_TS_32_E.原创 2021-12-01 09:51:19 · 3952 阅读 · 1 评论 -
uC/OS之typedef void (*OS_TASK_PTR)(void *p_arg)的使用
typedef void (*OS_TASK_PTR)(void *p_arg);在uC/OS里的使用在创建任务线程的时候使用声明:void OSTaskCreate (OS_TCB *p_tcb, CPU_CHAR *p_name, OS_TASK_PTR p_task){……}使用: OSTaskCreate(&AppTaskStartTCB, ...原创 2021-11-23 15:17:49 · 1142 阅读 · 0 评论