wucongdonglai 于 2011-01-10 13:36:36发表:
9# shenhao0129
数电还真不怎么学单片机,单片机一般都是放在微机原理里面讲的
deepwhite 于 2011-01-10 13:01:37发表:
看代码吧。
wucongdonglai 于 2011-01-10 08:45:45发表:
7# naruto01
这个应用我知道的,位的与或反么!就是具体的对应看不懂啊
wucongdonglai 于 2011-01-10 08:44:05发表:
9# shenhao0129
数电里面没有涉及这个啊,就一些简单的计时器之类的东西啊
wucongdonglai 于 2011-01-10 08:42:51发表:
5# deepwhite
就是看了名字才想不通啊,比如PCI_COMMAND 总共也就16位,冒出这个:
define PCI_COMMAND_VGA_PALETTE 0x20 /* Enable palette snooping */
#define PCI_COMMAND_PARITY 0x40 /* Enable parity checking */
#define PCI_COMMAND_WAIT 0x80 /* Enable address/data stepping */
#define PCI_COMMAND_SERR 0x100 /* Enable SERR */
#define PCI_COMMAND_FAST_BACK 0x200 /* Enable back-to-back writes */
#define PCI_COMMAND_INTX_DISABLE 0x400 /* INTx Emulation Disable */
怎么对应都对应不上啊?所以就纳闷了
naruto01 于 2011-01-07 17:27:21发表:
5# deepwhite
0x04应该表示命令寄存器大小是4个字节吧
naruto01 于 2011-01-07 17:20:24发表:
[i=s] 本帖最后由 naruto01 于 2011-1-7 19:33 编辑 [/i]
应该是对不同的位置位。 不同的位定义有相关的意义,那个功能就是后面注释给出来的啦
0x01 0x02 0x04 .. 转换成二进制,不就很显然了么? 一种方法,好多地方都用到。
如果要开启好几个功能,位或'|'来实现啦
deepwhite 于 2011-01-07 16:30:39发表:
仔细看看 define 定义的这些常量的名字,从名字中也能猜出来了。
deepwhite 于 2011-01-07 16:29:27发表:
[code]
#define PCI_VENDOR_ID 0x00 /* 16 bits */
#define PCI_DEVICE_ID 0x02 /* 16 bits */
#define PCI_COMMAND 0x04 /* 16 bits */
#define PCI_COMMAND_IO 0x1 /* Enable response in I/O space */
#define PCI_COMMAND_MEMORY 0x2 /* Enable response in Memory space */
#define PCI_COMMAND_MASTER 0x4 /* Enable bus mastering */
[/code]后面的 0x1, 0x2, 0x4 等等,是PCI_COMMAND 的 subcode, 也就是详细的解释 PCI_COMMAND 这16个 bit 中的每一个 bit 的定义。
至于后面的 0x200 之类的,应该是一些特定的拓展或者掩码之类的功能。
你没必要完全掌握,用到的时候再查找就可以了。
Linux_zhanzhi 于 2011-01-07 15:19:32发表:
学硬件有啥经典教材不
wucongdonglai 于 2011-01-07 14:53:26发表:
2# shenhao0129
硬件还真没怎么学过,学过数电模电,但是对这个好像没啥用啊