logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

嵌入式状态机架构,一文讲透!

本文介绍了状态机在嵌入式开发中的应用。针对if-else嵌套导致的代码复杂度问题,文章首先分析了传统串口协议解析代码的缺陷,进而阐述了状态机原理(四要素和两种类型)。通过实例展示了如何用状态机重构串口接收模块,使代码更清晰可维护。文章还分析了FreeRTOS和lwIP中的状态机实现,并对比了Zephyr SMF、QP/C和TinyFSM三种嵌入式状态机框架的特点和适用场景。状态机可有效管理复杂状态

文章图片
#嵌入式
热门嵌入式web服务器对比!

嵌入式Web服务器将传统Web服务移植到资源受限的嵌入式系统,基于HTTP协议提供标准接口。本文对比了6种主流方案:NGINX(高性能)、Boa(超轻量)、Thttpd(静态高效)、Mini_httpd(极简)、Lighttpd(功能全面)和Appweb(工业级)。通过内存占用、功能特性等维度分析,给出选择建议:低资源设备选Boa/Mini_httpd,中高端设备用NGINX/Lighttpd,工

文章图片
#嵌入式
热门嵌入式web服务器对比!

嵌入式Web服务器是将标准Web服务器移植到嵌入式系统中的技术方案,基于HTTP协议实现通信,具有标准接口。这种方案为无显示屏的嵌入式设备提供了便捷的交互方式,可通过网页进行功能调试和展示。在实际工作中,嵌入式Web服务器为开发调试带来了便利,成为嵌入式系统交互的有效解决方案。

文章图片
#嵌入式
嵌入式设备通信序列化的正确打开方式!

保持 Protocol Buffers 强大功能的同时,将代码体积压缩到 3KB 以内,并且只需要不到 300 字节的栈空间。看起来不大,但考虑到:每秒上报 10 次数据、每次传输都要消耗宝贵的电量,累计下来,通信负担会很大。对于大部分传感器数据(温度、湿度、计数器),数值都很小,varint 能节省 50% 以上的空间。也不想使用太重的JSON,一个简单的传感器数据包,JSON 可能就要占用几百

文章图片
#开发语言#嵌入式#单片机
嵌入式C与C++混合编程需要注意的点?

混合编程中C与C++的互调常遇三大问题:调用类成员函数链接失败、回调函数类型转换警告、结构体内存布局不一致。根本原因是两语言的符号命名规则差异。使用extern "C"可有效解决这些互操作性问题,充当两种语言间的桥梁。

文章图片
#c语言#嵌入式
嵌入式性能指标竟藏着这些秘密,你了解几个?

在应用程序使用C或C++堆、多个自定义堆或RTOS提供的内存池对象,可以使用heap-monitoring跟踪这些对象的使用情况,分析它们的使用模式,评估堆上的负载、识别潜在的内存泄漏、跟踪内存峰值使用情况等的格式显示收集到的信息。Valgrind Massif能帮助我们减少内存的使用,在带有虚拟内存的现代系统中,它还能够加速我们程序的运行,减少程序停留在交换区中的几率。对于嵌入式开发,可以在交叉

文章图片
#嵌入式#单片机
嵌入式开发的可靠方法论探析

嵌入式开发各个环节紧密相扣,从最初对系统需求的精准洞察,到硬件平台的审慎抉择,再到代码编写的精雕细琢、测试调试的严苛把关,以及上线后的持续优化维护,每一步都承载着产品的品质与未来。作为嵌入式软件开发从业者,遵循可靠的方法论能助力我们打造出稳定可靠、性能卓越的嵌入式软件产品。

#嵌入式
嵌入式C编程新境界:解锁结构体保护绝技,让你的代码坚如磐石,无懈可击!

C/C++中不完全类型有三种不同形式: void、未指定长度的数组以及具有非指定内容的结构和联合。使用不完全类型的指针或引用,不需要知道类型的全部内容。比如:此时的array就是一个不完全类型的数组,一般这样的数组声明会放在.h中,而其定义放在.c中,在定义的时候在给出数组的具体长度,若之后有需要改变数组的长度时,直接改.c里的就可以,对外的.h就保持原样不用修改。用数组来说明可能还是有点不太好理

文章图片
#c语言#数据库#开发语言
低功耗嵌入式软件设计的要点!

硬件产品,低功耗设计是提升产品竞争力的关键因素之一。低功耗设计的具体实现方式涉及到多个部分:硬件设计、软件设计、散热设计等方面。本篇文章我们着重关注设计的一些要点。

#嵌入式硬件#单片机#物联网
谈谈嵌入式软件的兼容性!

大家好,我是杂烩君。嵌入式项目中,软件是一个不断迭代的过程,需要考虑各种兼容性。之前我们的项目,因为这方面考虑得比较少,导致项目中后期开发起来很被动。项目系统总体设计阶段,应尽可能地考虑到未来可以遇见的情况,覆盖到尽可能多的业务扩展。项目虽然分阶段开发,各个阶段完成的功能都不一样,总体设计要指向最终的需求。

文章图片
#网络#嵌入式#linux +2
    共 155 条
  • 1
  • 2
  • 3
  • 16
  • 请选择