8 lieye_leaves

尚未进行身份认证

暂无相关描述

等级
博文 141
排名 2w+

交叉编译及cmake的使用

交叉编译及cmake的使用一.Cmake的安装Cmake的作用是生成工程的Makefile,以便于后期的编译 $sudoapt-getinstallcmake$sudoapt-getinstallcmake-qt-gui 其它依赖库的安装:$sudoapt-getinstallbuild-essentiallibgtk2.0-devlib...

2019-01-08 14:07:37

Linux设备树语法详解

概念Linux内核从3.x开始引入设备树的概念,用于实现驱动代码与设备信息相分离。在设备树出现以前,所有关于设备的具体信息都要写在驱动里,一旦外围设备变化,驱动代码就要重写。引入了设备树之后,驱动代码只负责处理驱动的逻辑,而关于设备的具体信息存放到设备树文件中,这样,如果只是硬件接口信息的变化而没有驱动逻辑的变化,驱动开发者只需要修改设备树文件信息,不需要改写驱动代码。比如在ARMLinux内,...

2018-06-24 18:28:14

在linux-4.12.4中增加系统调用

在linux-4.12.4中增加系统调用1.在文件./include/linux/syscalls.h中定义新的系统调用函数asmlinkagelongsys_statxtest(char__user*filename); 2.在文件./arch/arm/tools/syscall.tbl中增加定义行398    common statxtest            ...

2018-06-09 19:44:01

linux内核的USB core , hub, 检测和枚举

2018-04-23 21:43:25

crosstool-ng-1.23.0交叉编译链制作

crosstool-ng-1.23.0交叉编译链制作一.准备crosstool-ng-1.23.01.      crosstool-ng的下载地址是http://ymorin.is-a-geek.org/download/crosstool-ng/下载交叉编译链源文件crosstool-ng-1.23.02.      编译安装 ./configure–prefix=/home/cross...

2018-04-23 21:30:32

如何实现Linux下的U盘(USB Mass Storage)驱动

如何实现Linux下的U盘(USBMassStorage)驱动版本:v0.7HowtoWriteLinuxUSBMSC(MassStorageClass)DriverCrifan Li摘要本文主要介绍了USBMassStorage的相关的各种协议之间的关系,以及如何在Linux的USB驱动框架下实现U盘驱动本文提供多种格式供:...

2018-04-23 21:05:18

Uart驱动小结

Uart驱动小结前段时间由于工作需要,接触了下ATMEL的samd20g18,cortex-m0,用到了片子上的i2c和uart,使用SDK,对一些低层的细节可以考虑的少一点,开发进度也快了不少;由于正在看Linux,所以顺便也看了下Linux的tty框架,记录下来打个标记。Uart驱动是紧紧围绕数据结构tty_driver的。一.UART字符设备1.1UART字符设备操作函...

2018-01-15 13:40:06

I2c驱动小结

I2c驱动小结前段时间由于工作需要,使用atmeld20g18,cortex-m0,上面有I2C的控制器,atmel提供了SDK,开发速度很快,由于个人的好奇心,也顺便看了下linux下的I2C驱动框架,如下文所示,打个标记。Linux下的I2C驱动主要的数据结构是围绕i2c_adapter,对于ARM上来说一个i2c控制器就对应一个adapter,如果一个控制器上有多个i2c设备则每个设...

2018-01-15 13:38:06

EXT4文件系统之多块分配

EXT4文件系统之多块分配如果文件inode支持延迟分配,则可以略过空间查找和磁盘配额的分支,因为他们已经被准备好了。如果空间查找为0,则返回ENOSPC;如果磁盘配额为0,则返回EDQUOT;两者都无法分配空间。在多块分配的时候用到了radix_tree数据结构,将块结构描述符的块组保存到缓存中,但是这样的数据保存了两份,分别为bd_buddy和bd_bitmapstructext

2017-12-07 15:48:19

EXT4文件系统之extents的ext4_get_block()

