为了总结学习,这篇文章有点乱,不怪。
1、GIC 中断控制器
GIC将许多中断源分为三类:
、SPI(共享外设中断),共享中断。顾名思义,这是所有内核共享的最常见的中断。那些外部中断是SPI中断(注意!不是SPI总线中断)。例如按键中断、串行中断等。这些中断的所有内核都可以处理,不限制特定的内核。
PPI(私有外设中断),私有中断。我们说过GIC支持多核,每个核必须有自己独特的中断。这些唯一的中断肯定是要指定的核心处理,所以这些中断被称为私有中断。
SGI(软件生成中断),软件中断。软件触发引起的中断是通过向寄存器GICD_SGIR写数据来触发的,系统会使用SGI中断来完成多个内核之间的通信。
2、Secure Non-Volatile Storage(SNVS)
SNVS的字面意思是安全的非易失性存储。SNVS主要包含一些低功耗外设,包括一个安全实时计数器(RTC)、一个单调计数器和一些通用寄存器。在本章中,我们肯定只使用RTC。芯片断电后,SNVS的外设由电池供电。I.MX6UALPHA开发板上有一个纽扣电池,在主电源关闭后给SNVS供电。
3、I2C接口
I2C是最常用的通信接口,许多传感器会提供I2C接口来与主控制器连接,如陀螺仪、
加速度计、触摸屏等。所以I2C对于嵌入式开发来说是必不可少的。
4、DDR基础知识
DDR的全称是双倍数据速率SDRAM,即双倍速率SDRAM。SDRAM在一个CLK周期中传输一次数据,而DDR在一个CLK周期中传输两次数据,分别在上升沿和下降沿。这个概念叫做预取。描述DDR速度时,一般用MT/S单位,即每秒传输多少兆数据。
DDR结构框图
接下来我们就来介绍一下Micro的DDR3L芯片MT41K256M16的结构框图,这是一款512MB的DDR3L内存芯片。框图如下:
接下来,对上面给出的框架图的每个标签进行简单介绍:
(1)控制线
ODT:片上终端使能,ODT使能和禁止片上终端电阻;
ZQ:输出驱动精确的外部基准引脚应通过一个RZQ电阻连接到VSSQ,通常接地;
复位:芯片复位引脚,低电平有效;
CKE:时钟使能引脚;
A12:A12是地址引脚,也叫BC引脚,还有一个作用。A12将在读取和写入命令期间被采样,以确定是否将执行突发斩波;
CK CK #:时钟信号线。DDR3的时钟线是差分时钟线,所以所有的控制信号和地址信号都会采集在ck的上升沿和CK#的下降沿的交点;
CS#:片选信号,低电平有效;
RAS#:行地址选通信号;
CAS#:列地址选通信号;
WE#:写使能信号。
(2)地址线
A14:0:A0~A14 ~ A14是15条地址线。根据MT41K256M16的框图,有15条行地址线A0~A14和10条列地址线A0~A9,它们是多路复用的。所以这个DDR3L芯片中一个Bank的大小是2 15 * 2 10 * 2=32MB *。
(3)银行选择线
BA2:0:BA0~BA2 ~ Ba2是银行的首选,从2 ^ 3=8,所以总共可以有8家银行。
(4)银行区
八个银行区,DDR3一般有八个银行区。
(5)数据线
DQ 1533600: DQ 0 ~ DQ 15是16条数据线,所以这个DDR3L的宽度是16位。
(6)数据选通引脚
LDQS、LDQS#: LDQS、LDQS#为数据选通引脚,对应低字节DQ0~DQ7,读时输出,写时输入;
UDQS、UDQS#: UDQS、UDQS#为数据选通引脚,对应高字节DQ8~DQ15,读时输出,写时输入。
(7)数据输入屏蔽引脚
LDM/UDM:写入数据输入屏蔽引脚。
3.DDR的一些关键时间参数
注意DDR的一些关键时间参数:
(1)传输速率
比如1066MT/S,1600MT/S等。这是首先要考虑的。该参数决定了DDR的最高数据传输速率。
(2)tRCD参数
tRCD的全称是RAS。
-to-CAS Delay,行寻址到列寻址只之间的延迟。DDR的寻址流程为先进行Bank地址,然后再指定行地址,最后指定列地址,从而确定除最终要寻址的单元,Bank地址和行地址是同时发出的,该命令也叫"行激活",行激活后就发送列地址和具体的操作命令,同时发出,表示列寻址,在行激活到读写命令发出的这段时间时隔就是tRCD,如下:数据手册一般会给出tRCD时间参数,例如MT41K256M16的数据手册中有如下:
(3)CL参数
当列地址发出以后就会触发数据传输,从数据从存储单元到内存芯片IO接口上还需要一段时间,而这段时间就是CL(CAS Latency),也就是列地址选通潜伏期,如下:
(4)AL参数
AL(Additive Latency)参数是为了保证足够的延迟潜伏期,单位为时钟周期,AL+CL组成了RL(Read Latency),加入AL参数以后的读时序如下:
(5)tRC参数
tRC是两个ACTIVE命令,或者ACTIVE命令到REFRESH命令之前的周期,DDR的数据手册会给出该值。
(6)tRAS参数
tRAS是ACTIVE命令到PRECHARGE命令之间的最小时间。
5、使用,配置,网卡信息经常用到的命令
A:ifconfing可查看IP,MAC地址,子网掩码,加“-a”参数则更为详细
例:$ ifconfig
eth0 Link
encap:Ethernet HWaddr 00:1F:C6:C8:FD:2d
inet
addr:192.168.2.166 Bcast:192.168.2.255
Mask:255.255.255.0
inet6 addr:
fe80::21f:c6ff:fec8:fd26/64 Scope:Link
UP
BROADCAST RUNNING MULTICAST MTU:1500
Metric:1
RX
packets:314872865 errors:0 dropped:0 overruns:0 frame:0
TX
packets:393067896 errors:0 dropped:0 overruns:0 carrier:0
collisions:0
txqueuelen:1000
RX
bytes:2945725801 (2.7 GiB) TX bytes:395247405
(376.9 MiB)
Interrupt:233 Base
address:0xe000
lo Link encap:Local Loopback
inet
addr:127.0.0.1 Mask:255.0.0.0
inet6 addr:
::1/128 Scope:Host
UP LOOPBACK
RUNNING MTU:16436 Metric:1
RX
packets:49099 errors:0 dropped:0 overruns:0 frame:0
TX
packets:49099 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX
bytes:2965677 (2.8 MiB) TX bytes:2965677 (2.8
MiB)
B 查看配置文件
$ more
/etc/sysconfig/network-scripts/ifcfg-eth0
# Realtek Semiconductor Co., Ltd. RTL8101E/RTL8102E PCI Express
Fast Ethernet co
ntroller
DEVICE=eth0
BOOTPROTO=static
BROADCAST=192.168.2.255
HWADDR=00:1F:C6:C8:FD:2d
IPADDR=192.168.2.166
NETMASK=255.255.255.0
NETWORK=192.168.2.1
ONBOOT=yes
C 配置网卡信息
1.配置/etc/sysconfig/network-scripts/ifcfg-eth0
2.setup命令(图形化的配置界面很简单)
3.ifconfig eth0 192.168.2.166 netmask 255.255.255.0 up (即时生效)
ifconfig eth0
up
ifconfig eth0
down
D 启动网卡服务
$service network start restart
(重启) stop(关闭)
$ /etc/init.d/network start restart (重启)
stop(关闭)
E 配置dns
修改配置文件vi
/etc/resolv.conf
NAMESERVER
202.102.152.3
NAMESERVER 202.102.134.68
F 查看网卡硬件信息
$dmesg |grep -i eth
r8169 Gigabit Ethernet driver 2.3LK-NAPI loaded
eth0: RTL8102e at 0xf887e000, 00:1f:c6:c8:fd:2D, XID 04a00000 IRQ
233
r8169: eth0: link up
r8169: eth0: link up
eth0: no IPv6 routers present
r8169: eth0: link down
r8169: eth0: link up
6、ipv6地址的分类(关于FE80开头, FEC0开头的IPV6地址等的介绍)
ipv6地址总的来说可分为三大类:单播地址,泛播地址和组播地址 (后面两种网上很多介绍)单播地址还可分为几类:可集聚全球单播地址,链路本地单播地址和站点本地单播地址.见IPV6地址分配表:
这样的分配方案支持可集聚地址、本地用地址和组播地址的直接分配,并有保留给 N S A P地址和I P X地址的空间。
其余的地址空间留给将来用。可用于已有使用的扩展 (如附加可集聚地址等)或者新的用途(如将定位符和标识符分开 )。
地址空间的1 5 %是初始分配的,其余 8 5 %的地址空间留作将来使用
1. 可聚集全球单播地址(简单点理解,这种单播地址就是公网上能用的普通IPV6地址)
全部可集聚全球单播地址定义在 < A G G R >中。设计这样的地址格式为了既支持基于当前供应商的集聚,
又支持被称为交换局的新的集聚类型。其组合使高效的选路集聚可用于直接连接到供应商和连接到交换
局两者的站点上。
站点可以选择连接到两种类型中的任何一种集聚点。I P v 6可集聚全球单播地址格式如下所示:
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:b18e%11 这个就是链接本地地址。这个地址只能对应某一条链路!
后面的%11就是指你的网络interface标识符,如下图标志的. (输入route print后,有一部分显示出下图)