在Mini2440之linux内核移植文章中我们介绍了linux内核移植。并将最终修改后的内核代码保存到/work/sambashare/linux-5.2.8路径下。后续所有驱动也都将在这里修改。
root@zhengyang:/work/sambashare# ll
drwxrwxr-x 2
我们进入nand的命令文件cmd/nand.c,在do_nand函数里,有nand read或write的代码,而其中有对jffs2的支持,却并没有对yaffs2的支持。以前的老版本uboot是有对yaffs文件系统烧写的支持的,于是我们参考老版本的uboot代码,在do_nand函数里的na
在“NorFlash启动”一文中,我们把drivers/mtd/nand/s3c2410_nand.c文件复制为s3c2440_nand.c文件,并把该文件内的所有有关“2410”的地方一律改为“2440”。这么修改仅仅是能够让系统编译成功,并没有真正实现NandFlash的读写。在这里,我们就来
基于 移植uboot后.
1. 移植linux内核
1.1 下载源码
打开 https://www.kernel.org/ 直接肝最新的 5.2.8
下载完后,在ubuntu里解压备用.
1.2 搭建交叉编译环境
1. 交叉编译环境用的是arm-linux-gcc 4.6.4的版本
博客来之于: http://www.veryarm.com/296.html
命名规则:
交叉编译工具链的命名规则为:arch [-vendor] [-os] [-(gnu)eabi]
arch - 体系架构,如ARM,MIPS
verdor - 工具链提供商
os - 目标操作系统
eab
2017年11月13日15:37:34
最近公司大裁员,闹的人心惶惶,不管怎么样,武装好自己才是硬道理,坚持学习,学会那些还没学会的。
今天虚拟机突然打不开了,吓了我一跳,因为代码都还没备份,一定得养成备份代码的习惯!
好了,下面开始进入正题吧,nandf
1. Makefile 简介
Makefile 是和 make 命令一起配合使用的.
很多大型项目的编译都是通过 Makefile 来组织的, 如果没有 Makefile, 那很多项目中各种库和代码之间的依赖关系不知会多复杂.
Makefile的组织流程的能力如此之强, 不仅可以用来编译项目, 还
文档时间:2018-08-14
交叉编译器:arm-linux-gcc-4.3.2
Ubuntu版本:16.04
uboot版本:2013.10
1,修改 uboot 默认环境变量
前面章节得到的 uboot 串口打印信息如下:
可以看出,读出的是坏的CRC,使用默认的环境变量,搜索 "us
board_init_r和board_init_f差不多,都是执行一个循环。这里是循环执行init_sequence_r[]里的函数指针。
一、board_init_r(common/board_r.c)
void board_init_r(gd_t *new_gd, ulong dest_ad
在之前的章节我们已经介绍了u-boot如何支持我们的NOR FLASH,以及DM9000网卡的支持。
这一节我们将会在Young / s3c2440_project[u-boot-2016.05-nor-flash】代码的基础上新建u-boot-2016.05-nand-flash项目,使得我们项
1 前言
如果要使用Device Tree,首先用户要了解自己的硬件配置和系统运行参数,并把这些信息组织成Device Tree source file。通过DTC(Device Tree Compiler),可以将这些适合人类阅读的Device Tree source file变成适合机器处理的
概念
Linux内核从3.x开始引入设备树的概念,用于实现驱动代码与设备信息相分离。在设备树出现以前,所有关于设备的具体信息都要写在驱动里,一旦外围设备变化,驱动代码就要重写。引入了设备树之后,驱动代码只负责处理驱动的逻辑,而关于设备的具体信息存放到设备树文件中,这样,如果只是硬件接口信息的变化而
在传统Linux内核中,ARM架构的板极硬件细节过多地被硬编码在arch/arm/plat-xxx和arch/arm/mach-xxx,比如板上的platform设备、resource、i2c_board_info、spi_board_info以及各种硬件的platform_data,这些板级细节
上一篇博客在最后,我们大致介绍了一下中断子系统的执行流程,这一节我们将从Linux源码层面去中断是如何原型。
一、裸机中断
我们首先回忆一下裸机程序中的中断流程是怎样的,以Mini2440按键K1外部中断为例:
1、使能外部,开启外部中断EINTMASK 、中断源INTMSK 、开启IRQ总中断
----------------------------------------------------------------------------------------------------------------------------
内核版本:linux 5.2.8根文件系统:bu
----------------------------------------------------------------------------------------------------------------------------内核版本:linux 5.2.8根文件系统:bus
在之前Mini2440裸机开发之SPI(OLED SSD1306)中我们介绍了关于OLED SSD1306相关的知识,这里我们将会学习以内核驱动的方式去控制OLED。
一、OLED128x64(SSD1306)
1.1 引脚说明
当SSD1306选定4-wire serial interface接
----------------------------------------------------------------------------------------------------------------------------内核版本:linux 5.2.8根文件系统:bus
一、AT24C08设备驱动
在上一节我们已经编写I2C适配器驱动,已经可以控制S3C2440 I2C控制器进行数据传输了,那么接下来我们开始编写I2C设备驱动,I2C设备驱动就是让内核知道什么时候发数据和发什么数据。
一般SOC的I2C适配器驱动都是由半导体厂商编写的,设备驱动开发者只要专注于 I
在Mini2440裸机开发之I2C(AT24C08)我们介绍了S3C2440这款SOC的I2C结构,其内部只有一个I2C控制器,其中SCL连接GPE14引脚,SDA连接GPE15引脚。
这一节我们将研究S3C2440的I2C控制器驱动,或者说 I2C 总线驱动、I2C 控制器驱动。
I2C适配器驱