04 2023 档案
摘要:内核版本:linux 5.2.8根文件系统:busybox 1.25.0u-boot:2016.05 一、IO概述 1.1 硬件功能分类 ARM based SoC的datasheet中总有一个章节叫做GPIO controller(或者I/O ports)的章节来描述如何配置、使用SoC的引脚。虽
阅读全文
摘要:内核版本:linux 5.2.8根文件系统:busybox 1.25.0u-boot:2016.05 我们在linux驱动移植-中断子系统执行流程 介绍了中断的执行流程,以及在没有使用设备树的情景下中断控制器的注册流程,其主要流程: 将S3C2440中断资源抽象为一个主中断控制器、两个子中断控制器,
阅读全文
摘要:内核版本:linux 5.2.8根文件系统:busybox 1.25.0u-boot:2016.05 在linux驱动移植-LED字符设备驱动中,我们直接使用ioremap函数进行内存映射,得到GPIO有关寄存器的虚拟地址,然后操作寄存器对应的虚拟地址控制GPIO的目的。 这一节,我们将采用设备树向
阅读全文
摘要:内核版本:linux 5.2.8根文件系统:busybox 1.25.0u-boot:2016.05 前面几节内容我们介绍了设备树的结构,以及在linux内核中移植设备树。这一节将对linux内核源码进行介绍,分析内核对设备的处理逻辑。 一、汇编阶段 1.1 uboot引导内核启动 在linux设备
阅读全文
摘要:内核版本:linux 5.2.8根文件系统:busybox 1.25.0u-boot:2016.05 在Linux内核采用设备树之后,驱动程序需要获取设备树的属性。Linux内核为驱动程序提供了一系列API函数,用于获取设备树的属性值。在Linux内核中,以“of_”开头的函数是设备树API函数。
阅读全文
摘要:内核版本:linux 5.2.8根文件系统:busybox 1.25.0u-boot:2016.05 一、修改设备树s3c2440.dtsi s3c2440.dtsi设备树存放的是s3c2440这个SoC跟其他s3c24xx系列不同的一些硬件信息,如clock控制器、串口等等; 修改arch/arm
阅读全文
摘要:内核版本:linux 5.2.8根文件系统:busybox 1.25.0u-boot:2016.05 一、linux内核启动 我们回顾一下uboot引导linux内核启动过程, uboot通过执行bootcmd命令启动内核: bootcmd="nand read 0x30000000 kernel;
阅读全文