计算机三级嵌入式知识总结(一)

一、ARM的七种异常类型

1、复位异常RESET

“复位异常RESET”通常是指在电子设备或系统中发生了一个意外的复位或重启。这可能是由于硬件故障、软件问题或其他未知的原因引起的。当设备经历复位异常时,它可能会丢失正在进行的操作或设置,导致数据丢失或系统功能受损。

在计算机领域,RESET指的是将系统恢复到初始状态或默认设置。而“复位异常RESET”则意味着这种重置发生在没有明显触发的情况下,可能是由于错误、故障或异常引起的。

2、快速中断请求异常FLQ

“快速中断请求异常(Fast Local Interrupt Request Exception,FLQ)”是一个相对较少见的计算机错误或异常类型。在一些特定的计算机架构或操作系统环境中,可能会出现这样的异常。

在一般情况下,快速中断请求是指在处理器需要立即响应某一事件时的一种机制。当处理器接收到快速中断请求时,它会迅速中断当前的执行流程,转而处理请求的事件。而当出现快速中断请求异常时,则意味着在处理这种请求的过程中发生了异常情况,可能是由硬件故障、中断控制器问题或其他系统错误导致的。

对于普通用户来说,遇到FLQ异常的情况可能较为罕见,一般需要由系统管理员或相关技术人员进行诊断和处理。如果你遇到了这个问题,建议向系统管理员或相关技术支持寻求帮助,以便针对具体情况进行详细的排查和处理。

3、数据访问中止异常DABT

数据访问中止异常(Data Abort,简称DABT)是一种ARM处理器的异常类型之一。当程序执行期间发生无效的数据访问,例如尝试访问未映射内存、访问权限不足或者非法的地址等情况时,处理器会触发数据访问中止异常。

当发生数据访问中止异常时,处理器会暂停当前执行的指令,并将控制转移到相应的异常处理程序中。异常处理程序可以对异常进行处理,例如修复错误、恢复现场或者终止程序等。然后,处理器根据异常处理程序的指示来决定下一步的执行流程。

数据访问中止异常是一种常见的异常类型,经常由程序错误、内存错误或者操作系统异常引发。在程序开发和调试过程中,处理好数据访问中止异常可以帮助我们更好地定位和解决问题。

4、一般中断请求IRQ

中断请求(Interrupt Request,简称IRQ)是一种信号,用于通知处理器有一个外部设备请求处理器的注意或响应。外部设备通过发送IRQ信号来请求处理器处理特定的事件或操作。处理器在接收到IRQ信号后,会终止当前的任务,转而处理中断请求,并执行相应的中断服务程序。

IRQ信号可以由外部设备产生,比如输入/输出设备、定时器、键盘等。当外部设备需要处理器的服务时,它会发送一个IRQ信号给处理器,以请求处理器为其提供服务。处理器接收到IRQ信号后,会根据预先设定的优先级来决定是否响应该中断请求,并执行相应的中断服务程序。

中断请求(IRQ)是一种异步事件,与处理器的执行无关。它允许外部设备在任何时间点发送中断请求,并引起处理器的响应。中断请求的使用可以提高系统的可响应性和效率,让处理器能够及时响应外部设备的需求,处理各种事件和异常情况。

5、预取指令异常PABT

"预取指令异常PABT"通常是指在处理器尝试执行指令预取时发生的异常。这种异常可能是由于内存访问错误、指令损坏或其他底层硬件或软件问题引起的。

要解决这个问题,可以采取以下步骤:

  1. 检查内存:确保内存模块没有故障,并且内存地址没有冲突或错误。
  2. 调试程序:检查应用程序或操作系统内部是否存在指令错误或异常。
  3. 更新软件:确保使用的操作系统、驱动程序和应用程序都是最新版本,以确保已知的问题得到修复。
  4. 测试硬件:通过运行内存测试程序或其他硬件诊断工具来检查处理器、内存和其他关键硬件组件是否正常。

如果以上方法都未能解决问题,可能需要联系硬件或软件供应商进行进一步的支持和故障排除。

6、软件中断异常SWI

