• uclinux下Nand Flash的JFFS2文件系统的移植(4)

    uclinux下Nand Flash的JFFS2文件系统的移植(4)

    定位错误,发现问题在drivers/mtd/nand/nand_writev函数中,应该写入的字节数和实

    际写入(或者返回的)不一样。

    函数nand_writev是干什么的呢?和nand_write有什么区别?分析一下就知道了,nand_w

    ritev是一个多块的写入函数。struct iovec定义如下:

    struct iovec

    {

    void *iov_base;     /* BSD uses caddr_t (1003.1g requires void *) */

    __kernel_size_t iov_len; /* Must be size_t (1003.1g) */

    };

    就是说一个const struct iovec *vecs可以存储多过块,一次写入。仔细分析代码,就

    会发现问题,因为在iovec中,允许有len=0的块,所以,nand_writev函数中的代码

    while ((cnt < mtd->oobblock) && count) {

    this->data_buf[cnt++] =

    ((u_char *) vecs->iov_base)[len++];

    if (len >= (int) vecs->iov_len) {

    vecs++;

    len = 0;

    count--;

    }

    }

    就会出现问题,我把它改成了:

    while ((cnt < mtd->oobblock) && count) {

    if (len >= (int) vecs->iov_len) {   //add by threewater

    vecs++;

    len = 0;

    count--;

    continue;

    }

    this->data_buf[cnt++] =

    ((u_char *) vecs->iov_base)[len++];

    }

    好了,这回问题解决了。

    可以复制,删除文件了。至此,基本问题都解决了。

    不过,这里还有几个问题:

    1、对于Flash的操作似乎有点慢,我用10M以太网(前面说的RTL8019AS)mount NFS文件

    系统,从主机复制文件过来,确实很慢,2M的多文件要好几分钟。也不知道是我的处理

    器(S3C44B0X@60MHz)太慢还是有其他的原因。改变一下对Flash所在Bank的速度,效果

    也不是很明显,不知道还有什么问题。

    2、系统在Mount JFFS2文件系统的时候也很慢,要等大概10秒钟。似乎是Mount的时候自

    动检测整个Nand Flash的Block,如果有问题就自动的Erase,并提示如下信息:

    jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00000728:

    0x1905 instead

    jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x0000072c:

    0x0044 instead

    jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00000730:

    0xfb1d instead

    jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00000734:

    0x0004 instead

    jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00000738:

    0x0001 instead

    不清楚是不是日志文件系统都这个样子?我只是用了一个14MB的空间,如果使用更大的N

    and Flash,那岂不是更慢?

    大家的做的JFFS2都是什么速度?能不能说说?

    全文完,不过最近发现还有一个似乎比JFFS2更好的专门为Nand Flash设计的文件系统,

    yaffs,我已经下了他的源码。正在努力中,希望可以把速度提高上去(看分析据说

    效率不错)。

    2003-07-05
  • uclinux下Nand Flash的JFFS2文件系统的移植(3)

    uclinux下Nand Flash的JFFS2文件系统的移植(3)

    拖拖拉拉的这个问题困扰了我很长时间,终于《Linux内核源码情景分析》中找到了wake

    _up及其相关调用的详细代码分析,看上去这里似乎不会出什么问题,那么,问题就只能

    在所传递的参数&this->wq上了。继续SourceInsight,发现参数this应该是在我前面照

    抄的驱动程序drivers/mtd/nand/arm_nand.c中初始化的,是不是this->wq没有初始化?

    可是,这个代码是照着人家的抄的啊,怎么可能出问题?不过,现在看来只能去仔细的

    读一读了。

    按照《Linux内核源码情景分析》中的分析,很容易的知道了this->wq是一个链表结构,

    看来就是因为他没有初始化了。毫不犹豫地在arm_nand.c中加上:

    INIT_LIST_HEAD(&this->wq.task_list);

    (关于linux中链表的使用请参考《Linux内核源码情景分析》中的说明)

    这样,试了一下,果然系统不死了。

    接下来执行erase擦除一下(因为前面测试的时候我知道,虽然系统死了,但是,Nand

    Flash的第一个扇区还是写进去数了,所以,先Erase试试),结果有如下错误:

    nand_erase: start = 0x0026c000, len = 16384

    Erase at 0x0026c000 finished, but state != MTD_ERASE_DONE. State is 0x0

    instead

    查找代码,定位错误地方,发现在drivers/mtd/nand.c的nand_erase函数中,

    nand_deselect ();

    /* Do call back function */

    if (instr->callback)

    instr->callback (instr);

    就是在这里(其中,指针函数callback指向fs/jffs2/Erase.c中的jffs2_erase_callbac

    k),系统通过callback来判断instr->state的状态,来决定是不是已经成功擦除。所以

    ,改写成:

    /* Do call back function */

    instr->state=MTD_ERASE_DONE;        //add by threewater

    if (instr->callback)

    instr->callback (instr);

    问题解决,擦除成功。

    然后,就可以

    cp  /var/mnt/jffs2.img /dev/mtd0

    也没有问题,接着就是

    mount -t jffs2 /var/jffs2 /dev/mtdblock0

    好了,文件系统成功的mount上了,也可以看到文件和目录了。高兴之余,再继续测试文

    件系统的读写:

    [/var/jffs2]cp /root/hello .

    nand_read_ecc: from = 0x002006e4, len = 16

    nand_writev: to = 0x002006e4, len = 68

    Write of 68 bytes at 0x000006e4 failed. returned 0, retlen 69

    cp: unable to open `./hello': Input/output error[/var/jffs2]cp /root/hello .

    还是有问题。Sigh!

    待续

    2003-07-05
  • uclinux下Nand Flash的JFFS2文件系统的移植(2)

    uclinux下Nand Flash的JFFS2文件系统的移植(2)

    readb的这个问题其实很简单,用SourceInsight跟踪基层调用就知道,是因为在我的44b

    0的这个移植版本中根本就没有readb的定义,在include/asm-armnommu/arch-s3c44b0/i

    o.h文件中添加:

    #define readb(b)                __arch_getb(b)

    #define readw(b)                __arch_getw(b)

    #define readl(b)                __arch_getl(b)

    #define writeb(v,b)             __arch_putb(v,b)

    #define writew(v,b)             __arch_putw(v,b)

    #define writel(v,b)             __arch_putl(v,b)

    其中__arch_xxx也是在这个文件中定义,或者可以干脆直接(*(volatile unsigned xxx

    *)(xxx))。好了,系统启动,果然,找到Nand Flash:

    NAND device: Manufacture ID: 0xec, Chip ID: 0x73 (Samsung KM29U128T)

    Creating 1 MTD partitions on "Samsung KM29U128T":

    0x00200000-0x01000000 : "Nand flash partition"

    mtd: Giving out device 0 to Nand flash partition

    系统启动以后,用cat /proc/mtd,可以显示如下信息。

    dev:    size   erasesize  name

    mtd0: 00e00000 00004000 "Nand flash partition"

    没错了,Nand Flash的信息,容量,还有擦除的block的大小都没有问题。

    然后,按照《The Linux MTD, JFFS HOWTO》所说,编译mtd工具,我是从网上下的mtd-s

    napshot-20030508,用mkfs.jffs2生成jffs2的映象文件(jffs2.img),这个和genromf

    s差不多。然后,在交叉编译mtd-snapshot-20030508,主要是用erase来擦除Flash。

    接着,编辑romdisk,在/dev目录下,建立创建文件@mtd0,c,90,0、@mtdblock0,b,31,0

    。这就是用来访问的设备了。前者是字符设备类型,后者是block类型。

    下面就可以用在目标板上

    cp  /var/mnt/jffs2.img /dev/mtd0

    把前面生成的jffs2格式的映象复制到mtd0设备中就是我们的Nand Flash了。

    结果,发现系统死掉了。5555555555

    te_ecc中死掉了。用printk继续定位,把结果锁定在了下面的调用

    wake_up (&this->wq);

    因为我对系统内核不了解,当时连这个wake_up的函数是干什么的都不知道:(,用Source

    Insight跟踪了好几天都没有头绪,最后,干脆放弃了,整天上课的时候捧着一本《Linu

    x内核源码情景分析》来看(主要是上册),感觉写得不错,几天下来,收获颇丰。不过

    ,感还是不能解决前面的问题……

    待续

    2003-07-02
  • uclinux下Nand Flash的JFFS2文件系统的移植(1)

    uclinux下Nand Flash的JFFS2文件系统的移植(1)

    继续上一篇《uClinux下移植Ne2000兼容的网卡驱动程序》中介绍的平台和操作系统,开

    始写JFF2的感想。虽然JFFS2的移植弄出来有一段时间了,但是,前一段时间忙着期末考

    试,无心写心得。昨天总算考完了,我就继续罗嗦那段时期的经历吧,希望把我遇到的

    问题和解决的方法和大家共享。错误之处也请不吝指出。

    我使用的uClinux的硬件平台还是44B0那个板子具体的情况参见《uClinux下移植Ne2000

    兼容的网卡驱动程序》中的介绍。Flash我用的是三星公司的K9F2808--16MByte的Nand

    Flash。

    开始,先看看有没有其他人的经验或者文章什么。用uclinux和jffs2关键词google了一

    下,找到了很多乱七八糟的东西,感觉唯一有用的也就是《The Linux MTD, JFFS

    HOWTO》,这篇文章写的比较细,我就是看这个逐渐地入了门。

    首先,make menuconfig,把mtd打开。可是,发现我拿到的内核中,没有这个mtd选项。

    比较一下,发现uClinux-dist-20030305里面,编译4510的时候,就有mtd这个选项。比

    较郁闷,不过还是不甘心,仔细看看arch/armnommu/config.in文件,发现如下:

    if [ "$CONFIG_ALIGNMENT_TRAP" = "y" ]; then

    source drivers/mtd/Config.in

    fi

    这就是问题了。不过还是不清楚这个CONFIG_ALIGNMENT_TRAP是干什么的。从字面上猜测

    可能是处理非对齐异常的。不过,如果我在前面定义了CONFIG_ALIGNMENT_TRAP,那么我

    的内核就不能正常的运行,看了半天源码,也没看懂,算了,索性把这个就给注释掉了

    (因为uClinux-dist-20030305里面就没有这个if)。这样,mtd就可以使用了。

    接下来就是定制内核,在MTD中,开启CONFIG_MTD_PARTITIONS、CONFIG_MTD_CHAR、CONF

    IG_MTD_BLOCK,选中NAND Device Support中的全部选项(因为我用的是Nand Flash)。

    再到File system中选重JFFS2文件系统。

    系统是怎么加载底层的Flash设备呢,很容易在/drivers/mtd/nand/目录下找到相关的代

    码。先看看Makefile,有如下一行:

    obj-$(CONFIG_MTD_NAND_SPIA) += spia.o

    看来只有编译的时候定义了CONFIG_MTD_NAND_SPIA,spia.c才可以被编译。spia.c是一

    个关键的问题,Nand Flash的驱动程序就是从这里加载的。我不想改spia.c中的东西,

    就照着spia.c复制了一个文件arm_nand.c,在/drivers/mtd/nand/Makefile中添加

    obj-$(CONFIG_MTD_NAND_ARM)  +=arm_nand.o

    并修改drivers/mtd/nand/config.in文件,添加如下内容:

    if [ "$CONFIG_ARM" = "y" ]; then

    dep_tristate 'NAND Flash device on ARM board' CONFIG_MTD_NAND_ARM

    $CONFIG_MTD_NAND

    fi

    这样,在定制内核的时候,只要是ARM的开发平台就可以使用我的这个arm_nand.c驱动程

    序了。这个arm_nand.c代码(原来的spia.c),很容易读懂,就是不熟悉Nand Flash的

    人,对照着芯片的Datasheet也很快就能看明白,需要改的就是你的板子上的Nand

    Flash几个控制信号线(主要是ALE、CLE、CE)的地址,输入输出的地址等等。我为了以

    后方便,把这些地址都通过宏定义放到了config.in中。

    然后,在arm_nand.c代码中,最关键的就是partition_info的定义,我改成如下:

    const static struct mtd_partition partition_info[] = {

    /*  { name: "SPIA flash partition 1",

    offset: 0,

    size: 2*1024*1024 },*/

    #ifdef CONFIG_ARCH_S3C44B0

    #ifdef CONFIG_ARCH_S3C44B0

    { name: "Nand flash partition",

    offset: 2*1024*1024,

    size: 14*1024*1024 }

    #endif

    };

    #define NUM_PARTITIONS 1

    很容易理解,因为我的nand flash中,前2M的空间,用于存放uclinux的kernel和romdis

    k,启动的时候通过bootloader加载到内存中。所以,这个空间是不能用的。剩下的14MB

    ,就是划分成一个Flash盘准备上JFFS2了。

    这样,似乎就可以了。编译内核,然后运行,

    结果有如下错误:

    readb called, but not implemented<2>kernel BUG at traps.c

    2003-07-02
  • 【公告】授予dj028网友circuit版荣誉网友称号

                                                                            

     ☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆   

     ☆                                                                  ☆   

     ☆                             奖    状                                

     ☆                                                                  ☆   

     ☆      dj028网友:                                                    

     ☆                                                                  ☆   

     ☆      鉴于您对circuit版做出的杰出贡献,本版决定授予您水木清华站      

     ☆      circuit版荣誉网友称号。                                        

     ☆                                                                  ☆   

     ☆      特发此状,以资鼓励,希望以后再接再厉,继续支持circuit版。      

     ☆                                                                  ☆   

     ☆                                 水木清华站circuit版  全体网友       

     ☆                                                                  ☆   

     ☆                                    版主:threewater  winndows    ☆   

     ☆                                                                  ☆   

     ☆                                               2003年06月23日        

     ☆                                                                  ☆   

     ☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆   

                                                                            

    2003-06-23
  • [合集]PCI主从设备的区别

    ☆─────────────────────────────────────☆

     leishen (雷神) 于  (Fri May 30 16:55:17 2003)  提到:

    一直搞不清楚两者到底是什么区别,

    是不是一个PCI设备既可以做主设备也可以做从设备?

    弱弱的问一下!

    ☆─────────────────────────────────────☆

     pizzazz (pizzazz) 于  (Fri May 30 22:22:33 2003)  提到:

    PCI主设备可以获取PCI总线主控权,

    控制PCI从设备

    PCI从设备不能获取PCI总线主控权

    只能被PCI主设备控制

    PCI主设备可以执行DMA,实现突发传输

    峰值数据率为132MB/s

    PCI从设备没有DMA能力

    x86上,PCI从设备不能实现突发传输

    所以,峰值数据率为32MB/s

    当然PCI从设备可以实现的PCI功能

    PCI主设备都可以实现

    还有一些差别

    要看具体的应用

    ☆─────────────────────────────────────☆

     leishen (雷神) 于  (Fri May 30 22:41:02 2003)  提到:

    谢谢,再问一下

    那么是不是主设备和从设备在自身的硬件结构上就有什么本质区别?

    ☆─────────────────────────────────────☆

     pizzazz (pizzazz) 于  (Fri May 30 22:47:16 2003)  提到:

    是的

    主设备和从设备的状态机不同

    主设备要复杂一些

    ☆─────────────────────────────────────☆

     leishen (雷神) 于  (Fri May 30 22:55:37 2003)  提到:

    ☆─────────────────────────────────────☆

     FCR (余观主) 于  (Sat May 31 01:14:04 2003)  提到:

    是的。所以主设备在PCI规范中叫initiator,即发起者,而从设备

    称作Target,即目标者。

    主设备发起传输,所以要负责给出Frame和IRDY,发起Transaction。

    而从设备负责给出TRDY等信号,响应操作。

    对某个PCI卡,通常是必须支持Target操作,这样才能让PC读写卡上

    的控制寄存器。是否实现Initiator,则看具体的需求,可以没有。

    比如一些100M PCI网卡芯片,可以说是PCI主设备,但当主机在

    初始化芯片的寄存器时,该芯片实际是Target。当芯片接收网络

    数据包时,则主动发起数据传输,把接收到的数据直接写入计算机

    内存中。这个过程就不需要CPU参与,而且可以用Burst方式,不

    占用CPU资源而且速度快,这就是主设备的好处。

    ☆─────────────────────────────────────☆

     FCR (余观主) 于  (Sat May 31 01:23:11 2003)  提到:

    ☆─────────────────────────────────────☆

     leishen (雷神) 于  (Sat May 31 08:59:10 2003)  提到:

    谢谢两位的指点,使俺清楚了不少

    比如说PCI网卡,

    在初始化时认为是从设备,在向上发送数据包时又是主设备

    那么区分这个卡何时为主设备何时为从设备的机制是什么?

    是在配置寄存器中设置吗?

    ☆─────────────────────────────────────☆

     pizzazz (pizzazz) 于  (Sat May 31 09:32:54 2003)  提到:

    没有错

    x86体系结构

    从设备不能实现Burst

    从设备将所有的内存操作命令

    作为基本的内存操作实现

    即使主设备发起的是Burst操作

    从设备也只能实现基本的内存操作

    也就是从设备只能实现

    Memory read

    Memory write

    两个内存操作命令

    不能实现

    Memory Read Multiple

    Memory Read Line

    Memory Write and Invalidate

    这是x86的局限性

    ☆─────────────────────────────────────☆

     FCR (余观主) 于  (Sat May 31 10:42:29 2003)  提到:

    有两点不对。

    1。比如说,PCI上的一次Transaction是Burst的,

    而参与Transaction的必定有一个Initiator和

    一个Target,此时两者都是支持Busrt的。

    反过来,按你的说法,如果X86体系的从设备不能实现

    Burst,那么就可以推出结论,在PC机上的PCI

    设备是不会有Burst操作的。因为任何操作都需要

    Target。

    2。Memory Read命令可以包括Burst 操作。

    我最初看PCI规范是也象你那样理解,后来自己

    做试验才明白。

    ☆─────────────────────────────────────☆

     FCR (余观主) 于  (Sat May 31 11:08:38 2003)  提到:

    很好理解,当设备发起操作时,就是Initiator,

    (主机是Target)

    而响应主机发起的读写操作时,就是Target。

    (主机是Initiator)

    与配置寄存器无关。设备可以在任何时候申请总线,

    Arbitrator负责把总线分配给这个设备使用,这时

    就可以发起操作了。

    (不过在Command寄存器中有一位是允许或禁止

    Master的控制位)。

    ☆─────────────────────────────────────☆

     leishen (雷神) 于  (Sat May 31 11:33:17 2003)  提到:

    谢谢两位,总算弄清楚了!

    2003-05-31
  • 3V与5V逻辑器件接口问题

    pdf的。

    2003-05-07
  • ARM指令集
    ARM指令集.CHM (151.0 K)

    2003-05-07
  • Re: 请问: 如何写JTAG烧写FLASH的程序

    没有,

    写这个东东有两种思路,

    1、用外围的那条JTAG链,像控制IO一样控制每一个管脚的输入输出

    2、用chain 1,控制ARM的内核,配置ARM的工作模式,访问外围设备。

    方法1,比较容易,可是,速度慢,不通用,换一个ARM就要重写程序。

    方法2、速度能快一点,如果用上板子上的RAM空间就更快的。

    而且也是一个通用的方法。在44b0上成功了,对于其他的ARM7TDMI处理器也

    可以

    【 在 Taiyoyuden (太阳诱电) 的大作中提到: 】

    : 标  题: Re: 请问: 如何写JTAG烧写FLASH的程序

    : 发信站: BBS 水木清华站 (Tue Apr 15 10:41:31 2003), 转信

    : datasheet中没有说明吗?应该会有的!

    : 【 在 l1111111 (今夜风轻送...) 的大作中提到: 】

    : :         44b0x cpu通过并口jtag访问flash,烧写程序进入flash

    : :         请问: 这个程序怎么写? 有个例子吗?

    : :         如有,请发个至 hubin97@163.net 多谢! 多谢!

    : --

    2003-04-15
  • Re: 哪位大侠知道,UltraEDIT的HDL编辑模板在哪下?

    就是为了加亮显示吧。

    看看这个

    http://www.idmcomp.com/downloads/additional.html

    几乎什么格式的都有。呵呵。

    Text Editor - HEX Editor

    HTML Editor - Programmers Editor

    Additional Downloads Page

    This page has been put together to provide you, the user, with wordfiles, ma

    cros, tag lists, and autocomplete files generated for different programming

    languages, all of which have been developed by other users.

    I have not necesessarily tried all of the wordfiles, macros, tag lists, and

    autocomplete files here so use them with care, however, I only add the files

    that I believe are going to be helpful.

    If you have any suggestions or contributions you would like make to this pag

    e, please send an email to me.

    If wordfiles, macros, tag lists or autocomplete files are not what you inten

    ded to download, please return to the Main Downloads page for UltraEdit Shar

    eware Evaluation and Dictionary Files.

    Each wordfile contains one language. I have set each wordfile up to be langu

    age twenty (UltraEdit supports up to twenty languages). With this in mind, y

    ou should be able to download the file, unzip it and copy and paste it into

    your existing wordfile without too much difficulty. If you add multiple word

    files, you will need to designate a different language number for each one.

    UltraEdit's help file includes help on modifying the wordfile if it is neede

    d.

    Click on the type of item you wish to download:

    Wordfiles

    ALL WORDFILES IN ONE PACKAGE

    ABAP/4 - 08/02/2002

    ABB Rapid Command - 08/24/99

    ActionScript 2.0 - 08/02/2002

    ASL/ACPI - 12/01/2000

    Ada95 - 11/17/97

    ADEPT Command Language - 06/02/99

    ADSP2181 - 12/01/2000

    AHDL - 03/28/2000

    AlphaScript - 03/28/2000

    AML (Arc Macro Language) & SML (Simple Macro Language)

    AMPL - 03/28/2000

    AMTrix- 03/02/99

    ANSYS - 05/30/2000

    ANSYS Parametric Design Language - 03/28/2000

    Apache Web Server - 10/12/2001

    ArcXML 1.1 for ArcIMS 4.0 - NEW - 09/25/2002

    ASN.1 - 10/12/2001

    ASP (JScript) - 03/28/2000

    ASP (PerlScript) - 08/02/2002

    ASP (Visual Basic) - 03/28/2000

    ASP (Visual Basic/HTML) - 12/31/2001

    ASP (VBScript) - 03/28/2000

    ASP (VBScript - Hipertools) - 10/12/2001

    ASPX - 08/02/2002

    ASPECT - 10/12/2001

    Assembly for 21xx - 05/30/2000

    Assembly for 2106x - 01/21/99

    Assembly for 6502 - 08/02/2002

    Assembly for 6809

    Assembly for 68HC908 - 12/01/2000

    Assembly for 68HC11 - 03/28/2000

    Assembly for 8051 - 12/01/2000

    Assembly for ARM - 12/01/2000

    Assembly for AVR - 08/24/99

    Assembly for CALM - 10/12/2001

    Assembly for C167 V7.0 - 08/02/2002

    Assembly for C515C - 12/01/2000

    Assembly for DSP56K - 03/28/2000

    Assembly for F240 - 03/28/2000

    Assembly for H8S - 12/01/2000

    Assembly for MASM - 06/02/99

    Assembly for Microchip PIC - 04/14/99

    Assembly for MIPS - 08/02/2002

    Assembly for M68000 - 10/12/2001

    Assembly for MPC860 - 12/01/2000

    Assembly for NEC 75X Microcontroller - 11/3/98

    Assembly (Netwide) - 08/02/2002

    Assembly for RDS-500 - 08/24/99

    Assembly for S/370 - 05/30/2000

    Assembly for TEAK - 10/12/2001

    Assembly for V850 - 10/12/2001

    Assembly for x86 - 10/12/2001

    Assembly for x86 (GNU) - 12/31/2001

    Assembly for Z80 - 08/24/99

    Assembly (High Level) - 12/31/2001

    AutoIT - 10/12/2001

    AutoIT 2.61 - 12/31/2001

    AutoLev - 12/31/2001

    AutoLISP - 05/30/2000

    Avenue - 03/28/2000

    AWK - 06/02/99

    Baan C - 05/30/2000

    BaanERP - 05/30/2000

    Baan 3 / 4GL - 01/21/99

    Bash - 08/24/99

    Batch - 12/01/2000

    BibTex - 06/02/99

    Blitz Basic 3D - 10/12/2001

    Blitz Basic v1.73 - 08/02/2002

    BM Scripts - 03/28/2000

    Bourne & Korn Shell - 08/24/99

    Broadvision JavaScript - 10/12/2001

    Bullant - 10/12/2001

    C/C++ - 03/18/99

    CA Visual Objects - 10/12/2001

    C++ Header - 12/01/2000

    C++ Source - 12/01/2000

    C# - 12/01/2000

    C for C167 - 08/02/2002

    CA OpenROAD 4.01 - 10/26/98

    CA Realizer 2.0 - 2/24/98

    Cascading Style Sheets 2.0 - 10/12/2001

    Cascading Style Sheets for IE 6 - 08/02/2002

    Cisco IOS Config - 10/12/2001

    Clarion - 12/01/2000

    Clarion-Template - 12/01/2000

    ClearBasic - 10/12/2001

    Clipper - 03/02/99

    CLIPS - 6/25/98

    Cobol - 03/28/2000

    Cold Fusion 4.31 - 2/24/98

    Cold Fusion 4.5/5.0 - 08/02/2002

    Config Files - 03/28/2000

    Corba - 06/02/99

    Cron Scripts - 10/12/2001

    CSound csd - 10/12/2001

    CSound orchestra - 10/12/2001

    CSound score - 10/12/2001

    Cue Sheets - 03/02/99

    Cup 1 - 08/02/2002

    CUPL - 08/02/2002

    C-Win API - 01/21/99

    Dataflex - 03/02/99

    DB4Web - 03/28/2000

    DB/C - 03/28/2000

    DCAL - 03/28/2000

    Digital Command Language - 10/12/2001

    Delphi 4 - 03/28/2000

    DiBoL - 03/17/99

    Direct X Mesh - 12/31/2001

    Directives - 01/21/99

    DOS Batch - 10/12/2001

    DOS/NT Batch - 08/02/2002

    DTD (XML) - 03/28/2000

    DTML (Zope) - 08/02/2002

    DXL - 12/01/2000

    Eiffel - 03/28/2000

    EPLD - 03/28/2000

    EScript 88 - 05/30/2000

    EScript 92 - 10/12/2001

    Esprit post processor language - 11/17/97

    ESRI Avenue(DBa 2.1) - 10/12/2001

    Euphoria - 05/30/2000

    EXAPTplus - 08/02/2002

    Fame - 03/28/2000

    FlagShip (Clipper/dBASE) - 11/17/97

    Flash ActionScript v5 - 10/12/2001

    Flash ActionScript - JavaScript - 10/12/2001

    Flash MX ActionScript 3 - 08/02/2002

    FLISP - 08/24/99

    Focus - 03/28/2000

    Formida - 10/12/2001

    Fortran 90 - 05/30/2000

    FoxPro 2.6 - 12/01/2000

    Visual FoxPro 6.0 - 12/01/2000

    Frame-/ElmScript - 01/21/99

    General Algebraic Modeling System - 08/02/2002

    GDL Scripts - 03/28/2000

    GED2HTML - 03/28/2000

    Gedcom - 03/02/99

    Gembase - 08/02/2002

    GNU Makefiles - 08/02/2002

    Hamster Scripts - 03/28/2000

    Haskell - 08/24/99

    HTML 4.01 - 10/12/2001

    HTML/PHP/SQL - 12/01/2000

    Hugo - 03/28/2000

    IBM Bookmaster - 04/14/99

    IBM DirectTalk - 10/12/2001

    IBM Net.Data - 08/24/99

    IDL - 10/12/2001

    Inform - 03/28/2000

    Inform 6 - 03/28/2000

    INI Files - 03/28/2000

    Informix 4GL - 08/02/2002

    Informix Forms - 08/02/2002

    Install Shield - 08/02/2002

    Interbase SQL - 5/18/98

    JamagicScript - 10/12/2001

    Jasmin - 12/01/2000

    Java 1.1.7/Swing - 03/28/2000

    Java 1.2.2 - 08/24/99

    Java 1.2 with FAME TimeIQ - 03/28/2000

    Java 1.3 - 10/12/2001

    Java 1.4 - 08/02/2002

    Java 1.4 with JSP - 08/02/2002

    JavaScript - 08/02/2002

    JavaScript 2.0 - 10/12/2001

    JavaScript/WMLS - 05/30/2000

    JHTML - 12/01/2000

    JScript - 6/25/98

    JSP - 03/28/2000

    Kixtart - 10/12/2001

    LaTex - 03/17/99

    LDAP - 03/02/99

    LDIF for the Netscape Directory Server - 03/02/99

    Lingo - 03/28/2000

    Lingo 8.51 - 08/02/2002

    Linker 6.0 - 08/02/2002

    Linker 7.0 - 08/02/2002

    Lisp - 12/01/2000

    Litestep - 08/02/2002

    LOGIC - 08/24/99

    LotusScript - 03/02/99

    LPC - 12/01/2000

    Lua - 08/02/2002

    LULL - 10/12/2001

    Lumonics GCode - 05/30/2000

    Makefile - 05/30/2000

    map - 08/02/2002

    mapBasic - 6/25/98

    mapserver - 10/12/2001

    Mason - 05/30/2000

    MathML - 11/3/98

    MATLAB 5 - 01/21/99

    MATLAB 6 - 10/12/2001

    MAXScript - 12/01/2000

    Maya Embedded Language (MEL) Script - 10/12/2001

    ME10 Macro Language - 10/12/2001

    MessageBuilder - 05/30/2000

    Microsoft Resource Files - 08/02/2002

    MicroStation Basic - 04/14/99

    Mill G Code - 04/14/99

    MINC DSL - 11/17/97

    Miva - 05/30/2000

    Modelica - 10/12/2001

    Modula 2 - 05/30/2000

    Modula 3 - 03/28/2000

    MOF - 10/12/2001

    Motive maps - 04/14/99

    Motorola DSP56000 - 11/17/97

    MRTG Config - 10/12/2001

    MSSQL 7 - 10/26/98

    MSSQL 2000 - 08/02/2002

    Mud Master Script - 05/30/2000

    Multibase SQL - 10/12/2001

    Mumps - 01/21/99

    MySQL - 03/28/2000

    Navision - 08/02/2002

    NC Files - 08/24/99

    NC Siemens 840D - 08/02/2002

    netCDF CDL - 11/17/97

    Neuron (MC3150,3120) Chip Language - 04/14/99

    Notes Formula Language - 03/28/2000

    NQC - 08/02/2002

    NSIS Installer - 08/02/2002

    NT Commands - 03/28/2000

    OCAML

    OEM Setup - NT INF file language - 10/26/98

    Omnimark - 08/24/99

    OpenROAD - 08/24/99

    OPL - 03/02/99

    Oracle SQL - 10/12/2001

    Palm Pilot Resource Script - 12/01/2000

    Paradox

    Pascal - 10/12/2001

    Passport - 11/3/98

    Patrol Scripting - 03/28/2000

    Pearl - 6/25/98

    PeopleSoft SQR - 12/01/2000

    Perl - 03/02/99

    Perl/CGI - 10/12/2001

    Perl/Tk - 08/02/2002

    PHP - 12/01/2000

    PHP3 - 03/28/2000

    PHP4 - 10/12/2001

    Pick Basic - 08/02/2002

    Pixar's Renderman Interface - 04/14/99

    Pixar's Renderman Shader - 04/14/99

    Pixel Shader 1.4 - 12/31/2001

    PL/I - 05/30/2000

    PLM - 05/30/2000

    PL/SQL - 10/12/2001

    PostScript - 08/24/99

    PovRay - 10/12/2001

    PowerBasic - 08/24/99

    PowerBuilder 7 - 03/28/2000

    PowerTerm - 10/12/2001

    Progress 8.3 - 11/3/98

    Progress 9.1 - 10/12/2001

    ProvideX - NEW - 09/25/2002

    Python - 05/30/2000

    Python 2.0 - 10/12/2001

    QBasic - 03/28/2000

    QBasic 7.1- 08/02/2002

    Quake Configuration - 03/02/99

    R - NEW - 09/25/2002

    Rapid Q - 08/02/2002

    RealPix - 11/3/98

    RealText - 11/3/98

    REBOL - 10/12/2001

    REXX - 03/28/2000

    RTF - 05/30/2000

    Ruby - 12/31/2001

    S/S+ - 01/21/99

    SACS IV - 03/28/2000

    SAP - ABAP/4 - 12/01/2000

    SAS - NEW - 09/25/2002

    Scenix - 05/30/2000

    Schema - 10/12/2001

    Scheme - 08/24/99

    SearchScript - 03/28/2000

    SDL-PR - 10/12/2001

    SGML - 08/24/99

    Simulink - 12/31/2001

    Sisctus Prolog - 10/12/2001

    Small - 12/31/2001

    SmartGEN Template - 08/02/2002

    SMIL - 11/3/98

    SpamWeasel - NEW - 09/25/2002

    Spin - 03/28/2000

    SQL/SQC - 08/02/2002

    SQL Server Manager - 10/12/2001

    SQL2000 - NEW - 09/25/2002

    SQR - 03/28/2000

    Stata 7 - 10/12/2001

    Sybase 11.x SQL - 04/14/99

    System Policies - 03/02/99

    Tcl/tk - 10/12/2001

    Teradata SQL - 12/01/2000

    Tivoli - 10/12/2001

    Transact SQL - 6/25/98

    Turbo C - 08/02/2002

    Turbo Pascal- 03/02/99

    UC - 08/02/2002

    UC4 - NEW - 09/25/2002

    UEMacro - 12/01/2000

    UG/APT Source - 05/30/2000

    UniBasic 5.2 - 08/02/2002

    Unidata - 10/12/2001

    Uniface 6 - 03/28/2000

    Uniface 7.1 - 03/28/2000

    Uniface 7.2 - 03/28/2000

    Unisys Linc LDL - 08/02/2002

    Universal Basic - 08/02/2002

    UNIX Shell - 10/12/2001

    VB - 08/24/99

    VB.Net - 12/01/2000

    VBScript - 12/01/2000

    Velocity (Jakarta) - 12/31/2001

    Verify- 03/02/99

    Verilog - 5/5/98

    Verity Style - 5/5/98

    Verity Topics

    Vertex Shader 1.1 - 12/31/2001

    VHDL - 08/24/99

    VHDL 9.3- 08/02/2002

    VircScript - 2/28/98

    Visual Dialog Script - 03/02/99

    Visual Objects - 10/12/2001

    Visual Pro 5 Basic - 10/12/2001

    Voice XML - 10/12/2001

    VOS PL/1 - 08/24/99

    VRML - 8/21/98

    VRML97 - 10/12/2001

    VTML - 03/02/99

    WAP - 12/01/2000

    WAPScript - 12/01/2000

    WDL 3.9 - 10/26/98

    WIL - 03/02/99

    WinBatch - 10/12/2001

    WinRexx - 03/28/2000

    WML - 05/30/2000

    WML Script - 10/12/2001

    Wordfile Editing - 08/02/2002

    XBasic - 10/12/2001

    XHTML 1.0 - 12/01/2000

    XHTML Basic - Mobile Apps - 12/01/2000

    XHTML 1.1 - Modular HTML - 12/01/2000

    XML - 03/28/2000

    XSL - 12/01/2000

    Zillions of Games - 10/12/2001

    zMUD Script - 05/30/2000

    Back to Top

    Tag Lists

    README.TXT - Adding / Modifying Tag Lists - 10/26/98

    ASP Tags - 10/12/2001

    CFML Tags - Cold Fusion 4.5 - 10/12/2001

    C# Tags - 10/12/2001

    EScript Tags - 12/01/2000

    HDML Tags - Handheld Device Markup Tags - 10/26/98

    HTML Tags - 10/26/98

    HTML Upper ASCII Tags - 10/26/98

    IMFL Tags - Real Pix Markup Tags - 10/26/98

    LaTeX Tags - 10/12/2001

    MathML Tags - 03/28/2000

    Miva Tags - 12/01/2000

    Perl Scripting Tags - 03/02/99

    RTF Tags - 12/01/2000

    SMIL Tags - Synchronized Media Integrated Language - 10/26/98

    VBS Tags - 08/02/2002

    WinBatch Tags - 10/12/2001

    WML Tags - 12/01/2000

    XML Tags - 10/26/98

    XSL Tags - 10/12/2001

    ALL TAGS IN ONE FILE

    Back to Top

    Macros

    C Indent Macro by Oliver Tscherwitschke - 12/01/2000

    HTML Strip Macros by Gabe Anguiano - 08/24/99

    HTML Macros by D. Richmond - 06/19/2000

    HTML Macros by S. Bellone - 6/12/97

    Misc Macros by R. Dotson - 6/12/97

    Misc Macros by John Goodman - 10/26/98

    Spanish Macro by David Dodds - 01/15/2001

    Back to Top

    AutoComplete Files

    Java AutoComplete - 05/30/2000

    C# AutoComplete - 10/12/2001

    Perl AutoComplete - 10/12/2001

    PHP4 AutoComplete - 08/02/2002

    Back to Top

    【 在 nuaazyd (求  稳。..>>) 的大作中提到: 】

    : 谢谢!

    2002-11-02
  • 大家觉得有没有必要建立一个常用的元件库

    这里几乎每天都可以看到找元件库的贴子。

    大家觉得有没有必要把我们现在常用的元件(PCB和SCH)而

    protel中(或者其他的软件)没有的。自己做出来的库,整理一下,

    放到ftp上共享。

    我曾经在北航号召过,但是,需要的人多,愿意把自己的库上传的少。

    结果到头来,也没有几个库:(

    这样做,可能有的时候,会方便大家,但是,我也知道,有的时候,别人

    的库,自己拿过来用,容易产生问题,比如:sch的管脚排列和pcb的对不上,

    封装名称太乱。等等问题,这就要求我们需要一个统一的标准。再加上,

    自己用别人的库的时候,仔细的核对一次,应该没有问题的。总的来讲,

    应该还是方便大家的。

    不知道大家有什么意见,欢迎讨论。

    谢谢。

    2002-10-19
  • 关于上面的文章

    本来想找点时间吧我所知道的protel的元件的分类都写出来的,

    供初学者查找方便。先把以前写的文章放到这里吧。等我有空了,

    在总结一下。

    有不对的地方请大家指出来,同时,也欢迎大家补充。

    其实,protel的库挺复杂的,分类也比较混乱。

    如果找不到元件可以使用原理图编辑的Tools->Find Component菜单

    查找元件。其实,有这个时间也就画出来了。呵呵。

    2002-10-11
  • protel99se中的SCH库简述(2)

    protel99se中的SCH库简述(2)

    还有个比较基本的SCH元件库是Protel DOS Schematic Libraries.ddb,顾名思义,用过

    DOS版本的用户比较喜欢这个。好多“古老”的实用的元件都可以在这里找到。

    这个一个比较大的数据库,包含了以下几类元件:

    Protel DOS Schematic 4000 CMOS      4000系列的元件

    Protel DOS Schematic Analog digital 比较古老的AD转换元件,比如:AD574之类的东

    Protel DOS Schematic Comparator     比较器,比如:LM139之类的东东

    Protel DOS Schematic Intel          Intel的处理器和接口芯片8031,8255等

    Protel DOS Schematic Linear         一些线性器件555等

    Protel DOS Schematic Memory Devices 存储器,27系列、62系列等

    Protel DOS Schematic Motorola       Motorola的东东,没用过,不太清楚

    Protel DOS Schematic NEC            NEC的东东,没用过,不太清楚

    Protel DOS Schematic Operational Amplifiers 运放OP07、OP27等

    Protel DOS Schematic Synertek       不清楚是什么东东

    Protel DOS Schematic TTL            74系列的东东

    Protel DOS Schematic Voltage Regulators 线性稳压器LM137等

    Protel DOS Schematic Western Digital    不清楚是什么,还有一些VCC、VSS之类的

    东东

    Protel DOS Schematic Zilog          Z80之类的东东

    个人觉得74系列、4000系列等东西比较常用,其他的各个公司的东东Protel99SE中有专

    门的库,用那个比较好。

    英雄一世,百年以后不过一堆白骨。

    2002-10-11
  • protel99se中的SCH库简述(1)

    在原理图绘制的时候,最常用的库就是Miscellaneous Devices.ddb,里面有最基本的

    电子元件,主要包括:

    插头: 各种管脚的插头(座)连接器等;

    ISA插座  CON AT62,CON EISA62,CON EISAE等

    9、15、25,37针的那种D型插头 串口用的的DB9,并口的DB25等

    电阻:  标准的电阻 RES1,RES2,

    两端口可变电阻 RES3,RES4

    三端口可变电阻 RESISTOR TAPPED,POT1,POT2等

    电容:  无极性电容 CAP

    有极性电容 ELECTRO1,ELECTRO2

    电感:  INDUCTOR……

    晶体:  CRYSTAL

    二极管:DIODE……

    三极管:NPN……,PNP……

    场效应管:MOSFET……

    数码管:DPY_……

    发光二极管:LED

    跳线:  JUMPER

    话筒:  MICROPHONE1,MICROPHONE2

    耳机接口:PHONEJACK……

    开关: 拨码开关 SW DIP……

    按键  SW-PB

    其他开关 SW……

    基本的东西就这么多了,先介绍到这里吧。

    多情自古空余恨,此恨绵绵无绝期。

    2002-10-11
  • 【申请】threewater申请circuit版版副 (转载)

    1、申请版名

    英文版名:circuit

    中文版名:电路设计与调试

    分类目录:学术科学

    2、申请ID

    id:threewater

    email:liumiaoxp@sina.com

    3、申请动机

    我的父亲当年就是从事电子电路方面的工作的。也可以算得上是电子工程

    师吧。可能是从小收到了一种潜移默化的影响。上了大学以后,我就对电子电路很

    感兴趣,而且自学了很多东西。后来,来到了水木的bbs,在这里遇到了很多的高人,

    很是羡慕。逐渐的也想为这里的繁荣尽一份自己的力量。现在,正好有这个机会为

    大家服务。我一定会努力工作的。

    4、申请前六个月内并未担任过本版版主

    5、经营方向

    配合版主,及时这里版面,更新精华区。引到版面的讨论方向。

    6、删文原则

    违反站规、版规,恶意灌水文章,人身攻击及其他无关文章。

    7、与站务和其他版主的协作关系

    配合板主,服从站务,积极做好和站务及版主的协调、联系和分工。

    8、自我简介

    本人是北航的学生,学习机电控制的,刚刚上研一。在北航bbs的电路版,担

    任板斧快要一年了,有一定的版务工作经验。在实验室有机器,上网方便,可以保证

    上网时间。

    2002-10-07
  • Re: 再次提问

    pin

    ——|>|——/\/\/\——|GND

    这就是来电流。pin为高的时候点亮。

    pin

    ——|<|——/\/\/\——|VCC

    这个是灌电流,pin为低的时候点亮。

    通常IO口的拉电流能力比灌电流(吸入电流)能力弱,所以,不一定足以驱动

    LED。一般都是用灌电流。

    怎么能不接限流电阻呢?一定要接,分压用的。大小可以按照LED的电流和压降

    算出来。

    【 在 yuyongcheng (笑里飞刀) 的大作中提到: 】

    : 何为灌.拉电流?LED根本就没有串联电阻.

    2002-08-25
  • Re: 请问怎样把24V转换成5V

    中发就有,不过那个东东有点大,不方便,

    我推荐使用TI的一个东东。

    PT5101

    Vin=9-38V

    Vout=5V

    Iout=1A

    就三个管脚,共地,一个输入,一个输出。

    我这里有他们的广告:三端集成开关稳压器(ISR),该产品……不说了,省得有打广告

    的嫌疑。其实我也没用过,不过看来应该是不错的,开关稳压器,效率应该很高的。

    去力源应该可以买到的。网站www.p8s.com,他们在北京有代理,我知道一个原来在

    太平洋电脑对面叫“海声”的,听偏僻的。现在不知道有没有了。

    祝你好运!

    【 在 zhouxingxing (MCT162&keilC) 的大作中提到: 】

    : 谢谢!哪有卖得呢?模块得体积大么?有具体得型号么?请大侠指点.

    2002-06-11
  • Re: 请问你们提的中发在哪?

    这些东西中发确实都有。

    1、7的插座,在中发一楼西面有一家卖插座的有,在二楼电梯对面也有一家专门

    卖插座的。

    93C46一楼东面那一排问问就应该可以找到的。但是要实现问好价钱,别上当。

    不过PLX9052建议去金龙,金龙公司不太好找

    北三环,大钟寺博物馆对面的桥洞穿到路南

    偏东的一个路口向南走到头。9052应该和93C46一起买的吧。

    EPM7128在中发可以买到便宜的,但是,最好开收据,不好使可以找他换,一般都给

    换的,要是不给换就直接和他说,让他进bbs的奸商目录。呵呵。

    10K10在中发也可以找到,我师兄买过,还算好使。

    PDIUSBD12D在二楼的一家卖仿真器的柜台上写着有卖的,不过我没买过。

    祝你好运!

    【 在 hawkfly (killer) 的大作中提到: 】

    : 另外,知道那些柜台有卖如下芯片?帮我买片子的朋友是女孩,

    : 对这些不清楚

    : 1、CompactFlash卡(数字设备用的存储卡,简称CF卡)的接插件

    : 2、PLX9052(PCI总线控制芯片)

    : 3、NM93CS46L�

    : 4、CPLD EPM7128S

    : 5、CPLD flex10k EPF10K10

    : 6、Philip PDIUSBD12D

    : 7、USB用于电路版的方型插座

    2002-06-01
  • Re: 请问在protel的那个库里可以找到ssop28这个封装形

    在www.protel.com的主页上可以down到一些新的库,里面就有SSO封装的,

    你看看能不能满足要求。

    【 在 VanderVarrt (不会投篮的宫城,毕设中~~~~~) 的大作中提到: 】

    : 不知道啊:)

    2002-05-04
  • Re: 怎么得到一个button的宽和高�

    那就是一个窗口

    CWnd::GetWindowRect

    【 在 hgh (NOTHING) 的大作中提到: 】

    : 怎么得到一个button的高和宽?

    : 类似的,如何得到一个设备环境的大小?

    : 我查遍了所有的函数都没有啊!

    : 望高人指点!谢谢!!

    : �

    2002-01-12