随笔分类 -  Z技术(Linux/Kernel/Driver)

摘要:1、将LOGO图片的大小调整到合适尺寸(480x272)2. 使用GIMP2生成符合Linux要求的PPM图片文件启动GIMP2打开通过ACDSEE调整的图片-->通过菜单 图像模式索引设置图形索引最大颜色数为:2243. 保存为PPM格式4. 同时保存为ASCII数据格式这样,我们就做好了一张满屏... 阅读全文
posted @ 2014-06-22 17:26 Leo.cheng 阅读(728) 评论(0) 推荐(0) 编辑
摘要:1.framebuffer接口层(fbmem.c)功能:给用户提供接口fbmem_init//入口函数/*1.申请主设备号,注册字符设备*/register_chrdev(FB_MAJOR(29),"fb",&fb_fops)/*2.创建一个设备类*/fb_class = class_create(... 阅读全文
posted @ 2014-06-22 17:22 Leo.cheng 阅读(1226) 评论(0) 推荐(0) 编辑
摘要:内核启动流程第二阶段starte_kernel:|rest_init:|kernel_init|do_basic_setup(); // 加载驱动|do_initcalls();|for (fn = __early_initcall_end; fn busybox==>// 注意点: 最好在boo... 阅读全文
posted @ 2014-06-22 15:50 Leo.cheng 阅读(784) 评论(0) 推荐(0) 编辑
摘要:dm9000的驱动分析m9000_initplatform_driver_register(&dm9000_driver);dm9000_probe/*获取平台数据*/struct dm9000_plat_data *pdata = pdev->dev.platform_data;/*表示一个网络设... 阅读全文
posted @ 2014-06-22 15:45 Leo.cheng 阅读(2162) 评论(0) 推荐(0) 编辑
摘要:两个重要的结构体简单介绍*sk_buff如果把网络传输看成是运送货物的话,那么sk_buff就是这个“货物”了,所有经手这个货物的人都要干点什么事儿,要么加个包装,要么印个戳儿等等。收货的时候就要拆掉这些包装,得到我们需要的货物(payload data)。没有货物你还运输什么呢?由此可见sk_bu... 阅读全文
posted @ 2014-06-22 15:44 Leo.cheng 阅读(1257) 评论(0) 推荐(0) 编辑
摘要:1.i2c-dev.c(i2c设备驱动组件层)功能:1)给用户提供接口i2c_dev_init//入口函数/*申请主设备号*/register_chrdev(I2C_MAJOR(89), "i2c", &i2cdev_fops);/*创建一个设备类*/i2c_dev_class = class_cr... 阅读全文
posted @ 2014-06-22 15:43 Leo.cheng 阅读(1777) 评论(0) 推荐(0) 编辑
摘要:触摸屏工作原理触摸屏工作流程@成鹏致远(blogs:http://lcw.cnblogs.com)(email:wwwlllll@126.com)(qq:552158509)From WizNote 阅读全文
posted @ 2014-06-22 15:42 Leo.cheng 阅读(698) 评论(0) 推荐(0) 编辑
摘要:触摸屏驱动的移植流程注意:看框架图1.添加input.c组件Device Drivers--->Input device support--->Generic input layer (needed for keyboard, mouse, ...)2.添加evdev.c组件Device Drive... 阅读全文
posted @ 2014-06-22 15:39 Leo.cheng 阅读(3734) 评论(0) 推荐(0) 编辑
摘要:【1.input子系统框架(drivers\input)】如何得出某个驱动所遵循的框架?1) 通过网络搜索2) 自己想办法跟内核代码!2.1 定位此驱动是属于哪种类型的(触摸屏驱动为字符设备)2.2 搜索register_chrdev得到,input.c2.3 分析input.c文件/*入口函数*/... 阅读全文
posted @ 2014-06-22 15:36 Leo.cheng 阅读(1443) 评论(0) 推荐(1) 编辑
摘要:【平台设备驱动机制的编程流程】【如何将驱动静态的编译进内核镜像】1.添加资源(dev-led.c)1.1:一般来说,系统习惯上将资源放在arch/arm/plat-samsung/目录中cp dev-led.c linux-2.6.35.5/arch/arm/plat-samsung cp led.... 阅读全文
posted @ 2014-06-22 15:34 Leo.cheng 阅读(630) 评论(0) 推荐(0) 编辑
摘要:【1.分层思想】1.1 rtc-dev.c //设备接口层,功能:给用户提供接口subsys_initcall(rtc_init);//module_init(rtc_init)//rtc/class.c/*创建一个设备类*/rtc_class = class_create(THIS_MODULE,... 阅读全文
posted @ 2014-06-22 15:29 Leo.cheng 阅读(1241) 评论(0) 推荐(0) 编辑
摘要:【1:引言: linux字符设备驱动的基本编程流程】1.实现模块加载函数 a.申请主设备号 register_chrdev(major,name,file_operations); b.创建字符设备cdev,注册字符设备 cdev_alloc cdev_init cdev_add c.创建设备文件... 阅读全文
posted @ 2014-06-22 15:17 Leo.cheng 阅读(1969) 评论(0) 推荐(1) 编辑
摘要:【系统环境搭建】1.uboot的命令set serverip 192.168.7.xxset ipaddr 192.168.7.xxxset bootcmd tftp 20800000 zImage\;bootm 20800000 //开发模式set bootcmd nand read 208... 阅读全文
posted @ 2014-06-01 00:23 Leo.cheng 阅读(842) 评论(0) 推荐(0) 编辑
摘要:【VI使用】1、在命令行模式:在vi编辑器中将光标放在函数上,shift + k可直接man手册,退出man手册直接按两次q:直接gg=G可以使文件自动对齐:gg定位到文件的开头,G定位到文件的末尾:M定位到文件的中间,H最上面一行,L屏幕最下面一行,G文章末尾一行:shift+ctrl+n打开一个... 阅读全文
posted @ 2014-05-31 23:39 Leo.cheng 阅读(426) 评论(0) 推荐(0) 编辑
摘要:主题:Linux内存管理中的分段和分页技术 回顾一下历史,在早期的计算机中,程序是直接运行在物理内存上的。换句话说,就是程序在运行的过程中访问的都是物理地址。 如果这个系统只运行一个程序,那么只要这个程序所需的内存不要超过该机器的物理内存就不会出现问题,我们也就不需要考虑内存管理这个麻烦事了... 阅读全文
posted @ 2014-01-04 23:31 Leo.cheng 阅读(6217) 评论(1) 推荐(0) 编辑
摘要:一般我们在Linux下执行某些外部程序的时候可能会提示找不到共享库的错误, 比如:lcw: error while loading shared libraries: libjson.so.0: cannot open shared object file: No such file or di... 阅读全文
posted @ 2013-09-26 17:49 Leo.cheng 阅读(3224) 评论(0) 推荐(0) 编辑
摘要:Linux内核启动流程 arch/arm/kernel/head-armv.S 该文件是内核最先执行的一个文件,包括内核入口ENTRY(stext)到start_kernel间的初始化代码, 主要作用是检查CPU ID, Architecture Type,初始化BSS等操作,并跳到start... 阅读全文
posted @ 2013-09-25 00:39 Leo.cheng 阅读(15451) 评论(0) 推荐(2) 编辑
摘要:MTD介绍 MTD,Memory Technology Device即内存技术设备 字符设备和块设备的区别在于前者只能被顺序读写,后者可以随机访问;同时,两者读写数据的基本单元不同。 字符设备,以字节为基本单位,在Linux中,字符设备实现的比较简单,不需要缓冲区即可直接读写,内核例程和用户态API一一对应,用户层的Read函数直接对应了内核中的Read例程,这种映射关系由字符设备的file_operations维护。 块设备,则以块为单位接受输入和返回输出。对这种设备的读写是按块进行的,其接口相对于字符设备复杂,read、write API没有直接到块设备层,而是直接到文件系统层,然... 阅读全文
posted @ 2013-09-23 20:21 Leo.cheng 阅读(4163) 评论(0) 推荐(0) 编辑
摘要:Linux网络设备结构 首先看一下Linux网络设备的结构,如下图: 网络协议接口层向网络层协议提供提供统一的数据包收发接口,不论上层协议为ARP还是IP,都通过dev_queue_xmit()函数发送数据,并通过netif_rx()函数接受数据。这一层的存在使得上层协议独立于具体的设备。网络设备接口层向协议接口层提供统一的用于描述具体网络设备属性和操作的结构体net_device,该结构体是设备驱动功能层中各函数的容器。实际上,网络设备接口层从宏观上规划了具体操作硬件的设备驱动功能层的结构。设备驱动功能层各函数是网络设备接口层net_device数据结构的具体成员,是驱使网络设备硬件完成.. 阅读全文
posted @ 2013-09-06 18:42 Leo.cheng 阅读(1890) 评论(0) 推荐(0) 编辑
摘要:背景知识在多媒体的推动下,彩色LCD越来越多地应用到嵌入式系统中,PDA和手机等大多都采用LCD作为显示器材,因此LCD的应用很有实际意义!LCD工作的硬件需求:要使一块LCD正常的显示文字或图像,不仅需要LCD驱动器,而且还需要相应的LCD控制器。在通常情况下,生产厂商把LCD驱动器会以COF/COG的形式与LCD玻璃基板制作在一起,而LCD控制器则是由外部的电路来实现,现在很多的MCU内部都集成了LCD控制器,如S3C2410/2440等。如S3C2410通过LCD控制器就可以产生LCD驱动器所需要的控制信号来控制STN/TFT屏了。S3C2440内部LCD控制器结构图 根据数据手册... 阅读全文
posted @ 2013-09-05 23:46 Leo.cheng 阅读(2195) 评论(0) 推荐(1) 编辑