嵌入式
文章平均质量分 74
小狼阳阳阳
天行健,君子以自强不息;地势坤,君子以厚德载物。
展开
-
LDD3读书笔记(第2章 建立和运行模块)
一、内核符号表 内核符号表是linux内核提供给内核代码的一部分引用,所指的“内核代码”包括内核以及驱动程序等运行在内核内存空间的程序,“引用”包括对变量的引用,对函数的引用等。最常见的内核符号引用如printk打印输出。通常内核符号是由一部分内核代码提供给其他内核代码访问其内部数据的接口。在驱动程序中,如果该驱动程序中有被其他内核代码调用的部分,可以用EXPORT_SYMBOL导出原创 2012-09-06 20:34:12 · 489 阅读 · 0 评论 -
LDD3读书笔记(第15章 Linux设备模型)
kobject#include 包含文件中包含了对kobject的定义,以及相关的结构和函数。void kobject_init(struct kobject *kobj);int kobject_set_name(struct kobject *kobj,const char *format,...); kobject的初始化函数。struct kobjec原创 2012-09-14 18:27:58 · 523 阅读 · 0 评论 -
LDD3读书笔记(第16章 USB驱动程序)
本节总结本章中介绍的符号:#include 和USB相关的所有内容所在的头文件。所有的USB设备驱动程序都必须包括该文件。struct usb_driver 描述USB驱动程序的结构体。struct usb_device_id 描述该驱动程序支持的USB设备类型的结构体。int usb_register(struct usb_driver *d);原创 2012-09-14 18:29:07 · 685 阅读 · 0 评论 -
LDD3读书笔记(第17章 PCI设备驱动程序)
#include 这个头文件包含PCI寄存器的符号名称,以及若干厂商和设备ID值。struct pci_dev; 代表内核中PCI设备的结构体。struct pci_driver; 代表PCI驱动程序的结构体。所有的PCI驱动程序必须定义该结构体。struct pci_device_id; 描述该驱动程序所支持的PCI设备类型的结构体。in原创 2012-09-14 18:30:07 · 3199 阅读 · 1 评论 -
USB触摸屏驱动
#include #include #include #include #include #include #include #include #define DRIVER_VERSION "v0.6"#define DRIVER_AUTHOR "Zhang Chunyang"#define DRIVER_DESC "USB Touchscreen原创 2012-10-02 15:51:36 · 6151 阅读 · 1 评论 -
OMAP3 Linux中的中断
内部中断定义在/arch/arm/plat-omap/include/mach/irqs.h中,如:#define INT_34XX_BENCH_MPU_EMUL 3#define INT_34XX_ST_MCBSP2_IRQ 4#define INT_34XX_ST_MCBSP3_IRQ 5#define INT_34XX_SSM_ABORT_IRQ 6#define INT原创 2012-09-20 21:41:03 · 1171 阅读 · 0 评论 -
wifi模块详细说明及linux驱动
wifiwifiwifiwifiwifiwifiwifiwifiwifi原创 2012-09-23 10:57:11 · 564 阅读 · 0 评论 -
有关MAC、PHY和MII
以太网(Ethernet)是一种计算机局域网组网技术,该技术基于IEEE制定的IEEE 802.3标准,它规定了包括物理层的连线、电信号和介质访问层协议的内容。以太网是当前应用最普遍的局域网技术。它很大程度上取代了其他局域网标准,如令牌环、FDDI和ARCNET。历经100M以太网在上世纪末的飞速发展后,目前千兆以太网甚至10G以太网正在国际组织和领导企业的推动下不断拓展应用范围。基于以太网的应用原创 2012-09-23 14:03:14 · 454 阅读 · 0 评论 -
Linux下的IO操作
Linux异步IO Linux中最常用的输入/输出(I/O)模型是同步 I/O。在这个模型中,当请求发出之后,应用程序就会阻塞,直到请求满足为止。这是很好的一种解决方案,因为调用应用程序在等待 I/O 请求完成时不需要使用任何中央处理单元(CPU)。但是在某些情况中,I/O 请求可能需要与其他进程产生交叠。可移植操作系统接口(POSIX)异步 I/O(AIO)应用程序接口(API)就提供了这转载 2013-01-19 19:05:43 · 463 阅读 · 0 评论 -
linux内核主要核心模块
1.进程调度2.内存管理3.IPC4.虚拟文件系统5.网络接口原创 2015-01-27 15:29:18 · 495 阅读 · 0 评论 -
Slab分配机制
http://oss.org.cn/kernel-book/ch06/6.3.3.htmslab分配机制包括:kmalloc、vmalloc、页高速缓存、内存池原创 2015-02-02 14:27:17 · 504 阅读 · 0 评论 -
Linux内存管理之slab机制(初始化)
Linux内存管理之slab机制(初始化)一、内核启动早期初始化 start_kernel()->mm_init()->kmem_cache_init() 执行流程: 1,初始化静态initkmem_list3三链; 2,初始化cache_cache的nodelists字段为1中的三链; 3,根据内存情况初始化每个slab占用的页面转载 2015-02-02 15:22:13 · 690 阅读 · 0 评论 -
Linux Kernel Learning
http://www.360doc.com/content/09/0221/15/36491_2606566.shtmlhttp://blog.csdn.net/pottichu/article/details/4261212http://blog.csdn.net/pottichu/article/details/4261150http://blog.csdn.net/van原创 2015-02-02 18:36:13 · 432 阅读 · 0 评论 -
nfs文件系统的应用
一. Ubuntu系统安装nfs-kernel-server#sudo apt-get install portmap nfs-kernel-server#sudo apt-get install portmap nfs-common二. Ubuntu系统建立共享文件夹#sudo mkdir /home/app#sudo chmod 777 /home/app三. 配置服务原创 2012-10-02 15:48:55 · 453 阅读 · 0 评论 -
LDD3读书笔记(第14章 tty设备驱动)
本节提供了一些本章所讲述概念的参考介绍。它还介绍了tty驱动程序所需要的各个头文件的作用。当tty_driver和tty_device结构中的每一个成员,这里就不再重复了。#include 包含tty_driver结构定义,以及在该结构中一些不同标志位的声明。#include 该头文件包含了tty_struct结构的定义以及许多不同的宏定义,使得对termios结构原创 2012-09-13 22:47:15 · 609 阅读 · 0 评论 -
LDD3读书笔记(第4章 并发与竞态)
#include //定义信号量和其上操作的包含文件. 信号量的定义和初始化(1)静态定义及初始化DECLARE_MUTEX(name);DECLARE_MUTEX_LOCKED(name); (2)动态定义及初始化struct semaphore semvoid init_MUTEX(struct semaphore *sem);void init_MUT原创 2012-09-06 20:48:44 · 327 阅读 · 0 评论 -
LDD3读书笔记(第3章 字符驱动)
#include dev_tdev_t 是用来在内核里代表设备号的类型.int MAJOR(dev_t dev);int MINOR(dev_t dev);从设备编号中抽取主次编号的宏.dev_t MKDEV(unsigned int major, unsigned int minor);从主次编号来建立 dev_t 数据项的宏定义.#include "文件系统"头文件原创 2012-09-06 20:47:02 · 339 阅读 · 0 评论 -
LDD3读书笔记(第5章 内存分配)
#include void *kmalloc(size_t size, int flags);内存分配函数后备高速缓存#include kmem_cache_t *kmem_cache_create(const char *name,size_t size,size_t offset,unsigned long flags,原创 2012-09-09 20:18:25 · 398 阅读 · 0 评论 -
LDD3读书笔记(第6章 内存映射和DMA)
1、介绍性材料#include #include 和内存管理相关的大部分函数和结构, 原型和定义在这些头文件.void *__va(unsigned long physaddr);unsigned long __pa(void *kaddr);在内核逻辑地址和物理地址之间转换的宏定义.PAGE_SIZEPAGE_SHIFT 常量, 给出底层硬件的页的大小(字节)原创 2012-09-10 22:21:34 · 1154 阅读 · 1 评论 -
LDD3读书笔记(第7章 中断处理)
顶半部中断处理#include int request_irq(unsigned int irq,irqreturn_t(*handler)(),unsigned long flags,const char *dev_name,void *dev_id);void free_irq(unsigned int irq,void *dev_id); 上面这些调用用来注册和注销中断原创 2012-09-11 00:24:16 · 585 阅读 · 0 评论 -
LDD3读书笔记(第8章 时间、延迟及延缓操作)
计时#include HZ HZ符号指出每秒钟产生的时钟滴答数。#include volatile unsigned long jiffiesu64 jiffies_64 jiffies_64变量会在每个时钟滴答递增,也就是说,它会在每秒递增HZ次。内核代码大部分情况下使用jiffies,在64位平台上,它和jiffies_64是一样的,而在32位平台上,j原创 2012-09-11 21:48:40 · 453 阅读 · 0 评论 -
LDD3读书笔记(第9章 与硬件通信)
#include void barrier(void) 这个“软件”内存屏障要求编译器考虑执行到该指令时所有的内存易变性。#include void rmb(void);void read_barrier_depends(void);void wmb(void);void mb(void); 硬件内存屏障。要求CPU(和编译器)执行该指令时检查所有必需的原创 2012-09-11 21:50:30 · 941 阅读 · 0 评论 -
LDD3读书笔记(第10章 内核数据类型)
#include typedef u8;typedef u16;typedef u32;typedef u64; 确保是8、16、32和64位的无符号整数值类型。对应的有符号类型同样存在。在用户空间,读者可以使用__u8和__u16等类型。#include PAGE_SIZEPAGE_SHIFT 定义了当前体系结构的每页字节数和页偏移位数(4KB页为原创 2012-09-11 21:51:18 · 459 阅读 · 0 评论 -
LDD3读书笔记(第12章 块设备驱动程序)
#include int register_blkdev(unsigned int major,counst char *name);int unregister_blkdev(unsigned int major,const char *name); register_blkdev用来向内核注册一个块设备驱动程序,还可以获得主设备号。一个驱动程序可以使用unregister_b原创 2012-09-12 22:22:43 · 563 阅读 · 0 评论 -
LDD3读书笔记(第11章 高级字符驱动程序操作)
本章的目的是让读者知道:1.内核与用户空间同步2.如何使进程休眠(并唤醒)3.如何实现非阻塞I/O4.设备可读取或写入时如何通知用户空间#include 这个头文件声明了用于定义ioctl命令的所有的宏。它现在包含在中。_IOC_NRBITS_IOC_TYPEBITS_IOC_SIZEBITS_IOC_DIRBITS ioctl命令的不同位原创 2012-09-06 22:27:46 · 395 阅读 · 0 评论 -
DM9000网卡驱动
#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #i原创 2012-10-02 15:50:34 · 1132 阅读 · 1 评论 -
LDD3读书笔记(第13章 网络设备驱动)
这个小节给出了本章介绍过的概念的快速参考,同时解释了驱动程序应该包含的每个头文件。但是net_device和sk_buff结构的成员不会在这里重复。#include 这个头文件保存有net_device和net_device_stats结构的定义,并包含了网络驱动程序需要的其他几个头文件。struct net_device *alloc_netdev(int sizeof_pr原创 2012-09-13 22:46:13 · 952 阅读 · 0 评论 -
linux驱动知识点总结
1、Makefile2、连接脚本 查看ld工具默认连接脚本:ld -verbose3、ELF格式 常见的elf格式文件: 可重定位的对象文件(Relocatable file) 可执行的对象文件(Executable file) 可被共享的对象文件(Sh原创 2015-09-26 18:03:01 · 497 阅读 · 0 评论