软件中断异常(Software Interrupt Exception,SWI)是一种特殊的处理器异常,它通常由软件调用操作系统提供的服务或执行特权指令而触发。

在ARM架构的处理器中,SWI通常用于实现操作系统的系统调用。当用户态程序需要执行特权操作(例如文件操作、进程管理等)时,它会发出一个软件中断请求,操作系统会捕获这个请求,并根据请求的类型执行相应的特权操作。这样可以确保用户程序无法直接执行特权指令,从而提高系统的安全性和稳定性。

在其他体系结构中,类似的概念可能被称为syscall、trap等。总的来说,软件中断异常是一种允许用户程序请求操作系统服务的机制,它有助于确保操作系统能够以控制和安全的方式提供各种功能。

7、未定义异常UND。

"未定义异常"(Undefined Instruction Exception,UND)是在处理器尝试执行未定义的指令时触发的异常。这通常发生在处理器遇到不支持的或者无法识别的指令时。

引起未定义异常的原因可能包括:

  1. 执行针对当前处理器架构不支持的指令。
  2. 指令损坏或错误,导致处理器无法正确解码和执行指令。
  3. 软件错误,例如在特定处理器架构上编写的代码中出现了不兼容的指令。

要解决未定义异常,可以考虑以下几点:

  1. 检查指令:确认程序代码是否包含针对当前处理器架构不支持的指令,并对其进行修正。
  2. 调试程序:检查软件代码是否存在指令损坏或错误的情况,确保指令的正确性和兼容性。
  3. 更新软件:确保使用的编译器、操作系统和库文件版本符合处理器架构的要求,避免产生不兼容的指令。
  4. 确认架构:如果是在跨平台开发中出现问题,需要确认代码是否适配了目标处理器的架构。

在处理未定义异常时,通常需要通过调试工具、日志记录或其他故障排除方法来确定具体引起异常的原因,并对软件或者硬件进行相应的修正。

注:每个异常中断向量占据4个字节

二、ARM处理器的7种工作模式

ARM处理器的7种工作模式,取决于当前程序状态寄存器CPSR的低5位值

1、 用户模USR: ARM处理器正常的程序执行状态,如果没有异常发生不能改变工作模式;

在用户模式下,处理器以最低的权限级别运行,只能执行受限制的指令。这是用于执行普通用户应用程序的默认模式。

2、系统模式SYS: 运行具有特权的操作系统任务;

系统模式用于支持操作系统内核的功能和特权级别切换。在系统模式下,处理器可以执行特权指令和管理系统资源。

3、快中断模式FIQ: 支持高速数据传输或通道处理;

FIQ模式用于快速处理高优先级的中断请求。当发生特别紧急的中断情况时,处理器可以切换到FIQ模式,以便更快地响应这些中断请求。在FIQ模式下,处理器可以访问专用的寄存器集,以提高中断处理的效率。

4、管理模式SVC: 操作系统保护模式。

在SVC模式下,处理器运行在特权级别,用于执行操作系统内核的特权指令和管理系统资源。当用户程序需要执行特权指令或者请求操作系统提供服务时,可以通过软中断(SVC指令)切换到SVC模式,以便操作系统能够响应并处理这些请求。处理器在SVC模式下具有较高的权限,可以执行特权指令、访问系统资源,并管理操作系统所需的各种任务。

5、数据访问终止模式ABT: 当数据或指令预取终止时进入该模式,可用于虚拟内存及存储保护。

数据访问终止模式(ABT,Abort Mode)是ARM处理器的一种工作模式,用于处理内存访问异常。当发生内存相关的错误,比如数据访问失败或者无效的内存操作时,处理器会切换到ABT模式以处理这些异常情况。在ABT模式下,处理器会执行特定的异常处理程序,来处理内存相关的错误和异常情况,以确保系统能够正确地响应并处理这些问题。ABT模式的存在可以提高系统的稳定性和健壮性,确保内存访问异常不会导致系统的崩溃或数据的损坏。

6、中断模式IRQ: 用于通常的中断处理

