![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
嵌入式
文章平均质量分 70
耶耶宁
有梦谁都了不起
展开
-
程序员福音!linux内核也可以看动画学习!
点击上方蓝字关注我们本文动画主题是围绕linux内存管理中的slab机制展开先看这个动画,如果您觉得还不错,希望您能多花十几分钟读完全文。内核patchlinux内核经过几十年的迭代发展,内核的已经越发复杂了,使得很多人学习起来很痛苦。如何减少学习内核的痛苦?一:追本溯源。所有的复杂事物,不是天生就复杂的,必然经过多次版本的迭代,慢慢变复杂的,那么找到其简单版本开始研究,就非常有必要了。二: 代码设计还原。在研究代码时,一定要边读代码边梳理数据结构与算法,等到弄清楚每个结构体的含义和功能,掌握算法原创 2021-08-16 22:30:31 · 182 阅读 · 0 评论 -
从RTOS到Linux0.12进阶之路
近些年,RTOS在国内发展迅猛,尤其是国产操作系统RT_Thread更是隐隐成为国内RTOS一哥。随着RTOS生态不断完善,资料也逐渐齐全,相信不少工程师已经涉猎颇深。笔者也有过约两年的RTOS开发经验,对arm体系架构有一定研究,两年前曾经研读过RT-Thread/ucosiii内核,对RT-Tread常用组件的基本原理基本实现了源码级的剖析,如FS控制台、虚拟文件系统、LWIP协议栈、ulog日志、动态模块、posix接口、slab机制、AMP调度等等,受益颇深。当然也尽了自己绵薄之力,为RT-Th原创 2020-05-26 23:36:53 · 472 阅读 · 0 评论 -
其实,你可能不懂Hello World!
你还记得"Hello World"吗?每个程序员,在进入职业生涯的时候,碰到的第一个程序毫无疑问就是"Hello World"。相信大家对它都不陌生,但是不陌生不代表对它有足够深入的了解。今天我们就来聊一下这个带领无数人进入程序世界的"简单"程序。"Hello World"之所以简单,是简单在它所实现的功能简单,但是就是如此简单的功能背后,蕴含的却是计算机前辈们付出无数心血来为我们奠定了雄厚的根基。我们眼中也许只有"Hello World"这个简单的程序,但却常常忽略了它背后复杂的机制。当.原创 2020-05-26 23:34:01 · 163 阅读 · 0 评论 -
手把手教你,拿下观察者模式|c语言!
科普文,给大家介绍观察者模式的使用场合及其优缺点。模式动机观察者模式是比较常用的设计模式之一,尤其是系统里面涉及到多个复杂子系统时,经常会使用到。它就像系统里面某个子系统的跑腿,一当该子系统发生变化,它就要马上通知其他的子系统。一个经典的例子就是我们操作系统所使用到的GUI界面,当我们在GUI系统里面使用各种应用程序时,只需要用鼠标轻轻点击软件右上方的全屏/非全屏,软件里面全部的组...原创 2020-05-03 16:53:11 · 403 阅读 · 0 评论 -
c语言也能用模板方法模式?
模式动机在嵌入式的应用场景中,管理资源(例如文件、内存)是一件非常麻烦、非常容易出错的事情。因为在分配资源后,还必须释放资源。例如fopen()打开文件后,必须要使用fclose()来关闭文件,而使用malloc申请内存资源后,就必须使用free()函数来释放内存。在实际开发工作中,稍微对malloc不注意就会导致内存泄漏。而模板方法模式堪称预防这类低级错误的神器!场景案例场景:现...原创 2020-05-03 16:52:00 · 617 阅读 · 0 评论 -
c语言,去你的策略模式!
模式动机完成一项任务,往往可以有多种不同的方式,每一种方式称为一个策略,我们可以根据环境或者条件的不同选择不同的策略来完成该项任务。在软件开发中也常常遇到类似的情况,实现某一个功能有多个途径,此时可以使用一种设计模式来使得系统可以灵活地选择解决途径,也能够方便地增加新的解决途径。简单来说,策略模式就是用统一的方法接口分别对不同类型的数据进行访问。场景案例场景:现在我们想用pc看...原创 2020-04-12 22:13:47 · 195 阅读 · 0 评论 -
设计模式--状态模式(C语言实现)
原创亚索老哥embed linux share模式动机状态模式(状态机)是嵌入式开发中最重要、最核心的设计模式之一,毫不夸张的说,是否熟练掌握状态模式,很大程度上直接决定了嵌入式工程师的代码掌控能力。在嵌入式开发里面,几乎80%以上的程序都有状态模式(状态机)的影子。在一个思路清晰而且高效的程序中,必然有状态模式(状态机)身影浮现。但是很多嵌入式开发者只是掌握一些很基础的状态机编...原创 2020-04-11 04:54:26 · 5582 阅读 · 11 评论 -
记录C语言面向对象的一些思考
C语言与C++的老大之争最近一直在尝试用C语言尝试写设计模式,但是陆续写了几个模式后。蓦然发现,很简单的逻辑代码,用C++/java结合设计模式,代码写得非常舒服、非常优雅。但是一旦用C语言来实现,立马变得无比臃肿。我不得不开始怀疑C语言是不是不适合潮流的发展了?花了几天的空间时间,不断地去思索这个问题。自己总结了一下,主要有这几方面原因: C++的类构造。C++的n...原创 2020-04-09 00:38:00 · 169 阅读 · 0 评论 -
C语言设计模式--建设者模式(C语言案例)
前言这里先插一点题外话,在C语言中,实现封装、继承、隐藏、多态等等特性,是完全没有问题的。但是在使用过程中,必定是不如自带这些特性的语言方便好用的,比如C++\java等。一旦要通过C语言来实现各种设计模式,必定会在严谨地维护类层次上造成非常繁琐和臃肿的代码。这是因为C++/java等自带一套面向对象的工具,而C语言要在代码设计中,不断地根据实际情况来创造面向对象的工具。更多深层次的原...原创 2020-04-09 00:30:18 · 268 阅读 · 0 评论 -
设计模式--单例模式(C语言案例)
模式动机单例模式是最简单的设计模式之一,顾名思义,整个系统中每个结构体只有一个实例存在,不能再多,否则就不叫单例。单例模式只应在有真正的“单一实例”的需求时才可使用。场景:timo和gg都是同一个公司的职员,今天需要去找老板签署文件。传统代码实现:#include <stdio.h>//定义boss的行为typedef struct BOSS{ void ...原创 2020-03-25 23:53:25 · 425 阅读 · 0 评论 -
设计模式--补充面向对象基础
这一篇给大家补充一些学习设计模式的基础知识,比如设计模式的哲学思想,c语言如何实现面向对象特性等等。是进一步学习各种设计模式招式的内功。设计模式的感悟中国数千年的历史文明,留给后人数之不尽的智慧。自从事编程工作以来,已经三年多有余,慢慢代码敲多了,竟然在代码中发现了一些先哲们伟...原创 2020-03-21 19:58:58 · 146 阅读 · 0 评论 -
设计模式--工厂方法模式(c语言案例)
设计模式–工厂方法模式一 模式动机在之前简单工厂模式推文中提到,简单工厂模式是通过唯一的工厂接口来负责所有产品的创建并初始化抽象接口。抽象接口的引入,使具体接口从主程序剥离了出来,实现了业务与细节的分离。但是它违反了开放-封闭原则,因为每添加一个新的产品,都需要改动这个唯一工厂接口,需要在里面加入if或switch分支。二 解决方案工厂方法模式就是用来解决这个问题。它将产品的创建和初始化过...原创 2020-02-27 08:15:30 · 299 阅读 · 0 评论 -
Git入门与剖析
Git是一个功能十分强大的分布式版本控制系统,主要用于有效、高速地对各种各样的项目进行版本管理。Git的诞生,起源于linux社区的一位大牛Andrew(samba之父)写了可连接BitKeeper仓库的外挂, 这引起了BitMover 公司的震怒,收回了对linux社区免费使用BitKeeper的授权。于是Linux之父, Torvalds,花了十天时间为Linux社区开发了新的版本工具–G...原创 2020-02-26 15:42:43 · 178 阅读 · 0 评论