假如小孩吃这口饭太慢,他回复搭档的信息也就慢了,被搭档催,你半响都不回复我?
仅仅她反响快,上一秒钟在考虑夹哪个菜给小孩,下一秒钟考虑给搭档回复什么信息
RTOS的意思是:Real Time Operating System,即实时操作体系,但运用Windows,咱们咱们常常碰到程序卡死、中止的现象,日常日子中,这是能够忍耐的,但是在电梯体系中,你按住开门键时假如没有立刻反响,即便常识慢个一秒钟,也会夹住人,在专用的电子设备中,实时性很重要
函数里用到的全局变量,全局变量需求保存吗?全局变量在内存上,还能保存到哪里去?全局变量无需保存
函数里用到了局部变量,局部变量需求保存吗?局部变量在栈里边,也是在内存里,只需防止栈被损坏即可,局部变量无需保存
运算的中心值需求保存吗?中心值保存在哪里?在CPU寄存器里,另一个线程也要用到CPU寄存器,所以CPU寄存器需求保存
这些问题都涉及到ARM处理器的内部,简略归纳如下,咱们先疏忽各种CPU形式,用户形式等。
CPU内至少应该有数据缓冲寄存器,栈指针类寄存器、程序指针类寄存器、程序情况类寄存器及其他功用寄存器
CPU内数量最多的寄存器是数据缓冲寄存器,姓名用寄存器英文Register的首字母加数字组成,如R0、R1、R2等,不同的CPU其品种不同。
在核算机编程中有全局变量和局部变量的概念。从存储器的视点来看,对一个具有独立功用的完好程序来说,全局变量具有固定的地址,每次读写都是那个地址。而在一个子程序中拓荒的局部变量则不同,用RAM中的哪个地址是不确认的,选用“后进先出”的准则运用一段RAM区域,这段区域被称为栈区。它有一个栈底的地址, 是一开始就确认的,当有数据进栈或许出栈时,地址就会接连改变,否则就放到同一个存储地址中了,CPU需求有个当地保存这个一直在改变的地址,这便是栈指针(SP)寄存器。
核算机的程序存储在存储器中,CPU中有个寄存器指示即将履行的指令在存储器中的方位,这便是程序指针类寄存器。在许多CPU中,它的姓名叫做程序计数器寄存器(PC),它担任告知CPU即将履行的指令在存储器的什么当地。
CPU在进行核算过程中,会呈现比如进位、借位成果为0、溢出等情况,CPU内需求有个当地把他们存下来,以便下一条指令结合这一些情况进行处理,这类寄存器便是程序情况类寄存器,不同的CPU其称号不同,有的叫做标志寄存器,有的叫做程序情况字寄存器。
不同的CPU中,除了具有数据缓冲,栈指针、程序指针、程序运作时的情况寄存器之外、还有表明浮点数运算、中止屏蔽等寄存器。
ARM Cortex-M处理器的寄存器主要有R0-R15及3个特别功用寄存器,如上图所示,其间R0-R12为通用寄存器,R13为仓库指针寄存器(SP)、R14是衔接寄存器,R15为程序计数器(PC),特别功用寄存器有预界说的功用,并且一定要经过专用的指令来访问。