
linux内核
文章平均质量分 59
小陈同学123
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
微机总线地址物理地址虚拟地址介绍
总线地址:cpu能够访问的范围现象: 装了32位的win7系统,内存条有8G可是系统只能识别3.8G,只有装了64位的才能识别8G原因是:32位表示只能访问2的32次方即4,294,967,296bit的数据约等于物理地址:硬件的实际地址或者绝对地址虚拟地址:逻辑(基于算法的地址,也就是软件层面的地址,假地址)地址...原创 2021-04-11 16:27:22 · 137 阅读 · 0 评论 -
linux内核第一次编程
sudo insmod pin4driver.ko 表示将pin4加载到内核中卸载为:sudo rmmod pin4driver.ko666 表示所有用户均可读写的权限原创 2021-04-11 14:31:18 · 135 阅读 · 0 评论 -
Linux 驱动认知
Linux——一切皆文件:这边的文件不仅仅是我们常规理解的文件,也包括了:鼠标,键盘,屏幕,led,flash,内存,网卡…(在/dev/中可看出来)驱动:在内核中有一个驱动链表用来管理所有的设备驱动(驱动插入到链表的顺序是由设备号检索)功能:1.添加:编写完的驱动程序加载到内核2.查找:调用驱动程序————由用户空间去open对文件操作可以用到函数:1open(); 2read();3wirte();如何区分我们打开的是哪个驱动?ex:fd=open("/dev/pin4",O_RD原创 2021-03-26 17:53:53 · 140 阅读 · 0 评论 -
Linux内核结构 shell介绍
shell是一个特殊的应用。通常被称为命令行 。shell是一个命令解释器(interpreter),例如当我们输入“ls -l”的时候,它将此字符串解释为1.在默认路径找到该文件(/bin/ls),2.执行该文件,并附带参数"-l"。一个shell对应一个终端 (terminal)。曾经来说,终端是一个硬件设备,用来输入并显示输出。如今,由于图形化界面的普及,终端往往就像上图一样,是一个图形化的窗口。你可以通过这个窗口输入或者输出文本。这个文本直接传递给shell进行分析解释,然后执行。原文链..转载 2021-03-26 15:24:04 · 418 阅读 · 0 评论 -
Linux虚拟文件系统
什么虚拟文件系统Virtual File System ?vfs就是对各种文件系统的一个抽象,它为各种文件系统提供了一个通用的接口,虚拟文件系统有什么作用?1.简化应用程序员的开发2.不管是什么文件类型,不管文件是磁盘还是设备,都只用open read write统一操作这篇文章有详细介绍:原文链接:https://blog.youkuaiyun.com/weixin_36145588/article/details/73607463...转载 2021-03-26 14:18:24 · 130 阅读 · 0 评论 -
Linux文件系统
什么是文件系统常规认知: 根目录文件系统是操作系统用于明确存储设备(常见的是磁盘,也有基于NAND Flash的固态硬盘)或分区上的文件的方法和数据结构;即在存储设备上组织文件的方法。操作系统中负责管理和存储文件信息的软件机构称为文件管理系统,简称文件系统。文件系统由三部分组成:文件系统的接口,对对象操纵和管理的软件集合,对象及属性。从系统角度来看,文件系统是对文件存储设备的空间进行组织和分配,负责文件存储并对存入的文件进行保护和检索的系统。具体地说,它负责为用户建立文件,存入、读出、修改、转储文件,控原创 2021-03-26 13:37:11 · 317 阅读 · 0 评论 -
树莓派Linux源码配置和内核编译
1. 树莓派Linux源码配置a.驱动代码的编写b.驱动代码的编译需要一个提前编译好的内核c.编译内核就必须配置d.配置的最终目标会生成 .config文件,该文件指导Makefile去把有用东西组织成内核厂家配linux内核源码,比如说买了树莓派,树莓派linux内核源码第一种方式: cp 厂家.config .config第二种方式:make menuconfig 一项项配置,通常是基于厂家的config来配置第三种方式:完全自己来如何配置树莓派的Linux内核驱动两种加载方式:原创 2021-03-24 16:59:21 · 628 阅读 · 3 评论 -
树莓派Linux源码目录树分析
linux内核大约1.3w个C文件 1100w行代码Linux是开源的,免费的,由LInux开源社区工作者共同维护Linux是一个开源的,支持多架构多平台代码可移植性非常高但是Linux内核编译出来一般就几M. 4M因为支持多平台,多架构,所以编译之前要配置,配置成适合的目标平台来用{ARM架构:海思 友善之臂 RK 树莓派 nanoPiX86架构PowerPC架构MIPS架构}linux内核目录存放了哪些信息在这篇文章内有详细介绍:https://www.cnblog原创 2021-03-22 16:55:04 · 155 阅读 · 0 评论 -
liunx分文件编程,静态库,动态库的引入
分文件编程的好处:a.功能责任划分b.方便调试c.主程序简洁在这里用一个简单的计算机程序来示例首先我们将计算机的主程序math.c编写好#include<stdio.h>//<>默认会优先从 /usr/inclued/去寻找头文件#include"mathfun.h"//使用双引号表示优先从当前路径去寻找这个头文件int main(){ int a; int b; int ret; float ret2; printf("请输入第一个加数\n"); s原创 2021-03-21 15:44:24 · 138 阅读 · 0 评论 -
交叉编译2(带wiringPi库的交叉编译)
可直接将树莓派的wiringPi库拿下来:(正常是直接在上位机上下载wiringPi库)scp libwiringPi.so.2.50 CLC@192.168.1.103:/home/CLC/leassonPi一定是要拿这个的不能拿这个libwiringPi.so这个是软连接,拿下来也无法使用带wiringPi库的交叉编译如何进行1. 正常我们先要交叉编译wiringPi库,编译出的库适合树莓派,这时候交叉编译可执行程序的试试,链接库的格式也是正确的。2. 通过-I -L来指定arm-linux原创 2021-03-14 15:59:59 · 184 阅读 · 0 评论 -
交叉编译1
交叉编译: 是在一个平台上生成另一个平台上的可执行代码。例如我们再windows上面编写C51代码,并编译成可执行代码,如xx.hex,是在c51上面运行,不是在windows上面运行。我们在ubuntu上面编写树莓派的代码,并编译成可执行代码,如a.out,是在树莓派上面运行,不是在ubuntu linux上面运行。为什么要交叉编译?平台上不允许或不能够安装我们所需要的编译器比如C511.因为目的平台上的资源贫乏,无法运行我们所需要编译器2.树莓派是不是就不需要交叉编译?错。也要 树莓派有时因原创 2021-03-14 14:17:46 · 257 阅读 · 0 评论 -
liunx内核驱动--IO操控代码编程
要编写对io口进行操控,我们首先需要去阅读芯片手册,这边使用的是树莓派 3B所以查看的手册是BCM2835,查看cpu型号可以用这个指令来查看:cat /proc/cpuinfogipo引脚介绍(只介绍这边使用到的)底层代码pin4driver.c#include <linux/fs.h>#include <linux/module.h>#include <linux/init.h>#include <linux/device.h>#i原创 2021-04-13 16:43:40 · 256 阅读 · 0 评论