- 博客(404)
- 资源 (24)
- 收藏
- 关注

原创 详解linux内核链表list_head及其接口应用
摘要:本文介绍了内核代码中经常使用的list_head链表的原理,及其它的各种接口函数(宏函数)的使用方法和技巧,对理解Linux内核数据结构和代码有较好参考意义。
2022-09-14 23:23:33
246
3

原创 虚拟机双网卡设置(外网+内网)
本文主要介绍了在开发过程中,实现开发板利用网线直连电脑实现开发工作,而电脑又可以通过另一个无线或有线网卡正常连接互联网。
2022-09-11 22:17:13
3801

原创 软考高级系统架构设计师你想知道的全在这
2021年准备参加软考获取高级职业技术资格认证的小伙伴咱们约起吧?今年刚参加完系分考试,不知道有没有通过,但感觉应该差不多,这里给自己点个赞!自软考系列文章发表之后有很多准备参加软考的小伙伴加我微信,关注我的微博,也有很多因此成了好朋友,甚至是同事。自前年开始,我会在CSDN、简书、GITHUB等平台将我在工作、学习的道路上遇到的各种问题都写成一篇技术博客,因为这样既能给日后查找资料方便,也能进一步提高自己的文档编写能力,还能广交朋友,拓展人脉,何乐而不为呢。
2020-11-12 23:00:28
10532
17

原创 2020软考高级系统分析师,你想知道的全在这
2020年准备参加软考获取高级职业技术资格认证的小伙伴咱们约起吧?!去年刚参加完嵌入式系统设计师考试,并以高分通过,这里给自己点个赞!自这篇发表之后有很多致力于嵌入式开发的小伙伴加我微信,关注我的微博,也有很多因此成了好朋友,甚至是同事。自前年开始,我会在CSDN、简书、GITHUB等平台将我在学习嵌入式的道路上遇到的各种问题都写成一篇技术博客,因为这样既能给日后查找资料方便,也能进一步提高自己的文档编写能力,还能广交朋友,拓展人脉,何乐而不为呢。当然也希望大家能和我一样,把自己在学习中的问题写成博客放在
2020-08-16 22:36:29
3009
1

原创 2022年备考[嵌入式系统设计师]你准备好了吗?
2020年准备参加软考获取中级职业技术资格认证的小伙伴咱们约起吧?!去年刚参加完嵌入式系统设计师考试,并以高分通过,这里给自己点个赞!自这篇发表之后有很多致力于嵌入式开发的小伙伴加我微信,关注我的微博,也有很多因此成了好朋友,甚至是同事。自前年开始,我会在CSDN、简书、GITHUB等平台将我在学习嵌入式的道路上遇到的各种问题都写成一篇技术博客,因为这样既能给日后查找资料方便,也能进一步提高自己的文档编写能力,还能广交朋友,拓展人脉,何乐而不为呢。当然也希望大家能和我一样,把自己在学习中的问题写成博客放在
2020-07-23 22:56:54
3418

原创 经典生产者-消费者问题解析
摘要:生产者和消费者问题在现实系统中是很普遍的。例如在一个多媒体系统中,生产者编码视频帧,而消费者消费(解码)视频帧,缓冲区的目的就是减少视频流的抖动。又如在图形用户接口设计中,生产者检测到鼠标和键盘事件,并将其插入到缓冲区中。消费者以某种基于优先级的方式从缓冲区中取出这些事件并显示在屏幕上。生产者和消费者模式共享一个有n个槽位的有限缓冲区。
2020-04-09 14:35:33
7595

