关键词不能为空

当前您在: 主页 > 英语 >

ARM启动及工作模式切换.

作者:高考题库网
来源:https://www.bjmy2z.cn/gaokao
2021-02-01 23:45
tags:

-

2021年2月1日发(作者:甘蔗的英文)



ARM


启动及工作模式切换



一、原理







如何让嵌入式系统快速稳定地启动 是一个重要问题。嵌入式系统的资源有限,程序通常都是


固化在


ROM


中运行。但在实际应用中,为提高系统的实时性,加快代码的执行速度,系统启 动后程


序往往要被搬移到


RAM


中,因为


RAM


的存取速度要比


ROM


快得多,这样 大大提升系统的性能。启动


程序要完成的任务包括:硬件初始化,系统存储系统的配置, 复制二级中断向量表。




二、启动程序过程



● 系统硬件初始化



系统上电或复位后,程序从位于地址


0x0



Reset


Exception


Vector


处开始执行,因此需要在这里

< br>放置


Bootloader


的第一条指令:


b ResetHandler


,跳转到标号为


ResetHandler


处进行第 一阶段的


硬件初始化,主要内容为:关看门狗定时器,关中断,初始化

< br>PLL


和时钟,初始化存储器系统。执


行完以上程序后 ,系统进行堆栈和存储器的初始化。系统堆栈初始化取决于用户使用了哪些中断,以


及系 统需要处理哪些错误类型。


一般情况下,


管理者堆栈必须设置,


如果使用了


IRQ


中断,



IRQ


栈也必须设置。如果系统使用了外设,则需要设置相关的寄存器,以确定其刷新频 率、总线宽度等信


息。



● 代码段复制到


RAM


中运行



因为嵌入式系统的代码通常都是固化在


ROM


或者


Flash


中,上电后开始运行。由于

< br>ROM



Flash



读取速度相对较慢,这样无疑会降低代码的执行速度和系统的运行效率。为此,需要把系统的代 码复


制到


RAM


中运行。


使用


SDT


链接器


ARMLink


产生的定位信息,



RO


的有效代码和数据段到


RAM


中。


ARMLink


将编译后的程序链接成


ELF


文件。映像文件内部共有三种输出段:


RO


段、


RW


段和


ZI


段。


这三种输出段分别包含了只读代码及包含在代码段中的少量数据、可读写的数据、初始化为

0


的数


据,


ARMLink


同时还产生了这三种输出段的起始和终止定位信息:


Image$$$$RO$$$$Base



Image$$$$RO$$$$Limit



image$$$$RW$$$$Base



Image$$$$Limit



Image$$$$Linit < /p>



Image$$$$ZI$$$$Limit


。 可以


在程序中使用这些定位信息。将


ROM


中的代码和数据搬移到


RAM


中。



● 建立二级中断向量表




ARM


系统中,中断向量表位于


0x000000000

< p>
开始的地址处,意味着无论运行什么样的上层软件,


一旦发生中断,


程序就得到


Flash


存储器中的中断向量 表里去,


降低系统的运行效率。


因此在


RAM



建立自己的二级中断向量表,当中断发生后,程序直 接从


RAM


中取中断向量进入中断子程序。尤其


是在中断频繁发生的系统里,这种方法可以大大提高系统的运行效率。



● MMU 的应用



MMU


是存储器管理单元的缩写,是用来管理虚拟内存系统的器件。


MMU


通常是


CPU


的一部分,本身有



少量存储空间存放从虚拟地址到物理地址的匹配表,此表称作


TLB


(转换旁置缓冲区)。所有数据请


求都 送往


MMU


,由


MMU


决定数据是在


RAM


内还是在大容量 外部存储器设备内。如果数据不在存储空


间内,


MMU


将产生页面错误中断。


MMU


存储器 系统的结构允许对存储器系统的精细控制,大部分的控


制细节由存在存储器中的转换表提 供。



这些表的入口定义了从


1KB< /p>



1MB


的各种存储器区域的属性。


MMU


完 成的两个主要功能是:将虚地址


转换成物理地址,控制存储器存取允许。


MMU


关掉时,虚地址直接输出到物理地址总线。



SDRAM


地址分配






三、启动代码完成的主要功能



1




建立异常中断的入口向量



2




建立中断向量表



3





ARM


每种运行模式设置堆栈



4




初始化


ARM



MPLL


时钟



5




初始化


MMU


(内存管理单元)



6




初始化存储器控制器



7




关闭看门狗、关闭中断



8




判断


IRQ


中断的中断入口



9





RW


段的内容从


flash


拷贝到


SDRAM


,初始化


ZI


段为


0


10




跳转到应用程序(


C


代码)




四、


S3C2410


初始化说明



1


创建中断向量表



中断向量表创建到


SDRAM


高位地址上,主要是因为


SDRAM


的地址位置需要放置执行的映象程序,而


且在


SDRAM


中查找向量表速度会快很多。中断向量表放置时需要字对齐。









