logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

rtt设备驱动框架学习——链表

这个宏的作用是通过结构体成员的指针 ptr 和成员名 member,计算出包含该成员的结构体的起始地址,并将其转换为 type 类型的指针。_inline函数也称为内联函数或内嵌函数,_inline定义的类的内联函数,函数代码被放入符号调用表,使用时直接展开,不需要调用,即在编译期间将所调用的函数的代码直接嵌入到主调函数中,是一种。(type *)((char *)(ptr) - (unsigne

#学习#链表#windows
stm32h7串口发送寄存器空中断

关于stm32串口的发送完成中断UART_IT_TC网上资料挺多的,但是使用发送寄存器空中断UART_IT_TXE的不太多。

#stm32#单片机#嵌入式硬件
FreeRTOS学习——链表list

FreeRTOS学习——链表(列表)list,仅用于记录自己阅读与学习源码*list_t只能存储指向list_item_t的指针。每个list_item_t都包含一个数值(xItemValue)。大多数时候,列表是按项目值升序排列的。*创建的列表已包含一个列表项。此项的值是可以存储的最大值,因此它始终位于列表的末尾,并充当标记。列表成员pxHead始终指向此标记,即使它位于列表的末尾。这是因为尾部

#学习#链表#list
基于OSAL的嵌入式裸机事件驱动框架——消息队列osal_msg

参考B站up主消息队列消息分为hdr和bdy,把消息的头dhr和内容bdy做了一个分离的设计dhr包括指向下一个消息的指针next,len在创建消息的时候使用,dest_id即目标任务,将消息和任务进行绑定。bdy是消息的主体,包括数据data,还有事件id。(注:这里的event_id和任务里的event_id 是不一样的,在任务中有个属性是事件集,表示对应于这个认为的事件集合,有16位,即一个

文章图片
#嵌入式
基于OSAL的嵌入式裸机事件驱动框架——整体架构调度机制

参考B站up主任务ID: TASK_XXXTASK_XXX 在系统中每个任务的ID是唯一的,范围是 0 to 0xFFFE,0xFFFE保留为SYS_TSK_INIT。同时任务ID的大小也充当任务调度的优先级,ID越大,优先级越高,越排在任务链表的最前面事件ID:EVE_XXXEVE_XXX和任务绑定,对于一个任务来说,一个任务的事件集有16位,最高位1<<15 保留为系统消息事件SYS_EVE_

文章图片
#嵌入式
基于OSAL的嵌入式裸机事件驱动框架——整体架构调度机制

参考B站up主任务ID: TASK_XXXTASK_XXX 在系统中每个任务的ID是唯一的,范围是 0 to 0xFFFE,0xFFFE保留为SYS_TSK_INIT。同时任务ID的大小也充当任务调度的优先级,ID越大,优先级越高,越排在任务链表的最前面事件ID:EVE_XXXEVE_XXX和任务绑定,对于一个任务来说,一个任务的事件集有16位,最高位1<<15 保留为系统消息事件SYS_EVE_

文章图片
#嵌入式
基于OSAL的嵌入式裸机事件驱动框架——内存管理osal_memory

如果使用外部RAM,theHeap被定义为一个指向外部RAM起始地址的指针. 反之则定义一个静态数组_theHeap,数组的大小为,halDataAlign_t类型。静态数组意味着其生命周期从程序开始一直持续到程序结束,且其存储空间在静态存储区,而不是在栈上。这使得_theHeap可以在整个程序运行期间保持其值。: 这是一个GCC编译器的扩展属性,用于指定变量的对齐方式。在这种情况下,_theHe

文章图片
#嵌入式
8_正确认识回流路径(参考平面)

(a)直流电路信号回流路径(b)高速信号回流路径对于高速信号当信号源输出一个高频信号(实际上就是信号的沿)时,从信号传输的角度讲,它并不是一下子就能达到信号的接收端。信号的上升沿要逐一通过每一个微小(Δx长度)的等效电路,并且在这个微小的等效电路上建立起稳定的电磁场结构,然后才能继续将这个电磁场能力传递到下一个等效电路上。

文章图片
#学习#嵌入式硬件#硬件工程 +2
到底了