摘要:
当逻辑门输出端是低电 平时,灌入逻辑门的电流称为灌电流,灌电流越大,输出端的低电平就越高。由三极管输出特性曲线也可以看出,灌电流越大,饱和压降越大,低电平越大。逻辑门 的低电平是有一定限制的,它有一个最大值UOLMAX。在逻辑门工作时,不允许超过这个数值,TTL逻辑门的规范规定UOLMAX ≤0.4~0.5V。当 逻辑门输出端是高电平时,逻辑门输出端的电流是从逻辑门中流出,这个电流称为拉电流。拉电流越大,输出端的高电平就越低。这是因为输出级三极管是有内阻 的,内阻上的电压降会使输出电压下降。拉电流越大,高电平越低。逻辑门的高电平是有一定限制的,它有一个最小值UOHMIN。在逻辑门工作时,不允许 阅读全文
posted @ 2011-12-07 02:34
风行雪舞
阅读(1572)
评论(0)
推荐(0)
摘要:
关于驱动能力的基本问题我一直都不明白驱动是什么.一般的说驱动一个负载,我想只要你的电压达到了一个阈值,那么就可以驱动这个负载啊,为什么有时候又说驱动能力不够了? 为什么说一个没有输出缓冲的op是驱动不了小电阻和大电容负载的了?我直接在这个op后面接个大电容或者一个小电阻负载有什么影响了?当我用运放驱动一个 大的mos管的时候为什么要级连几个反向器了,我直接把运放的输出接在这个大mos管上面不行吗?-----------------------------------楼主这个问题提得好,我以我自己的理解来试图做个解答。首先,所谓的驱动能力,指的是输出电流的能力。比方说,某型单片机通用IO口在高电 阅读全文
posted @ 2011-12-07 02:34
风行雪舞
阅读(1564)
评论(0)
推荐(0)
摘要:
(一)上拉电阻: 1、当TTL电路驱动COMS电路时,如果TTL电路输出的高电平低于COMS电路的最低高电平 (一般为3.5V),这时就需要在TTL的输出端接上拉电阻,以提高输出高电平的值。 2、OC门电路必须加上拉电阻,才能使用。 3、为加大输出引脚的驱动能力,有的单片机管脚上也常使用上拉电阻。 4、在COMS芯片上,为了防止静电造成损坏,不用的管脚不能悬空,一般接上拉电阻产生降低输入阻抗,提供泄荷通路。同時管脚悬空就比较容易接受外界的电磁干扰(MOS器件为高输入阻抗,极容易引入外界干扰)。 5、芯片的管脚加上拉电阻来提高输出电平,从而提高芯片输入信号的噪声容限增强抗干扰能力。 6、提高总线 阅读全文
posted @ 2011-12-07 02:32
风行雪舞
阅读(1075)
评论(0)
推荐(0)
摘要:
在 PCB 图中放置汉字或图形的方法:A、文字——> 图片——> PCB 图——> 复制到自己作品中B、图片——> PCB 图——> 复制到自己作品中1、首先准备好“BMP”格式的图片,在图片中依靠颜色分辨图层,所以最好准备“单色黑白”图。在绘图软件中“另存为”按如下设置:得到“BMP 单色”图片2、使用“BMP2PCB”工具软件将图片转换成 阅读全文
posted @ 2011-12-07 02:31
风行雪舞
阅读(475)
评论(0)
推荐(0)
摘要:
1、data区空间小,所以只有频繁用到或对运算速度要求很高的变量才放到data区内,比如for循环中的计数值。2、data区内最好放局部变量。因为局部变量的空间是可以覆盖的(某个函数的局部变量空间在退出该函数是就释放,由别的函数的局部变量覆盖),可以提高内存利用率。当然静态局部变量除外,其内存使用方式与全局变量相同;3、确保你的程序中没有未调用的函数。在Keil C里遇到未调用函数,编译器就将其认为可能是中断函数。函数里用的局部变量的空间是不释放,也就是同全局变量一样处理。这一点Keil C做得很愚蠢,但也没办法。4、程序中遇到的逻辑标志变量可以定义到bdata中,可以大大降低内存占用空间。在 阅读全文
posted @ 2011-12-07 02:29
风行雪舞
阅读(2729)
评论(0)
推荐(0)
摘要:
转抄网上的一个帖子: 1.不要看到别人的回复,第一句话就说:给个代码吧!你应该想想为什么。当你自己想出来再参考别人的提示,你就知道自己和别人思路的差异。 2.初学者请不要看太多的书那会误人子弟的。先找一本好书系统的学习。很多人用了很久都是只对部分功能熟悉而已,不系统还是不够的。 3.看帮助。不要因为很难,而自己又是初学者所以就不看;帮助永远是最好的参考手册,虽然帮助的文字有时候很难看懂,或不够直观。 4.不要被一些专用词汇所迷惑;最根本的是先了解最基础知识。 5.不要放过任何一个看上去很简单的小问题--他们往往并不那么简单,或者可以引伸出很多知识点;不会举一反三你就永远学不会。 6... 阅读全文
posted @ 2011-12-07 02:28
风行雪舞
阅读(231)
评论(0)
推荐(0)
摘要:
经过多天的尝试,终于整理修改出适用与WIN764位的usbasp驱动,这下可以给64位win7的电子爱好者带来福音了!安装包中包含已经带有数字证书的64位驱动,32位也可用哦,其中有我整理的简单说明,大家一看便知!驱动安装成功后,使用AVRflghter下载程序,将安装包中的libusb0.dll和libusb0.sys复制到AVR_fighter目录下覆盖原文件即可!网盘下载 阅读全文
posted @ 2011-12-07 02:12
风行雪舞
阅读(2545)
评论(0)
推荐(0)
摘要:
要成功,就马上准备有所付出吧!这就是每天你应该养成的习惯。 1、不说“不可能”; 2、凡事第一反应: 找方法,不找借口; 3、遇到挫折对自己说声:太好了,机会来了! 4、不说消极的话,不落入消极的情绪,一旦发生立即正面处理; 5、凡事先订立目标; 6、行动前,预先做计划; 7、工作时间,每一分、每一秒做有利于生产的事情; 8、随时用零碎的时间做零碎的事情; 9、守时; 10、写点日记,不要太依靠记忆; 11、随时记录想到的灵感; 12、把重要的观念、方法写下来,随时提示自己; 13、走路比平时快30%,肢体语言健康有力,不懒散、萎靡; 1... 阅读全文
posted @ 2011-12-07 02:11
风行雪舞
阅读(198)
评论(0)
推荐(0)
摘要:
层数越多,就可以把线间距布得越大,使路径选择更容易,而且减少了串扰问题的风险。遗憾的是,多层印刷电路板的费用与层的数字和表面面积的乘积成正 比。使用层数越多,费用也就越高。 如果层数减少,必须使用更小的走线间距,那同样也将增加额外的费用。不仅如此,对于正好足够的走线间距,所冒的串扰风险太大。 决定一个板子需要的最少层数,靠的是经验和猜测相结合。问题的核心是:在一个确定大小的线路板上,使用M层,布通N个连接,估算所需要的走线间距,知道了走线间距,就能知道板子费用,而且同时可以给出串扰模型。走线间距由线路密度决定。关于线路密度,有个很有用的模型,称为RENT准则,是以推广它的IBM工程师的名字命名 阅读全文
posted @ 2011-12-07 02:11
风行雪舞
阅读(398)
评论(0)
推荐(0)
摘要:
布线时我们往往需要对一些信号线做特别的走线处理,这样需要边布线边对照原理图,在protel99中那是一个很痛苦的事,在Altium Designer中这种情况将变很简单。 硬件要求,笔记本+外接显示器,或者具有双显示输出的台式机 + 双显示器。 设置步骤: 1、在显卡属性中把windows桌面扩展到第二显示器上。如果你的笔记本有显示器管理程序那就更方便。 2、打开Altium Designer。把PCB或者原理图标签拖动到第二显示器释放鼠标。 双屏显示后情形 双屏显示实拍 阅读全文
posted @ 2011-12-07 02:08
风行雪舞
阅读(1737)
评论(0)
推荐(0)
摘要:
一、如何将一个原理图中的一部分加到另一张原理图上? 答:利用块拷贝。首先将要拷贝的原理图的那部分做成块,用其他文件名存储,然后调入目标原理图利用块读命令。 二、为何最后生成的制版图与原理图不相符,有一些网络没有连上? 答:这种情况是很容易发生的,确实原理图上很明显是连上的,最后形成的制版图也与原理图生成的网络表对照过的,没有发现为连上的网络。这种问题出现在原理图上,原理图看上去是连上的,由于画线不符和规范,导致表中他们并未连上,下面是连线属于不规范的连线: c 超过元器件的断点连线; c 连线的两部分有重复; c 在原理图连线时,应尽量做到: 1 在元件端点处连线; 2 元器件连线尽量一线连通 阅读全文
posted @ 2011-12-07 02:08
风行雪舞
阅读(635)
评论(0)
推荐(0)
摘要:
一、准备工作 新建一个DDB文件,再新建相关的原理图文件, 并做好相关准备设计PCB的准备工作,这个相信想画四层板的朋友都会, 不用我多讲了。二、新建文件 新建一个PCB文件, 在KeepOutLayer层画出PCB的外框, 如下图,用过Protel的朋友们应该都会。 三、设置板层 在PCB界面中点击主菜单Design 再点击Layer Stack Manager 如图: 点击后弹出下面的层管理器对话框, 因为在Protel中默认是双面板,所以,我们看到的布线层只有两层。 现在我们来添加层,先单击左边的TopLayer, 再单击层管理器右上角的Add Plane按钮,添加内电... 阅读全文
posted @ 2011-12-07 02:07
风行雪舞
阅读(955)
评论(0)
推荐(0)
摘要:
在设计多层PCB电路板之前,设计者需要首先根据电路的规模、电路板的尺寸和电磁兼容(EMC) 的要求来确定所采用的电路板结构,也就是决定采用4层,6层,还是更多层数的电路板。确定层数之后,再确定内电层的放置位置以及如何在这些层上分布不同的 信号。这就是多层PCB层叠结构的选择问题。层叠结构是影响PCB板EMC性能的一个重要因素,也是抑制电磁干扰的一个重要手段。本节将介绍多层PCB板 层叠结构的相关内容。 11.1.1 层数的选择和叠加原则 确定多层PCB板的层叠结构需要考虑较多的因素。从布线方面来说,层数越多越利于布线,但是制板成本和难度也会随之增加。对于生产厂家来说,层叠结构对称与否是... 阅读全文
posted @ 2011-12-07 02:06
风行雪舞
阅读(764)
评论(0)
推荐(0)
摘要:
11.2.1 元器件布局的一般原则 设计人员在电路板布局过程中需要遵循的一般原则如下。 (1)元器件最好单面放置。如果需要双面放置元器件,在底层(Bottom Layer)放置插针式元器件,就有可能造成电路板不易安放,也不利于焊接,所以在底层(Bottom Layer)最好只放置贴片元器件,类似常见的计算机显卡PCB板上的元器件布置方法。单面放置时只需在电路板的一个面上做丝印层,便于降低成本。 (2)合理安排接口元器件的位置和方向。一般来说,作为电路板和外界(电源、信号线)连接的连接器元器件,通常布置在电路板的边缘,如串口和并口。如果放 置在电路板的中央,显然不利于接线,也有可能因... 阅读全文
posted @ 2011-12-07 02:05
风行雪舞
阅读(1440)
评论(0)
推荐(1)
摘要:
多层板相对于普通双层板和单层板的一个非常重要的优势就是信号线和电源可以分布在不同的板层上, 提高信号的隔离程度和抗干扰性能。内电层为一铜膜层,该铜膜被分割为几个相互隔离的区域,每个区域的铜膜通过过孔与特定的电源或地线相连,从而简化电源和 地网络的走线,同时可以有效减小电源内阻。 11.4.1 内电层设计相关设置 内电层通常为整片铜膜,与该铜膜具有相同网络名称的焊盘在通过内电层的时候系统会自动将其与铜膜连接起来。焊盘/过孔与内电层的连接形式以及铜膜和其他不 属于该网络的焊盘的安全间距都可以在Power Plane Clearance选项中设置。选择【Design】/【Rules…】命令,... 阅读全文
posted @ 2011-12-07 02:04
风行雪舞
阅读(1753)
评论(0)
推荐(0)
摘要:
中间层,就是在PCB板顶层和底层之间的层,其结构参见图11-1,读者可以参考图中的标注进行 理解。那中间层在制作过程中是如何实现的呢?简单地说多层板就是将多个单层板和双层板压制而成,中间层就是原先单层板和双层板的顶层或底层。在PCB板的 制作过程中,首先需要在一块基底材料(一般采用合成树脂材料)的两面敷上铜膜,然后通过光绘等工艺将图纸中的导线连接关系转换到印制板的板材上(对图纸中 的印制导线、焊盘和过孔覆膜加以保护,防止这些部分的铜膜在接下来的腐蚀工艺中被腐蚀),再通过化学腐蚀的方式(以FeCl3或H2O2为主要成分的腐蚀 液)将没有覆膜保护部分的铜膜腐蚀掉,最后完成钻孔,印制丝印层等后期处理 阅读全文
posted @ 2011-12-07 02:04
风行雪舞
阅读(698)
评论(0)
推荐(0)
摘要:
在本章及前面几章的介绍中,我们已经强调了一些关于PCB设计所需要遵循的原则,在这里我们将这些原则做一汇总,以供读者在设计时参考,也可以作为设计完成后检查时参考的依据。 1.PCB元器件库的要求 (1)PCB板上所使用的元器件的封装必须正确,包括元器件引脚的大小尺寸、引脚的间距、引脚的编号、边框的大小和方向表示等。 (2)极性元器件(电解电容、二极管、三极管等)正负极或引脚编号应该在PCB元器件库中和PCB板上标出。 (3)PCB库中元器件的引脚编号和原理图元器件的引脚编号应当一致,例如在前面章节中介绍了二极管PCB库元器件中的引脚编号和原理图库中引脚编号不一致的问题。 (4)需要使用散热... 阅读全文
posted @ 2011-12-07 02:03
风行雪舞
阅读(381)
评论(0)
推荐(0)
摘要:
PROTEL99的电性图层分为两种,打开一个PCB设计文档按,快捷键L,出现图层设置窗口。左边的一种(SIGNAL LAYER)为正片层,包括TOP LAYER、BOTTOM LAYER和MIDLAYER,中间的一种(INTERNAL PLANES)为负片层,即INTERNAL LAYER。这两种图层有着完全不同的性质和使用方法。正片层一般用于走纯线路,包括外层 和内层线路。负片层则多用来做地层和电源层。因为在多层板中的地层和电源层一般都是用整片的铜皮来作为线路(或做为几个较大块的分割区域),如果用 MIDLAYER即正片层来做的画则必须用铺铜的方式来实现,这样将使整个设计数据量非常大,不利于 阅读全文
posted @ 2011-12-07 02:02
风行雪舞
阅读(706)
评论(0)
推荐(0)
摘要:
作为电子工程师,在产品的开发调试过程中,难免会遇到形形色色的问题。有些问题也常常让我们吃不下饭睡不好觉,那种感觉叫纠缠不清(谁要咱是个负责任的工 程师)。但是随着经验的积累,我们在面对每一个疑难杂症的时候,脑子却越发的清醒,也能够更加从容的面对它们。可不是,傻瓜才会在做梦的时候再遇见0和1 这两位帅哥美女呢。 特权同学是个喜欢总结、擅于积累的人,好记性不如烂笔头,在解决各种问题后总是要用笔或键盘记录一些东西。不得不承认,人脑的容量是有限的,很多时候我们 是记着这个忘了那个。甚至于特权同学也常常回头翻看过去的博文,查找新问题可能的蛛丝马迹。对于开发调试过程中的一些雕虫小技不是本文的重点,这... 阅读全文
posted @ 2011-12-07 02:02
风行雪舞
阅读(160)
评论(0)
推荐(0)
摘要:
# uname -a # 查看内核/操作系统/CPU信息 # head -n 1 /etc/issue # 查看操作系统版本 # cat /proc/cpuinfo # 查看CPU信息 # hostname # 查看计算机名 # lspci -tv # 列出所有PCI设备 # lsusb -tv # 列出所有USB设备 # lsmod # 列出加载的内核模块# env # 查看环境变量资源# free -m # 查看内存使用量和交换区使用量 # df -h # 查看各分区使用情况 # du -sh <目录名> # 查看指定目录的大小 # grep MemTotal /proc/me 阅读全文
posted @ 2011-12-07 02:01
风行雪舞
阅读(201)
评论(0)
推荐(0)
摘要:
vi/vim 中可以使用 :s 命令来替换字符串。以前只会使用一种格式来全文替换,今天发现该命令有很多种写法(vi 真是强大啊,还有很多需要学习),记录几种在此,方便以后查询。 :s/vivian/sky/ 替换当前行第一个 vivian 为 sky :s/vivian/sky/g 替换当前行所有 vivian 为 sky :n,$s/vivian/sky/ 替换第 n 行开始到最后一行中每一行的第一个 vivian 为 sky :n,$s/vivian/sky/g 替换第 n 行开始到最后一行中每一行所有 vivian 为 sky n 为数字,若 n 为 .,表示从当前行开始到最后... 阅读全文
posted @ 2011-12-07 02:00
风行雪舞
阅读(279)
评论(0)
推荐(0)
摘要:
相信各位VPSer 在使用VPS时会 经常在不同VPS间互相备份数据或者转移数据,大部分情况下VPS上都已经安装了Nginx或者类似的web server,直接将要传输的文件放到web server的目录,然后在目标机器上执行:wget http://www.vpser.net/testfile.zip 就行了。当VPS上没有安装web server和ftp server的时候或感觉上面的方法比较麻烦,那么用scp命令 就会排上用场。一、scp是什么?scp是secure copy的简写,用于在Linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器,而 阅读全文
posted @ 2011-12-07 02:00
风行雪舞
阅读(234)
评论(0)
推荐(0)
摘要:
这里假设Fedora 12/13/14业已安装完成,并能联入网络,那么接下来的基础办公和编程环境的配置过程可以走下面这个路线:1、配置sudo file;首先,打开终端,获得root环境:su - ,并输入root帐户密码。然后: visudo ,在root ALL=(ALL) ALL这一行下面空白行处按“A”键进入插入状态,插入一行和上面一行相似的行,只是root改为要加入sudo组的用户名,如我的:然后,按“ESC”键,再按“:”键,即冒号键,再输入“wq”,作用是write and qiut。完成后执行“exit”命令退出root环境,再执行: sudo whoami ,输入密码后如果效 阅读全文
posted @ 2011-12-07 01:59
风行雪舞
阅读(632)
评论(0)
推荐(0)
摘要:
用Java写的一个记事本的小程序,实现了新建,打开,另存为,删除,复制,剪切,粘贴,查找和替换一些菜单功能,先看效果图吧~ 打开文本文件下面贴上完整代码,代码里面有详细注释 1 import java.awt.FileDialog; 2 import java.awt.GridLayout; 3 import java.awt.Toolkit; 4 import java.awt.datatransfer.Clipboard; 5 import java.awt.datatransfer.DataFlavor; 6 import java.awt.datatransfer.Stri... 阅读全文
posted @ 2011-12-07 01:57
风行雪舞
阅读(502)
评论(0)
推荐(0)
摘要:
串口转USB线在linux下使用 首先把usb转串口线插上然后用dmesg | grep usb查找如果看到: “drivers/usb/serial/usb-serial.c: USB Serial support registered for Generic” 就说明设备已被识别,然后往下看 drivers/usb/serial/usb-serial.c: USB Serial support registered for PL-2303 usb 2-2: PL-2303 converter now attached to ttyUSB0 (or usb/tts/0 for devfs) 阅读全文
posted @ 2011-12-07 01:16
风行雪舞
阅读(1578)
评论(0)
推荐(0)
摘要:
这两天调试了AT91RM9200+pcf8563在linux2.6.20下的驱动,记录一下我的调试过程以及调试心得,呵呵 在linux2.6.20/drivers/rtc目录下面已经有了pcf8563的驱动程序,通过make menuconfig配置一下就可以了。 问题出来了“This chip cannot be reliably autodetected”这是源码中的注释,不能自动检测,实际上确实如此,怎么解决这个问题呢?google..... 搜索很久终于看到有个牛人的解决方法: static unsigned short normal_i2c[] = { I2C_CLIENT_END 阅读全文
posted @ 2011-12-07 01:10
风行雪舞
阅读(676)
评论(0)
推荐(0)
摘要:
前几天成功地把Berkeley DB移植到uClinux上,虽然可以正常工作了,但是文件还是太大了些。今天来试一个稍微小一点的,它叫SQLite。 SQLite实现了大部分SQL92标准的SQL语句,同时支持ACID。还有其它许多特性这里不做深究,因为这在嵌入式领域来说应该是够用了。Hily JiangEmail&Gtalk: hilyjiang at GmailBlog: http://hily.me/blog/下载:下载页面:http://www.sqlite.org/download.html我使用的还是当前最新版本:sqlite-3.3.7.tar.gz(写完的时候已经更新出3 阅读全文
posted @ 2011-12-07 01:10
风行雪舞
阅读(315)
评论(0)
推荐(0)
摘要:
文件:sqlite笔记和例子.rar大小:5KB下载:下载1.============================================交叉编译sqlite首先备份configure文件cp configure configure.old1).修改configure文件,主要是出错了的地方(可以看config.log文件查找到第几行对应删除即可)./configure --host=arm-linux --disable-tcl --prefix=/usr/local/arm/3.3.2/arm-linux2).修改Makefile #BCC = arm-linux-gcc -g 阅读全文
posted @ 2011-12-07 01:09
风行雪舞
阅读(401)
评论(0)
推荐(0)
摘要:
下文介绍的内容都是基于 Linux RedHat 9.0平台的。一、PC机编译安装请阅读在安装包里的 INSTALL文件。或者使用PEAR installer with "pear install sqlite"。SQLite已经内置了,你不需要安装任何附加的软件(additional software)。Windows users可以下载SQLite扩展DLL(php_sqlite.dl)。这里简单介绍一下:假设你得到的是源代码sqlite-3.3.6.tar.gz,这里将告诉你怎么编译它。解压sqlite-3.3.6.tar.gz到 /home目录下For exampl 阅读全文
posted @ 2011-12-07 01:08
风行雪舞
阅读(2462)
评论(0)
推荐(0)
摘要:
SQLite实现了大部分SQL92标准的SQL语句,同时支持ACID。还有其它许多特性这里不做深究,因为这在嵌入式领域来说应该是够用了。下载:下载页面:http://www.sqlite.org/download.html我使用的还是当前最新版本:sqlite-3.3.7.tar.gz(写完的时候已经更新出3.3.8版本了,真快啊……)安装:时间不多,简单介绍安装过程:解压sqlite到uclinux-dist/user/sqlite/============ 对uClinux的修改 ============1. 下载sqlite,解压到uclinux-dist/user/下2. 编辑ucli 阅读全文
posted @ 2011-12-07 01:07
风行雪舞
阅读(352)
评论(0)
推荐(0)
摘要:
写在前面:出于项目的需要,最近打算对SQLite的内核进行一个完整的剖析,在此希望和对SQLite有兴趣的一起交流。我知道,这是一个漫长的过程,就像曾经去读Linux内核一样,这个过程也将是辛苦的,但我相信结果一定是美好的... ...接下来是第一章。1、SQLite介绍自几十年前出现的商业应用程序以来,数据库就成为软件应用程序的主要组成部分。正与数据库管理系统非常关键一样,它们也变得非常庞大,并占用了相当多的系 统资源,增加了管理的复杂性。随着软件应用程序逐渐模块模块化,一种新型数据库会比大型复杂的传统数据库管理系统更适应。嵌入式数据库直接在应用程序进程 中运行,提供了零配置(zero-co 阅读全文
posted @ 2011-12-07 01:06
风行雪舞
阅读(267)
评论(0)
推荐(0)
摘要:
写在前面:谢谢各位的关注,没想到会有这么多人关注。高兴的同时,也感到压力,因为我接触SQLite也就几天,也没在实际开发中用过,只是最近项 目的需求才来研究它,所以我很担心自己的文章是否会有错误,误导别人。但是我很想把自己的学习成果与大家分享,所以如果大家觉得我有不对的地方,望不吝赐 教。 我原打算直接从VDBE入手的,因为它起着承上启下的作用,是整个SQLite的核心,并分析源码,但考虑到这是一个系列的文章,我希望能把问题说全,所 以还是从基本概念入手,对于初学者,如果没有这些概念,是很继续下去的。好了,下面开始第二章,由于这一章内容很多,我将分两部分讨论,下面开始第一部 分。1、API 由 阅读全文
posted @ 2011-12-07 01:06
风行雪舞
阅读(243)
评论(0)
推荐(0)
摘要:
写在前面:从本章开始,我们开始进入SQLite的内核。为了能更好的理解SQLite,我先从总的结构上讨论一下内核,从全局把握SQLite很 重要。SQLite的内核实现不是很难,但是也不是很简单。总的来说分为三个部分,本章主要讨论虚拟机(Virtual Machine),但是这里只是从原理上概述,不会太多的涉及实际代码。但是概述完内核之后会仔细讨论源代码的。好了,下面我们来讨论虚拟机(VM)。1、虚拟机(Virtual Machine) VDBE是SQLite的核心,它的上层模块和下层模块都是本质上都是为它服务的。它的实现位于vbde.c, vdbe.h, vdbeapi.c, vdbeInt 阅读全文
posted @ 2011-12-07 01:05
风行雪舞
阅读(296)
评论(0)
推荐(0)
摘要:
SQLite库包含一个名字叫做sqlite3的命令行,它可以让用户手工输入并执行面向SQLite数据库的SQL命令。本文档提供一个样使用sqlite3的简要说明。开始启动sqlite3程序,仅仅需要敲入带有SQLite数据库名字的"sqlite3"命令即可。如果文件不存在,则创建一个新的(数据库)文件。然后sqlite3程序将提示你输入SQL。敲入SQL语句(以分号“;”结束),敲回车键之后,SQL语句就会执行。例如,创建一个包含一个表"tb11"名字为"ex1"的SQLite数据库,你可以这样做:$sqlite3 ex1SQLite 阅读全文
posted @ 2011-12-07 01:04
风行雪舞
阅读(674)
评论(0)
推荐(0)
摘要:
最近使用sqlite较多,这东西现在是越用越着迷,不管是工作或者个人自娱自乐写东西,只要有数据存储首先就想到了sqlite,我一直对C/S模式的数据存储很反感,记得在知道sqlite之前的很长一段时间里一直用的是xml来存数我的数据,我喜欢将数据存储在单一文件里,我可以随时把数据带在身上,而且它们兼容性够好,拿着数据文件到那里都能用,哪怕是在嵌入式系统里照样玩儿的转…SQLite特性ACID事务零配置 – 无需安装和管理配置储存在单一磁盘文件中的一个完整的数据库数据库文件可以在不同字节顺序的机器间自由的共享支持数据库大小至2TB足够小, 大致3万行C代码, 250K比一些流行的数据库在大部分普 阅读全文
posted @ 2011-12-07 01:03
风行雪舞
阅读(238)
评论(0)
推荐(0)
摘要:
创建数据库 在cmd下面调用sqlite3.exe,创建数据命令如下: sqlite3 db_name.xx; 数据库名称任意,创建后直接进入数据库;如果文件存在,则直接打开; SQL的指令格式 所有的SQL的指令都是以分号(;)结尾的,为增加可读性,允许一个指令多行编辑,直到遇到分号结束指令; sqlite3中两个减号(--)代表注释,sqlite会忽略。 创建表 键入以下指令即可创建一个tab_name表: create table tab_name (field1, field2, field3...); sqlite3对字段没有严格要求,字段可以存储任何类型数据,它会适时的自动转换,当 阅读全文
posted @ 2011-12-07 01:03
风行雪舞
阅读(235)
评论(0)
推荐(0)
摘要:
bash-2.05b# lscert devm radius rule sqlite3 uibase vpn<SPAN style="COLOR: #ff6600">bash-2.05b# ./sqlite3 rule </SPAN>//启动 进入数据库SQLite version 3.5.4Enter ".help" for instructions<SPAN style="COLOR: #ff6600">sqlite> .tab</SPAN> // 显示数据库中表DomainN 阅读全文
posted @ 2011-12-07 01:02
风行雪舞
阅读(1342)
评论(0)
推荐(0)
摘要:
sqlite3: 一个SQLite数据库的命令行接口原文地址:http://www.sqlite.org/sqlite.htmlSQLite库包含一个名字叫做sqlite3的命令行,它可以让用户手工输入并执行面向SQLite数据库的SQL命令。本文档提供一个样使用sqlite3的简要说明。开始启动sqlite3程序,仅仅需要敲入带有SQLite数据库名字的"sqlite3"命令即可。如果文件不存在,则创建一个新的(数据库)文件。然后 sqlite3程序将提示你输入SQL。敲入SQL语句(以分号“;”结束),敲回车键之后,SQL语句就会执行。例如,创建一个包含一个表" 阅读全文
posted @ 2011-12-07 01:01
风行雪舞
阅读(336)
评论(0)
推荐(0)
摘要:
sqlite3: 一个SQLite数据库的命令行接口 译者注 原文地址:http://www.sqlite.org/sqlite.html SQLite库包含一个名字叫做sqlite3的命令行,它可以让用户手工输入并执行面向SQLite数据库的SQL命令。本文档提供一个样使用sqlite3的简要说明。开始 启动sqlite3程序,仅仅需要敲入带有SQLite数据库名字的"sqlite3"命令即可。如果文件不存在,则创建一个新的(数据库)文件。然后sqlite3程序将提示你输入SQL。敲入SQL语句(以分号“;”结束),敲回车键之后,SQL语句就会执行。 例如,创建一个包含一 阅读全文
posted @ 2011-12-07 01:00
风行雪舞
阅读(253)
评论(0)
推荐(0)
摘要:
模块化编程的分层设计经验 和文档管理办法(xwj) xwj 发表于 2006-2-26 23:28:00模块化编程的分层设计经验操作要点: 1、每一层直接对下一层操作,尽量避免交叉调用或越级调用 2、某些器件会把硬件驱动层合并成一个文件时,则归于较高的层 3、相同功能的外部函数尽量一致,尽量保证通用性 4、对于初次编程的模块,要严格保证中间各层的正确性好处: 1、对于后期维护扩展,只需修改应用层和物理层,根据需要扩展功能层 2、一个新项目只需把要用到的文件加入工程,简单修改调试就出来了 3、随着模块的不断积累,新的项目将越来越容易完成,后期的维护扩展也变得非常简单了 4、对于C语言编程,只需简 阅读全文
posted @ 2011-12-07 01:00
风行雪舞
阅读(576)
评论(0)
推荐(0)
摘要:
extern 和static的使用方法,应该属于C语言的基础知识了。可是,在实际工作中,还是经常会在代码里看到关于这两个限定符使用的问题,总结一下,大致有两类:其一,对于模块中的变量或者函数,不了解到底加不加static或者 extern修饰符;其二,在加限定符的时候,不知道正确的使用方法。因此,有必要旧话重提,说明一下。简单的说,记住两句话即可,1 Static表示:被修饰的变量或者函数不可以被本模块以外的其他任何模块使用;而extern恰恰相反,表示同意其被被本模块以外的其他模块使用;2当变量或者程序没有被static或者extern修饰的时候,变量或者函数可以被其他模块使用。这么说可能还 阅读全文
posted @ 2011-12-07 00:59
风行雪舞
阅读(249)
评论(0)
推荐(0)
摘要:
面向对象是C++的重要特性. 但是c++在c的基础上新增加的几点优化也是很耀眼的就const直接可以取代c中的#define以下几点很重要,学不好后果也也很严重1. const常量,如const int max = 100; 优点:const常量有数据类型,而宏常量没有数据类型。编译器可以对前者进行类型安全检查,而对后者只进行字符替换,没有类型安全检查,并且在字符替换时可能会产生意料不到的错误(边际效应)2. const 修饰类的数据成员。如: class A{ const int size; … }const数据成员只在某个对象生存期内是常量,而对于整个类而言却是可变的。因为类可以创建多.. 阅读全文
posted @ 2011-12-07 00:58
风行雪舞
阅读(254)
评论(0)
推荐(0)
摘要:
一、C语言由源代码生成的各阶段如下:C源程序->编译预处理->编译->优化程序->汇编程序->链接程序->可执行文件 其中编译预处理阶段,读取c源程序,对其中的伪指令(以#开头的指令)和特殊符号进行处理。或者说是扫描源代码,对其进行初步的转换,产生新的源代码提供给编译器。预处理过程先于编译器对源代码进行处理。 在C 语言中,并没有任何内在的机制来完成如下一些功能:在编译时包含其他源文件、定义宏、根据条件决定编译时是否包含某些代码。要完成这些工作,就需要使用预 处理程序。尽管在目前绝大多数编译器都包含了预处理程序,但通常认为它们是独立于编译器的。预处理过程读入 阅读全文
posted @ 2011-12-07 00:58
风行雪舞
阅读(311)
评论(0)
推荐(0)
摘要:
#ifdnef,#ifdef,#if的用法简析#ifdnef,#ifdef,#if都是用于防止重复编译的命令。对于处理程序中提供了条件编译的功能。常用的预处理命令介绍如下:一:#include [ **.h] 指定的文件(file)插入到指令所在位置的代码处。通常用于包含头文件,是代码可以利用在别处定义的内容。二:#define [key] [key_value] 制定键(key)的每次出现都用key_value替换。 注意:#define(即宏定义)采用的是“傻瓜式”的替换,因此它往往很危险。在C++中采用const来定义常量,实现了与#define相同的功 能,而且功能要比#define强 阅读全文
posted @ 2011-12-07 00:57
风行雪舞
阅读(480)
评论(0)
推荐(0)
摘要:
sprintf,snprintf的用法(可以作为linux中itoa函数的补充) sprintf() 格式化输出函数(图形)功能: 函数sprintf()用来作格式化的输出。用法: 此函数调用方式为int sprintf(char *string,char *format,arg_list);说 明: 函数sprintf()的用法和printf()函数一样,只是sprintf()函数给出第一个参数string(一般为字符数组),然后再调用 outtextxy()函数将串里的字符显示在屏幕上。arg_list为参数表,可有不定个数。通常在绘图方式下输出数字时可调用sprintf()函 数将所要输 阅读全文
posted @ 2011-12-07 00:56
风行雪舞
阅读(890)
评论(0)
推荐(0)
摘要:
今天突然心血来潮装了个Fedora9玩一玩。结果在VM中装完vmtools发现鼠标在登陆界面根本无法使用,进入桌面后定位不准确,GOOGLE一下,找到方法,呵呵,记下来。如下: 由于在装载xorg-x11-drv-vmmouse驱动时的一个bug,在客户虚拟机的显示中,鼠标位置可能不正确。直到被更新前,在客户机中添加Option NoAutoAddDevices到/etc/X11/xorg.conf文件的ServerFlags节中。如果需要,创建这个节:Section "ServerFlags" Option "NoAutoAddDevices"EndS 阅读全文
posted @ 2011-12-07 00:56
风行雪舞
阅读(269)
评论(0)
推荐(0)
摘要:
在vmware 6 上面安装 fc 9,然后安装vmwaretools 的时候,没有C header files。 What is the location of the directory of C header files that match your running kernel? [/usr/src/linux/include] 解决方法: 这个问题,需要安装与系统内核配套的开发包。查看内核: uname -r 内核头文件C header files下载地址:http://rpmfind.net/linux/rpm2html/search.php?query=kernel-devel 阅读全文
posted @ 2011-12-07 00:55
风行雪舞
阅读(374)
评论(0)
推荐(0)
摘要:
问题产生: 安装Fedora 9之后没有什么异常,所有的网卡都能DHCP自动获得IP地址。但是,有次我用系统网络管理工具(system-config- network/NetworkManager)做了一下设置,其实只是修改了一下Hosts。保存重启之后,发现我的所有网卡都没有起来,必须除了 wireless之外,所有的网卡都要手动启动。Firefox默认工作在Offline模式,好像其它的网络程序,如gaim,也不能正常工作。 问题解决: 到网上搜了一下,可能这是网络管理程序的问题,我的解决办法是: 打开网络管理程序,选中一个网卡,双击或编辑,为该网卡选中“Contrlled by Netw 阅读全文
posted @ 2011-12-07 00:53
风行雪舞
阅读(808)
评论(0)
推荐(0)
摘要:
system()函数用于向操作系统传递控制台命令行,以WINDOWS系统为例,通过system()函数执行命令和在DOS窗口中执行命令的效 果是一样的,所以只要在运行窗口中可以使用的命令都可以用SYSTEM()传递,但要注意的是输入斜线时要输入两个,以名C语言当作转义字符处理。 system函数 是可以调用一些DOS命令,比如system("cls");//清屏,等于在DOS上使用cls命令,写可执行文件路径,可以运行它···· 下面列出常用的DOS命令,都可以用system函数调用:ASSOC 显示或修改文件扩展名关联。 AT 计划 阅读全文
posted @ 2011-12-07 00:52
风行雪舞
阅读(1864)
评论(0)
推荐(0)
摘要:
虽然一直对ubuntu以外的linux并不感兴趣,但是工作需要,还是得研究一下,顺便强化一下自己对于ubuntu认知的正确性。。。工作中用到的fedora需要进行一些设置,首先先记录一下吧,防止以后被忘记1.如何设置fedora 15使其开机进入文本界面?这个问题其他是很古老的书上都有啦,是linux很基础的问题,原始的方法是sudo nano /etc/inittab改变 “:3/5:”就可以了,但如今时代变了,fedora也有了新的改变,虽然我并不了解fedora的systemd是啥创新,但是有改变了解了就好。。sudo rm /etc/systemd/system/default.tar 阅读全文
posted @ 2011-12-07 00:52
风行雪舞
阅读(264)
评论(0)
推荐(0)
摘要:
1.Fedora 15使用root登录gnome首先以用户账号进入终端,允许root账号登陆:$ su$ vi /etc/pam.d/gdm删除其中的一行 auth required pam_succeed_if.souser != root quiet:wq保存并退出。$ vi /etc/pam.d/gdm-password删除其中的一行 auth required pam_succeed_if.souser != root quiet:wq保存并退出。这样就可以使用root进行GUI登陆了。2.Fedora15安装桌面工具Fedora15默认桌面没有图标,需要手工安装gnome-tweak 阅读全文
posted @ 2011-12-07 00:51
风行雪舞
阅读(513)
评论(0)
推荐(0)
摘要:
第一步:安装VMware Tools时候需要安装perl、gcc和kernel-devel包yum install perl gcc kernel-devel解决这个问题:Detected GCC binary at "/usr/bin/gcc".The path "/usr/bin/gcc" appears to be a valid path to the gcc binary.Would you like to change it? [no]Searching for a valid kernel header path...The path &q 阅读全文
posted @ 2011-12-07 00:51
风行雪舞
阅读(462)
评论(0)
推荐(0)
摘要:
安装版本:官方网站上下载的32位桌面版1,添加源:(1)添加163源:首先输入打开终端输入su,输入密码,取得管理员权限;其次输入 gedit /etc/yum.repos.d/163.repo,回车再次把一下内容复制到打开的163.repo中:[Fedora-mirrors.163.com] name=Fedora 12 – i386 baseurl=http://mirrors.163.com/fedora/updates/12/i386/ enabled=1 gpgcheck=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Fedora file 阅读全文
posted @ 2011-12-07 00:50
风行雪舞
阅读(231)
评论(0)
推荐(0)
摘要:
一、单链表的建立 有了动态内存分配的基础,要实现链表就不难了。 所谓链表,就是用一组任意的存储单元存储线性表元素的一种数据结构。链表又分为单链表、双向链表和循环链表等。我们先讲讲单链表。所谓单链表,是指数据接点是单向排列的。一个单链表结点,其结构类型分为两部分: 1、数据域:用来存储本身数据 2、链域或称为指针域:用来存储下一个结点地址或者说指向其直接后继的指针。 例: typedef struct node { char name[20]; struct node *link; }stud; 这样就定义了一个单链表的结构,其中char name[20]是一个用... 阅读全文
posted @ 2011-12-07 00:21
风行雪舞
阅读(338)
评论(0)
推荐(0)
摘要:
数组作为存放同类数据的集合,给我们在程序设计时带来很多的方便,增加了灵活性。但数组也同样存在一些弊病。如数组的大小在定义时要事先规定,不能在程序中进行调整,这样一来,在程序设计中针对不同问题有时需要3 0个大小的数组,有时需要5 0个数组的大小,难于统一。我们只能够根据可能的最大需求来定义数组,常常会造成一定存储空间的浪费。我们希望构造动态的数组,随时可以调整数组的大小,以满足不同问题的需要。链表就是我们需要的动态数组。它是在程序的执行过程中根据需要有数据存储就向系统要求申请存储空间,决不构成对存储区的浪费。链表是一种复杂的数据结构,其数据之间的相互关系使链表分成三种:单链表、循环链表、双向链 阅读全文
posted @ 2011-12-07 00:19
风行雪舞
阅读(1875)
评论(0)
推荐(0)
摘要:
/*===============================================作者:rerli时间:2003-12-05目的:学习单向链表的创建、删除、 插入(无序、有序)、输出、 排序(选择、插入、冒泡)、反序说明:编译没有任何错误,能生成EXE文件。 这个程序TC2.0中编译生成的EXE文件, 在运行输入节点时出现以下错误(TC2.01中没有任何错误): scanf : floating point formats not linked Abnormal program termination 即:struct student中float score字段在输入时, 它不 阅读全文
posted @ 2011-12-07 00:16
风行雪舞
阅读(449)
评论(0)
推荐(0)
摘要:
/*接着讲(测试编译时,请把相应的函数及测试代码放到上一讲代码的相关地方):排序(选择、插入、冒泡)插入(有序)*//*===============================================作者:rerli时间:2003-12-08目的:学习单向链表的创建、修改、删除、 插入(无序、有序)、输出、 排序(选择、插入、冒泡)、反序说明:编译没有任何错误,能生成EXE文件。 这个程序TC2.0中编译生成的EXE文件, 在运行输入节点时出现以下错误(TC2.01中没有任何错误): scanf : floating point formats not linked Abnorm 阅读全文
posted @ 2011-12-07 00:14
风行雪舞
阅读(299)
评论(0)
推荐(0)
摘要:
/*===============================================作者:rerli时间:2003-12-15目的:重温经典排序思想,并用C语言指针实现排序算法================================================*//*=============================================================================相关知识介绍(所有定义只为帮助读者理解相关概念,并非严格定义):1、稳定排序和非稳定排序简单地说就是所有相等的数经过某种排序方法后,仍能保持它们在排序之 阅读全文
posted @ 2011-12-07 00:13
风行雪舞
阅读(232)
评论(0)
推荐(0)
摘要:
/*===================================================================作者:rerli时间:2003-12-17目的:从华为一道面试题浅谈计算机专业在校大学生该如何学习专业课程,信心百倍挑战就业!====================================================================*//* 简单一道排序题,考倒多少读书人! ——从华为一道面试题浅谈计算机专业在校大学生该如何学习专业课程,信心百倍挑战就业! 大学生早已不是天之骄子,仅仅是一个普通劳动者。网上一句顺口溜“本科生象条 阅读全文
posted @ 2011-12-07 00:12
风行雪舞
阅读(325)
评论(0)
推荐(0)
摘要:
利用网上下载的这段代码,成功实现了守护进程,原来守护进程是很简单的事情。 在main函数中执行 1 init_daemon();//初始化为Daemon 2 3 就可以把进程变成守护进程 4 #include 5 #include 6 #include 7 #include 8 #include 9 10 void init_daemon(void)11 {12 int pid;13 int i;14 15 if(pid=fork())16 exit(0);//是父进程,结束父进程17 else if(pid< 0)18 exit(1);//fork失败,退出19 //是第一子进程... 阅读全文
posted @ 2011-12-07 00:11
风行雪舞
阅读(455)
评论(0)
推荐(0)
摘要:
1、链接存储方法 链接方式存储的线性表简称为链表(Linked List)。 链表的具体存储表示为: ① 用一组任意的存储单元来存放线性表的结点(这组存储单元既可以是连续的,也可以是不连续的) ② 链表中结点的逻辑次序和物理次序不一定相同。为了能正确表示结点间的逻辑关系,在存储每个结点值的同时,还必须存储指示其后继结点的地址(或位置)信息(称为指针(pointer)或链(link))注意: 链式存储是最常用的存储方式之一,它不仅可用来表示线性表,而且可用来表示各种非线性的数据结构。 2、链表的结点结构 ┌──┬──┐ │data│ne... 阅读全文
posted @ 2011-12-07 00:09
风行雪舞
阅读(220)
评论(0)
推荐(0)
摘要:
1、建立单链表 假设线性表中结点的数据类型是字符,我们逐个输入这些字符型的结点,并以换行符'\n'为输入条件结束标志符。动态地建立单链表的常用方法有如下两种:(1) 头插法建表① 算法思路 从一个空表开始,重复读入数据,生成新结点,将读入数据存放在新结点的数据域中,然后将新结点插入到当前链表的表头上,直到读入结束标志为止。 具体方法【参见动画演示】注意: 该方法生成的链表的结点次序与输入顺序相反。② 具体算法实现 1 LinkList CreatListF(void) 2 {//返回单链表的头指针 3 ... 阅读全文
posted @ 2011-12-07 00:08
风行雪舞
阅读(242)
评论(0)
推荐(0)
摘要:
循环链表是一种首尾相接的链表。 1、循环链表(1)单循环链表——在单链表中,将终端结点的指针域NULL改为指向表头结点或开始结点即可。 (2)多重链的循环链表——将表中结点链在多个环上。 2、带头结点的单循环链表 注意: 判断空链表的条件是head==head->next; 3、仅设尾指针的单循环链表 用尾指针rear表示的单循环链表对开始结点a1和终端结点an查找时间都是O(1)。而表的操作常常是在表的首尾位置上进行,因此,实用中多采用尾指针表示单循环链表。带尾指针的单循环链表可见下图。 注意: 判断空链表... 阅读全文
posted @ 2011-12-07 00:07
风行雪舞
阅读(808)
评论(0)
推荐(0)

浙公网安备 33010602011771号