自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

辉辉308

专注于嵌入式Linux内核和驱动

  • 博客(50)
  • 收藏
  • 关注

转载 OpenWrt的主Makefile工作过程

本文是本人对OpenWrt的Makefile的理解,并非转载。OpenWrt是一个典型的嵌入式Linux工程,了解OpenWrt的Makefile的工作过程对提高嵌入式Linux工程的开发能力有极其重要意义。OpenWrt的主Makefile文件只有100行,可以简单分为三部分,1~17行为前导部分,19~31为首次执行部分,33~101为再次执行部分。前导部分CURDIR为mak

2014-05-07 14:51:14 1945

转载 sourceinsight使用技巧

在用sourceinsight查看linux内核源码的时候,大家会发现不能查看源码中的makefile和kconfig代码,即不能搜索到makefile和kconfig文件。这是因为sourceinsight默认是不选makefile的,也没有konfig这种类型的文件。下面就说如何让sourceinsight支持查看makefile和kconfig代码:(1)添加makefile:

2014-04-16 09:25:34 998

转载 [C] typeof

另一种引用一个表达式类型的方法就是使用typeof,使用这个关键字的语法看上去有点像使用sizeof,但从本质上讲,它更像是使用typedef定义一个类型名称。可以使用表达式或是一个类型名来引用类型。比如下面是一个使用表达式的例子:typeof (x[0](1))这里假设x是一个指向多个函数的指针数组。这里得到的类型实际是函数值的类型。下面是一个使用类型名的例子:

2014-04-10 10:32:15 1595

原创 第十四章--Linux设备模型

本文作为第十四章--Linux设备模型,主要讲述:1、Kobject、kset和子系统。2、总线、设备和驱动程序。3、类。4、各环节的整合。

2014-04-03 18:28:29 813

转载 (一)Linux的电源管理架构

Linux的源代码里,大部分都属于设备驱动程序的代码,因此,大多数电源管理(PM)的代码也是存在于驱动程序当中。很多驱动程序可能只做了少量的工作,另外一些,例如使用电池供电的硬件平台(移动电话等)则会在电源管理上做了大量的工作。一、设备电源管理的两种模型        驱动程序可以使用其中一种模型来使设备进入低功耗状态:1.1. 系统睡眠模型:        驱动程序作为一部分,跟

2014-03-27 18:13:26 990

原创 第二十章--程序的执行

本文作为第二十章--程序的执行,主要讲述:1、可执行文件。2、可执行格式。3、执行域。4、exec函数。

2014-03-27 10:58:22 941

原创 第十九章--进程通信

本文作为第十九章--进程通信,主要讲述:1、管道。2、FIFO。3、System V IPC。4、POSIX消息队列。

2014-03-27 10:57:24 913

原创 第十八章--Ext2和Ext3文件系统

本文作为第十八章--Ext2和Ext3文件系统,主要讲述:1、Ext2的一般特征。2、Ext2磁盘数据结构。3、Ext2的内存数据结构。4、创建Ext2文件系统。5、Ext2的方法。6、管理Ext2磁盘空间。7、Ext3文件系统。

2014-03-27 10:56:31 1503

原创 第十七章--回收页框

本文作为第十七章--回收页框,主要讲述:1、页框回收算法。2、反向映射。3、PFRA实现。4、交换。

2014-03-26 11:50:46 1271

原创 第十六章--访问文件

本文作为第十六章--访问文件,主要讲述:1、读写文件。2、内存映射。3、直接I/O传送。4、异步I/O。

2014-03-26 11:49:41 913

原创 第十五章--页高速缓存

本文作为第十五章--页高速缓存,主要讲述:1、页高速缓存。2、把块存放在页高速缓存中。3、把脏页写入磁盘。4、sync()、fsync()和fdatasync()系统调用。

2014-03-26 11:48:20 1523

原创 第十四章--块设备驱动程序

rt

2014-03-26 11:47:03 574

原创 第十三章--I/O体系结构和设备驱动程序

