实验2 启动程序设计
来源:互联网 发布:淘宝的安逸猿 编辑:程序博客网 时间:2024/06/08 15:12
实验目的及要求:
1、熟悉启动引导程序的功能;
2、了解S3C2440芯片的体系结构,具体是其异常机制,堆栈控制;
3、熟悉并掌握异常向量表的设置;
4、熟悉并掌握堆栈指针的设置;
5、熟悉并掌握应用程序主函数的引导;
6、了解操作系统(如:Linux)的引导。
实验情况及实验结果(包括自己编写的源程序,不够可以附页)
1、 关于验证初始化函数InitStacks中,不将程序最后设置为管理模式下,是否能启动成功?
orr r1,r0,#SVCMODE|NOINT
msr cpsr_cxsf,r1 ;SVCMode
ldr sp,=SVCStack
实验结果:
启动失败,因为启动程序在设置中断向量以及其他状态是使用的是管理模式下的LR,如果在初始化函数中不返回到管理状态下,程序就不能返回到正确的LR地址。LR分为两种状态:用户模式下的LR和管理模式下的LR
2、 关于改变启始函数main是否影响程序运行
IMPORT Main
BL Main
B
实验结果:
程序正常运行,这里改变启动程序的函数名和main函数的程序名,只要保证两者相同,函数可以正常运行,这里是启动程序决定了程序的函数名,而不是程序决定了启动程序的函数名,我们日常之所以用main也是因为启动程序默认定义的是main。
3、 关于验证中断向量表
实验结果:
程序正常执行,因为本程序并不能产生中断,所以将其他中断删除后,程序依旧可以正常执行,如果本程序有中断产生,则删除其中的一条,程序产生中断后,启动函数不能将其引导至正确的中断处理函数中。
- 实验2 启动程序设计
- Java程序设计实验2
- C程序设计实验2
- 实验2 分支循环程序设计
- c++程序设计实验(2)
- C++程序设计实验报告【5.1.2】
- C++程序设计实验报告《一》(2)
- C++程序设计实验报告 6-2
- C++程序设计实验报告(8-2)
- C++程序设计实验报告(9-2)
- c++程序设计——实验2
- C++实验2—简单程序设计
- Java程序设计 实验3
- c++程序设计实验报告
- VB程序设计实验报告
- Java程序设计 实验4
- Java程序设计 实验5
- 实验9 windows程序设计
- 初识Android ConstraintLayout
- 采用Stanford CoreNLP实现英文单词词形还原
- 五星填数-蓝桥杯决赛
- C++ free与delete区别
- Lynda.com学习体验之Become a Python Programmer
- 实验2 启动程序设计
- lxml 中文乱码解决
- 采用Stanford Parser进行中文语法解析
- android的DrawerLayout使用
- C++中的4种运算符转化以及它们的不同点
- 安卓v7包中的RecyclerView的基本使用
- c++第七次实验
- 数据结构与算法:红黑树的原理分析
- c语言位域