嵌入式Linux
文章平均质量分 84
嵌入式Linux文章汇总
嵌入式大杂烩
一位喜欢分享的嵌入式软件工程师
一位全网累计10万+粉丝的嵌入式博主
一位能源专业转做嵌入式的过来人
展开
-
C语言,日志调试法的一些规则!
当我们的函数设计有多个功能函数模块的时候,当某个模块出现问题时,这个时候我们只是关心此模块,那么可以先把其他模块的日志功能关闭掉,只是打开关心模块的日志。使用日志动态过滤控制功能可以动态地调整日志地输出,但前提是项目使用地日志组件具备这样的能力。这样我们就可以在日志文件里通过模块标签来筛选某个模块的日志,提高我们定位问题的效率。在Release版本中,可能需要减少日志输出或者去掉一些不必要的日志,需要一个开关来进行切换。分支判断中,各执行分支需要加上对应的日志信息,可以帮助我们准确地知道程序执行的走向。原创 2024-03-05 00:18:20 · 377 阅读 · 0 评论 -
嵌入式中,升级时涉及的协议兼容性问题?
大家好,我是杂烩君。越来越多的硬件产品,硬件构成不仅仅是集成在一块板子上,而是多块控制板协同工作。此时,就会涉及到多块板之间的通信(有线/无线通信),就会涉及到到通信协议。很多时候,我们都会自定义一些协议。我们在软件迭代过程中,可能会涉及到板间交互的数据的升级,比如新增数据。新增的某个数据属性上属于某个数据集合,比如与某个结构体是同类数据,理论上为了程序设计得更合理些,应该把这个数据加在已有的结构体里面。但是,这可能会涉及到兼容性问题。原创 2024-03-03 23:17:44 · 760 阅读 · 0 评论 -
CMake的基础知识,看这篇就够了!
CMake 是一个跨平台的安装(编译)工具。CMakeList.txt是一个与平台无关的、用于定制编译流程的文件。CMake 靠的是 CMakeLists.txt 文件来生成Makefile文件。Hello系列 | Shell编程必备简明基础知识。下面简单了解CMakeLists.txt简单的规则及一些示例。CMakeLists.txt中只有字串和字串数组两种变量。定义变量通过 set命令来定义,使用变量时在外面加上 ${} 符号即可。# 定义变量# 使用变量")① 注释使用符号 #。原创 2023-06-16 12:09:08 · 2162 阅读 · 0 评论 -
Makefile的基础知识,看这篇就够了!
大家好,我是杂烩君。本次我们来介绍关于Makefile的一些知识。什么是make、Makefile?make是一个 构建工具,主要用于C/C++项目。Makefile是一个编译脚本,使用 make 工具解释Makefile(makefile)文件中的指令(编译指令)进行我们的项目编译。在Linux环境下进行开发,工程源文件较少时,直接使用gcc进行编译。源文件较多及工程复杂时,就可以使用 Makefile(makefile) 来对我们的工程进行管理,然后使用 make 工具解释Makefile(m原创 2023-06-15 10:57:37 · 2118 阅读 · 0 评论 -
Shell编程的常用知识,看这篇就够了!
大家好,我是杂烩君。在Linux下进行开发,对于一些繁杂的、需要重复性进行的工作,我们都有必要写一些shell脚本来完成这些繁杂的工作。原创 2023-06-14 09:33:58 · 537 阅读 · 0 评论 -
Linux POSIX消息队列用于线程间通信
在应用开发中,生产者,消费者的模型非常常见,一方产生数据并把数据放入队列中,而另一方从队列中取数据,先进先出。Linux系统中提供的消息队列一般应用于进行间通信,但也可以用于线程间通信。其中,POSIX消息队列可移植性较强,使用较广。本文介绍POSIX消息队列应用于线程间通信。例子:线程1不断给线程2发送字符串数据。应用:线程间通信/进程间通信。原创 2023-06-10 09:54:43 · 640 阅读 · 0 评论 -
Linux C语言时间相关知识总结!
实际开发中,经常要获取各种时间。原创 2023-06-10 09:35:23 · 451 阅读 · 0 评论 -
Linux多线程编程之线程安全!
在多线程环境中,多个线程在同一时刻对同一份资源进行写操作时,不会出现数据不一致。反之,则是线程非安全的。线程安全是程序设计中的术语,指某个函数、函数库在多线程环境中被调用时,能够正确地处理多个线程之间的公用变量,使程序功能正确完成。为了确保在多线程环境中的线程安全,就要确保数据的一致性。从字面上简单理解,原子是一种很微小的粒子;原子操作是不能再进一步细分的操作。原创 2023-06-10 09:35:42 · 322 阅读 · 0 评论 -
Linux多线程编程知识汇总!
进程是指正在运行的程序,它拥有独立的内存空间和系统资源,不同进程之间的数据不共享。线程是进程内的执行单元,它与同一进程内的其他线程共享进程的内存空间和系统资源。原创 2023-06-08 09:28:57 · 520 阅读 · 0 评论 -
谈谈嵌入式 C 语言踩内存问题!
除了数据存储区之外,多申请12个字节。自定义申请内存的函数自然是要兼容malloc的使用方法。返回值自然要返回数据存储区的地址。原创 2023-06-07 22:50:11 · 629 阅读 · 0 评论 -
嵌入式Linux单板连接飞燕物联网平台
大家好,我是杂烩君。最近,我们的设备连接的云平台需要切到阿里的飞燕平台,做个笔记记录下。阿里的物联网平台有好几个:物联网平台生活物联网平台(飞燕平台)城市物联网平台它们的应用场景不一样。其中,物联网平台的入口是最容易找到的,网上大多数demo都是基于物联网平台。而本篇笔记我们是基于生活物联网平台(飞燕平台)来记录的。阿里的生活物联网平台是面向消费级生活智能设备的平台。平台入口:开发文档:下面我们使用基于嵌入式Linux单板系统的设备一步一步地连接飞燕平台。原创 2022-10-18 21:30:32 · 1610 阅读 · 0 评论 -
嵌入式设备AP配网实例分享
大家好,我是杂烩君。上一篇笔记我们分享了,这篇我们分享一下配网。在这之前,建议阅读往期相关笔记:下面我们来简单分享基于阿里生活物联网平台的AP配网实例。原创 2022-10-20 21:30:33 · 1442 阅读 · 0 评论 -
嵌入式Linux | 如何使用ssh登录开发板?
在公司里,一些开发环境(网络环境、远程登录环境等)都是由系统工程师搭建好的,我们只管用就可以。但是自己业余玩玩还是得自己动手折腾折腾,这两天我也为自己的板子搭建了一下网络环境、远程登录环境等,整个过程中遇到很多坑。从驱动移植、内核编译,再到上层软件库的交叉编译都遇到了很多坑。下面简单记录一下整个过程,方便自己之后再次使用的时候做参看,也给有需要的朋友小伙伴做个参考。WiFi网卡(RTL8723)驱动移植1、把WiFi驱动文件夹放到内核文件夹中把RTL8723驱动文件夹放到Lin...原创 2021-07-27 22:38:06 · 4851 阅读 · 0 评论 -
嵌入式Linux | 10分钟教你通过网页点灯
大家好,我是杂烩君。上一篇我们已经基于我们的开发板搭好了一个基于boa的web服务器:实用 | 10分钟教你搭建一个嵌入式web服务器。这一篇接着分享如何使用网页来点灯。网页点灯的整个流程大致为:从上到下,前面两部分我们就是我们上一篇做的实验,已经打通了。而第三部分就是本篇笔记的重点,我们要点灯,自然需要写一个程序来解析数据及进行点灯操作,即这里的CGI程序。什么是CGI?CGI即通用网关接口(Common Gateway Interface),是一个Web服务器主机提供信...原创 2021-08-01 21:30:00 · 1873 阅读 · 0 评论 -
嵌入式Linux | AP3216三合一整合型光感测器实验分享
点击上方「嵌入式大杂烩」,选择「置顶公众号」第一时间查看嵌入式笔记!1、前言 开发板上有AP3216三合一整合型光感测器,看了看出厂SDK包中并未添加相关驱动。本次我们就一起来学习一下。2...原创 2021-03-25 23:45:06 · 4920 阅读 · 2 评论 -
嵌入式Linux | pc机_开发板_ubuntu互ping实验
最近入手了一块百问网imx6ul开发板,一方面想系统性地学一次嵌入式Linux,争取下一份工作往这个方向混一口饭吃,另一方面也想用一用NXP的芯片。本篇笔记分享的是:pc机_开发板_ubuntu互ping实验,主要是根据教程来走一遍,做个学习记录。硬件连接关于网络环境搭建这一块是个难点。以前在学校我也有学过嵌入式Linux,被这一块搞蒙了好几次。但是,针对这些繁杂的网络问题,百问网的教程对这...原创 2020-03-03 12:46:33 · 1142 阅读 · 0 评论 -
嵌入式Linux | 挂载网络文件系统
上一篇笔记我们分享了【Linux笔记】pc机、开发板、ubuntu互ping实验。有了这个前提,我们的开发板就可以挂载Ubuntu的NFS系统(网络文件系统)。NFS简介NFS(Network File System) ,即网络文件系统, 能使使用者访问网络上别处的文件就像在使用自己的计算机一样。 其工作原理是使用客户端/服务器架构 :服务器程序向其他计算机提供对文件系统的访问,其过程称为...原创 2020-03-06 12:53:26 · 1955 阅读 · 2 评论 -
嵌入式Linux | 从单片机工程师的角度看嵌入式Linux
前言这篇文章简单我们来一起梳理嵌入式Linux的一些知识,方便于一些想跟我一样想要由单片机进阶到嵌入式Linux的朋友做一些参考学习。嵌入式Linux学哪些东西1、认识Linux学单片机的朋友有些有一些Linux基础了,但也不乏有些朋友没用过Linux,甚至有些初学的读者朋友没听说过Linux,为了照顾这些朋友,这里简单地认识一下Linux:2、认识嵌入式Linux学习嵌入式Lin...原创 2020-03-07 12:52:48 · 1328 阅读 · 0 评论 -
嵌入式Linux | 通俗易懂的嵌入式Linux驱动基础解析
上一篇分享的:从单片机工程师的角度看嵌入式Linux中有简单提到Linux的三大类驱动:我们学习编程的时候都会从hello程序开始。同样的,学习Linux驱动我们也从最简单的hello驱动学起。驱动层和应用层还记得实习那会儿我第一次接触嵌入式Linux项目的时候,我的导师让我去学习项目的其它模块,然后尝试着写一个串口相关的应用。那时候知道可以把设备当做文件来操作,但是不知道为什么是这样,就...原创 2020-03-12 13:37:56 · 1322 阅读 · 0 评论 -
嵌入式Linux | 程序设计思想:分层、分离、抽象
上面的几个图是我通过学习韦老师的《嵌入式Linux应用开发完全手册第2版》总结归纳出来的。这些图是为了便于我自己的理解而画的,比较适合我自己的思维方式,可能有些朋友会看不习惯。我上面画的框图全是用方向向下的箭头,其实也可以用方向向上的箭头,看你怎么理解了。比如有两个函数:函数A和函数B,我们可以说函数A调用函数B,也可以说函数B被函数A调用。上面的框图其实有着相应的代码,但限于篇幅没有贴出,有兴趣的朋友可以自己去看看。原创 2020-03-28 23:56:17 · 1475 阅读 · 0 评论 -
嵌入式Linux | 通俗易懂的LED驱动分析
前言上一篇我们分享了字符设备驱动框架,当时分享的是hello驱动程序。学STM32我们从点灯开始,学Linux驱动我们自然也要点个灯来玩玩,尽量在从这些基础例程中榨取知识,细抠、细抠,为之后更复杂的知识打好基础。与硬件无关的LED驱动回顾hello驱动程序,我们的根据实际需求对其进行写字符串与读字符串操作。这里我们当然也要根据实际来思考我们的LED驱动程序。在STM32点灯的时候,一般输出低...原创 2020-04-10 10:19:40 · 893 阅读 · 0 评论 -
嵌入式Linux | 初步认识总线设备驱动模型
之前的笔记有分享【Linux笔记】程序设计思想:分层、分离、抽象,按照这样的思想来设计我们的程序可以更容易写出耦合性低、独立性强、可重用性强的代码。Linux内核中更是存在着更多的分离、分层思想的代码,platform平台设备驱动就是用了这样的思想。本篇笔记我们一起来学习一下platform驱动框架。Linux引入platform的原因对于 Linux 这样一个成熟、庞大、 复杂的操作系统,...原创 2020-04-10 13:43:39 · 960 阅读 · 0 评论 -
嵌入式Linux | 基于总线设备驱动模型的LED驱动
继续来点灯~学了一段时间的嵌入式Linux发现LED程序挺香的。。我们可以从LED程序中榨取很多知识:基本的驱动框架、驱动的简单分层、驱动的分层+分离思想、总线设备驱动模型、设备树等。这大多都是结合韦老师的教程学的,这篇笔记结合第5个demo来学习、分析:框图LED程序的几个层次结构图:本篇笔记基于第④个图来分析。程序分析关于总线设备驱动模型的理论知识我们在上一篇笔记【Li...原创 2020-04-20 13:45:31 · 1549 阅读 · 0 评论 -
嵌入式Linux | 初步认识设备树
前言之前分享的笔记:【Linux笔记】总线设备驱动模型中在platform_device部分有简单说明描述设备有两种方法:一种是使用platform_device结构体来指定;另一种是使用设备树来描述。本篇笔记我们就来简单地学习一下设备树的一些知识。什么是设备树设备树简单理解就是描述设备信息(资源)的一棵树。设备树(Device Tree)用代码体现如下:这些代码被保存在.dts/dt...原创 2020-04-22 13:46:54 · 1787 阅读 · 0 评论 -
嵌入式Linux | 设备树实例分析
前言 我们可以从LED程序中榨取很多知识:基本的驱动框架、驱动的简单分层、驱动的分层+分离思想、总线设备驱动模型、设备树...原创 2020-04-22 23:21:49 · 1285 阅读 · 1 评论 -
嵌入式Linux | 设备树的基础知识,看这一篇实例分析就够了!
前言我们可以从LED程序中榨取很多知识:基本的驱动框架、驱动的简单分层、驱动的分层+分离思想、总线设备驱动模型、设备树等。这大多都是结合韦老师的教程学的,这篇笔记结合第6个demo(基于设备树)来学习、分析:框图下面是LED程序的几个层次结构图:注意:层与层之间的箭头指向是相对的,从哪指向哪看你怎么理解。比如有两个函数:函数A和函数B,我们可以说函数A调用函数B,也可以说函数...原创 2020-04-23 09:41:07 · 1567 阅读 · 0 评论 -
嵌入式Linux | 什么是Pinctrl子系统及GPIO子系统?
前言 之前我们已经通过几篇笔记来学习点灯了:【Linux笔记】LED驱动程序【Linux笔记】LED驱动实验(总线设备驱...原创 2020-05-05 23:59:25 · 1322 阅读 · 0 评论 -
嵌入式Linux | Linux下的应用开发基础分享
应用程序开发方式 在Linux下开发应用程序可以调用两种接口来实现,一种是直接调用系统调用接口,另一种是调用库函数来实...原创 2020-07-04 22:51:23 · 3154 阅读 · 0 评论 -
嵌入式Linux | 如何查看嵌入式设备CPU的温度?
大家应该都看过一些大佬发的电脑CPU烤肉的视频,电脑CPU的温度真的有那么高吗?我们一起来看一下咱们电脑CPU的温度是多少...原创 2020-11-15 23:09:32 · 1997 阅读 · 1 评论 -
嵌入式Linux | 一文理清那些令人眼花缭乱的文件系统!
Linux一个重要的哲学是:一切皆文件。而文件与文件系统是密切相关的,本篇笔记我们来一起学习、理清那些令我们眼花缭乱的文件...原创 2020-11-18 23:29:46 · 1123 阅读 · 0 评论 -
嵌入式Linux | proc文件系统详解
上一篇:《文件系统有很多,但这几个最为重要》介绍了procfs(进程文件系统的缩写),包含一个伪文件系统(启动时动态生成的...原创 2020-11-21 22:50:00 · 1223 阅读 · 0 评论 -
嵌入式Linux | protobuf在嵌入式Linux平台的使用初探
什么是protobuf-c 之前的文章:《Protobuf:一种更小、更快、更高效的协议》详细介绍了protobuf及protobuf-c。这里再简单提一下:Protocol Buffe...原创 2020-12-08 23:25:42 · 1566 阅读 · 4 评论