中断模式IRQ是ARM处理器的一种工作模式,用于处理一般性的中断请求。当外部设备或者其他处理器核发送中断请求时,处理器可以切换到IRQ模式以响应并处理这些中断请求。在IRQ模式下,处理器会执行预先定义的中断服务程序(ISR,Interrupt Service Routine),来处理特定的中断事件。

IRQ模式允许处理器在正常执行流程被中断的情况下,及时地响应外部设备的请求,处理特定的事件或者执行特定的任务。这有助于提高系统的实时性和响应速度,使处理器能够有效地处理来自外部设备的中断请求,并及时做出响应。

7、未定义指令终止模式UND:  用于支持硬件协处理器的软件仿真(浮点、微量运算)

在ARM处理器中,未定义指令终止模式(UND,Undefined Instruction Mode)是一种处理器工作模式,用于处理当处理器执行遇到未定义的指令时的异常情况。

当处理器在执行过程中遇到无法识别或者未定义的指令时,会触发未定义指令异常,然后切换到UND模式。在UND模式下,处理器会执行相应的异常处理程序,通常是由操作系统或者其他软件定义的处理程序,来处理这种未定义指令的异常情况。

UND模式的存在可以确保处理器能够妥善地处理未定义指令的异常情况,防止这种异常导致系统崩溃或者数据损坏。通过合适的异常处理程序,系统可以对未定义指令进行适当的处理,以保证系统的稳定性和可靠性。

三、 实时系统7个特征

  • 具有异步和中断处理能力

  • 任务切换时间和中断延迟时间确定

  • 优先级中断和调度

  • 抢占式调度

  • 内存锁定

  • 连续文件

  • 同步

  1. 及时性(Timeliness):实时系统需要在规定的时间内产生反应,即使在高负载下也要保证任务的及时完成。

  2. 可预测性(Predictability):实时系统需要能够在一定时间范围内,准确地预测任务执行所需的时间,以便满足对响应时间的要求。

  3. 可靠性(Reliability):实时系统需要以高可靠性运行,不仅要求系统本身具有稳定性,还要求系统能够正确处理各种异常情况。

  4. 实时调度(Real-time Scheduling):实时系统需要采用合适的调度算法,确保任务按照其优先级和截止时间进行有效调度,以满足实时性要求。

  5. 并发性(Concurrency):实时系统通常需要处理多个任务并发执行的情况,因此需要支持并发性,同时保证任务间的相互独立性和资源的合理分配。

  6. 硬实时和软实时(Hard Real-time and Soft Real-time):硬实时系统对任务的响应时间有严格要求,而软实时系统对任务的响应时间有一定的容忍度。

  7. 资源管理(Resource Management):实时系统需要合理管理系统资源,包括处理器时间、内存、I/O等,以保证任务的及时完成和系统的稳定性。

四、三类实时系统

  • 强实时系统,响应时间在毫秒级和微秒级

  • 普通实时系统,响应时间在秒级

  • 弱实时系统,响应时间在数十秒级。

五、Bootloader主要完成的工作步骤

  • 初始化处理器及外设的硬件资源配置

  • 建立内存空间的映射关系,使能mmu,将系统的外存和内存地址激活,为最终调用操作系统内核做好准备

  • 装载操作系统映像到内存

  • 对flash存储器编程

  • 运行操作系统

  • 传递系统启动参数

  • 命令行解析和输入输出控制。

Bootloader是系统启动时运行的程序,其主要工作步骤包括:

  1. 硬件初始化:Bootloader首先需要对硬件进行初始化,包括处理器、内存、外设等硬件的初始化工作,以便系统能够正常运行。

  2. 加载引导内核:Bootloader从存储介质(如闪存、硬盘等)中加载操作系统的内核镜像到内存中,准备将控制权交给操作系统。

  3. 进入保护模式:在一些架构下,Bootloader需要将处理器从实模式切换到保护模式,以便能够充分利用操作系统的功能和提供更好的内存保护机制。

  4. 系统配置:Bootloader可能需要对系统进行一些配置,例如设置启动参数、初始化设备等,以便系统正常启动。

  5. 启动内核:最后,Bootloader将控制权转交给操作系统内核,使其开始执行并接管系统的管理和控制。

