2015年1月20日
摘要: 1,python如果import指定文件夹下的文件答:将路径添加到sys.path,然后import,需要解决一个问题,避免由于之前存在一个同名模块导致加载失败[cpp]view plaincopyimportsys;ifnot"/home/a/"insys.path:sys.path.append... 阅读全文
posted @ 2015-01-20 20:32 知了112 阅读(134) 评论(0) 推荐(0) 编辑
摘要: 1,python对字符串加密常见的方法:[python]view plaincopy1.最简单的方法是用base64:importbase64s1=base64.encodestring('helloworld')s2=base64.decodestring(s1)prints1,s2#aGVsbG... 阅读全文
posted @ 2015-01-20 20:31 知了112 阅读(306) 评论(0) 推荐(0) 编辑
摘要: python图像用户编程1,导入模块import Tkinter或者from Tkinter import *2,创建顶层窗口对象top=Tkinter.Tk()3,在顶层窗口对象上创建各个功能模块Tk有两个坐标管理器用来协助将组件放在正确的位置,Packer,另外一个管理器是网格Grid4,将GU... 阅读全文
posted @ 2015-01-20 20:30 知了112 阅读(180) 评论(0) 推荐(0) 编辑
摘要: 1,利用python计算文件crc值[python]view plaincopydeffileCRC32(file,crc32,buf):crc32^=0xfffffffffortmpinbuf:crc32=crc32_table[(crc32^ord(tmp))&0xff]^((crc32>>8)... 阅读全文
posted @ 2015-01-20 20:29 知了112 阅读(197) 评论(0) 推荐(0) 编辑
摘要: 14,python如何创建进程并在父子进程通信示例代码如下:[cpp]view plaincopyimportos,sysprint"I'mgoingtoforknow-thechildwillwritesomethingtoapipe,andtheparentwillreaditback"r,w=... 阅读全文
posted @ 2015-01-20 20:28 知了112 阅读(149) 评论(0) 推荐(0) 编辑
摘要: 11,如何编译编译python脚本为pyc格式[cpp]view plaincopy#!/usr/bin/pythonimportpy_compile;importsys;file=raw_input("enteryourfilename");py_compile.compile(file);sys... 阅读全文
posted @ 2015-01-20 20:27 知了112 阅读(167) 评论(0) 推荐(0) 编辑
摘要: 1,python中if __name__ == "__main__":的作用判断当前的模块是被直接调用还是被直接执行用的,如果当前模块是被调用的,那么if __name__ == "__main__":之后的语句将不会被执行,如果当前的模式是直接被执行的,那么if __name__ == "__ma... 阅读全文
posted @ 2015-01-20 20:26 知了112 阅读(245) 评论(0) 推荐(0) 编辑
摘要: 1、解释型语言:是边读源程序边执行。而编译型语言则是将源代码编译成目标代码后执行。以后在执行时就不需要编译了2, python是区分大小写的,3,python是根据行缩进来区别模块和函数的,所以对代码的风格要求比较高,依赖缩进来区分代码层次,最好使用tab键缩进4,常量名所有字母大写,由下划线来连接... 阅读全文
posted @ 2015-01-20 20:25 知了112 阅读(193) 评论(0) 推荐(0) 编辑
摘要: 一,请求处理块设备的处理函数里没有read write等函数,所有对块设备的请求如读取 写入等都是通过request函数处理的。request函数的原型是void request(request_queue_t *queue);request函数的处理是异步的。每一个设备都有一个请求队列,当请求队列... 阅读全文
posted @ 2015-01-20 20:24 知了112 阅读(551) 评论(0) 推荐(0) 编辑
摘要: 一,中断处理函数中断处理函数运行在中断上下文,不可抢占、调度。中断上下文编程需要注意以下几点: 不能睡眠或调用 schedule 放弃CPU 不能调用任何可能睡眠的函数,例如:获取信号量 不能访问用户空间数据,例如:copy_from_user,因为它不是在进程上下文中执行的。 执行时间尽可能短in... 阅读全文
posted @ 2015-01-20 20:23 知了112 阅读(204) 评论(0) 推荐(0) 编辑
摘要: 1,在/sys/class/目录下创建一个设备节点,比如创建一个class_test_usb的设备节点[cpp]view plaincopystaticstructcalss*test_class;test_class=class_creat(THIS_MODULE,"class_test_usb"... 阅读全文
posted @ 2015-01-20 20:22 知了112 阅读(253) 评论(0) 推荐(0) 编辑
摘要: 一,ioctl使用实例ioctl使用实例驱动程序.h文件 memdev.h[cpp]view plaincopy/*定义幻数*/#defineMEMDEV_IOC_MAGIC'k'/*定义命令*/#defineMEMDEV_IOCPRINT_IO(MEMDEV_IOC_MAGIC,1)#define... 阅读全文
posted @ 2015-01-20 20:21 知了112 阅读(366) 评论(0) 推荐(0) 编辑
摘要: 一,注册字符设备[cpp]view plaincopy#defineGLOBALMEM_MAJOR256#defineGLOBALMEM_SIZE0X1000//4kstaticintchar_major=GLOBALMEM_MAJOR;//主设备号structchartest_dev{struct... 阅读全文
posted @ 2015-01-20 20:20 知了112 阅读(335) 评论(0) 推荐(0) 编辑
摘要: 一,块设备的注册1,linux中默认的块设备的最大主设备号为255,调用register_blkdev(unsigned int major,const char*name)来注册块设备,如果major参数为0的时候那么从系统1到255中选择一个最大的没有使用的号作为当前设备的块设备号,name是在... 阅读全文
posted @ 2015-01-20 20:19 知了112 阅读(534) 评论(0) 推荐(0) 编辑
摘要: 一,主设备号和次设备号代表的含义?linu内核是如果根据主设备号找驱动,次设备号找设备的。答:通常一个主设备号代表一个驱动,比如在block设备中,一个主设备号代表一个emmc设备,不同次设备号代表的是不同的分区Linux内核允许多个驱动共享一个主设备号,但更多的设备都遵循一个驱动对一个主设备号的原... 阅读全文
posted @ 2015-01-20 20:18 知了112 阅读(909) 评论(0) 推荐(0) 编辑
摘要: 1,在/proc文件系统下创建节点的APIhttp://www.cnblogs.com/ziziwu/archive/2011/10/20/2218975.html struct proc_dir_entry *create_proc_entry (const char *name, mode_t ... 阅读全文
posted @ 2015-01-20 20:17 知了112 阅读(1033) 评论(0) 推荐(0) 编辑
摘要: http://www.cnblogs.com/hanyan225/archive/2010/10/28/1863854.html1,概念DMA是一种无须CPU的参与就可以让外设与系统内存之间进行双向数据传输的硬件机制。使用DMA可以是系统CPU从实际的IO数据传输过程中摆脱出来,从而大大提供系统吞吐... 阅读全文
posted @ 2015-01-20 20:16 知了112 阅读(1575) 评论(0) 推荐(0) 编辑
摘要: 1,gendisk结构体在linux内核中,使用gendisk结构体来表示一个实际的磁盘设备的抽象,结构体定义如下所示:[cpp]view plaincopystructgendisk{intmajor;//主设备号intfirst_minor;//次设备号intminors;//最大次设备数,如果... 阅读全文
posted @ 2015-01-20 20:15 知了112 阅读(1104) 评论(0) 推荐(0) 编辑
摘要: 1,区别块设备和字符设备:块设备是系统中能随机访问固定大小的数据片的硬件。,扇区是所有块设备物理上的最小可寻址单位,通常大小为512Byte,块是文件系统的最小寻址单位,大小是扇区的整数倍,同时不能超过一个页的大小~操作块设备的时候需要在内存中有一个对应的缓冲区,用struct buffer_hea... 阅读全文
posted @ 2015-01-20 20:14 知了112 阅读(494) 评论(0) 推荐(0) 编辑
摘要: 一,内核模块的概念经常在内核驱动代码看到类似fs_init()等驱动初始化函数,那么这个和module_init()函数的差别在哪里,宏定义__define_initcall(level,fn)对于内核的初始化很重要,他指示编译器在编译的时候,将一系列初始化函数的起始地址值按照一定的顺序放在一个se... 阅读全文
posted @ 2015-01-20 20:13 知了112 阅读(308) 评论(0) 推荐(0) 编辑