- 博客(43)
- 收藏
- 关注

原创 CAN 总线多设备组网通信,如何同步事件?
在 CAN 总线多设备组网通信中,需要将一个事件同步到所有设备时,通常有两种方式:广播和逐一发送。广播方式通过一次性消息传输,实现高效和快速同步,但缺乏接收确认,可能导致不可靠的传输;逐一发送方式通过逐个发送消息确保每个设备可靠接收,但效率较低且逻辑实现复杂。
2024-10-17 08:04:49
926

原创 CAN总线通信是否需要增加应用层应答机制?
在某些情况下,虽然 CAN 总线在物理层面保证了数据的传输,但是并不能确保应用层已经成功处理了这些数据。例如,如果接收节点短暂的通信故障或系统繁忙,导致消息丢失。这时候,通过应用层应答机制,发送节点没有收到应答则重发消息,确保消息被接收且被正确处理。因此,通过应用层的应答机制,发送方可以确保每个帧都被正确接收并按顺序重组,避免消息丢失或帧错乱。对于一些对实时性要求极高的应用,应用层的应答与重发机制可能会导致响应时间的增加。应用层应答机制并不是所有场景下都必须实现,它更多的是取决于应用的具体需求。
2024-10-12 06:00:29
1062
原创 UCOS-III 系统TICK接口详解
COS-III的Tick管理和阻塞接口超时机制提供了一种高效且可靠的方法来管理实时系统中的任务调度和超时处理。通过合理配置和使用这些机制,可以提高系统的实时性和稳定性,从而更好地满足各种实时应用的需求
2024-07-28 09:04:06
1031
原创 PlantUML学习笔记-嵌入式系统设计常用图例
在嵌入式系统设计过程中,需要使用一些图例对系统框架及业务流程进行说明,以便于多人协同开发及后期的系统维护,提高团队开发效率.
2024-07-28 07:02:14
343
原创 UCOS-III 任务调度锁定/解锁接口OSSchedLock/Unlock详解
在实时操作系统中,关闭和打开任务调度是确保系统执行关键代码时保持原子性和数据一致性的重要手段。通过正确使用 OSSchedLock 和 OSSchedUnlock 接口,我们可以有效地控制任务调度,实现高效、稳定的实时系统
2024-07-26 23:55:48
737
原创 UCOS-III 系统启动接口OSStart详解
UCOS内核启动流程第一个就绪任务是如何启动的?为什么设置PendSV异常优先级为最低优先级?
2024-07-24 21:31:02
1099
原创 UCOS-III 任务调度接口(OSSched)详解
OSSched函数用于检查并确定是否有更高优先级的任务需要运行。该函数通常在任务级别代码中调用,而不是在中断服务程序(ISR)中调用。中断服务程序的调度由OSIntExit()函数处理。OSSched函数主要完成以下任务:检查操作系统运行状态。检查中断嵌套计数器。检查调度器是否被锁定。获取最高优先级任务。执行任务级别的上下文切换。
2024-07-23 21:43:18
649
原创 UCOSIII 系统初始化接口(OSInit)详解
初始化中断堆栈清除和初始化系统计数器和指针初始化优先级位图表初始化各个管理模块初始化任务管理器初始化空闲任务初始化时钟节拍管理器初始化统计任务初始化定时器管理器调用用户自定义的初始化钩子函数
2024-07-23 06:53:02
487
原创 UCOS-III静态内存分配与FreeRTOS动态内存分配
UCOS-III和FreeRTOS在内存管理上的策略各有优缺点。UCOS-III采用静态内存分配,系统的稳定性和确定性高,适合对实时性要求高且内存需求固定的应用场景。而FreeRTOS采用动态内存分配,内存分配灵活性高及内存利用率高,适合内存需求动态变化的应用场景。应该要根据具体应用场景,选择合适不同的内存管理策略,可以优化系统性能和资源利用率
2024-07-20 10:02:26
729
原创 UCOS-III 系统移植
UCOSIII系统移植到GD32F303详细过程工程代码:https://github.com/jslaobing/techIot_ucosiii_porting
2024-07-06 00:27:50
1580
原创 UCOS-III Licensing
Micrium组件现以Apache 2.0开源许可模式提供,开发者可以免费下载和使用这些软件。这一变化旨在扩大用户基础,并让嵌入式社区参与软件的未来发展。对于以前购买了商业许可证的开发者,其许可证仍然有效,但不再直接从Micrium或Silicon Labs获得技术支持或软件维护。若需开发新产品,可以选择获取Cesium RTOS商业版本的许可证或使用Github上的µC/OS开源版本。更多详细信息,请访问。
2024-07-01 20:42:14
508
原创 UCOS-III任务调度与等待队列管理
任务进入等待队列的时机举例如下:当任务等待一个信号发出时当任务等待一个互斥信号量释放时当任务等待一个事件标志组被发布时当任务等待一个消息队列被发布时当任务等待延时结束时在这些情况下,任务将从就绪队列中删除,并放置到所等待的内核对象的等待队列中。这样,系统可以在适当的时候唤醒任务,并将其重新放入就绪队列。
2024-06-28 21:05:58
355
原创 UCOS-III 任务调度与就绪列表管理
UCOS-III通过就绪优先级位图和就绪队列的结合,实现了高效的任务调度机制。在实际应用中,通过优化任务优先级和队列管理,可以进一步提升系统性能,满足各种复杂的实时需求。UCOS-III通过就绪优先级位图来快速查找最高优先级的就绪任务,从而实现高效调度。就绪优先级位图是一个按位表示的结构,每个位代表一个优先级,当某个优先级上有任务就绪时,相应位被置位。每个优先级对应一个就绪队列,所有具有相同优先级的任务链入该队列中。通过这些API,UCOS-III可以在O(1)时间复杂度内完成优先级任务的管理和调度。
2024-06-28 20:55:39
554
原创 UCOS-III 资源竞争处理
临界资源处理, 是为了避免多个运行空间同时访问共享资源时导致的数据冲突和系统不稳定。未加保护的临界区可能导致不可预测的行为,如数据损坏、中断丢失和系统崩溃,影响系统的实时性和可靠性。
2024-06-27 20:34:47
382
原创 UCOS-III 任务管理
RMS的基本思路是任务的优先级与它的周期表现为单调函数的关系,任务的周期越短,优先级越高;任务内所有函数调用嵌套所需的所有内存,每个函数调用一个返回地址的指针,每个函数调用中传递的所有参数,以及每个函数分配的局部变量,得到一个大约数后再乘以1.5~2的安全系数。(3) µC/OS-III 恢复任务#1,因为它是任务列表中优先级为“X”的下一个准备运行的任务。(1) 任务#3正在执行,在此期间发生TICK中断,但任务 #3 的时间量尚未到期。(11) 被中断的任务在它被中断的地方恢复执行。
2024-06-25 21:32:52
2431
原创 使用COAP协议接入阿里云平台
通过CoAP协议接入阿里云平台,可以实现低开销、高效、安全的设备通信。本文简单介绍了阿里CoAP的相关约定、设备认证方式以及上报消息所需的参数。使用CoAP协议接入物联网平台的方式,适用于资源受限的设备和网络环境。本文将介绍如何通过CoAP协议连接阿里云平台,包括阿里CoAP的约定、设备认证方法以及上报消息所需的参数。在设备端和阿里云平台之间使用预共享密钥(PSK)进行加密通信,保证数据传输的安全性。2.1 使用对称加密接入(PSK)3. 上报消息需要用到的参数。1. 阿里CoAP约定。
2024-06-25 06:03:53
444
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人