本文作为第十三章--I/O体系结构和设备驱动程序,主要讲述:1、I/O体系结构。2、设备驱动程序模型。3、设备文件。4、设备驱动程序。5、字符设备驱动程序。

2014-03-26 11:46:17 1864

原创 第十二章--虚拟文件系统

本文作为第十二章--虚拟文件系统,主要讲述:1、虚拟文件系统(VFS)的作用。2、VFS的数据结构。3、文件系统类型。4、文件系统处理。5、路径名查找。6、VFS系统调用的实现。7、文件加锁。

2014-03-26 11:45:18 1053

原创 GSC3280的ADC子系统驱动模型(三)----class的使用

本文作为《GSC3280的ADC子系统驱动模型》的第三部分,讲述类部分。

2014-03-19 11:55:09 985

原创 GSC3280的ADC子系统驱动模型(二)

本文作为GSC3280的ADC子系统驱动模型(一)的第二部分,主要讲述了:1、创建设备文件。2、sysfs文件系统。3、proc文件系统。通过上述三种类型,使得操作ADC更加方便,灵活,对于每一种的操作方式,文中都给出了测试方法。

2014-03-19 11:53:28 1156

原创 GSC3280的ADC子系统驱动模型(一)

本文以GSC3280芯片作为CPU,设计了一个ADC子系统,本文作为第一部分,主要涉及的内容包括:1、GSC3280芯片中ADC部分简单介绍。2、ADC设备驱动程序介绍。3、adc-core.c程序介绍。4、Kconfig和Makefile程序介绍。

2014-03-19 11:51:44 1763

原创 第十一章--信号

本文作为第十一章--信号,主要讲述:1、信号的作用。2、产生信号。3、传递信号。4、与信号处理相关的系统调用。

2014-03-18 11:25:40 1125

转载 mini2440 SPI驱动移植

最近项目需要,需要在mini2440上移植SPI驱动,板子需要驱动SPI设备,上网找了很多资源,但是很多都是有问题,最终在基本理解驱动结构的前提下,将SPI驱动顺利移植到mini2440。        我使用的内核版本是2.6.32.2,这个版本和2.6。29不一样,网上很多版本都是关于2.6.29,如果完全按照网上步骤,编译会出现问题,我做的步骤如下:1、在Linux

2014-03-18 11:23:22 1198

原创 Linux spi驱动分析(四)----SPI设备驱动(W25Q32BV)

本文作为SPI驱动的第四篇文章,讲述了W25Q32BV驱动。

2014-03-18 11:21:57 14288 6

原创 Linux spi驱动分析(三)----spiddev分析

本文作为SPI驱动分析的第三部分,主要讲述了spiddev,包括:1、驱动分析。2、应用层测试程序分析。

2014-03-18 11:20:39 6151

原创 Linux spi驱动分析(二)----SPI核心(bus、device_driver和device)

本文作为SPI的第二篇文章,讲述了设备驱动模型等。包括:1、spi总线注册。2、spi驱动注册。3、spi设备注册。4、spi传输函数。

2014-03-18 11:19:23 7069

原创 Linux spi驱动分析(一)----总线驱动

本文讲述了一款芯片的SPI总线驱动,在驱动中,使用了queue和taslet机制来实现多message和多transfer的传输。本文作为SPI的第一篇文章,后面会继续讲述spi核心,spidev和SPI设备驱动等。

2014-03-18 11:17:59 3496

原创 Linux I2C驱动分析(三)----i2c_dev驱动和应用层分析

本文作为i2c驱动分析的第三部分,从驱动和应用层分析了i2c中的I2c-dev模块,此模块在"/dev/"目录下创建设备节点,应用层可以通过此节点操作i2c设备。文章第一部分讲解了i2c-dev驱动程序,第二部分讲解了应用层操作I2c的方法,提供了应用层的测试程序。

2014-03-17 11:54:13 7129

