
咸飞的Linux内核心得
clam_zxf
要做自发光的萤火虫,得到想要的三分熟牛排
展开
-
2020-11-04
#include <linux/init.h>#include <linux/module.h>#include <linux/cdev.h>#include <linux/types.h>#include <linux/err.h>#include <linux/errno.h>#include <linux/fs.h>#include <linux/proc_fs.h>#include <原创 2020-11-04 17:57:09 · 209 阅读 · 0 评论 -
Linux 平台驱动程序与 单片机程序 的异同
不知不觉,已经接触Linux 操作系统四年多,对于什么是Linux 下的驱动,这件事需要说明一下。1. 什么是driver 驱动首先,需要有计算机组成原理的知识,才方便了解驱动这个翻译过来的概念。以单片机为例,CPU,存储器,时钟,IO输入输出设备组成最小系统。类似的,只要将各个信号线,按照定义和CPU 连接起来,硬件上,外设就挂载到最小系统成功了。 此时,还需要软件上,让系统更准确的说让CPU 访问硬件、使用该硬件work起来。这部分的软件代码,就叫作驱动。 通常的驱动程序,就是..原创 2020-09-27 20:17:00 · 1695 阅读 · 0 评论 -
ipcm 核间通信 ---第2篇
三次握手建立连接源码路径:https://github.com/zhu-clam/LDD-iic_slave/upload/master/codec-ipc/ipcm_ck860原创 2020-09-27 10:37:33 · 868 阅读 · 0 评论 -
ipcm 核间通信相关 ---(1)
ipcm 全称: internal processor communcation message翻译为: 在多核间使用消息通信,其工作原理是通过mmap()或ioremap() 实现一段共享内存,使用该共享内存,就可以实现信号数据的交互。IPCM driver层:实现如下功能,一步一步如下。共享内存的映射,当两个cpu都映射则共享内存建立完成。 保存对端cpu的状态,g_ipcm_nodes[target].state = alive 进行发送握手。握手成功后,创建handle。..原创 2020-09-27 10:20:25 · 4207 阅读 · 0 评论 -
Macronix nand 驱动移植总结
书到用时方恨少,事不经过不知难。前因篇——为什么需要移植最近在移植macronix 旺宏电子的nand flash 芯片。之前的思路是使用GagiDevice 的驱动修修改改,经过测试,证明是行不通的。 因为两者的nand flash 的architecture 不同,有die、plane 等的不一致,故而不能直接使用。 头疼几日后,依赖于互联网,登录到macron 的官网去看看。https://www.macronix.com/en-us/support/technical...原创 2020-09-08 14:44:08 · 3695 阅读 · 0 评论 -
14.linux-platform机制实现驱动层分离(详解)
转载自:https://www.cnblogs.com/lifexy/p/7569371.html本节目标:学习platform机制,如何实现驱动层分离1.先来看看我们之前分析输入子系统的分层概念,如下图所示:如上图所示,分层就是将一个复杂的工作分成了4层, 分而做之,降低难度,每一层专注于自己的事情, 系统只将其中的核心层和事件处理层写好了,所以...转载 2019-06-25 11:33:56 · 296 阅读 · 0 评论 -
[转]linux中的tasklet机制
https://blog.youkuaiyun.com/yasin_lee/article/details/12999099LINUX 为了中断既能保持快速响应,又能保证中断处理函数的执行。将响应的部分放在上半部top half,将中断处理的部分,放在底半部,bottom half。从而实现某种平衡—— 中庸。这里介绍LINUX 底半部的一种tasklet机制使用#include <li...翻译 2019-04-14 16:51:39 · 201 阅读 · 0 评论 -
Linux 字符设备驱动cdev
关键字:字符设备文件创建——device_create、字符设备cdev 与设备号dev_t的联系 、sys/class 目录下创建类目录class_createLinux下面一切皆是文件,这句是有来源的,这个来源起因,应该就是VFS 虚拟文件系统,将soc下面的所有外设,都抽象成一个个文件进行管理。外设驱动,又有字符设备驱动、块设备驱动。根据IO 读写设备是一个字节来读写,还是根据一块...原创 2019-03-23 17:46:32 · 634 阅读 · 0 评论 -
[转载]文件系统& 挂载
https://blog.youkuaiyun.com/jackyu651/article/details/53070607/挂载-mount什么是挂载?挂载到目标文件系统有什么好处?思考这个问题,发现,为了将两个不同磁盘中的数据或文件,拷贝到另外一个磁盘当中时,就需要使用到mount命令。例如当前CPU或者说操作系统下面有一个存储设备,比如这个存储设备是SD卡的话。我们如何直接访问该存储设备...转载 2019-03-16 21:22:59 · 200 阅读 · 0 评论 -
中断屏蔽mask interrupt
不得不说,随着技术的积累和发展,适应当今的社会,就连看似很基础,很简单的中断,也开始变幻莫测了。如果以前只懂得正常normal的中断注册、中断响应、中断优先级。还是不太能完全推理出程序中中断上下文的执行流。而对于程序员而言,程序的执行流就是他的生命轨迹,没有清晰的程序执行流基础,其他的功能实现都无从说起。文章转载自:https://blog.youkuaiyun.com/dongyanxia100...转载 2019-02-19 11:31:24 · 14254 阅读 · 3 评论 -
LINUX对齐Align原理
在Linux内核中,经常会遇到类似于如下的代码#define __DATA_ALIGN(end, align) (((unsigned int)end+align-1)&(~(align-1)))#define __MSG_ALIGNED(end) __DATA_ALIGN(end, 0x10)光看字面意思,可以知道是字节align大小对齐的作用。原理上是怎么一回事,...转载 2019-02-18 14:16:40 · 1826 阅读 · 0 评论 -
LINUX(一)进程
进程是LINUX下的代码执行流。此篇文章大部分是参考《程序员的自我修养》《深入理解LINUX内核》1、线程基础除了进程process之外,线程也是一个十分重要的概念。特比是随着CPU频率增长出现停滞,向多核方向发展。多线程,作为实现软件并发执行的一个重要方法,也开始扮演越来越重要的角色。2、内核线程 & 用户线程为了保护CPU 以及 底层硬件资源,将程序执行的权限划...原创 2019-02-18 09:44:44 · 257 阅读 · 0 评论 -
linux 之C语言结构体冒号数据类型——位域
有些信息在存储时,并不需要占用一个完整的字节,而只需占几个或一个二进制位。例如在存放一个开关量时,只有0和1两种状态,用一位二进位即可。为了节省存储空间,并使处理简便,C语言又提供了一种数据结构,称为“位域”或“位段”。所谓“位域”是把一个字节中的二进位划分为几个不同的区域,并说明每个区域的位数。每个域有一个域名,允许在程序中按域名进行操作。这样就可以把几个不同的对象用一个字节的二进制位域来表...转载 2019-02-17 11:46:05 · 504 阅读 · 0 评论 -
System V IPC概述[转载]
转载:https://blog.youkuaiyun.com/qq_38211852/article/details/804758181.System V引入了三种高级进程间的通信机制:消息队列、共享内寸和信号量 IPC对象(消息队列、共享内存和信号量)存在于内核中而不是文件系统中,由用户控制释放,不像管道的释放由内核控制 IPC对象通过其标识符来引用和访问,所有IPC对象在内核空间有唯...转载 2019-02-22 10:51:37 · 167 阅读 · 0 评论 -
LINUX 内核之LIST_HEAD结构体(二)
在接触linux内核源码时,常见到struct list_head 结构体变量,以及相关的内核函数,如下:list_add , list_add_tail, list_del , list_entry ,list_for_each , list_for_each_entry ...... 正好最近研究CPU 与CPU 之间IPCM 通讯,又涉及到此部分,所有转载一篇。https://blog...转载 2019-02-15 13:57:48 · 770 阅读 · 2 评论 -
Linux (一)
其实并没有想好文章的题目,暂时使用(一)来替代一下,蓄谋已久的打算写下这一系列的文章,整理学习和使用Linux OS 过程中的心得,同时,希望在回首时时,也能带回这段美好的记忆。 从头算起,接触Linux已有三年之久。虽然期间断断续续,由于工作和生活上面的原因,搞了一段时间的Andriod,但都和Linux还是有联系。不过,对于Linux 还是相当的陌生。直接去官网http://w...原创 2019-02-14 19:51:35 · 174 阅读 · 0 评论