嵌入式ARM启动代码的工作
嵌入式ARM启动代码的工作
(1)定义代码的初始入口点:初始入口点是指代码运行时的起始点,它在每个映像文件中是唯一的,也是每个可执行的映像文件 所必须含有的,而且必须位于映像文件的可执行域内。
(2)设置中断向量表,链接到包括复位、未定义指令,软件中断、取指中断、取数中断、IRQ和FIQ等异常或中断的处理程序。
(3)初始化存储系统。
(4)初始化ARM各个模式下的堆栈:根据应用程序使用资源的情况,设置每种或者某些ARM处理器模式下的堆栈区域。
(5)始化关键的I/O设备:用于防止在使能中断时产生不必要的开销。
(6)初始化中断时需要使用的一些变量。
(7)中断使能。
(8)根据情况切换处理器的模式和状态:ARM在运行启动代码时处于特权模式,用户在进入应用程序之前,可以将其切换到用户 模式,也可以进行ARM状态和Thumb状态的切换。
(9)初始化高级程序运行时用到的存储区,例如将RW属性的数据和ZI属性的数据移动到ARM等可以写的储存器,因为这些数据
在程序加载时是保存在ROM等储存介质内的。
(10)进入高级应用程序。
嵌入式ARM启动代码的工作相关推荐
- ARM启动代码中_main 与用户主程序main()的区别
STM32启动代码主要是分配堆栈及设置向量表,然后跳转到__main函数. 跳转具体到代码段部分如下: Reset_Handler PROC EXPORT Reset_Handler [WEAK] I ...
- Linux中main和初启函数,ARM启动代码中_main 与用户主程序main()的区别
//wings: 汇总如下: 1._main是编译系统提供的库函数,main()是用户自己编写的主函数: 2._main主要做了三件事: ①将code/RW搬到ram中: ②初始化ZI数据: ...
- 【嵌入式开发】 Bootloader 详解 ( 代码环境 | ARM 启动流程 | uboot 工作流程 | 架构设计)
作者 : 韩曙亮 博客地址 : http://blog.csdn.net/shulianghan/article/details/42462795 转载请著名出处 相关资源下载 : -- u-boo ...
- 【嵌入式开发】ARM 代码搬移 ( ARM 启动流程 | 代码搬移 起点 终点 | 链接地址 | 汇编代码 )
文章目录 一. ARM 启动流程 1. 各种类型开发板启动流程 ( 1 ) 2440 开发板启动流程简介 ( ① Nand Flash 拷贝 4 KB -> SRAM 垫脚石 | ② PC 指向 ...
- 嵌入式Linux作业二分析u-boot-1.1.6在smdk2410开发板上的启动代码
嵌入式Linux实验 嵌入式Linux作业二 文章目录 嵌入式Linux实验 作业要求 一.作业分析 二.实验步骤 1.下载并解压uboot1.1.6源码 2. 分析该版本下开发板smdk2410的相 ...
- 嵌入式开发板03---看门狗、编写启动代码
看门狗 一般CPU的设计在CPU启动后看门狗默认是工作的,在S5pV210内部的iROM代码(BL0)中,其实已经关过看门狗了.很多CPU内部是没有BL0的因此都要在启动代码的前段自己写代码关闭看门狗 ...
- 嵌入式ARM设计编程(四) ARM启动过程控制
文章和代码已归档至[Github仓库:hardware-tutorial],需要的朋友们自取.或者公众号[AIShareLab]回复 嵌入式 也可获取. 一.实验目的 (1) 掌握建立基本完整的ARM ...
- 嵌入式设备启动过程(ARM )
嵌入式设备启动过程(ARM ) 1.SOC内部IROM固化代码,在上电后,被加载到内部IRAM上运行:(此部分做基本的硬件初始化,判断从TF卡/USB/EMMC哪一个存储设备中启动,硬件上通过拨码开关 ...
- ARM裸机篇---启动代码分析
ARM裸机篇---启动代码分析 先搞清楚启动代码和Bootloader的区别,启动代码是指CPU复位后到进入C语言的main函数之前需要执行的那段汇编代码. 下面的代码先暂且这样吧,没啥注释的,时间关 ...
最新文章
- 【数据结构-查找】3.散列表详解
- step4 . day6 线程与线程的创建
- openwrt 更改 debug 等级(hostapd)
- 在Data Lake Analytics中使用视图 1
- Java提高班(二)深入理解线程池ThreadPool
- VBS 与 VBA 的区别
- html+css笔记1
- win10启动修复_在win10桌面建立高级启动选项快捷方式,修复电脑故障不用愁
- Learun,一款专注于业务,不用写代码的框架
- Linux中格式化(擦除)DVD + RW / DVD-RW磁盘
- 数据库导出换行mysql_数据库导出excel 换行
- 百度百科爬虫爬人物信息
- MCDF中arbiter的轮询机制
- PHP+mysql数据库开发搜索功能:中英文分词+全文检索(MySQL全文检索+中文分词(SCWS))...
- DOS命令 基础命令
- 移动医疗系统护理工作站
- 阿里云 mysql教程_mysql数据库菜鸟教程
- 贝塞尔方程与贝塞尔函数
- python中width是什么意思_python cv2.resize函数high和width注意事项说明
- 了解redis队列原理