
Linux
文章平均质量分 95
Linux
咖喱年糕
欢迎大家,和我一起探讨学术上的知识,一起学习一起进步!
展开
-
【树莓派】GPIO驱动代码编写
确保指令不会因编译器的优化而省略,且要求每次直接读值,在这里的意思就是确保地址不会被编译器更换。原创 2023-12-24 00:26:20 · 1761 阅读 · 0 评论 -
微机总线地址物理内存地址虚拟内存地址简介
页表是一个数据结构,用于存储虚拟地址到物理地址的映射关系。每个进程都有自己的页表,它将进程的虚拟地址映射到实际的物理内存地址。原创 2023-12-19 07:18:27 · 1017 阅读 · 0 评论 -
【Linux】基于框架编写驱动代码、驱动代码编译和测试
基于框架编写驱动代码基于框架编写驱动代码编写一个Linux设备驱动框架需要一些基本的步骤,以及一些特定于硬件的信息。由于你提到基于PIN4,我将提供一个简单的框架,你需要根据实际硬件规格进行适当的修改。请注意,上述代码是一个简单的框架,它包含了初始化和清理函数、打开、释放、读和写文件操作。你需要根据实际硬件和设备规格填充相应的读写逻辑。在这个框架中,设备被创建为字符设备,并可以通过访问。驱动代码编译和测试。原创 2023-12-19 07:10:59 · 1456 阅读 · 0 评论 -
【Linux】驱动
驱动驱动在计算机领域,驱动(Driver)是一种软件,它充当硬件设备与操作系统之间的桥梁,允许它们进行通信和协同工作。驱动程序的主要功能是向操作系统提供一种标准化的接口,使得操作系统可以与硬件设备进行交互,而无需了解设备的具体实现细节。驱动程序负责向硬件设备发送命令和控制信息,以执行特定的操作,如读取数据、写入数据、初始化设备等。驱动程序能够处理硬件设备生成的中断信号,从而及时响应设备状态的变化。驱动程序管理设备所需的资源,如内存、输入输出端口等,以确保不同设备之间的资源冲突得到解决。原创 2023-12-16 15:54:38 · 439 阅读 · 0 评论 -
【Linux】内核结构
一、Linux内核结构介绍一、Linux内核结构介绍Linux 内核是操作系统的核心部分,它负责管理系统的资源、进程调度、设备驱动程序等核心功能。这些组件一起构成了 Linux 内核的核心结构。内核的源代码是 modulized 的,允许添加或删除特定功能的模块,以适应不同的需求。整个内核的结构和实现细节非常庞大,具体的功能和特性取决于具体的内核版本和配置。原创 2023-12-15 16:39:13 · 1882 阅读 · 0 评论 -
【Linux】文件系统、文件系统结构、虚拟文件系统
一、文件系统概述一、文件系统概述文件系统(File System)是一种用于在计算机存储设备上组织和管理文件和数据的方式。它提供了一种结构化的方法,使得计算机可以有效地存储、检索和管理文件。文件系统通过文件和目录的组织结构来管理数据。文件表示存储在设备上的数据单元,而目录用于组织和存储文件。文件系统定义了文件的命名规则,这包括文件名的长度、允许使用的字符类型等。文件名通常用于唯一标识文件。文件系统负责将文件存储在物理存储设备(如硬盘、固态硬盘、光盘等)上,并提供检索文件的机制。原创 2023-12-16 10:40:43 · 3015 阅读 · 0 评论 -
【树莓派】高级开发概述、开发环境搭建(内核镜像拷贝至树莓派并启动新内核)
一、树莓派开发环境搭建二、Linux文件系统的目录结构三、树莓派Linux源码目录树分析四、树莓派Linux源码配置五、如何配置树莓派的Linux内核六、树莓派Linux内核编译。原创 2023-12-15 15:01:12 · 646 阅读 · 0 评论 -
【树莓派】内核开发 说明 下载代码 编译 替换内核
因为树莓派系统是在不断开发和升级的,如果你的树莓派使用的是某个时间的系统镜像,那么最好也使用当时的kernel代码。我们可以直接用工程里的配置,但这样的话可能会丢失原来使用的树莓派的配置,这里提供一个方法可以获取当前正在使用的树莓派的config。和上面相同,可以用 export KERNEL=kernel7,一次设置之后此终端里所有命令都带有此环境变量。树莓派运行linux系统,内核代码开源,我们可以自己修改内核代码、编写驱动。,是boot相关的内容,kernel的img文件就放在这个分区里;原创 2023-12-14 20:24:39 · 788 阅读 · 0 评论 -
【交叉编译】
一、什么是交叉编译一、什么是交叉编译交叉编译(cross compilation)是指在一种体系结构的计算机上生成另一种体系结构的可执行程序。这通常用于嵌入式系统、移动设备和其他资源受限的环境,其中目标平台与主机平台不同。你需要下载适用于目标平台的交叉编译工具链。这个工具链包含了编译器、链接器和其他必要的工具,使你能够在主机上生成目标平台的可执行文件。通常,工具链的名称包含目标体系结构的信息,例如。在使用交叉编译工具链之前,你需要设置一些环境变量,以确保编译器和其他工具正确地识别目标平台。原创 2023-12-05 17:46:44 · 641 阅读 · 0 评论 -
【Liunx】常用的指令集
这是一些基本的命令,涵盖了文件/目录管理、文本处理、权限管理、进程管理、网络管理、下载管理、压缩/解压和编译器等方面。每个命令都有特定的功能和用法,可以根据具体的需求选择使用。原创 2023-11-21 15:40:42 · 598 阅读 · 0 评论 -
Linux编译过程、gcc的使用
编译的过程1.预处理阶段a.预处理工作:展开头文件,去注释,宏替换和删除b.外部定义宏参数2.编译(生成汇编)3.汇编(生成不可执行的可重定向二进制目标文件)4.链接(生成可执行的目标文件)动/静态链接感性的认识动/静态链接动/静态链接的优缺点区分动/静态链接查看链接属性指定静态链接原创 2023-12-05 11:39:35 · 436 阅读 · 0 评论 -
Linux库之动态库静态库
一、什么是库(Library)一、什么是库(Library)在计算机编程中,库(Library)是一组预先编写好的可重用代码的集合,旨在为软件开发者提供特定功能或一组功能。库通常包含一组函数、例程、类、变量等,开发者可以在自己的程序中引用这些库以实现特定的任务,而无需编写相同的功能代码。静态库是在编译时与程序链接的,链接过程会将库的代码嵌入到最终的可执行文件中。这意味着可执行文件包含了程序和库的所有代码,使得程序可以独立运行,但也导致可执行文件的体积较大。静态库的文件通常具有.lib。原创 2023-12-05 11:04:55 · 281 阅读 · 0 评论