阅读内核系列之EXPORT_SYMBOL展开

[导读] 写驱动时,常常遇到EXPORT_SYMBOL,这究竟做了啥,对于做底层开发而言,了解其内在实现机制,对于开发还是很有益的。本文就来剖析一下其内在实现机制及其作用。从本文开始,将开始不定期更新阅读内核代码的笔记,内核代码庞大,且限于水平,如发现错误,文末开了个小程序留言功能进行讨论,真诚欢迎讨论交流。让我们一起来阅读内核代码吧~~~概要介绍内核代码中...
📅 2023-04-24 阅读全文 →

阅读内核系列之调度器为何全局导出

关注、星标嵌入式客栈,干货及时送达[导读] Linux内核代码庞大,阅读内核书籍总觉得云山雾绕,纸上得来终觉浅,希望通过阅读代码撰写笔记,尝试将这美人神秘的面纱掀开一角,管中窥豹,见一点真容。水平所限,错误难免,恳请交流指正。前情提要《阅读内核系列之EXPORT_SYMBOL展开》将EXPORT_SYMBOL(schedule)展开:asmlinkage&n...
📅 2023-04-24 阅读全文 →

手把手教你系列之FIR滤波器设计实现

关注、星标嵌入式客栈,干货及时送达[导读]:前面的文章介绍了移动平均滤波器、IIR滤波器、梳状滤波器,今天来谈谈FIR滤波器的设计实现。本篇文章依然采用4W1H进行描述,从What Why Where When How几个维度展开。为了便于理解4W1H,依然把5W1H的图附上。FIR滤波器之What?LTI线性时不变系统冲激响应按照其是有限长还是无限长可分为...
📅 2023-04-24 阅读全文 →

STM32编程:是时候深入理解栈了<一>

关注、星标嵌入式客栈,干货及时送达[导读] 从这篇文章开始,将会不定期更新关于嵌入式C语言编程相关的个人认为比较重要的知识点,或者踩过的坑。为什么要深入理解栈?做C语言开发如果栈设置不合理或者使用不对,栈就会溢出,溢出就会遇到无法预测乱飞现象。所以对栈的深入理解是非常重要的。注:动画如果看不清楚可以电脑看更清晰啥是栈先来看一段动画:没有比这个更直观的啦,栈...
📅 2023-04-24 阅读全文 →

抽象思想解读Linux进程描述符

[导读] 内核是怎么工作的,首先要理解进程管理,进程调度,本文开始阅读进程管理部分,首先从进程的抽象描述开始。抽象是软件工程的灵魂,而对于Linux操作系统而言,更是将抽象思想体现的淋漓尽致。本文从抽象建模的角度来对Linux进程描述符进行个人解读,同时也参考了内核文档,一些网络信息。注:代码基于linux-5.4.31,是一个最新的长期支持稳定版本。整理匆...
📅 2023-04-24 阅读全文 →

MMU那些事儿

关注、星标嵌入式客栈,干货及时送达[导读] 本文从内存管理的发展历程角度层层递进,介绍 MMU 的诞生背景,工作机制。而忽略了具体处理器的具体实现细节,将 MMU 的工作原理从概念上比较清晰的梳理了一遍。MMU 诞生之前: 在传统的批处理系统如 DOS 系统,应用程序与操作系统在内存中的布局大致如下图:应用程序直接访问物理内存,操作系统占用一部分内存区。操...
📅 2023-04-24 阅读全文 →

void 型指针的高阶用法,你掌握了吗?

关注、星标嵌入式客栈,干货及时送达[导读] 要比较灵活的使用C语言实现一些高层级的框架时,需要掌握一些进阶编程技巧,这篇来谈谈void指针的一些妙用。测试环境采用 IAR for ARM 8.40.1推荐一首中文歌曲&lt;&lt;后来&gt;&gt;,英文翻唱&lt;&lt;life&gt;&gt;来自瑞典歌手Sofia Kallgern:什么是void...
📅 2023-04-24 阅读全文 →

开号两月文章汇总

