本文为总结学习,有些乱,勿怪 1、GIC中断控制器 GIC将众多的中断源分为分为三类: 、SPI(SharedPeripheralInterrupt),共享中断,顾名思义,所有Core共享的中断,这个是最常见的,那些外部中断都属于SPI中断(注意!不是SPI总线那个中断)。比如按键中断、串口中断等等,这些中断所有的Core都可以处理,不限定特定Core。 、PPI(PrivatePeripheralInterrupt),私有中断,我们说了GIC是支持多核的,每个核肯定有自己独有的中断。这些独有的中断肯定是要指定的核心处理,因此这些中断就叫做私有中断。 、SGI(SoftwaregeneratedInterrupt),软件中断,由软件触发引起的中断,通过向寄存器GICDSGIR写入数据来触发,系统会使用SGI中断来完成多核之间的通信。 2、SecureNonVolatileStorage(SNVS) SNVS直译过来就是安全的非易性存储,SNVS里面主要是一些低功耗的外设,包括一个安全的实时计数器(RTC)、一个单调计数器(monotoniccounter)和一些通用的寄存器,本章我们肯定只使用实时计数器(RTC)。SNVS里面的外设在芯片掉电以后由电池供电继续运行,I。MX6UALPHA开发板上有一个纽扣电池,这个纽扣电池就是在主电源关闭以后为SNVS供电的, 3、I2C接口 I2C是最常用的通信接口,众多的传感器都会提供I2C接口来和主控相连,比如陀螺仪、 加速度计、触摸屏等等。所以I2C是做嵌入式开发必须掌握的。 4、DDR基础知识 DDR的全称为DoubleDataRateSDRAM,也就是双倍速率的SDRAM,SDRAM在一个CLK周期传输一次数据,而DDR在一个CLK周期传输两次数据,分别在上升沿和下降沿各传输一次数据,该概念称为预取,在描述DDR速度的时候一般使用MTS单位,也就是每秒多少兆次数据传输。 DDR结构框图 接下来将以Micro的DDR3L芯片MT41K256M16进行结构框图的介绍,该芯片是一款512MB的DDR3L内存芯片,框图如下所示: 接下来对上面给出的框架图各个标号进行简单介绍: (1)控制线 ODT:片上终端使能,ODT使能和禁止片内终端电阻; ZQ:输出驱动较准的外部参考引脚,应外接一个RZQ电阻到VSSQ,一般接到地; RESET:芯片复位引脚,低电平有效; CKE:时钟使能引脚; A12:A12为地址引脚,也叫做BC引脚,有另外一个功能,A12会在READ和WRITE命令期间被采样,以决定burstchop是否会被执行; CK,CK:时钟信号线,DDR3的时钟线是差分时钟线,所以的控制信号和地址信号都会在CK的上升沿和CK的下降沿交叉处采集; CS:片选信号,低电平有效; RAS:行地址选通信号; CAS:列地址选通信号; WE:写使能信号。 (2)地址线 A〔14:0〕:A0A14为15根地址线,根据MT41K256M16的框图可以知道,有15根行地址线A0A14和10根列地址线A0A9,行地址线和列地址线进行复用,因此该DDR3L芯片中1个Bank的大小为215210232MB264MB,从框图中可以看到,总共有8个Bank,因此该DDR3L的RAM大小为64MB8512MB。 (3)Bank选择线 BA〔2:0〕:BA0BA2为Bank的选择先,由238,因此可以总共有8个Bank。 (4)Bank区域 8个Bank区域,DDR3一般有8个Bank区域。 (5)数据线 DQ〔15:0〕:DQ0DQ15为16根数据线,因此该DDR3L的宽度为16位。 (6)数据选通引脚 LDQS,LDQS:LDQS和LDQS是数据选通引脚,对应低字节DQ0DQ7,读的时候是输出,写的时候为输入; UDQS,UDQS:UDQS和UDQS是数据选通引脚,对应高字节DQ8DQ15,读的时候是输出,写的时候为输入。 (7)数据输入屏蔽引脚 LDMUDM:写数据输入屏蔽引脚。 3、DDR的一些关键时间参数 需要注意DDR的一些关键时间参数: (1)传输速率 例如1066MTS、1600MTS等,这是首先需要考虑的,该参数决定了DDR的最高数据传输速率。 (2)tRCD参数 tRCD的全称为RAStoCASDelay,行寻址到列寻址只之间的延迟。DDR的寻址流程为先进行Bank地址,然后再指定行地址,最后指定列地址,从而确定除最终要寻址的单元,Bank地址和行地址是同时发出的,该命令也叫行激活,行激活后就发送列地址和具体的操作命令,同时发出,表示列寻址,在行激活到读写命令发出的这段时间时隔就是tRCD,如下: 数据手册一般会给出tRCD时间参数,例如MT41K256M16的数据手册中有如下: (3)CL参数 当列地址发出以后就会触发数据传输,从数据从存储单元到内存芯片IO接口上还需要一段时间,而这段时间就是CL(CASLatency),也就是列地址选通潜伏期,如下: (4)AL参数 AL(AdditiveLatency)参数是为了保证足够的延迟潜伏期,单位为时钟周期,ALCL组成了RL(ReadLatency),加入AL参数以后的读时序如下: (5)tRC参数 tRC是两个ACTIVE命令,或者ACTIVE命令到REFRESH命令之前的周期,DDR的数据手册会给出该值。 (6)tRAS参数 tRAS是ACTIVE命令到PRECHARGE命令之间的最小时间。 5、使用,配置,网卡信息经常用到的命令 A:ifconfing可查看IP,MAC地址,子网掩码,加a参数则更为详细 例:ifconfig eth0Link encap:EthernetHWaddr00:1F:C6:C8:FD:2d inet addr:192。168。2。166Bcast:192。168。2。255 Mask:255。255。255。0 inet6addr: fe80::21f:c6ff:fec8:fd2664Scope:Link UP BROADCASTRUNNINGMULTICASTMTU:1500 Metric:1 RX packets:314872865errors:0dropped:0overruns:0frame:0 TX packets:393067896errors:0dropped:0overruns:0carrier:0 collisions:0 txqueuelen:1000 RX bytes:2945725801(2。7GiB)TXbytes:395247405 (376。9MiB) Interrupt:233Base address:0xe000 loLinkencap:LocalLoopback inet addr:127。0。0。1Mask:255。0。0。0 inet6addr: ::1128Scope:Host UPLOOPBACK RUNNINGMTU:16436Metric:1 RX packets:49099errors:0dropped:0overruns:0frame:0 TX packets:49099errors:0dropped:0overruns:0carrier:0 collisions:0txqueuelen:0 RX bytes:2965677(2。8MiB)TXbytes:2965677(2。8 MiB) B查看配置文件 more etcsysconfignetworkscriptsifcfgeth0 RealtekSemiconductorCo。,Ltd。RTL8101ERTL8102EPCIExpress FastEthernetco ntroller DEVICEeth0 BOOTPROTOstatic BROADCAST192。168。2。255 HWADDR00:1F:C6:C8:FD:2d IPADDR192。168。2。166 NETMASK255。255。255。0 NETWORK192。168。2。1 ONBOOTyes C配置网卡信息 1。配置etcsysconfignetworkscriptsifcfgeth0 2。setup命令(图形化的配置界面很简单) 3。ifconfigeth0192。168。2。166netmask255。255。255。0up(即时生效) ifconfigeth0 up ifconfigeth0 down D启动网卡服务 servicenetworkstartrestart (重启)stop(关闭) etcinit。dnetworkstartrestart(重启) stop(关闭) E配置dns 修改配置文件vi etcresolv。conf NAMESERVER 202。102。152。3 NAMESERVER202。102。134。68 F查看网卡硬件信息 dmesggrepieth r8169GigabitEthernetdriver2。3LKNAPIloaded eth0:RTL8102eat0xf887e000,00:1f:c6:c8:fd:2D,XID04a00000IRQ 233hrr8169:eth0:linkup r8169:eth0:linkup eth0:noIPv6routerspresent r8169:eth0:linkdown r8169:eth0:linkup 6、ipv6地址的分类(关于FE80开头,FEC0开头的IPV6地址等的介绍) ipv6地址总的来说可分为三大类:单播地址,泛播地址和组播地址(后面两种网上很多介绍)单播地址还可分为几类:可集聚全球单播地址,链路本地单播地址和站点本地单播地址。见IPV6地址分配表: 这样的分配方案支持可集聚地址、本地用地址和组播地址的直接分配,并有保留给NSAP地址和IPX地址的空间。 其余的地址空间留给将来用。可用于已有使用的扩展(如附加可集聚地址等)或者新的用途(如将定位符和标识符分开)。 地址空间的15是初始分配的,其余85的地址空间留作将来使用 1。可聚集全球单播地址(简单点理解,这种单播地址就是公网上能用的普通IPV6地址) 全部可集聚全球单播地址定义在〔AGGR〕中。设计这样的地址格式为了既支持基于当前供应商的集聚, 又支持被称为交换局的新的集聚类型。其组合使高效的选路集聚可用于直接连接到供应商和连接到交换 局两者的站点上。 站点可以选择连接到两种类型中的任何一种集聚点。IPv6可集聚全球单播地址格式如下所示: 2。本地用IPV6单播地址(包括链路本地单播地址和站点本地单播地址) 2。1链路本地单播地址 规定了链路本地和站点本地两种类型的本地使用单播地址。链路本地地址用在单链路上, 而站点本地地址用在单站点上。 链路本地地址格式表示如下: 注意此地址就是以FE80::x:x:x:x开头的IPV6地址 设计链路本地地址的目的是为了用于诸如自动地址配置、邻居发现或无路由器存在的单链路的寻址。 路由器不能将带有链路本地源地址或目的地址的任何包转发到其他链路上去。 2。2站点本地地址具有下面的地址格式: 16进制表示为:FEC0::X:X:X:X:X,这就是以FEC0开头的IPV6地址的原因了。 站点本地地址的设计目的是为了用于无需全球前缀的站点内部寻址。路由器不应转发站点外具有站点本地源或 目的地址的任何包 (难道是和192。168类的私有地址一样?) 举个例子:我的是教育网,有全球单播IPV6地址(其中一个网络interface的情况,实际中还有很多隧道呀,和虚拟网卡) 2001:250:4000:4000:f80f:6d4c:4310:xxxx就是能在公网上出现的IPV6地址。 看那个本地链接IPV6地址:fe80::f80f:6d4c:4310:b18e11这个就是链接本地地址。这个地址只能对应某一条链路! 后面的11就是指你的网络interface标识符,如下图标志的。(输入routeprint后,有一部分显示出下图)