嵌入式作业

嵌入式作业

(1)寄存器的使用与处理器状态和工作模式有关,简述ARM状态下寄存器的组织。

ARM微处理器共有37个32位寄存器,其中31个为通用寄存器,6个为状态寄存器。但是这些寄存器不能被同时访问,具体哪些寄存器是可编程访问的,取决微处理器的工作状态及具体的运行模式。但在任何时候,通用寄存器R14~R0、程序计数器PC、一个或两个状态寄存器都是可访问的。

所有模式下,R0-R7所对应的物理寄存器都是相同的。
访问的物理寄存器取决于当前的处理器模式,或使用规定的名字来访问。
R8-R12各有2个物理寄存器:FIQ模式和非FIQ模式。
R13-R14各有6个物理寄存器,用户模式和系统模式共用,其他5个用于各异常模式。
R13(SP)被用作栈指针,通常在系统初始化时需要对所有模式下的SP指针赋值, CPU会自动切换成相应模式下的值。
R14(LR,链接寄存器)用于保存子程序返回地址或异常返回地址。
R15用作程序计数器(PC),可以被读写

程序状态寄存器包括所有的CPSR和SPSR寄存器

其中 CPSR(当前状态寄存器)在所有的模 式下都是可以读写的。SPSR是CPSR的 备份。二者的格式是一样的

(2)ARM支持哪些异常,优先级如何?

1,快速中断FIQ

2,软中断SWI Software Interrupt

3,一般中断IRQ

4,复位Rese

5,指令未定义 Undefined Instruction

6,指令预取中止 Prefetch Abort

7,数据中止 Data Abort

优先级

1(最高) SVC 复位
2 数据中止
3 FIQ(快速中断请求)
4 IRQ(外部中断请求)
5 abt 预取指令中止
6(最低) und 未定义指令,SWI

(3)ARM处理器异常响 应的过程是怎样的?

  1. 拷贝CPSR寄存器的内容至对应模式下的 SPSR_寄存器_
  2. 将返回地址保存到对应模式下的 LR_寄存器
  3. 对 CPSR 寄存器的一些标志位置位
    如果当前处理器处于Thumb 状态,那么会 转换到 ARM 状态
    处理器模式位
    中断屏蔽位
  4. 将程序计数器(PC)拨到异常向量处
(4)为什么CPU Core能够尽快地响应FIQ中断
  1. FIQ 向量在异常向量表的最后,这样使FIQ处理程序可以直接从FIQ向量处开始,省去了跳转的时间开销;
  2. FIQ 模式下有五个额外的寄存器 (r8_FIQ to r12_FIQ),对于这些寄存器在进入和推迟FIQ时无须保存和恢复,节省了时间;

(5)存储器的大端格式和小端格式?

大端格式:数据的高字节存储在低地址中,而字数据的低字节则存放在高地址中

小端模式:与大端存储格式相反,在小端存储格式中,低地址中存放的是字数据的低字节,高地址存放的是字数据的高字节

(6)0x12

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
XJTU嵌入式作业2要求实现一个简单的温度转换程序。该程序需要输入一个摄氏温度值,并将其转换为华氏温度和开氏温度后输出。 为了完成这个任务,我们首先需要使用C语言编写一个能够进行温度转换的函数。该函数可以接受用户输入的摄氏温度值,并根据转换公式将其转换为华氏温度和开氏温度。 转换摄氏温度到华氏温度的公式如下: 华氏温度 = 摄氏温度 * 9/5 + 32 转换摄氏温度到开氏温度的公式如下: 开氏温度 = 摄氏温度 + 273.15 在程序中,我们可以使用scanf函数来接受用户输入的摄氏温度值。然后,我们可以声明并初始化华氏温度和开氏温度的变量,并根据转换公式进行计算。 最后,我们可以使用printf函数来输出转换后的华氏温度和开氏温度值。 除了实现温度转换的函数外,我们还可以编写一个主函数来测试该函数的正确性。在主函数中,我们可以调用温度转换函数,并将用户输入的摄氏温度值作为参数传递给该函数。 在运行程序时,用户将被要求输入一个摄氏温度值。程序将自动将该温度转换为华氏温度和开氏温度,并将转换结果输出到屏幕上。 总而言之,XJTU嵌入式作业2要求我们通过C语言编写一个温度转换程序。该程序可以将摄氏温度转换为华氏温度和开氏温度,并将转换结果输出到屏幕上。该程序包括一个温度转换函数和一个主函数来测试该函数的正确性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值