自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(10)
  • 资源 (10)
  • 收藏
  • 关注

原创 mini6410 用fb显示bitmap

1、bitmap的文件格式 bitmap包含了54个字节的文件头。分别是14个字节的文件信息头,和40个字节的位图信息头 bit_lib.h #ifndef __TINY6410_BMP_LIB_H__ #define __TINY6410_BMP_LIB_H__ #include /* bitmap 格式的位图文件会带有 54 字节的信息头,这些信息是固定不变的,可以通过read

2014-12-06 21:10:08 450

原创 mini6410 framebuffer

1、framebuffer linux内核用struct fb_info来描述一个framebuffer,定义在linux/include/fb.h struct fb_info { int node; int flags; struct mutex lock; /* Lock for open/release/ioctl funcs */ struct mutex mm_lock;

2014-12-06 20:23:32 329

原创 mini6410 platform设备驱动

platform设备的思想就是将注册函数在linux/platform_device.h定义了platform_device_register 和 platform_driver 函数 ,使得挂接在该总线上的 设备和驱动由其管理 可以看到在platform.c 中有

2014-12-02 00:38:52 380

原创 mini6410 设备模型三驾马车之bus.device.driver

设备模型是2.6内核引入的特征 一、总线 总线是处理器与设备之间的通道,包括某些嵌入式处理器的外设,内核也可以用虚拟的platform连接他们 /linux/device.h struct bus_type { const char *name; struct bus_attribute *bus_attrs; struct device_attribute *dev_at

2014-12-01 23:42:23 400

原创 mini6410 中断之tasklet和工作队列

中断的底半部和顶半部 tasklet 工作队列 1、中断的底半部和顶半部 中断在执行的过程中是不能阻塞的,所以希望中断执行的越快越好。所以把中断分成了两个部分,分别是顶半部和底半部、其中顶半部就是前面说的中断,其中是一些硬件的处理代码,希望处理的越快越好。而在中断后续的一些处理过程,内核建议把这些放在中断的底半部执行。  可以有三种方法来实现下半部。分别是软中断、ta

2014-11-29 14:37:00 393

原创 mini6410 按键驱动程序

关于按键驱动程序主要由四个方面 1、中断 2、等待队列 3、poll和select 中断 实现中断需要几个步骤 1、注册中断 int request_irq(unsigned int irq, irq_handler_t handler, unsigned long irqflags, const char *devname, void *dev_id)rq 是要申请的硬

2014-11-29 00:19:44 456

原创 mini6410是我LED驱动程序

首先 是一些 写驱动需要包含的头文件

2014-11-25 00:54:34 344

转载 深入理解指针函数

1.指针函数的定义     顾名思义,指针函数即返回指针的函数。其一般定义形式如下:        类型名 *函数名(函数参数表列);     其中,后缀运算符括号“()”表示这是一个函数,其前缀运算符星号“*”表示此函数为指针型函数,其函数值为指针,即它带回来的值的类型为指针,当调用这个函数后,将得到一个“指向返回值为…的指针(地址),“类型名”表示函数返回的指针指向的类型”。

2014-08-16 22:08:04 312

转载 typedef

为复杂的声明定义一个新的简单的别名。方法是:在原来的声明里逐步用别名替换一部 分复杂声明,如此循环,把带变量名的部分留到最后替换,得到的就是原声明的最简化 版。举例:   原声明:void (*b[10]) (void (*)()); 变量名为b,先替换右边部分括号里的,pFunParam为别名一: typedef void (*pFunParam)(); 再替

2014-08-16 20:54:38 242

原创 C专家编程学习笔记

1、一个case语句被执行后,若没有break

2014-08-13 21:53:32 340

GEA1000BASET1197_rev-wp.pdf

GEA1000BASET1197_rev-wp.pdf

2017-08-28

IEEE Standard for Ethernet

Ethernet

2017-08-23

IEEE 802.3

IEEE 802.3

2017-08-23

AN-2036_FAQ_1000BASE-T_SFPs.pdf

AN-2036_FAQ_1000BASE-T_SFPs.pdf

2017-08-22

Realtek_RTL8309E.pdf

Realtek_RTL8309E.pdf

2017-08-22

dell-auto-neg.pdf

dell-auto-neg.pdf

2017-08-22

IEEE Standard for Etherne

IEEE Standard for Ethernet-lite.pdf

2017-08-22

RGMIIv2_0_final_hp.pdf

RGMIIv2_0_final_hp.pdf

2017-08-22

RTL8211FI-CG.pdf

RTL8211FI-CG.pdf

2017-08-22

Energy-Efficient_Ethernet.pdf

Energy-Efficient_Ethernet.pdf

2017-08-22

空空如也

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

TA关注的人

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