嵌入式实时操作系统的设计与开发New(三)

news/2025/1/16 5:52:59/

启动流程

当Mini2440从NAND Flash启动时,因为NAND Flash无法作为程序运行的载体,所以S3C2440A芯片通过硬件机制将NAND Flash的开头4KB的内容自动复制到SRAM上,并将这4KB大小的SRAM映射为自身内存的BANK0,将这4KB大小的内容映射到0x00000000开始的地址上,然后处理器从0x00000000地址开始执行。

创建异常向量表
当程序运行发生异常时,程序指针PC会自动跳转到主存最开始地址(0x00000000),这里就是异常向量表的起始地址,然后会通过专门的硬件机制定位到相应的异常向量。
ARM处理器内核一共定义了七种异常:

  1. 复位异常:强制PC的值设为0x0,让CPU从0x0开始取指执行命令,这时CPU运行在ARM状态。
  2. 未定义指令异常:遇到一个无法处理的指令,PC取值为0x4。
  3. 软中断异常:当软中断指令SWI被执行时,软中断异常发生,PC取指为0x8。软中断是用户模式切换到特权模式的唯一途径,软中断会将程序带到管理模式下,这样程序就可以对更多的寄存器,特别是CPSR有了修改的权利。软中断通常用来实现特权模式下的系统调用功能。
  4. 预取指终止异常。当一条指令的预取指片段执行失败(通常为内存读取错误)时,预取指终止异常发生,PC取值为0xC。
  5. 数据终止异常。当在读出数据时发生内存错误,数据终止异常发生。
  6. IRQ中断异常。当CPU接受到外部设备发生的中断请求时,IRQ中断异常发生。IRQ中断异常会在FIQ快速中断时被屏蔽。
  7. FIQ快速中断异常。FIQ快速中断异常是为数据传输与处理提供快速中断通道,FIQ快速中断模式下,ARM提供了更多的专业寄存器,就为中断处理节省了寄存器保护入栈的时间。

快中断的优先级比一般中断高。

NVIC中断与内核中断区别

**NVIC(Nested Vectored Interrupt Controller)是 Cortex-M 系列 MCU 的中断控制器,它能够管理多个中断请求。通常,当外部设备产生一个中断请求时,NVIC 会在优先级高的中断请求和当前正在执行的进程中间产生一个中断,以便按照预定义的优先级处理请求。

内核中断是操作系统的内核中的一种恒定的行为,它是在内核内部完成的。内核中断通常与操作系统的某些特定功能相关联,例如定时器中断、快速进程切换、系统调用等。内核中断请求被处理时,内核会暂停正在执行的进程,并跳转到内核中处理该中断。在内核中处理完中断之后,内核会再次恢复之前暂停的进程。

可以说,NVIC中断和内核中断是完全不同的两个概念。NVIC 是 MCU 中断处理器的一部分,负责处理硬件的中断请求,而内核中断则是操作系统的一部分,负责处理软件相关的中断。两者都是处理中断请求,但处理的对象和处理方式完全不同,而且在不同的层次上运行。**


http://www.ppmy.cn/news/481519.html

相关文章

JavaScript中的延迟防抖和立即执行防抖

标题:JavaScript中的延迟防抖和立即执行防抖 简介: 在JavaScript开发中,防抖函数是一种常用的技术,用于控制事件的触发频率。它可以限制事件处理函数的执行次数,从而提高性能和用户体验。本文将介绍延迟防抖和立即执行…

快速排序(升序)

// 快速排序&#xff0c;升序 void myqsort(int* arr, int left, int right) { if (left > right) { return; } int i left; int j right; int key arr[i]; // 取第一个元素为标兵&#xff0c;作为比较值 while (1) { while (i < right && arr[i] < key…

磨刀不误砍柴工,五款让你事半功倍的软件

有句老话这样讲&#xff0c;工欲善其事&#xff0c;必先利其器&#xff0c;好的工具可以让你工作起来事半功倍。 网页收藏夹——Pocket Pocket是一款用于保存和阅读网页的工具。它可以让你把你感兴趣的网页保存到你的账户中&#xff0c;并提供多种功能和选项来优化你的阅读体…

详解浮点数

目录 1.什么是浮点数 2.举个例子 2.1.十进制转二进制 2.2.规范尾数位 2.3.计算指数位 2.4.拼接结果 3.精度丢失 4.JAVA中的浮点数思考 1.什么是浮点数 在计算机系统的发展过程中&#xff0c;曾经提出过多种方法表示实数&#xff0c;但是到为止使用最广泛的是浮点表示法…

LogicFlow:自定义 bpmn 用户节点(1)

切入正题之前&#xff0c;首先我们先了解下面板上面节点的几个重要属性&#xff0c;如下图&#xff1a; 虽然 logicflow 内置插件里面有用户节点&#xff08;bpmn:userTask&#xff09;&#xff0c;但是你若是想实现下面这种形式&#xff0c;就需要自己重新写个节点了。 上面…

从uCOSii中抠出来的内存管理程序

从uCOSii中抠出来的内存管理程序 1、学习uCOSii的内存管理的原因 操作系统和内存管理是分不开的&#xff0c;每个操作系统都有自己的一套内存管理方法。在实际应用中&#xff0c;我们尽量使用其自带的内存管理。学习和使用uCOSii也有一段时间了&#xff0c;觉得它的内存管理方…

Centos 查看 CPU 核数 和 型号 和 主频

cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c2 Intel(R) Xeon(R) CPU E5-2620 v4 2.10GHz

华南HUANAN X99 8M F E5-2620 v3电脑 Hackintosh 黑苹果efi引导文件

原文来源于黑果魏叔官网&#xff0c;转载需注明出处。