- 博客(85)
- 资源 (6)
- 收藏
- 关注
原创 不懂就问:什么是 Eventloop?
最近了解了一下 Eventloop 这个概念,写篇文章整理一下思路。1、Eventloop 是什么?我在网上看了一些资料,都比较复杂,而且大多和 JavaScript 扯上关系,对初学者不友好。我个人理解的 Eventloop,其实就是在一个大循环里,处理各种各样的事件。只是不同的 Eventloop 机制或者库,在性能和适用场景之间有差别罢了。一个程序,只要它需要一直工...
2022-05-05 22:31:06 384
原创 强大无比的嵌入式多媒体开发神器:SDL2
SDL 是什么?SDL(Simple DirectMedia Layer)是一套开源的跨平台多媒体开发库,使用 C 语言写成。它提供了绘制图像、播放声音、获取键盘输入等相关的 API,大大降低多媒体应用开发难度的同时,也让开发者只要用相同或是相似的代码就可以开发出跨多个平台(Linux、Windows、Mac OS X等)的应用软件。多用于开发游戏、模拟器、媒体播放器等多...
2022-04-14 22:40:40 1498
原创 五分钟拆解流媒体入门项目 MJPG-Streamer
哎,今天股市下跌很多,我们好好搞技术吧!MJPG-Streamer 是什么?简单地说,Mjpg-Streamer 是一个 JPEG 文件的传输流。它最常用的用途就是采集摄像头的数据,然后启动 http server,用户就可以通过浏览器查看图像数据了。类似 Linux 下的管道:$cat/dev/videoX|encodetoJPG|http_server...
2022-04-11 22:26:21 1781 1
原创 简单易用的嵌入式网络库:Mongoose
Mongoose 是什么?Mongoose 是一个非常小巧易用的网络库。它为 TCP、UDP、HTTP、WebSocket、MQTT 实现了基于事件驱动的非阻塞 API,非常适合在嵌入式系统上使用。官网链接:https://mongoose.ws/Github 链接:https://github.com/cesanta/mongoose官网上列举了它的各种优点,其中我个人...
2022-04-06 21:45:00 3623
原创 跨平台的 RetroArch ,设计方式竟和 RetroPie 如出一辙!
RetroPie 的设计对于 RetroPie,我之前写过一篇关于其内部设计的文章:嵌入式界的顶流开源项目,RetroPie 内部是怎么设计的?RetroPie 为了支持各种软件包,定义了...
2022-02-12 23:50:27 537
原创 嵌入式界的顶流开源项目,RetroPie 是怎么设计的?
RetroPie 是啥?一个用于将树梅派等板子转变为游戏机的开源项目。树梅派上运行 RetroPieGithub:https://github.com/RetroPie/RetroPie-...
2022-02-11 23:41:01 694
原创 向微软大佬学习,嵌入式项目求生法则
哈喽,我是老吴。一个成功的软件项目,应该尽可能满足成本与时间的需求,并以追求高质量的产品为目标。最低层次也要做到:完成项目,这样才能满足程序员的生存需求 (不被解雇)。。。微软建议:软件项...
2022-02-10 23:23:12 359
原创 作为嵌入式底层码农,我是如何对系统固件做冒烟测试的?
冒烟测试?"冒烟测试" 源自硬件行业。对一个硬件进行改动后,直接给设备加电,看看设备会不会冒烟,没冒烟,就表示待测硬件是通过了测试。而在软件研发中,冒烟测试其实是微软首先提出来的一个概念,...
2022-02-09 22:33:35 917 1
原创 用 Shell 快速写一个嵌入式测试框架
哈喽,我是老吴。作为一个嵌入式底层码农,在项目初期,我经常需要测试各种 Linux 单板的稳定性和性能。例如:用 memtester 测试内存的稳定性。用 glmark-es2 测试 GP...
2022-02-08 22:11:38 333
原创 2022 年了,重新理解一波设备驱动 | Linux 驱动
哈喽,我是老吴。非常怀念写文章的感觉。昨晚复习了一些 Linux 驱动的基础知识,给大家分享一下吧。先说结论:多年来,我接触到的 Linux 驱动教程大多都是从 0 编写,这样对初学者而言...
2022-01-08 21:47:52 844
原创 对于 Display 框架,我需要了解 KMS api 吗? | Linux 驱动
缘由什么是 KMS ?要了解 KMS,首先要了解 DRM。DRM 是 Direct Rendering Manager 的缩写,最初只是用来支持 GPU 的,最初它负责:Initializ...
2021-10-09 21:45:00 1117
原创 深夜磨刀,Linux Graphics Stack 概述 | Linux 驱动
哈喽,我是老吴。今天给大家分享一些关于 Linux 图形显示的要点,这些要点构成了 Linux 图形显示的框架。希望对大家有帮助!1. 引言1) 什么是 Graphics?当我们看到一个东...
2021-09-25 22:17:25 1005
原创 内核抢占,让世界变得更美好 | Linux 内核
大家好,我是老吴。今天要分享的是抢占相关的基础知识。本文以内核抢占为引子,概述一下 Linux 抢占的图景。我尽量避开细节问题和源码分析。什么是内核抢占?别急,咱们慢慢来。先理解抢占 (p...
2021-09-01 21:30:00 481
原创 面试官:为什么在中断里不能sleep | Linux 内核
大家好,我是老吴。今天是周一,大家工作顺利吗?这篇文章给大家分享一点小知识:为什么中断里不能睡眠?网上很多文章尝试解释这个问题,看后我觉得头皮发麻。下面,我试着总结一下原因。明确问题首先,...
2021-08-23 21:45:00 851
原创 原来我也有 100+ 的原创文章了 | 周末愉快
大家好,我是老吴。周末要带娃,趁着空闲的时候,给各位老板汇总一下文章吧,不知不觉也有 100+ 原创了。最大的收获是什么?不知道,不想太关注得与失,且行且珍惜吧。想写的内容太多,时间却太少...
2021-08-07 21:30:00 148
原创 一门艺术、说说几个我偶尔会用到的调试方法 | Linux 内核
大家好,我是你们的工具人老吴。今天,和大家分享一下几个 Linux 内核的调试小技巧。当你遇到一个 bug,你调试了 1 年半载都解决不了,这其实一件好事。因为它会时刻提醒你平时写代码时要...
2021-07-18 21:45:00 512
原创 懒人必备,几个例子搞懂字符串 | Qt速学
大家好,我是你们的工具人老吴。今天用几个小例子,帮忙大家快速了解一下 Qt 里如何用 QString 完成几个最高频的字符串操作。开门见山#include<QTextStream&...
2021-07-05 21:45:00 621
原创 一小例子,了解 TCP 通讯流程 | Qt 示例
Hi,我是你们的工具人,老吴。今天用一个小例子,陈述一下 Qt 里使用 TCP 通讯的流程。代码链接:https://doc.qt.io/qt-5/examples-network.htm...
2021-06-27 21:45:00 240
原创 抓大放小,瞅瞅 Qt 的几个基础模块
大家好,我是工具人老吴。对于 Qt 初学者而言,首先需要学习的就是 Qt 的基础模块 ( Qt Essentials )。这些模块对于大多数 Qt 应用程序都是通用的,适用于 Qt 支持的...
2021-06-20 21:45:00 476 6
原创 一口气, 了解 Qt 的所有 IPC 方式 | Qt 速学
大家好,我是老吴。今天整理一下 Qt 里几个重要的 IPC 方式。Internet SocketQt 里的 Qt Network 模块,提供了一些类,让网络编程变得更容易,且支持跨平台。具...
2021-06-08 21:45:00 514
原创 今天下午,和群友讨论了一下 JSON | Qt 小知识
JSON 是什么?JSON 是一种存储结构化数据的格式,源自 Javascript,现被广泛用于互联网上的数据交换。用 JSON 来描述一个人:{"FirstName&#...
2021-05-30 23:11:02 132 1
原创 送老婆,用1小时为家人制作精美电子相框 | Qt 示例
今天给大家分享:如何用 Qt 实现一个电子相框。运行效果:代码链接:https://doc.qt.io/qt-5/qtmultimedia-multimediawidgets-videow...
2021-05-27 21:45:00 228
原创 哈哈哈,这是我用过的最简陋的视频播放器 | Qt 官方示例
今天给大家分享一下:如何用 Qt 实现一个超简单的视频播放器。运行效果:代码链接:https://doc.qt.io/qt-5/qtmultimedia-multimediawidgets...
2021-05-17 21:45:00 327
翻译 硬核玩家,撸了个 7.9 英寸的复古游戏机
这是一个基于 Raspberry Pi 的掌机,基于游戏模拟器 RetroArch 构建,可模拟运行多种复古游戏机,例如 Sega Megadrive,Super Nintendo,Game Boy Advance,PlayStation 等。缘起我是一个来自瑞典的设计师,工程师和游戏爱好者。自从小时候在 Sega Megadrive 上玩游戏以来,我一直都很痴迷游戏。并且,我一直对游戏硬件感兴趣,尤其是对掌机。当我在 2008 年购买 PSP 时,我第一次在掌机中添加了一些游戏模拟器,这让我我可以再次玩所
2021-05-16 14:16:37 256
原创 Qt 开源作品 | 小伙子,给你的 Linux 系统写个 Launcher 吧
今天给大家分享一下:如何用 Qt 实现一个 launcher (程序启动器)。运行效果:github 链接:https://github.com/alamminsalo/qml-launcher代码很少,C++ 部分大约 100行代码。下面是实现过程。1. 创建 QML 应用在 Qt Creator 依次点击:-> File -> New File or Project-> Applications -> Qt Quick Application然后一路点击 next 直到 fini
2021-05-11 09:06:27 1014
原创 Qt小知识 | 用一篇小短文,带你进入 QML 的美妙世界
大家好,我是老吴。今天用几个小例子带大家快速入门 QML 编程。0. 什么是 QML?QML 是一种用于描述应用程序用户界面的声明式编程语言,Qt Quick 则是 QML 应用的标准库。...
2021-04-27 09:04:49 198
原创 Qt 官方示例 | 简单几步,小白也能制作一个串口终端
大家好,我是老吴。我又成功写了一篇小文章,每当我没动力写文章的时候,我就会把写文章的门槛降低,这其实是很好的一个技巧,把一个大目标切成很多小目标,是对付拖延症的一个好方法。正巧最近看了一些...
2021-04-20 08:47:59 1830
原创 文章汇总 | 老板们,周末愉快
大家好,我是老吴。周末是我的带娃时间,所以不会发技术文。趁着空闲的时候,给各位老板汇总一下文章吧。不说废话了,撸起袖子就是干。Linux 系统编程篇Linux-C 编程 | 3 分钟快速了...
2021-04-18 22:15:00 150
原创 Qt 官方示例 | 了解文件读写,看这个例子就够了
大家好,我是老吴,一枚勤劳的嵌入式底层劳动人民。我又双叒叕来分享 Qt 的学习心得了。学习 Qt 的最佳途径是阅读官方的手册和示例,今天要分享的是 Qt 官方提供的示例:notepad。n...
2021-04-11 22:15:00 576
原创 Qt 官方示例 | 这几个 QML 版的 Hello World 你学会了吗?
.我是老吴,一枚光荣的嵌入式底层劳动人民。作为一名 C++ 手残党的我,又来分享 Qt 的学习心得啦。学习 Qt 的最佳途径是阅读官方的手册和示例,今天要分享的是 Qt 官方提供的几个 Q...
2021-04-08 12:19:50 687
原创 Qt 官方示例 | 网络入门 | http 下载小工具
哈喽,我是老吴。最近又玩了一下 Qt,给大家分享一点 Qt 相关的基础知识吧。我个人非常喜欢 Qt,它简直就是我这个 C++ 手残党的利器。学习 Qt 的最佳途径应该是阅读官方的手册和示例...
2021-03-26 11:45:00 427
原创 Linux 驱动开发 | 驱动世界里的宏伟建筑
哈喽,我是老吴。是否每一个上进的人都会觉得自己还可以再努力一点?事情到了最后,只要没达成目的,总能把失败的原因归为 "没有再努力一点"。但是,对努力的最大错误认知就是:时间...
2021-03-11 11:45:00 314 1
原创 Linux-C 编程 | 3 分钟快速了解信号驱动式 IO
哈喽,我是老吴,俺又来分享文章啦!浑浑噩噩到了 30 岁,距离开滴滴还有 5 年的时间。还有机会全身而退吗?哈哈!30 而立,今年会是值得拼搏的一年,干它!以下是正文:一、Linux 的 ...
2021-03-03 08:43:33 571 4
原创 Linux 驱动开发 / fbdev 双缓存 / 快速入门
哈喽,我是老吴。我回来啦!过年回老家,特别充实,大部分时间都在带娃~女儿快 2 岁了,走起路来像模像样,在屋子里转来转去,有的时候还会小跑,痴迷于外出逛街。目前我稍微有点理解她了。2岁的小...
2021-02-22 08:33:31 2569 2
原创 文章汇总(2021-01-28版)
一、关于嵌入式Hacker关于作者号主老吴,91 年出生,2013 年毕业于华南师范大学,计算机科学与技术专业。工作方面,我从事嵌入式驱动开发 8 年,是一枚普通的嵌入式系统 (Linu...
2021-01-28 07:42:21 260
原创 Linux-C 编程 / 进程通信 / 实现基于SysV消息队列的文件服务器
哈喽,我是老吴。最近比较懒,虽然一直在学习,但是没什么动力写文章,为了不让这个好习惯中止,就把自己最近复习到的东西总结一下分享出来,希望大佬们不要打我。一、简介3 种 System V ...
2021-01-27 11:48:35 315
原创 Linux-C编程 / 多线程 / 一个简洁可靠的线程池实现
哈喽,我是老吴,我又来分享学习心得了。另外,为了更好地体现公众号的核心价值观,从本文开始,我会在文末新增分享一些非技术相关的内容,欢迎大家参与讨论。一、简介https://github....
2021-01-20 11:42:31 446
原创 Linux 驱动开发 / gpio子系统 / 快速入门
哈喽,我是老吴,我来继续分享我的学习心得啦。gpio 和 pinctrl 子系统在内核里的使用率非常高,和嵌入式产品的关联非常大。从这两个子系统开始学习驱动开发是个不错的入门选择。本文目...
2021-01-08 12:25:55 1951 1
原创 RK3399探索之旅 / Display子系统 / 从modetest 到 DRM driver
modetest 是由 libdrm 提供的测试程序,可以查询显示设备的特性,进行基本的显示测试,以及设置显示的模式。我们可以借助该工具来学习 Linux DRM 应用编程,另外为了深入...
2020-12-31 18:30:49 3751 9
原创 RK3399 探索之旅 / Display 子系统 / 基础概念
Linux 下的许多驱动框架其实都挺复杂,大多都是许多国内外的牛人经过多年的完善而积累下来的代码。学习驱动开发需要找准自己的定位,先全局把握再适当地去填充细节,不要总想着深入到驱动框架里...
2020-12-24 12:40:44 3187 7
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人