- 博客(37)
- 收藏
- 关注
原创 linuxMACHINE_START-MACHINE_END
在友善mini2440提供的linux2.6.32.2内核中,有如下定义:MACHINE_START(MINI2440, "FriendlyARM Mini2440 development board").phys_io = S3C2410_PA_UART,.io
2011-10-10 00:09:24 608
原创 linuxBSPmini2440中断管理
2440处理器的中断组织成两层:主中断 和 次中断,一共可以处理60个中断源。主中断 和 次中断 经过中断构架的抽象之后,编写驱动程序时,我们不用考虑这两层中断,直接使用request_irq 注册 60个中断源的某个,就可以直接使用中断了。 e
2011-10-10 00:07:44 1033
原创 linuxBSPmini2440之时钟
内核时钟初始化函数是s3c24xx_init_clocks(12000000)。改函数的从start_kernel-->setup_arch(&command_line)-->paging_init(mdesc)-->devicemaps_init(mdesc)-->if (
2011-10-10 00:06:04 1037
翻译 linuxBSPmini2440之GPIO
linuxGPIO 的模型实现主要一个gpio-chip:(抽象一个GPIO控制器)struct gpio_chip { const char *label; struct device *dev; struct module *owner; int
2011-10-10 00:04:25 930
原创 linux BSPmini2440之DMA
s3c2440中DMA的一般操作步骤分七步:BSPmini2440之DMA" alt="linux BSPmini2440之DMA">s3c2410_dma_client 的定义为:struct s3c2410_dma_client { char
2011-10-10 00:02:59 875
原创 arm linux启动
mini2440的IO内存映射是在函数mini2440_map_io()函数中的s3c24xx_init_io(mini2440_iodesc, ARRAY_SIZE(mini2440_iodesc));我们发现mini2440_iodesc是一个空的。static struct
2011-10-10 00:01:54 595
原创 Linux下Socket编程
什么是Socket Socket接口是TCP/IP网络的API,Socket接口定义了许多函数或例程,程序员可以用它们来开发TCP/IP网络上的应用程序。要学Internet上的TCP/IP网络编程,必须理解Socket接口。 Socket接口设计者最先是将接口
2011-10-10 00:00:02 628
原创 嵌入式linux串口编程
串口的设置主要是设置struct termios结构体#includestruct termios{ unsigned short c_iflag;//输入模式标志 unsigned short c_oflag;//输出模式标志 unsigned shor
2011-10-09 23:58:46 862
转载 linux进程间通信
上图是linux进程间通信发展历程UNIX间的进程间通信(IPC)包括管道,FIFO和信号。System V进程间通信(IPC)包括System V消息队列,System V信号量,System V共享内存区。POSIX进程间通信(IPC)包括Posix消息队列,Po
2011-10-09 23:55:33 459
原创 Linux GCC内嵌汇编基础知识
在Linux代码中很多地方都使用了这种形式的汇编语言,嵌入汇编程序的格式如下: __asm__ __volatile__ ( asm statements : outputs : inputs : registers-modified );
2011-10-09 23:54:25 532
翻译 内核总结之进程和进程的调度
进程就是资源的集合体,既包括打开的文件,收到的信号,占用的地址空间这些软资源,也包括对cpu,内存的占用这些硬资源。而线程只是代码的一个执行流,与其他线程共享某些资源。 调度算法的设计目标,让cpu上的指令流更有价值,这就需要, 1,调度必须尽可能快的完成,占用尽可能
2011-10-09 23:52:38 469
转载 Linux的页面回收与反向映射机制
操作系统管理内存中的物理页面,同时也担任着内存分配的职责。应用程序可以通过内存分配函数向操作系统申请物理页面;在使用完这些物理页面之后,应用程序可以通过相应的内存释放函数释放这些物理页面。但是,对于内存中的某些物理页面来说,页面的使用者并不会主动释放它们,如果这些物理页面一直被占
2011-10-09 23:51:38 549
原创 MINI2440i2c驱动学习一
int main(int argc, char** argv){ struct eeprom e; fprintf(stderr, "Open /dev/i2c/0 with 8bit mode\n"); die_if(eeprom_open("/dev/i2c/
2011-10-09 23:49:10 861
原创 MINI2440i2c驱动学习二
在测试函数中有个函数eeprom_open("/dev/i2c/0", 0x50, EEPROM_TYPE_8BIT_ADDR, &e);其中里面的调用如下int eeprom_open(char *dev_fqn, int addr, int type, struct ee
2011-10-09 23:47:56 796
原创 1. I2C 协议
r = ioctl(fd, I2C_FUNCS, &funcs)是查看其功能,它最终调用algo通信方式中的functionality()函数r = ioctl(fd, I2C_SLAVE, addr)这个函数设置要通信的从设备地址,如下:case I2C_SLAVE:
2011-10-09 23:46:55 1831
原创 Linux I2C
1. I2C 协议 1.1 I 2C总线工作原理 I2C总线是由数据线SDA和时钟SCL构成的串行总线,各种被控制器件均并联在这条总线上,每个器件都有一个唯一的地址识别,可以作为总线上的一个发送器件或接收器件(具体由器件的功能决定)1.2 I2C
2011-10-09 23:46:11 549
原创 函数分析
static struct i2c_dev *get_free_i2c_dev(struct i2c_adapter *adap)//传入参数是一个适配器指针,返回一个i2c_dev其adap成员指向传入的适配器指针{ struct i2c_dev *i2c_dev
2011-10-09 23:44:05 756
原创 i2总线驱动分析
static int __init i2c_adap_s3c_init(void){ return platform_driver_register(&s3c24xx_i2c_driver);}subsys_initcall(i2c_adap_s3c_init);
2011-10-09 23:42:48 636
原创 linuxi2c-core.c
linuxi2c-core.c 文件实现了I2C核心的功能i2c/bus/接口。这个.c文件函数非常多,其中的函数都是通过EXPORT_SYMBOL()可以让其他文件调用。以后的学习中慢慢积累研究。
2011-10-09 23:41:47 518
原创 linuxDM900网卡设备驱动
#include #include #include #include #include #include #include #include #include #include #include #include #inclu
2011-10-09 23:40:34 836
原创 DM9000网卡介绍
1、总体介绍 DM9000是一款完全集成的和符合成本效益的,单芯片快速以太网MAC控制器。它有一个一般处理接口,一个10/100M自适应的PHY和4K DWORD值的SRAM 。它的目的是在低功耗和高性能进程的3.3V与5V的支持宽容。 DM9000还提供了介质无
2011-10-09 23:39:37 2743
原创 SD卡驱动之中断函数
static irqreturn_t s3cmci_irq(int irq, void *dev_id){ struct s3cmci_host *host = dev_id; struct mmc_command *cmd;//SDI命令状态寄存器,数据状态寄存
2011-10-09 23:38:35 1210
原创 s3cmci_probe
static int __devinit s3cmci_probe(struct platform_device *pdev){ struct s3cmci_host *host; struct mmc_host *mmc; int ret; int is24
2011-10-09 23:37:42 715
原创 关于mini2440GPIO的描述
S3C2410 GPIO Control ====================Introduction------------ The s3c2410 kernel provides an interface to configure and ma
2011-10-09 23:36:51 517
原创 USB设备主机侧驱动
从主机侧的观点去看,在linux驱动中,USB驱动处于最底层的是USB主机控制器硬件,在其上运行的是USB主机控制器驱动,主机控制器之上为usb核心层,再上层为usb设备驱动层。因此在主机侧的层次结构中,要实现的usb驱动包括两类:usb主机控制器驱动和usb设备驱动。前者控制插
2011-10-09 23:35:40 765
原创 USB UDC与gadget驱动
这里的USB设备控制器(UDC)驱动指作为其他usb主机控制器外设的usb硬件设备上底层硬件控制器的驱动,该硬件和驱动负责将一个usb设备依附于一个usb主机控制器上。在usb设备控制器于gadget驱动中,我们主要关心几个核心的数据结构。描述一个usb设备控制器的usb_g
2011-10-09 23:34:42 6004
原创 linuxmini2440I2S驱动
要写I2S驱动,对于硬件也要了解。I2S是一种常用的数字音频接口。总线值处理音频数据,像编码和控制这样的其他信号被转移分开。I2S接口传输或者接受声音数据来自于外部立体声音频编码器。用于传输和接受数据,包括两个32x16FIFO数据结构。总线特征:2通道I2S总线用于DM
2011-10-09 23:33:37 1113
原创 linuxUDA134X ASoc板驱动
static int __init s3c24xx_uda134x_init(void){ return platform_driver_register(&s3c24xx_uda134x_driver);}static struct platform_drive
2011-10-09 23:32:30 780
原创 linux framebuffer1
先看看一些比较重要的结构体: struct fb_info { int node; int flags; struct mutex lock; struct fb_var_screeninfo var
2011-10-09 23:31:15 542
原创 Driver Attributes and Device Attributes
Driver Attributes~~~~~~~~~~~~~~~~~struct driver_attribute { struct attribute attr; ssize_t (*show)(struct devic
2011-10-09 23:28:33 1490
原创 linux 鼠标usbmon数据
鼠标按键检测:0:8 0表示状态成功。 8表示主机每隔8ms轮询这个端口002:1 002表示该bus总线分配到的设备地址 1表示这个中断端点号c3960100 70017933 C Ii:1:002:1 0:8 4 = 01000000 按下左键c396010
2011-10-09 23:26:01 808
原创 s3c2440 OHCI驱动的一些函数
q_descr, hcd)) != 0) { dev_err(hcd->self.controller, "request interrupt %d failed\n", irqnum);
2011-10-09 23:25:10 666
原创 USB主机控制器的OHCI寄存器
USB主机控制器的OHCI寄存器可以分为4种:1:控制及状态组2:存储器指针组3:帧控制组4:逻辑根集线器(Root Hub)组控制及状态组:包括HcRevision,HcControl,HcCommandStatus,HcInterruptStatus,
2011-10-09 23:23:48 1167
翻译 USB协议基础及S3C2410 USB控制器
在网上看到的一篇文章。总结的不错一、USB1.1 概述USB 是 Universal Serial Bus 的简称。它是一种可以同时处理计算机与具有 USB 接口的多种外设之间通信的电缆总线。这些连接到计算机上的外设共同分享 USB 的带宽。USB 的分时处理
2011-10-09 23:22:07 783
原创 在主机控制器里,介绍几个重要的结构
在主机控制器里,介绍几个重要的结构:一:ED(endpoint descriptor)总共16字节对齐。先看第一字主要描述了硬件配置信息。[6:0]为设备地址(function address)[10:7]是端点地址(endpoint number)[12
2011-10-09 23:17:55 689
原创 seq_file接口
下面是网上的一个测试程序#include #include #include #include #include MODULE_DESCRIPTION("test proc");MODULE_AUTHOR("root ");MODULE_LICEN
2011-10-08 22:47:57 602
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人