【IOT物联网小镇】原创文章汇总(2021-12)

共 3068字,需浏览 7分钟

 ·

2022-01-09 08:57

号主:道哥,十多年的嵌入式开发老兵,专注于嵌入式 + Linux 领域,玩过单片机、搞过智能家居、研究过 PLC工业机器人,项目开发经验非常丰富。

他的文章主要包括 C/C++、Linux操作系统、物联网、单片机和嵌入式 这几个方面。厚积薄发、换位思考,以读者的角度来总结文章。每一篇输出,不仅仅是干货的呈现,更是引导你一步一步的深入思考,从底层逻辑来提升自己。

  • 【Linux 从头学】系列

  • 物联网开发经验

  • C/C++ 语言

  • Linux 应用程序设计

  • Linux 驱动开发实践

  • Linux 操作系统

  • 编译和链接

  • 嵌入式开发

  • 代码调试

  • Lua 语言

  • 开源库学习

  • 开发工具

  • 读书笔记

  • 心得思考


【Linux 从头学】系列

这个系列的文章,把视角回退到经典的 x86 平台,依托几本经典的书籍,来一起学习操作系统最原始、最本质的功能需求和开发套路。

由于抛开了现代Linux操作系统中许多复杂的算法,把焦点集中在一个操作系统所必要的基本功能上。只要你会C语言,就一定能看得懂。

这个系列的文章,也许不能让你的开发技能有立竿见影的提升,但是一定会增强你的开发内功

  1. CPU 是如何执行一条指令的?

  2. x86中内存【段寻址】方式的来龙去脉 *****

  3. 如何告诉 CPU,代码段、数据段、栈段在内存中什么位置?

  4. 所有编程语言中的【栈操作】,底层原理都在这里 ***

  5. 系统启动过程中的几个神秘地址,你知道是什么意思吗? *

  6. 16张结构图,彻底理解【代码重定位】的底层原理 *****

  7. 中断那么重要,它的本质到底是什么? *

  8. Linux 是如何保护内核代码的?【从实模式到保护模式】 *****

  9. x86 处理器如何进行-层层的内存保护?

  10. 三级跳过程详解-从 bootloader 到 操作系统,再到应用程序

  11. 理解了这三个概念,才能彻底理解【任务管理】和【任务切换】

  12. 读完这篇【特权级】文章,你就比别人更“精通”操作系统!

  13. 想彻底搞懂“系统调用”的底层原理?建议您别错过这篇【调用门】 ***

  14. 【分页机制】-看了这篇文章还没彻底搞懂?我自罚三杯! ***

  15. 页目录和页表】-理论 + 实例 + 图文的最完全、最接地气详解 *****

  16. 操作系统-如何把【页目录和页表】当做普通物理页进行操作的? *

物联网开发经验

  1. 物联网网关开发:基于MQTT消息总线的设计过程(上) ***

  2. 物联网网关开发:基于MQTT消息总线的设计过程(下) ***

  3. 物联网设备OTA软件升级之:升级包下载过程之旅 *

  4. 物联网设备OTA软件升级之:完全升级和增量升级 *

  5. 关于加密、证书的那些事 *****

  6. ESP32 开发之:亚马逊 AWS 平台 OTA 升级过程完全梳理 *

  7. 从程序员的角度,来拆解物联网系统中的开发工作

  8. 无源物联网: 物联网的下一个风口?

C/C++ 语言

  1. C语言指针-从底层原理到花式技巧,用图文和代码帮你讲解透彻 *****

  2. C指针的这些使用技巧,掌握后立刻提升一个Level *

  3. 内联汇编很可怕吗?看完这篇文章,终结它! *****

  4. 一步步分析-C语言如何面向对象编程 *

  5. 提高代码逼格的利器:宏定义-从入门到放弃 ***

  6. 数组不可以直接赋值,为什么结构体中的数组却可以?

  7. 拿来即用:用C+JS结构来处理JSON数据

  8. C与C++混合编程

  9. 利用C可变参数和宏定义来实现自己的日志系统

  10. C_C++_静态库_动态库的制作和使用 *

  11. Linux+Windows: 程序崩溃时,在 C++ 代码中,如何获取函数调用栈信息 *

  12. 你只用do-while来实现循环?太浪费了!

  13. C语言函数传参:指针的指针

  14. 一个printf(结构体指针)引发的血案

  15. 利用C语言中的setjmp和longjmp,来实现异常捕获和协程 *

  16. 代码安全性和健壮性:如何在if和assert中做选择?

  17. 天下武功,唯快不破:提升字符串格式化效率的小技巧

  18. C语言中的【柔性数组】 *

  19. 用纯软件来代替Mutex互斥锁

  20. 用纯软件来代替Mutex互斥锁-多线程

  21. 利用_Pragma来温柔的废弃API

  22. 一个跨平台的头文件

  23. 跨平台代码的3种组织方式 *

  24. 结构体中指针类型的成员变量,它的类型重要吗?

  25. 关于二进制表示和补码计算的来龙去脉,入门看了秒懂