开号两月有余,将推送的文章做些总结方便阅读。文章数量还不多,但每天文章都是非常认真撰写的,文中所含观点大都是工作多年的经验总结,现在无偿分享给朋友们,或许能帮助到朋友们。之一:数字滤波器系列,建议深度阅读,嵌入式开发进阶技术▲手把手教系列之移动平均滤波器C实现▲手把手教系列之IIR数字滤波器设计实现▲手把手教系列之梳状滤波器设计实现▲手把手教你系列之FIR滤...
📅 2023-04-24 阅读全文 →

详论单片机固件模块化架构设计(精华)

关注、星标嵌入式客栈,干货及时送达[导读] 为什么写本文?做公号两月,遇到一些初学单片机的同学,刚刚入手做单片机开发,还没有涉及到使用RTOS,且刚入手直接上RTOS可能会有些难度,有的使用的相对较老单片机资源还有限,也不适合跑RTOS。或者使用RTOS,在整体思路上比较迷茫,不知从何入手,所以本文来聊聊我对单片机程序的整体框架设计的一些思路体会。五一佳节...
📅 2023-04-24 阅读全文 →

实用算法解读之RT-Thread链表堆管理器

关注、星标嵌入式客栈,干货及时送达[导读] 前文描述了栈的基本概念,本文来聊聊堆是怎么会事儿。RT-Thread 在社区广受欢迎,阅读了其内核代码,实现了堆的管理,代码设计很清晰,可读性很好。故一方面了解RT-Thread内核实现,一方面可以弄清楚其堆的内部实现。将学习体会记录分享,希望对于堆的理解及实现有一个更深入的认知。注,文中代码分析基于rt-thre...
📅 2023-04-24 阅读全文 →

学习AI之机器学习概念篇

关注、星标嵌入式客栈,干货及时送达[导读] 人工智能在时下属于非常热门的技术,工作了10余年,对此领域却了解甚少。所谓不进则退,慢进亦退!长江后浪推前浪,前浪死在沙滩上,嗯,我还是要挣扎一下,所以下决心在工作之余花时间学习相关技术,以免被时代遗弃。将间断更新分享个人学习笔记。文中观点错误一定很多,恳请指正。本文从整理一下机器学习的动因、由来、概念及理论要点。...
📅 2023-04-24 阅读全文 →

函数return,有些地方你可能还没掌握