总的来说,Bootloader的主要工作是初始化硬件环境,加载内核镜像,并启动操作系统,是系统启动过程中至关重要的一部分。

六、 Linux内核的5个子系统

  • 进程调度SCHED

  • 内存管理MM

  • 虚拟文件系统VFS 

  • 网络接口NET

  • 进程间通信IPC

七、μC/OS-II系统提供的5个基本功能

  • 任务管理

  • 任务间通信与同步

  • 任务调度

  • 时间管理

  • 内存管理

八、其他知识

1、 单内核:Unix、Linux、Wince、Mac、OS、Andriod、Dos

2、 微内核:symbian、Vxworks、QNX、μC/OS-II、IOS

3、 实时操作系统RTOS的3个指标:响应时间、吞吐量和生存时间。时间的指标是: 中断延迟时间和任务切换时间。

4、 模拟信号数字化步骤:扫描、分色、取样、量化。

5、 μC/OS-II的5种状态:休眠态、就绪态、运行态、挂起态、被中断态

6、 引导加载程序boot主要完成:内存加电自检,外设存在自检,内存地址管理映射,初始化外围设备,内存寻址定位,加载和启动操作系统

7、 嵌入式最最小系统一般包括嵌入式处理器、时钟电路、电源电路、复位电路、存储器和调试测试接口。

8、 通用输入/输出接口GPIO 具有三态:0态、1态、高阻态

9、 S3C2410内部的电源管理模块四种模式:正常模式、慢速模式、休眠模式、掉电模式

10、 任务间通信机制有信号量 消息邮箱、消息队列、互斥信号量、时间标志组。

11、 μC/OS-II中OSInit()函数最先建立最初的任务就绪表,然后建立4个空白的数据链表:任务控制块链表、事件控制块、标志链表和内存控制块链表。

12、 异步收发器UART:发送器、接收器、控制单元、波特率发生器

13、 OS装载方式:串口、以太网、USB接口装载

14、 IOS系统结构:核心操作系统、核心服务层、媒体层、触摸框架层。

15、 μC/OS-II四层软件结构:依次为软件层、应用程序接口层、内核层、设备驱动层

16、 嵌入式Linux操作系统3大子系统:用户进程 OS服务组件 Linux内核

17、 CAN总线数据帧的7个域,帧起始,仲裁域,控制域,数据域,CRC域,应答域,帧结尾。

18、 μC/OS-II的嵌入式系统软件部分有4层组成,从上而下分别是:应用软件层,应用程序接口层,μC/OS-II内核层,设备驱动程序层。

19、 linux内核的主要作用:进程管理和调度、内存管理、文件管理、网络接口、进程间通信;

20、 andriod从低层到高层:内核,系统运行库,应用程序框架,应用

21、 计算机局域网传输数据:发送设备MAC地址、接收设备MAC地址、控制信息、有效载荷(传输的数据)、校验信息。

22、 生成可执行文件4阶段:预处理 、编译、汇编、连接。

23、 SPI的4条信号线:

  • 串行时钟线SCK

  • 主机输入/从机输出数据线MISO

  • 主机输出/从机输入MOSI

  • 低电平有效的从机选择线SSEL

24、 IP核通常分为三种:硬核、固核、软核

25、 采用无线方式接入互联网的技术三类:无线局域网接入、GPRS移动电话网接入、3G移动电话网接入;

26、 BSP包括初始化程序、设备驱动程序 、配置文件、引导加载程序

27、 RVDS开发工具套件主要包括:工程管理器IDE、编译连接器RVCT、调试器RVD、指令集仿真器RVISS等。

28、 arm对异常响应过程如下:将CPRS的值保存到将要执行的异常中断对应的各自SPSR中;设置CPSR的相应位;将引起异常指令的下一条地址(断点地址)保存到R14中;给PC强制赋值,转入向量地址,以便执行相应的处理程序。

29、 SOC芯片开发流程:总体设计、逻辑设计、综合和仿真、芯片制造

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小小_扫地僧

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值