1 禁止MMU,关闭中断,禁止cache;
2 根据硬件设计配制好处理器时钟、DRAM时钟、定时器时钟;
3 根据系统中所用的flash和DRAM芯片容量和电气参数设置它们的起始地址、容量、刷新频率等;
4 将固化在flash芯片中的程序搬移到DRAM内存中;
5 使能cache,使能MMU,跳转到DRAM内存中运行继续初始化,包括根据具体应用以及系统中的硬件配置初始化各个功能模块、安装好异 常中断处理程序、使能中断等;
6 进行操作系统相关初始化;
禁止MMU,关闭中断,禁止cache
通过写系统控制协处理器的寄存器1 的第0 位可以允许和禁止MMU。在复位后这位是0,MMU 被禁止。关闭中断与打开中断中断是一种高效的对话机制,但有时并不想程序运行的过程中中断运行,比如正在打印东西,但程序突然中断了,又让另外一个程序输出打印内容,这样在打印机上就会乱得不得了,同时有两份以上的文件交错地打印在一张纸上。像不可剥夺的资源,就一定要关闭中断,让它占有这个资源。在ARM里,没有像x86那样有清除中断指令CLI。那么在ARM里是怎么样实现关中断和开中断的呢?下面就来看看ARM的关中断和开中断实现。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部0条评论
快来发表一下你的评论吧 !