静态变量 类型说明符是static。
静态变量属于静态存储方式,其存储空间为内存中的静态数据区(在 静态存储区内分配存储单元),该区域中的数据在整个程序的运行期间一直占用这些存储空间(在程序整个运行期间都不释放),也可以认为是其内存地址不变,直 到整个程序运行结束(相反,而auto自动变量,即动态局部变量,属于动态存储类别,占动态存储空间,函数调用结束后即释放)。静态变量虽在程序的整个执 行过程中始终存在,但是在它作用域之外不能使用。
文件描述符:
文件描述符理解:简称fd,当应用程序请求内核打开/新建一个文件时,内核会返回一个文件描述符用于对应这个打开/新建的文件,其fd本质上就是一个非负整数,读写文件也是需要使用这个文件描述符来指定待读写的文件的。
进程 + 文件描述符ID确认,因为内核为每个进程都有一份其所属的文件描述符表。应用程序进程拿到的文件描述符ID == 进程文件描述符表的索引,通过索引拿到文件指针,指向系统级文件描述符表的文件偏移量,再通过文件偏移量找到inode指针,最终对应到真实的文件
时钟和信号频率理解:
时钟频率(HZ)与数据传输速率(bit/s)两者是相同的概念。
举例:IIC传输位速率在标准模式下可达100kbit/s,其中100kbit/s 是指1秒钟传输100kbit。1个时钟脉冲只能传输1bit数据。1秒中内要传输100kbit数据,则需要100k个时钟脉冲。每个时钟脉冲的周期 T=1/100 000 = 10us。
方波在1秒钟内的重复变化次数称为信号的“频率”,用F表示;而把信号波形变化一次所需的时间称作“周期”,用T表示,以秒为单位。频率和周期有如下的关系:
F=1/T
因此,如果时钟脉冲周期为10us,即0.00001S 时,对应的时钟脉冲频率计算如下:
F=1/T = 1/0.00001S = 100 000 HZ = 100KZH。
结论:HZ和bit/s是一个相同的概念。时钟周期为1HZ,则传输数据的速率为1bit/s;时钟周期为100KHZ,则传输数据的速率为100kbit/s
带宽100M bit/s 和 时钟频率100MHZ 本质上是一样的,因为一个时钟周期传输1个bit位,也就是说100M HZ ,每秒100* 10^6 个时钟周期,1秒传输100*10^6个bit位,所以本质上是一样的
windows自动关机
win+r
直接输入shutdown -s -t 10800(后面这个10800是秒,两小时是7200)
-s是关闭此计算机,-t是按秒算。
ICode 总线
ICode 中的 I 表示 Instruction,即指令。内核通过ICode 总线读取内部FLASH代码指令来执行程序.。
DCode 总线
DCode 中的 D 表示 Data,即数据,那说明这条总线是用来取数的。因为数据可以被 Dcode 总线和 DMA 总线访问(向flash,SRAM,或外设数据寄存器里面取数据),所以为了避免访问冲突,在取数的时候需要经过一个总线矩阵来仲裁,决定哪个总线在取数,取到的数据可以暂存在Cortex™-M3内核里面的寄存器在进行处理。
系统总线System
系统总线主要是访问外设的寄存器,我们通常说的寄存器编程,即读写寄存器都是通过这根系统总线来完成的。
DMA 总线
DMA 总线与DCode总线一样主要是用来传输数据,但Dcode总线传输数据要占用内核(cpu)的资源,而DMA总线相当于独立于内核cpu但帮助内核cpu传输数据而不用占用内核(cpu)的资源,就是在DMA传输数据的同时内核cpu可以干别的事情比如点亮一个LED灯
总线矩阵
总线矩阵协调内核系统总线和DMA主控总线之间的访问仲裁,仲裁利用轮换算法。因为数据可以被 Dcode 总线和 DMA 总线访问,数据可以是在某个外设的数据寄存器,可以在SRAM,可以在内部的 FLASH。所以为了避免访问冲突,在取数的时候需要经过一个总线矩阵来仲裁,决定哪个总线在取数