当前位置:首页 > 单片机 > 单片机
[导读]/******************************************************************************************************************参考:说明:。***********************************************************************

/******************************************************************************************************************
参考:
说明:。
******************************************************************************************************************/

记一下概念的东西,有我自己的认识:

关于ARM THUMB两个状态,我自己的见解就是就像现在的电脑,新买的CPU都是64位的,但是也可以装成32位的系统xp或win7,这就是CPU工作的32位状态。而如果装了64位的win7那CPU就工作在64位了,那么是ARM状态就对应上边例子中的64位的,THUMB对应32位的,这应该是一个过度。我问过u-boot Linux都是一直工作在ARM状态,一直都没有一点THUMB状态,对于那种刚开始学这个,没做过项目的老师们一再讲这个就现在想想没有多大的意义了。对于PC机来说现在是32位到64位的过渡,但是对于已经是后32位的时代的,还要讲16的东西,就该往前看看多说说64位的事了。

关于汇编学习的程序,先说它在哪里用到了吧。在u-boot 或者Linux的起始时用的是汇编,至于为什么这样,可以想想飞机的原理,飞机就是要摆脱轮子的慢,但是在飞机的起飞阶段,飞机还是要用轮子的。这是为什么,因为轮子可以有它的优点。就想上边两种情况要用汇编一样,这样作用就明了了。真正造车的才会深入了解轮子的各种信息(这种就是指芯片公司的AP工程师)。嵌入式学习者就像说相声的各个方面都要学习,京剧,二人转。不过那都叫学唱,同样道理对于嵌入式学习者来说,汇编的作用也就是这了。


关于汇编中的标号就是一个内存地址的别名:

如下图的START其实就是30000000,但是你在跳转的时候还是记忆START是更容易的。



关于DCD和SPACE:


StackUsrDCDUsrStackSpace

AREAMyStacks,DATA,NOINIT,ALIGN=2

UsrStackSpaceSPACEUSR_STACK_LEGTH*4

以上代码等价于C语言中的:


int*p=malloc(USR_STACK_LEGTH*4)

我个人认为汇编因为中不能将这样写,所以就找了UsrStackSpace来作中间量,它只是打酱油的,没有在历史上起到重要作用。



StackUsrDCDSPACEUSR_STACK_LEGTH*4

也可以这么说,如果代码仅有上边的,那么:StackUsr DCD UsrStackSpace会显得多余了,因为好正力就可以看出直接中UsrStackSpace就可以了。


但是由于UsrStackSpace代表这一块内存的首地址了,我要是以后经常访问尾地址了怎么办,再来一个玩意来存着尾地址。就用StackUsr了。让StackUsr干活还要把它伺候好了,它本身也要占个位置,这就用到了DCD了,DCD给StackUsr找个位置,然后就开始给它任务了。如果把UsrStackSpace交给它,那么StackUsr和UsrStackSpace就一个样了;如果把UsrStackSpace+(USR_STACK_LEGTH-1)*4给它,那么StackUsr指向了这个块的末地址。至于谁会这要求,那就是堆栈了!




关于堆栈,就是栈。我有我的看法,这就好比一个好师傅在拆一个录音机,螺丝大小不一。那么拆的时候一般会将它们按照顺序放着,这么做的目的就是为了一会儿修好了之后再装的时候能一个一个对应着装上去。慢慢引入解释就是说这个师傅把拆下的螺丝都放到了栈中,就是一个司空见惯的一个东西起了一个新名。师傅是靠各个螺丝的物理位置不同来安装的,但是对于计算机来说它是“平面”的,只有先后顺序没有物理位置,只能靠拆下每个螺丝的顺序来区别了,相当于画一个表,有123..顺序,然后将螺丝一一放入对应位置,装的时候就反序一个装上去。这样就不会有错了。说这么一大堆就是一个怕搞错了。

计算机什么时候这样做呢,就是用C语言编程在调用子函数时候,这个时候就相当于这个师傅要拆录音机了。子函数调用完后,就要回来继续运行主函数,这个时候就相当于师傅要装上录音机了。这时候就要看看在调用子函数时有没有做好善后工作了,有没有把主函数的状态保存下来,回来的时候好还原出来当初的状态。放状态的容器就是“栈”,为也还原时不出错,要状态所涉及的所有东西一一按照顺序放到这个容器里,到时候还原的时候再按时一定的顺序取出来,如果两个顺序都定死了,以后就不会出错了。关于制定这两个顺序大家想到了,规定一个这个容器只有一个口.....(关于这个顺序暂时还没有想到通俗的例子)


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

为增进大家对混合集成电路的认识,本文将对混合集成电路的相关内容予以介绍。

关键字: 电路 指数 集成电路

为增进大家对集成电路的认识,本文将对集成电路的种类、应用以及芯片的种类、应用予以介绍。

关键字: 电路 指数 集成电路

为增进大家对集成电路的认识,本文将对集成电路、集成电路和芯片的主要差异予以介绍。

关键字: 电路 指数 集成电路

Mar. 28, 2024 ---- TrendForce集邦咨询表示,除了铠侠(Kioxia)和西部数据(WDC)自今年第一季起提升产能利用率外,其它供应商大致维持低投产策略。尽管第二季NAND Flash采购量较第一...

关键字: SSD NAND Flash 智能手机

为增进大家对监控摄像机的认识,本文将对监控摄像机常见机型以及监控摄像机的维修技巧予以介绍。

关键字: 摄像机 指数 监控摄像机

为增进大家对监控摄像机的认识,本文将对监控摄像机的分类、监控摄像机的维修方法予以介绍。

关键字: 摄像机 指数 监控摄像机

为增进大家对监控摄像机的认识,本文将对监控摄像机的基础配件、监控摄像机的选择方法予以介绍。

关键字: 摄像机 指数 监控摄像机

Mar. 26, 2024 ---- 目前观察DRAM供应商库存虽已降低,但尚未回到健康水位,且在亏损状况逐渐改善的情况下,进一步提高产能利用率。不过,由于今年整体需求展望不佳,加上去年第四季起供应商已大幅度涨价,预期库...

关键字: DRAM AI DDR5

为增进大家对电磁炉的认识,本文将对电磁炉的一些异常予以介绍,并介绍电磁炉的一些使注意事项。

关键字: 电磁炉 指数 温度传感器

为增进大家对电磁炉的认识,本文将介绍如果维修电磁炉,并向大家介绍一些选购电磁炉时常常陷入的误区。

关键字: 电磁炉 指数 电磁灶
关闭
关闭