staticintext4_ext_insert_index(handle_t*handle,structinode*inode, structext4_ext_path*curp, intlogical,ext4_fsblk_tptr){新的数据块插入当前的路径深度里。}staticintext4_ext_split(handle_t

2017-12-06 11:36:54

EXT4文件系统之间接块的ext4_get_block()

staticintext4_alloc_branch(handle_t*handle,structinode*inode, ext4_lblk_tiblock,intindirect_blks, int*blks,ext4_fsblk_tgoal, ext4_lblk_t*offsets,Indirect*branch)

2017-12-06 11:34:39

EXT4文件系统之ext4_fill_super()

EXT4文件系统之ext4_fill_super()一.概述   在磁盘挂载的时候文件系统需要从磁盘中读取超级块来填充内存中的结构,EXT4文件系统超级块的填充是由函数ext4_fill_super()来完成的。在EXT4文件系统中,磁盘上的超级块结构是与结构体structext4_super_block的定义是一致的,大小是1K,即1024个字节。顺便提下,EXT3文件系统超级块在磁盘...

2017-11-26 21:10:26

EXT4文件系统的磁盘布局

EXT4文件系统的磁盘布局一.磁盘空间的计算EXT4文件系统是从EXT2/EXT3文件系统上继承和发展而来的,EXT4也使用EXT2/EXT3的一些元数据的概念,如超级块,块组描述符,块组位图,节点位图,节点数据,在EXT2/EXT3中还有间接数据块,EXT4的节点如果不用content结构的话,也应该有间接数据块的概念,因为EXT4在某些情况下会与EXT3文件系统兼容。在EXT2/E

2017-11-11 16:08:46

EXT3日志文件系统之address_space_operation

EXT3日志文件系统之address_space_operation一.前言Ext3文件系统具有日志的功能,有三种日志模式,journal,ordered,writeback。但是EXT3文件系统的磁盘结构与EXT2文件系统是一样的,EXT3的日志可以是一个文件(此时inode的节点号是8),也可以保存在某个分区上。二.与具体日志模式结合的写文件函数staticconsts

2017-11-04 13:35:57

EXT3文件系统的日志模式

EXT3文件系统的日志模式Ext3文件系统有三种日志模式:1.      Journal日志文件系统所有数据和元数据的改变都被记入日志。这种模式减少了丢失每个文件修改的机会,但是它需要很多额外的磁盘访问。例如,当一个新文件被创建时,它的所有数据块都必须复制一份作为日志记录。这是最安全和最慢的EXT3日志模式。2.      Ordered预定只有对文件系统元数据的改变才

2017-10-17 20:08:59

How to use Ext4 如何使用EXT4

HowtouseExt4如何使用EXT4https://kernelnewbies.org/Ext4 有以下三种方式使用EXT4文件系统:一.创建新的EXT4文件系统对于新文件系统的安装,最简单也是推荐的方法,使用工具mkfs.ext4二.将现有的EXT3文件系统迁移到EXT4使用tune2fs和fsck文件系统工具,先卸载原有的分区,执行Tune2fs–

2017-10-17 19:37:32

eMMC ext4综述

eMMCext4综述一.系统的引导启动1.1系统的引导启动https://javigon.com/2012/08/24/from-poweron-to-android-the-boot-sequence/ 通常,引导设备的块0包含着主引导记录(MasterBootRecordMRB),这个块包含着设备分区表(partitiontable)的信息。当设备加电启动的时候

2017-10-12 14:22:09

Glibc-2.18编译

Glibc-2.18编译1.      下载gcc编译器,在www.kernel.org 2.      配置编译器exportPATH=$PATH:/home/super4412/gcc-4.6.3-nolibc/arm-unknown-linux-gnueabi/bin makeARCH=armCROSS_COMPILE=arm-unknown-linux-gnuea

2017-10-09 14:05:06

openwrt小结

openwrt小结工作中用了一段时间的openwrt,将部分经验写下来以作为小结。一.OPENWRT目录解析: Makemenuconfig Makekernel_menuconfig 1.      编译整体工程MakeV=s 2.      编译某个具体的应用makepackage/ptpc/compileV=s cd./package/

2017-10-09 14:01:39

打开Linux内核启动早期的log

打开Linux内核启动早期的log有时会遇到当在u-boot中执行完bootm后,打印出startkernel后串口就没有再输出任何信息了。此时就需要打开内核早期的log:makemenuconfig Kernelhacking --->     [*]Kernellow-leveldebuggingfunctions(read

2017-08-22 22:31:13
奖章
    暂无奖章