原创 Linux I2C驱动分析(二)----I2C板级设备扫描和数据传输

本文继续 《Linux I2C驱动分析(一)----I2C架构和总线驱动》部分,首先讲述了板级设备的注册,为讲述函数i2c_scan_static_board_info(adap)打下基础,接着又描述了I2C数据传输过程中所调用的接口函数,本文和《Linux I2C驱动分析(一)----I2C架构和总线驱动》是一种继承的关系。

2014-03-17 11:52:10 4354 1

原创 Linux I2C驱动分析(一)----I2C架构和总线驱动

本文作为i2c驱动分析的第一部分,主要讲述:1、I2C总线原理。2、I2C架构概述。3、I2C代码在内核中的结构。4、Algorithm中的传输函数master_xfer。5、总线驱动注册和探测函数。

2014-03-17 11:50:56 8829 1

原创 第十章--系统调用

本文作为第十章--系统调用,主要讲述:1、POSIX API和系统调用。2、系统调用处理程序及服务例程。3、进入和退出系统调用。4、参数传递。5、内核封装例程。

2014-03-17 11:43:54 787

原创 第九章--进程地址空间

本文作为第九章--进程地址空间,主要讲述:1、进程的地址空间。2、内存描述符。3、线性区。4、缺页异常处理程序。5、创建和删除进程的地址空间。6、堆的管理。

2014-03-17 11:42:51 1630

原创 第十三章--USB驱动程序

本文作为第十三章--USB驱动程序,主要讲述:1、USB设备基础。2、USB和Sysfs。3、USB urb。4、编写USB驱动程序。

2014-03-14 11:36:44 1108

原创 第十一章--内核的数据类型

本文作为第十一章--内核的数据结构,主要讲述:1、数据类型。2、其他有关移植性的问题。3、链表。

2014-03-14 11:34:53 936

原创 第十章--中断处理

本文作为笔记的第十章--中断处理,主要讲述:1、中断申请和释放函数。2、顶半部和底半部(tasklet和queue)。

2014-03-14 11:33:23 1203

原创 第九章--与硬件通信

本文作为第九章--与硬件通信,主要讲述:1、读取和写入函数。

2014-03-14 11:31:41 711

原创 第八章--分配内存

本文作为第八章--分配内存,主要讲述:1、kmalloc分配内存。

2014-03-14 11:30:35 743

原创 第七章--时间、延迟及延缓操作

本文作为第七章--时间、延迟及延缓操作,主要讲述:1、HZ、jiffies。2、短延迟。3、定时器。

2014-03-13 10:58:18 975

原创 第八章--内存管理

本文作为第八章--内存管理,主要讲述:1、页框管理。2、内存区管理。3、非连续内存区管理。

2014-03-13 10:55:56 1077

原创 (三)uboot移植--GSC3280芯片logo显示

本文讲述uboot中logo显示的开发,包括:1、logo显示调用流程。2、GSC3280 LCD初始化。3、logo图片显示原理。

2014-03-13 10:53:38 1691

原创 (二)uboot移植

uboot移植。

2014-03-13 10:52:02 845

转载 uboot源码简要分析

一、uboot源码整体框架源码解压以后,我们可以看到以下的文件和文件夹: cpu与处理器相关的文件。每个子目录中都包括cpu.c和interrupt.c、start.S、u-boot.lds。cpu.c:初始化CPU、设置指令Cache和数据Cache等interrupt.c:设置系统的各种中断和异常start.S:是U-bo

2014-03-13 10:51:07 697

原创 (一)BootLoader基本概念

本文作为uboot开发的第一部分,主要讲述:1、BootLoader简介。2、Boot Loader的功能和选择。3、常用的U-boot命令详解 。4、下载与烧写。5、内核引导。

2014-03-13 10:50:03 5055

原创 第六章--高级字符驱动程序操作

本文作为第六章--高级字符驱动程序操作,主要讲述:1、ioctl。2、休眠。3、poll和select。

2014-03-11 11:54:41 855

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除