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

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

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

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


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

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