摘要: 在一般的数据结构的书中,树的那章后面,著者一般都会介绍一下哈夫曼(HUFFMAN) 树和哈夫曼编码。哈夫曼编码是哈夫曼树的一个应用。哈夫曼编码应用广泛,如 JPEG中就应用了哈夫曼编码。 首先介绍什么是哈夫曼树。哈夫曼树又称最优二叉树, 是一种带权路径长度最短的二叉树。所谓树的带权路径长度,就是树中所有的叶结点 的权值乘上其到根结点的 路径长度(若根结点为0层,叶结点到根结点的路径长度 为叶结点的... 阅读全文
posted @ 2011-12-23 18:32 Jezze 阅读(150797) 评论(8) 推荐(10) 编辑
摘要: 刚学GDI+画图的时候,画线就是画不出来,代码如下: public Form1(){InitializeComponent();Graphics g = this.CreateGraphics();Pen p = new Pen(Color.Black);g.DrawLine(p, 10, 10, 20, 20);}应改为public Form1(){InitializeComponent()... 阅读全文
posted @ 2011-12-23 18:29 Jezze 阅读(9405) 评论(0) 推荐(1) 编辑
摘要: 1、Thread td = new Thread(new ThreadStart(delegate() { DoSomeThing(参数); })); td.Start(); 2、Thread td = new Thread(new ParameterizedThreadStart(DoSome)); td.Start(参数); 这里DoSome的形式只能为DoSome(object o ); 传... 阅读全文
posted @ 2011-12-23 18:28 Jezze 阅读(1203) 评论(0) 推荐(0) 编辑
摘要: 英制(mil) 公制(mm) 长(L)(mm) 宽(W)(mm) 高(t)(mm) a(mm) b(mm) 功率(W) 0201 0603 0.60±0.05 0.30±0.05 0.23±0.05 0.10±0.05 0.15±0.05 1/20 0402 1005 1.00±0.10 0.50±0.10 0.30±0.10 0.20±0.10 0.25±0.10 1/16 ... 阅读全文
posted @ 2011-12-23 18:26 Jezze 阅读(524) 评论(0) 推荐(0) 编辑
摘要: 阻值 代码 阻值 代码 阻值 代码 阻值 代码 阻值 代码10.0 01X 100 01A 1.00K 01B 10.0K 01C 100K 01D10.2 02X 102 02A 1.02K 02B 10.2K 02C 102K 02D10.5 03X 105 03A 1.05K 03B 10.5K 03C 105K 03D10.7 04X 107 04A 1.07K 04B 10.7K 04C... 阅读全文
posted @ 2011-12-23 18:25 Jezze 阅读(38273) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2011-12-23 18:23 Jezze 阅读(363) 评论(0) 推荐(0) 编辑
摘要: 一、 从printf()开始 从大家都很熟悉的格式化字符串函数开始介绍可变参数函数。 原型:int printf(const char * format, ...); 参数format表示如何来格式字符串的指令,… 表示可选参数,调用时传递给"..."的参数可有可无,根据实际情况而定。 系统提供了vprintf系列格式化字符串的函数,用于编程人员封装自己的I/O函数。 int vprintf / ... 阅读全文
posted @ 2011-12-23 18:22 Jezze 阅读(904) 评论(0) 推荐(0) 编辑
摘要: 前面说到要编写Linux 2.6的驱动,必须建立内核源码树,前面建立的源码树是针对i686平台的,但是我么嵌入式系统用的是arm平台,所以也要建立arm平台的内核源码树。 首先下载与你嵌入式系统平台版本号一致的linux内核,我的版本为2.6.30. 第一步:先解压源代码 tar -jxvf linux-2.6.30.tar.bz2 第二步:进入刚才解压后的目录linux-2.6.30 cd li... 阅读全文
posted @ 2011-12-23 18:20 Jezze 阅读(2026) 评论(0) 推荐(0) 编辑
摘要: 杂项设备(misc device)杂项设备也是在嵌入式系统中用得比较多的一种设备驱动。在 Linux 内核的include\linux目录下有Miscdevice.h文件,要把自己定义的misc device从设备定义在这里。其实是因为这些字符设备不符合预先确定的字符设备范畴,所有这些设备采用主编号10 ,一起归于misc device,其实misc_register就是用主标号10调用regis... 阅读全文
posted @ 2011-12-23 18:20 Jezze 阅读(639) 评论(0) 推荐(0) 编辑
摘要: 刚看 O'REILLY 写的《LINUX 设备驱动程序》时。作者一再强调在编写驱动程序时必须 建立内核树。先前的内核只需要有一套内核头文件就够了,但因为2.6的内核模块吆喝内核源码树中的目标文件连接,通过这种方式,可得到一个更加健壮的模块装载器,但也需要这些目标文件存在于内核目录树中。所谓内核树,我的理解和网上资料说的一致就是内核源码的一种逻辑形式。那怎么建立呢?为此上网“翻云覆雨”起来而结果却是... 阅读全文
posted @ 2011-12-23 18:19 Jezze 阅读(10432) 评论(1) 推荐(1) 编辑
摘要: 首先在PC的linux系统的/opt/EmbedSky/下建立一个文件夹作为共享目录。 #mkdir /opt/EmbedSky/share 然后要在PC上安装NFS服务器: #apt-get install nfs-kernel-server 安装完毕之后要配置共享目录和访问权限: #gedit /etc/exports 然后添加: /opt/EmbedSky/share *(rw,sync,n... 阅读全文
posted @ 2011-12-23 18:18 Jezze 阅读(1524) 评论(0) 推荐(0) 编辑
摘要: main函数也可以带参数。带参数main函数的定义格式如下:void main(int argc, char *argv[]){... ...}argc和argv是main函数的形式参数。这两个形式参数的类型是系统规定的。如果main函数要带参数,就是这两个类型的参数;否则main函数就没有参数。变量名称argc和argv是常规的名称,当然也可以换成其他名称。那么,实际参数是如何传递给main函数... 阅读全文
posted @ 2011-12-23 18:18 Jezze 阅读(1115) 评论(0) 推荐(1) 编辑
摘要: PV原语的含义 P操作和V操作是不可中断的程序段,称为原语。PV原语及信号量的概念都是由荷兰科学家E.W.Dijkstra提出的。信号量sem是一整数,sem大于等于零时代表可供并发进程使用的资源实体数,但sem小于零时则表示正在等待使用临界区的进程数。 P原语操作的动作是: (1)sem减1; (2)若sem减1后仍大于或等于零,(资源充足)则进程继续执行; (3)若sem减1后小于零... 阅读全文
posted @ 2011-12-23 18:17 Jezze 阅读(1129) 评论(0) 推荐(0) 编辑
摘要: 我们在C语言编程中有时会遇到一些参数个数可变的函数,例如printf()函数,其函数原型为: int printf( const char* format, ...); 它除了有一个参数format固定以外,后面跟的参数的个数和类型是可变的(用三个点“…”做参数占位符) 在程序中将用到以下这些宏: void va_start( va_list arg_ptr, prev_param ); type... 阅读全文
posted @ 2011-12-23 18:17 Jezze 阅读(492) 评论(0) 推荐(0) 编辑
摘要: 终端是一种字符型设备,它有多种类型,通常使用tty来简称各种类型的终端设备。tty是Teletype的缩写。Teletype是最早出现的一种终端设备,很象电传打字机(或者说就是),是由Teletype公司生产的。设备名放在特殊文件目录/dev/下,终端特殊设备文件一般有以下几种:1.串行端口终端(/dev/ttySn)串行端口终端(Serial Port Terminal)是使用计算机串行端口连... 阅读全文
posted @ 2011-12-23 18:16 Jezze 阅读(1069) 评论(0) 推荐(0) 编辑
摘要: 简单归纳:fd只是一个整数,在open时产生。起到一个索引的作用,进程通过PCB中的文件描述符表找到该fd所指向的文件指针filp。 文件描述符的操作(如: open)返回的是一个文件描述符,内核会在每个进程空间中维护一个文件描述符表, 所有打开的文件都将通过此表中的文件描述符来引用; 而流(如: fopen)返回的是一个FILE结构指针, FILE结构是包含有文件描述符的,FILE结构函数可以看... 阅读全文
posted @ 2011-12-23 18:15 Jezze 阅读(31292) 评论(3) 推荐(9) 编辑
摘要: 以及上拉输入、下拉输入、浮空输入、模拟输入的区别 最近在看数据手册的时候,发现在Cortex-M3里,对于GPIO的配置种类有8种之多: (1)GPIO_Mode_AIN 模拟输入(2)GPIO_Mode_IN_FLOATING 浮空输入(3)GPIO_Mode_IPD 下拉输入(4)GPIO_Mode_IPU 上拉输入(5)GPIO_Mode_Out_OD 开漏输出(6)GPIO_Mode_Ou... 阅读全文
posted @ 2011-12-23 18:10 Jezze 阅读(16673) 评论(0) 推荐(0) 编辑
摘要: wconfig iwconfig是Linux Wireless Extensions(LWE)的用户层配置工具之一。LWE是Linux下对无线网络配置的工具,包括内核的支持、用户层配置工具和驱动接口的支持三部分。目前很多无线网卡都支持LWE,而且主流的Linux发布版本,比如Redhat Linux、Ubuntu Linux都已经带了这个配置工具。 用法: iwconfig interface [... 阅读全文
posted @ 2011-12-23 18:09 Jezze 阅读(1794) 评论(0) 推荐(0) 编辑
摘要: 在程序中出现栈溢出的情况,就是分配局部变量时因为内存溢出而重启,局部变量分配在栈中,栈区域满了导致溢出,需要修改startup_stm32f10x_hd.s中,或startup_stm32f10x_ld.s,startup_stm32f10x_md.s,具体文件按要看CPU是否是High-density flah,修改Stace_Size来解决。 阅读全文
posted @ 2011-12-23 18:08 Jezze 阅读(3051) 评论(0) 推荐(0) 编辑
摘要: U-Boot常用命令 ?:得到所有命令列表或者列出某个命令的帮助。用法:? [command ...]说明:列出命令的帮助信息,当不带参数时,列出所有命令及简要说明。 help:同? printenv:打印环境变量。用法:printenv [name]说明:name一般是Hiboot环境变量的名字,也可以是用户自定义的变量;当value为空时,删除变量 "name", 否则设置变量"name",且... 阅读全文
posted @ 2011-12-23 18:06 Jezze 阅读(7228) 评论(0) 推荐(0) 编辑