ALIGN ;


通过添加补丁字节使当前位置满足一定的对齐方式





















;


可读写的数据段









AREA RamData, DATA, READWRITE


;^=MAP:


定义一个结构化的内存表 (


storage map


)的首地址,地址为


0x33ff8000








^ _ISR_STARTADDRESS 0x33ff8000


HandleReset # 4 #


--

< br>Field


:定义一个结构化内存表中的数据域,该域为


4


个字节




HandleUndef # 4


HandleSWI # 4


HandlePabort # 4


HandleDabort # 4


HandleReserved # 4


HandleIRQ # 4


HandleFIQ # 4


;Don





< br>'













t


use


the


label





< p>












IntVectorTable


















,


;The value of IntVectorTable is different with the address you think it may be.


;IntVectorTable


''''''''''''''''



HandleEINT0 # 4


HandleEINT1 # 4


HandleEINT2 # 4


HandleEINT3 # 4


HandleEINT4_7 # 4


HandleEINT8_23 # 4


HandleRSV6 # 4


HandleBATFLT # 4


HandleTICK # 4


HandleWDT # 4


HandleTIMER0 # 4


HandleTIMER1 # 4


HandleTIMER2 # 4


HandleTIMER3 # 4


HandleTIMER4 # 4


HandleUART2 # 4


HandleLCD # 4


HandleDMA0 # 4


HandleDMA1 # 4


HandleDMA2 # 4


HandleDMA3 # 4


HandleMMC # 4


HandleSPI0 # 4


HandleUART1 # 4


HandleRSV24 # 4



HandleUSBD # 4


HandleUSBH # 4


HandleIIC # 4


HandleUART0 # 4


HandleSPI1 # 4


HandleRTC # 4


HandleADC # 4


2


创建异常中断的入口函数



b ResetHandler


b HandlerUndef handler for Undefined mode


b HandlerSWI ;handler for SWI interrupt


b HandlerPabort handler for PAbort


b HandlerDabort handler for DAbort


b . ;reserved


b HandlerIRQ handler for IRQ interrupt


b HandlerFIQ handler for FIQ interrupt


异常向量的入口函数是由


8


个跳转指令组成的,



8

< p>
个跳转指令需要按照顺序放置到固定的地址上,


地址是

0x00



0x1c


,这


8


个跳转指令是


ARM


汇编指令,所以条指令占


4


个字节的位置。




3


关闭看门狗、关闭中断



ldr r0,=WTCON watch dog disable


ldr r1,=0x0


str r1,[r0]



ldr r0,=INTMSK


ldr r1,=0xffffffff all interrupt disable


str r1,[r0]



ldr r0,=INTSUBMSK


ldr r1,=0x3ff all sub interrupt disable


str r1,[r0]

-


-


-


-


-


-


-


-



本文更新与2021-02-01 23:45,由作者提供,不代表本网站立场,转载请注明出处:https://www.bjmy2z.cn/gaokao/595891.html

ARM启动及工作模式切换.的相关文章

  • 余华爱情经典语录,余华爱情句子

    余华的经典语录——余华《第七天》40、我不怕死,一点都不怕,只怕再也不能看见你——余华《第七天》4可是我再也没遇到一个像福贵这样令我难忘的人了,对自己的经历如此清楚,

    语文
  • 心情低落的图片压抑,心情低落的图片发朋友圈

    心情压抑的图片(心太累没人理解的说说带图片)1、有时候很想找个人倾诉一下,却又不知从何说起,最终是什么也不说,只想快点睡过去,告诉自己,明天就好了。有时候,突然会觉得

    语文
  • 经典古训100句图片大全,古训名言警句

    古代经典励志名言100句译:好的药物味苦但对治病有利;忠言劝诫的话听起来不顺耳却对人的行为有利。3良言一句三冬暖,恶语伤人六月寒。喷泉的高度不会超过它的源头;一个人的事

    语文
  • 关于青春奋斗的名人名言鲁迅,关于青年奋斗的名言鲁迅

    鲁迅名言名句大全励志1、世上本没有路,走的人多了自然便成了路。下面是我整理的鲁迅先生的名言名句大全,希望对你有所帮助!当生存时,还是将遭践踏,将遭删刈,直至于死亡而

    语文
  • 三国群英单机版手游礼包码,三国群英手机单机版攻略

    三国群英传7五神兽洞有什么用那是多一个武将技能。青龙飞升召唤出东方的守护兽,神兽之一的青龙。玄武怒流召唤出北方的守护兽,神兽之一的玄武。白虎傲啸召唤出西方的守护兽,

    语文
  • 不收费的情感挽回专家电话,情感挽回免费咨询

    免费的情感挽回机构(揭秘情感挽回机构骗局)1、牛牛(化名)向上海市公安局金山分局报案,称自己为了挽回与女友的感情,被一家名为“实花教育咨询”的情感咨询机构诈骗4万余元。

    语文