关注、星标嵌入式客栈,干货及时送达[导读] 喜闻C语言重登王座,作为一个C语言用的相对较多的码农,还是有点兴奋。本文来聊一聊,你可能没在意的C语言中return的一些使用技巧,分享给大家。return是啥 return其英文含义就是返回,用在函数中,退出当前函数。这个想必都知道,分两种情况:函数不带返回值时,如void&nbsp;func(void){&n...
📅 2023-04-24 阅读全文 →

扒一扒IOT的协议,很多你可能不知道

关注、星标嵌入式客栈,干货及时送达[导读] AIOT如火如荼的当下,今天自网络整理分享一下IOT常见/不常见的协议,以及简要介绍。协议介绍 物联网涵盖了广泛的行业和用例,从单个受约束的设备到大规模的跨平台部署的嵌入式技术和实时连接的云系统,应有尽有。协议纷繁复杂,如用OSI模型进行对应,比较困难。本文按其作用大体分成几大类:基础架构(例如:6LowPAN,...
📅 2023-04-24 阅读全文 →

上古神器vim系列之初探

关注、星标嵌入式客栈,干货及时送达[导读] &nbsp;一直以来VIM也用一些,但是用的不熟,最近看了些文章,发现这个东西有必要发大力气系统的练习一下。可以大大提高平时工作效率,工欲善其事,必先利其器。所以将学习的过程要点记录分享一下,希望大家喜欢。本文不介绍任何插件,只梳理基本VIM操作,将其尽量清晰的呈现。题外,近期新到一些朋友,也欢迎大家入群讨论。我...
📅 2023-04-24 阅读全文 →

上古神器vim系列之三板斧

关注、星标嵌入式客栈,干货及时送达[导读] &nbsp;前文总结了vim如何进入,如何保存退出,如何进入编辑模式。本文来总结一些稍微进阶的内容,在normal模式下如何高效的浏览代码。模式回顾 在normal模式下主要用于浏览代码,那么有哪些方式可以达成移动光标呢,这里总结了从最简易的hjkl键对应单字符移动,到更为高效的移动方式。Normal模式之乾坤大...
📅 2023-04-24 阅读全文 →

学Linux驱动:应先了解总线驱动模型

关注、星标嵌入式客栈,干货及时送达[导读] Linux设备林林总总,嵌入式开发一个绕不开的话题就是设备驱动开发,在做具体设备驱动开发之前,有必要对Linux设驱动模型有一个相对清晰的认识,将会帮助驱动开发,明白具体驱动接口操作符相应都做些什么。个人对于驱动模型的理解概括起来就是一句话:利用面向对象编程思想,实现设备分层管理软件体系结构。注:代码分析基于li...
📅 2023-04-24 阅读全文 →

深入解析Linux Platform_device及驱动

关注、星标嵌入式客栈,干货及时送达[导读] 前文分析了Linux设备驱动的驱动模型,本文来聊聊Platform_driver/Platform_device这个类。做嵌入式Linux的驱动,这个也是绕不开的,所以来学习分析总结一下。阅读本文,建议先读:学Linux驱动:应先了解总线驱动模型上文点击即可阅读。注:代码分析基于linux-5.4.31为什么有P...
📅 2023-04-24 阅读全文 →

模数采样知多少

关注、星标嵌入式客栈,干货及时送达[导读] &nbsp;生活环境周围信号万万千,对于一个嵌入式er。我们利用技术去了解世界、改变世界。而一个产品要与外界物理环境打交道,一个至关重要的触角就是采样真实模拟世界的信号,翻译成芯片可理解的数字信号,进而实现很多为人服务的应用产品。那么提到采样,ADC技术你绕不开,今天总结分享一下ADC的点点滴滴。啥是ADC 在现代...
📅 2023-04-24 阅读全文 →

常见类型ADC原理探秘,选型必知

关注、星标嵌入式客栈,干货及时送达[导读] 上文总结了主要常见的重要ADC的技术指标,本文来梳理两个方面的内容,常见的ADC类型及原理,以及可能容易掉进去的坑。谈谈我为什么整理这个文章吧,工程师往往关注点更多在于功能,而忽略了性能。为什么会忽略性能呢?因为可能缺少对于原理的深入探究,那么使用时可能失之毫厘,谬以千里。性能往往不好,稳定性也可能不佳。帽子扣大点...
📅 2023-04-24 阅读全文 →

一个单片机ADC的挖坑填坑之旅

关注、星标嵌入式客栈,干货及时送达[导读] 本文来解析一个盆友在使用STM32采集电池电压踩过的坑。以STM32F4 的ADC属于逐次逼近SAR 型ADC为例进行分析,参考STM32F405xx &nbsp;Datasheet,对于如何编写ADC程序就不做描述了。先描述一下坑 采集电池电压,利用两个电阻将电池电压分压,然后送入单片机,当电阻如上分别取4M欧...
📅 2023-04-24 阅读全文 →

C语言中这些预定义宏的不可不会

关注、星标嵌入式客栈,干货及时送达[导读] 嵌入式er编程,一些常见的宏应该掌握如何去使用,会带给你很多有用的功能。关于标准定义宏的详细示例,见今天推送的第二篇转载文章,总结的很清晰。本文特别示例了一下如何利用日期时间宏自动内置编译时间信息进入固件。标准预定义宏 使用示例:fprintf&nbsp;(stderr,&nbsp;"Internal&nbsp;...
📅 2023-04-24 阅读全文 →

Linux内核中I2C总线及设备长啥样?

关注、星标嵌入式客栈,干货及时送达[ 导读] 本文通过阅读内核代码,来梳理一下I2C子系统的整体视图。在开发I2C设备驱动程序时,往往缺乏对于系统整体的认识,没有一个清晰的思路。所以从高层级来分析一下I2C系统的设计思路,将有助于设计调试具体的驱动程序。非常抱歉,有两张图放错了,修改更新一下。I2C/SMBUS基础 I2C是一种芯片间通讯总线技术,最早由Ph...
📅 2023-04-24 阅读全文 →

聊聊改变世界的5大算法

领关注、星标嵌入式客栈,干货及时送达[导读] 算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。周末了,今天来轻松概念性总结分享一下改变世界5大算法,当然足以改变世界的算法远不止这5个。比如还有卡尔曼滤波算法啦等等,等以后有机会整理。Metropolis算法 在统计和统计物理...
📅 2023-04-24 阅读全文 →

单片机编程:如何喂狗的灵魂拷问...

关注、星标嵌入式客栈,干货及时送达[导读] 单片机程序写辣么多,看门狗狗天天见,你的狗狗养的对么?不停的喂狗,只要狗不叫就完了嘛?真是这样么?事实上可能不是你想的辣么简单.....啥叫看门狗? 看门狗也称为看门狗定时器,本质上是一种定时电路或者软件定时器机制。工作原理:看门狗的硬件基础是一个计数器,该计数器被设置为某个定时初值,然后递减至零。软件负责经常将...
📅 2023-04-24 阅读全文 →

快速排序到底有多快?(含代码分析、9大排序算法并行运行对比视频)

关注、星标嵌入式客栈,干货及时送达[导读] 前面文章《聊聊改变世界的5大算法》,一文中提到快速排序算法对世界影响巨大,估计很多人不以为然,本文来尝试解读一下为啥。快排有多快 说到快我只推崇葵花宝典,那叫一个快啊~~~皮一下哈哈,言归正传。快速排序算法如其名一样,快!来看看快排和其他几大排序算法的并行运行对比视频(中间那个就是快排),你就知道它到底有多快了,请...
📅 2023-04-24 阅读全文 →

数学之美:嵌入式编程凹凸性之妙用(附C代码)

关注、星标嵌入式客栈,干货及时送达[导读] 咦,你已被成功吸引进来了,不是你想的那样哈~~~皮一下哈,言归正传,今天遇到一个网友问一个问题,他有一个传感器测量一个物理量,需要判断其变化趋势,我给了一些建议,这里将这个建议展开做些深入分析,并分享给大家。本文想借此表达一下个人的一个观点,做开发如果遇到无法解决的难题,可以试着从数学的角度出发,看能否找到答案。注...
📅 2023-04-24 阅读全文 →

[面经] 如何自我介绍的6个提示

关注、星标嵌入式客栈,干货及时送达面试中大概率会遇到一个很简单但却很重要的提问:请先作个自我介绍。面试官明明简历在手,何必多此一问?面试官真正想知道什么?一般来说,面试官是想考察候选人回答问题是否聚焦;思路是否清晰;回答是否简练概括;现场的应变能力与把控能力;以及自我认知能力和价值取向。在回答这个简单问题时务必小心,因为这里的回答会为面试的其余部分定下基调...
📅 2023-04-24 阅读全文 →

Linux中断子系统系列之基础概念篇

关注、星标嵌入式客栈,干货及时送达[导读] 对于驱动开发而言,中断机制是一个无法绕开的主题,翻看了很多资料书籍,读来读去总觉得没明白,所以尝试自底向上的分析一下Linux中断子系统的内在设计以及运行机制。将陆续分享相关的学习原创笔记,敬请关注期待。代码分析基于内核5.4.31如有兴趣,不妨星标一下小号,这样后续笔记将及时置顶出现在你的面前。啥是中断/异常 处...
📅 2023-04-24 阅读全文 →

手把手教系列之一阶数字滤波器设计实现(附代码)

注、星标嵌入式客栈,干货及时送达[导读] 前面分享了 IIR/FIR/mean/梳状数字滤波器的具体设计实现,这几种使用起来或许觉得计算量大,相对复杂。实际工程应用中通常有必要过滤来自传感器或音频流的数据,以抑制不必要的噪声。有的应用场景,可能只需要一个最简单的一阶滤波器即可。所以今天来分享一下怎么设计实现一阶数字滤波器。一阶 RC 滤波? 小伙伴们一定都...
📅 2023-04-24 阅读全文 →

手把手教系列之快速傅立叶算法

关注、星标嵌入式客栈,精彩及时送达[导读] 由于原来公众号是今年申请的,没有留言功能,不方便及时交流。比如小号里的文章由于水平所限,有时候有错误,小伙伴们没有办法及时帮忙指正交流。前面一篇文章《数学之美:嵌入式编程凹凸性之妙用》公式就写错了,而公号文章规则又不能随意修改,非常不便。所以花了几千大洋找人帮忙开通了留言功能,方便与小伙伴们及时交流。花了大价钱开通...
📅 2023-04-24 阅读全文 →