原创 Linux下的网络编程看这篇就够了
1.全球IP因特网1.1数据在互联网上的传输过程1.2 一个网络程序的软硬件组织1.3 IP地址结构一个IP地址就是一个无符号32位整数。网络程序将其存放在如下所示结构体中:struct in_addr{ uint32_t s_addr; //大端法表示的IP地址};因为网络字节序都是大端法表示的,所以Unix提供了一组函数用于在网络和主机间进行字节序的转换:#...
2020-03-26 11:28:31
276

原创 Linux中的信号机制
信号就是一条消息,通知进程系统中发生了什么事,每种信号都对应着某种系统事件。一般的底层硬件异常是由内核的异常处理程序处理的,它对用户进程来说是透明的。而信号机制,提供了一种方法通知用户进程发生了这些异常。例如,一个进程试图除0,会引发内核向他发送SIGFPE信号;执行非法指令会引发SIGILL信号;非法内存访问引发SIGSEGV;当你从键盘上键入Ctrl + C会引发SIGINT;当某个子进程结...
2020-03-21 23:38:00
310
原创 U-Boot常用命令介绍
U-Boot 上电启动后,按任意键可以退出自动启动状态,进入命令行。U-Boot 可支持几十个常用命令,通过这些命令,可以对开发板进行调试,引导 Linux 内核,还可以擦写 Flash 完成系统部署等功 能。掌握这些命令的使用,才能够顺利地进行嵌入式系统的开发。
2023-01-27 21:22:44
562
原创 汇编友好的C编程技巧及其相互调用方法
主要介绍如何优化C语言编程来产生最快速度和紧凑的机器指令;汇编与C/C++混合编程的方法;ARM C/C++编译器介绍。
2023-01-15 15:32:32
1074
原创 超长文全面解析设备树
本文从设备树的起源、概念、架构、语法、编译、常见接口及具体应用全面细致分析了设备树的种种,全文5万多字,写作过程中借鉴了不少优秀文章和博文并在文后予以了标注,若涉及侵权还请联系删除或授权。
2022-12-20 12:12:37
1286
原创 信号集操作函数一网打尽
本文详细讲述了信号集的概念,并分别列举了与其有关的各种操作函数,必要时举出了相关例子进行进一步阐述,旨在帮助大家更好的理解信号集操作函数的内在涵义和具体使用场景。
2022-12-07 22:04:16
92
原创 Linux开发常用ps命令选项详解
【摘要】本文介绍了在Linux应用/内核开发调试中,经常需要用到的两个选项组合,当然,如果你需要查看更多更详尽的选项说明,可以参考man说明文档,即命令行下输入`man ps`进行查看。
2022-12-04 11:37:34
475
原创 超详细BootLoader原理分析
本文详细地介绍了基于嵌入式系统中的 OS 启动加载程序 ―― BootLoader 的概念、软件设计的主要任务以及结构框架等内容。
2022-11-24 23:02:51
859
原创 一文了解GCC(GNU C)语法
要研究LINUX内核,C语言是基础中的基础,但是LINUX并不是完全的标准C,而是对标准C做了很多扩展,这些扩展特性对于我们分析内核有着很重要的作用,下面做些总结性的工作。
2022-11-07 00:07:19
157
原创 一文了解GCC(GNU C)语法
要研究LINUX内核,C语言是基础中的基础,但是LINUX并不是完全的标准C,而是对标准C做了很多扩展,这些扩展特性对于我们分析内核有着很重要的作用,下面做些总结性的工作。
2022-11-06 17:32:34
427
原创 Linux设备模型剖析系列文章之七(kobj、kset)
【摘要】本文是Linux设备模型系列文章的最后一篇,补充讲解了kobj和kset的一些内容,主要阐述kobj/kset作为统一设备模型的基础,到底提供了哪些功能,在具体应用过程中,如device、bus甚至platform_device等是如何使用kobj/kset的。
2022-10-29 15:27:16
71
原创 Linux设备模型系列文章之六(设备资源管理)
【摘要】本文是Linux设备模型剖析系列文章之六,主要讲述了如何避免在内核驱动编程中解决繁琐的资源管理难题。相信每一个写过Linux driver的工程师,都在probe函数中遇到过上面的困惑:要顺序申请多种资源(IRQ、clock、memory、regions、ioremap、dma、等等),只要任意一种资源申请失败,就要回滚释放之前申请的所有资源。而设备资源管理帮我们解决了这个问题,本文就是围绕它来展开。
2022-10-29 15:24:12
62
原创 Linux设备模型剖析系列之五(class)
【摘要】本文是Linux设备模型剖析系列文章之五,讲述了class相关的概念及其在驱动编程中的应用。在设备模型中,Bus、device、device driver等等,都比较好理解,因为它们对应了实实在在的东西,所有的逻辑都是围绕着这些实体展开的。而本文所要描述的class就有些不同了,因为它是虚拟出来的,只是为了抽象设备的共性。
2022-10-29 15:16:23
64
原创 Linux设备模型剖析系列之四(BUS)
【摘要】本文是Linux设备模型剖析系列文章之四,主要讲述了BUS总线在Linux设备模型中的地位,BUS是一类特殊的设备,它是连接处理器和其它设备之间的通道(channel)。为了方便设备模型的实现,内核规定,系统中的每个设备都要连接在一个Bus上,这个Bus可以是一个内部Bus、虚拟Bus或者platform Bus。内核通过struct bus_type结构抽象Bus。下文会围绕该结构,描述Linux内核中Bus的功能,以及相关的实现逻辑。最后,会简单的介绍一些标准的Bus(如platform)。
2022-10-29 15:10:35
95
原创 Linux设备模型剖析系列之三(device和device driver)
【摘要】device和device driver是Linux驱动开发的基本概念。Linux kernel的思路很简单:驱动开发,就是要为指定的设备(device)开发指定的软件(device_driver),所以kernel就为设备和驱动定义了两个数据结构,分别是device和device_driver。下文将会围绕这两个数据结构,介绍Linux设备模型的核心逻辑,包括:设备及设备驱动在kernel中的抽象、使用和维护;设备及设备驱动的注册、加载、初始化原理;设备模型在实际驱动开发过程中的使用方法。
2022-10-29 15:01:53
105
原创 Linux设备模型剖析系列之二(uevent、sysfs)
【摘要】本文为Linux设备模型剖析系列文章之二,主要内容为对kobject中的uevent进行了讲解,包括其在内核中的位置(地位)和内部逻辑;而后还讲述了sysfs和kobjet之间的关系、attrbute的概念等问题。
2022-10-29 14:55:50
691
原创 Linux设备模型剖析系列一(基本概念、kobject、kset、kobj_type)
【摘要】本文是linux设备模型剖析系列文章之一,主要内容包括了Linux内核中设备模型的核心思想,讲述了Bus, class, device和device_driver等的概念,特别是对kobject、kset、kobj_type作为Linux设备模型的基本单元,同时也是设备模型中最难理解的一部分,进行了源码级的较为清楚的分析。
2022-10-29 14:42:25
119
原创 uart驱动框架及编程方法
【摘要】本文讲述了UART串口的驱动框架,其与tty架构的联系及相互关系,描述了常见的数据结构及一般串口驱动编程的一般步骤和方法,最后引用LDD3文章中的一个串口实例讲述了串口驱动源码全貌
2022-10-28 23:39:18
971
原创 超详细Uart驱动框架及编程方法
UART(Universal Asynchronous Receiver/Transmitter),中文全称为通用异步收发传输器,是一种异步收发传输器,它将要传输的数据通过并行到串行转换后再进行传输。该总线双向通信,可以实现全双工传输和接收。在嵌入式设备中,UART 用于主机与辅助设备通信。
2022-10-24 00:48:37
1021
原创 一文彻底讲清Linux tty子系统架构及编程实例
本文详细解读了linux系统下的tty子系统的深层次原理和架构,并参考了LDD3中的代码实例讲述了无硬件下实现一个简单的tty设备驱动模块的编写。对了解tty子系统及下部串口驱动模块的学习有较好的参考价值。
2022-10-23 00:16:11
859
原创 一文讲透Linux网络设备驱动框架及编写步骤
本文阐述了网络架构模型,特别是Linux系统中网络子设备框架4层结构,反别阐述了各层的作用。重点讲解了sk_buff及net_device数据结构及其常用操作接口,最后以实际代码讲述了特定网卡的驱动编写步骤、流程和移植方法。
2022-10-18 13:02:08
933
原创 一文彻底搞清Linux中块设备驱动的深层次原理和编写方法
本文主要讲述了在Linux环境下的块设备驱动的常见数据结构和内核接口,并以一个实际例子讲述了块设备驱动的编写方法。文章参考LDD3。
2022-10-12 18:11:08
1122
原创 linux内存重映射的概念及对内核虚拟地址的重映射方法分析
【摘要】本文分析了Linux设备的内存映射的相关概念和理论,使用例子对mmap及nopage的驱动编写方法进行了解释,最后对3种不同的内核虚拟空间分配方法下,mmap驱动编写方法进行了细致的分析和调试。
2022-10-10 21:46:41
367
转载 驱动工程师必备技能
今天偶然看到一篇大佬写的文章,感觉对从事驱动开发的同学很有参考意义,故稍作精简后引文到此,供大家围观。作为驱动工程师,主要的工作就是移植各种驱动,接触各种硬件。接触最多的就是dts、中断、gpio、sysfs、proc fs。一个基本合格的驱动工程师,要时刻想着如何利用你平时看的代码,如何体现在工作的调试中,如何利用sysfs、proc fs及内核提供的接口为我们降低调试难度,快速解决问题。注:部分代码分析举例基于linux-4.15。
2022-09-25 23:27:16
354
原创 一文入门USB设备的驱动编写方法
摘要:本文介绍了USB设备驱动相关的基本知识结构,和编写驱动的基本步骤和流程。最后通过编写一个USB鼠标的驱动实力,讲述了简单字符型USB输入设备驱动的具体编写步骤,并给予了测试方法。文末附有完整程序代码和Makefile。
2022-09-19 23:05:04
1495
原创 编写具有良好移植性Linux C代码的若干技巧
摘要:本文主要讲述了linux内核开发过程中,需要注意的有关提高代码可移植性的若干技巧,同样对编写Linux应用程序也有较好的参考意义。干货满满,请君一阅。
2022-09-14 15:09:28
105
原创 /usr/local/arm/4.3.2/bin/arm-none-linux-gnueabi-gcc: 没有那个文件或目录
本文介绍执行arm-linux-gcc时,出现查找不到安装的交叉编译工具。而通过查看目录,又确实又可以看到我们安装的交叉编译工具
2022-09-06 17:25:46
523
1
信息系统项目管理师考试论文范文集
2022-03-04
软考高项考前必须要会做的百题精讲
2022-03-04
网络规划设计师历年真题09-19年.zip
2021-08-02
一百篇架构师论文范例(备考必备,备考必背!).rar
2021-08-02
2021年系统架构复习笔记(按章节).docx
2021-03-18
系统分析师核心考点归纳.pdf
2021-03-18
软考学习笔记(重要).docx
2021-03-18
自写嵌入式系统设计师考试笔记.doc
2020-07-28
历年真题12-18.zip
2020-07-28
RIO包-用于网络编程的健壮读写函数.md
2020-03-26
picgo_typora.zip
2020-03-25
一文教你如何构建静态链接库.md
2020-03-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人