Linux 应用程序设计

  1. 都说软件架构要分层、分模块,具体应该怎么做(一) *****

  2. 都说软件架构要分层、分模块,具体应该怎么做(二) *****

  3. 我最喜欢的进程之间通信方式-消息总线 ***

  4. 【最佳实践】生产者和消费者模式中的双缓冲技术 *

  5. 全图文分析:如何利用Google的protobuf,来思考、设计、实现自己的RPC框架

  6. 多线程异步【日志系统】,高效、强悍的实现方式:双缓冲!

  7. 在动态库中如何调用外部函数?

  8. 用一种讨巧方式,来获取线程栈的使用信息

  9. 这 7 个 Linux 命令,你是怎么来使用的? *

  10. WSL:在 Windows 系统中开发 Linux 程序的又一神器

  11. WSL2:Windows 亲生的 Linux 子系统

Linux 驱动开发实践

  1. 带你一步一步编译内核驱动程序

  2. 你知道【字符设备驱动程序】的两种写法吗?

  3. 一步一步编写字符设备驱动程序 *

  4. 如何编写【 GPIO 】设备的驱动程序?

  5. 驱动程序如何发送【信号】给应用程序?

  6. 一起来梳理【中断】的前世今生(附代码)

  7. 中断处理函数如何【发送信号】给应用层? *

  8. 中断处理中的【工作队列】 workqueue 是什么鬼?

Linux 操作系统

  1. 一次脑残的记录:Linux 中实时任务调度与优先级 *

  2. Linux系统是如何用虚拟内存来欺骗应用程序的?

  3. Mr. Process的一生-Linux内核的社会视角

  4. Linux中的软链接、硬链接:都用在哪些场合? *

编译和链接

  1. Linux系统中编译、链接的基石-ELF文件:扒开它的层层外衣,从字节码的粒度来探索 *****

  2. cmake基础示例:如何编译【跨平台】的动态库和应用程序 ***

  3. 使用 cmake 来搭建跨平台的应用程序框架:C语言版本

  4. 使用 cmake 来搭建跨平台的应用程序框架:C++版本

  5. Makefile-只修改了.h头文件,编译为什么不起作用?

  6. 链接两个"名字完全一样"的【动态库】,你会怎么处理?

  7. 黑客级别的文章:把动态库的内存操作玩出了新花样! ***

嵌入式开发

  1. 嵌入式开发需要架构设计吗?

  2. 为什么航天器、导弹喜欢用单片机,而不是嵌入式系统?

  3. 一步步教你:在x86平台,如何用Qemu来模拟ARM系统

代码调试

  1. 原来gdb的底层调试原理这么简单 *****

  2. 用图文带你彻底弄懂GDB调试原理 *****

Lua 语言

  1. 深入LUA脚本语言,让你彻底明白调试原理 *****

开源库学习

  1. 向高手学习:glib如何来封装跨平台的线程库 *

开发工具

  1. 拿来即用:分享一个检查内存泄漏的小工具

  2. 使用Jenkins + git submodule 实现自动化编译,解决代码安全性问题 *

  3. 推荐一个阅读代码、文档的利器:屏幕贴图工具

  4. 只有一行代码的实用小工具

读书笔记

  1. 关于技术书籍,我是这么来选书和看书的 *

  2. Starlink星链计划能与5G抗衡?看一下马斯克吹过的牛逼

  3. 软件加密的攻与防 *

  4. 五种时间:重建人生秩序

心得思考

  1. 以我失败的职业经历:给初入职场的技术人员几个小建议

  2. 我对经验的理解:一点小思考


星标公众号,第一时间看文章!


浏览 50
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报