摘要:
内核版本: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; 阅读全文
摘要:
一、介绍 1.1 为什么引入设备树 我们首先回顾一下我们之前学习过的驱动程序。比如: linux驱动移植-lcd驱动基础;在arch/arm/plat-samsung/devs.c文件中定义了platform设备s3c_device_lcd,在arch/arm/mach-s3c24xx/mach-s 阅读全文
摘要:
内核版本:linux 5.2.8根文件系统:busybox 1.25.0u-boot:2016.05 一、printk介绍 我们在学习C语言的时候,经常使用printf函数将内容输出到控制台,printf 是格式化输出函数,主要功能是向标准输出设备按规定格式输出信息。printf是C语言标准库函数, 阅读全文
摘要:
内核版本:linux 5.2.8根文件系统:busybox 1.25.0u-boot:2016.05 一、RTC框架 1.1 RTC概述 RTC,英文全称Real Time Clock,中文就是实时时钟,是一个可以为系统提供精确的时间基准的元器件,主要是用来计时,产生闹钟等。 RTC一般可以使用备份 阅读全文
摘要:
内核版本:linux 5.2.8根文件系统:busybox 1.25.0u-boot:2016.05 一、UART驱动框架 UART设备驱动框架如下图所示,下图是来自其他博客,仅供参考: 上图展示了四种注册UART设备驱动的方式,分别为case A到case D,这张图主要由4个部分组成: char 阅读全文
摘要:
内核版本:linux 5.2.8根文件系统:busybox 1.25.0u-boot:2016.05 一、终端(tty) 1.1 回顾 还记的在Mini2440之uboot移植流程之linux内核启动分析(六)小节中,我们介绍过u-boot在启动linux之前,需要做一些准备工作,比如配置启动参数: 阅读全文
摘要:
内核版本:linux 5.2.8根文件系统:busybox 1.25.0u-boot:2016.05 这一节我们来分析Mini2440 GPIO控制器驱动的源码,由于GPIO控制器驱动比较简单,所以这一节内容相对来说也是比较少的。 GPIO控制器驱动编写主要包含两个步骤: 为SoC的每个GPIO控制 阅读全文
摘要:
内核版本:linux 5.2.8根文件系统:busybox 1.25.0u-boot:2016.05 一、GPIO子系统 1.1 GPIO概述 GPIO(General purpose input/putput)也就是通用输入/输出口,片上系统 (SoC) 处理器对 GPIO 有很大的依赖。在某些情 阅读全文