前言

这是我自己做的答案,仅供参考 ,欢迎在评论区指正。

一、名词解释(3*5分)

(1)MCU

MCU,即微控制器,以CPU为核心,在片内通过内部总线连接,集成了必要的程序/数据存储器、定时器/计数器、中断控制器及特定的I/O接口与组件,为嵌入式控制系统设计提供一个较为完整的计算系统核心。

(2)上拉电阻

上拉电阻是连接在元件信号引脚和高电压之间的电阻,用于将引脚信号钳位在高电平,或者用来在驱动能力不足时提供电流。

(3)三极管

三极管是一种电流控制电流的双极型器件,输入电阻很小,常用于把微弱电信号放大成幅值较大的电信号,同时也用作无触点的可变电流开关。

(4)ARM架构

ARM架构是一种32位精简指令集处理器架构,具有一个大容量的、统一的寄存器文件;采用加载/存储模式,在寄存器中进行数据处理;指令长度恒定,寻址简单。

(5)CAN

CAN,即控制区域网络。CAN总线是一种用于多主控制的1线或差分2线制串行数据通信协议。CAN协议体系主要包括了CAN的物理层和数据链路层,并可以对通信数据的帧进行位填充、数据块编码、循环冗余检验、优先级判别等处理。

二、判断题

1、不正确。嵌入式计算机系统是指嵌入到其他设备或系统中,以执行特定的任务或功能的专用的计算机系统。手机为满足特定的用户需求设计,具有紧凑性、实时性、低功耗、可靠性等特点,属于嵌入式计算机系统。

2、不正确。嵌入式设备追求紧凑性,并口总线需要多条数据线,占用空间大,不符与嵌入式设备的要求。(并口→串口)

3、正确。ARM芯片支持ARM指令集及其拓展,如Thumb指专集,但不持其他架构的指令集,如X86指令集。

4、正确。最小嵌入式系统硬件不仅包括了嵌入式处理器芯片和片上/片外存储器,还包括电源电路、复位电路和时钟电路。

5、不正确。电路抖动信号出现的原因有开关设备的断开与接通和电磁干扰,虽然电磁干扰造成的抖动是随机出现的,但是前者造成的抖动是可观测和避免的。

(仅供参考!好几个我都比较纠结,感觉后面的展开解释是给我们得分的机会)

三、简答题

1、“看门狗”是指看门狗复位电路。

作用是监控嵌入式系统运行状态,并在故障时向RST(RST)端输出复位信号。

实现:在嵌入式软件中增加具有周期性循环执行能力的"喂狗"操作代码,并在看门狗溢出前向WDI引脚发送脉冲信号,将看门狗计数器清零。故障时"喂狗"代码不再执行,看门狗溢出,产生复位信号。

2、①优化动态功耗:可以通过减少逻辑电压摆幅、减少晶体管尺寸等方式降低动态功耗。

②优化静态功耗:可以通过多阈值电压、晶体管堆叠等方式降低静态功耗。

③开发事件驱动型系统,降低CPU功耗。

四、辨析题

1、有问题。虽然嵌入式系统的性能可能不如通用计算机系统,但这并非通用操作系统不能直接用于嵌入式计算机系统的原因。主要原因是嵌入式芯片的资源有限,需要进行定制和优化。

2、通用操作系统可以通过添加实时特性来满足嵌入式系统的实时要求。如RT-Linux和 Windows的RTX。并且嵌入式操作系统也不一定需要实时性,如μClinux 就不是实时操作系统。

3、μC/OS。抢占式调度算法。(代码没写,因为老师课上主要讲的是RMS、DMS和EDF调度算法,所以写这几个的概率大点,最后确实考的是RMS和EDF的代码。见作业三的答案)

五、分析题

1、位带别名区的每个字(32位)对应位带区的一位。作用是可以使用普通的加载/存储指令来对单一比特进行读写,更有利于硬件I/O密集型的底层程序,化简了跳转的判断,实现多任务中共享资源在任务间的"互锁"访问。例如无位带别名区时需要读取整个寄存器,掩蔽不需要的位,再进行比较跳转,而有位带别名区时只要从对应位带别名区读取状态位再比较并跳转即可。

2、Cortex-M3架构。因为图中命名和地址分配是CM3的典型特征。因为这种架构具有功耗低、性能高、易于使用,可拓展性好等特点。

3、(这题不会,ai了一下)

外设区域的含义和内容: 上图存储空间中的外设区域是为处理器的外设(Peripherals)分配的地址空间。这些外设包括定时器、串行通信接口(如UART、SPI、I2C)、模数转换器(ADC)、数字模拟转换器(DAC)等。外设区域的内容包括外设的寄存器,通过这些寄存器,软件可以控制外设的行为,如配置定时器、发送数据、读取传感器值等。

嵌入式系统如此设定的原因包括:

(1)模块化: 将外设寄存器映射到特定的地址空间,使得外设的控制更加模块化和系统化。
(2)直接访问: 允许处理器直接访问外设寄存器,提高了外设控制的效率。
(3)内存映射I/O: 采用内存映射I/O(Memory-Mapped I/O)的方式,使得外设控制可以通过标准的内存访问指令来实现,简化了编程模型。
(4)灵活性: 通过映射到不同的地址空间,可以灵活地为不同的外设分配地址,支持多种外设的集成。

六、综合题

(1)因为断开电源后寄存器和RAM中的内容会丢失。为了使系统正常运行,需要从ROM中加载初始值。

电阻:延长充电时间,限流。

电容:利用电容两端电压的指数变化特性提供复位信号。

二极管:在Vcc掉电时为电容提供快速放电通道,上电对反向截止。

(2)Boot Loader执行硬件资源初始化、内存映射建立、应用代码/用户代码搬移与启动等操作,还可以由用户对启动参数进行配置和管理。

多阶段启动:

① 预启动阶段:Boot Loader运行做准备的阶段,通常是指片上ROM的执行阶段。在直接从Boot Loader启动的系统中不需要预启动操作。

② 第一启动阶段:Boot Loader执行基本的初始化代码,初始化堆栈、准备RAM 空间并将下一阶段的代码复制到RAM特定位置后,跳转至下一阶段的代码人口点执行。由于第一阶段的代码通常基于汇编语言实现且代码量非常小,适合在空间有限(如SRAM)或速度较慢(如 NOR Flash)的片上存储资源中运行。
③ 第二启动阶段:第二启动阶段的代码在内存中运行,由于不再受到内存容量的限制,因而允许设计更为复杂的功能。常见功能包括:初始化本阶段要用到的硬件设备、检查系统内存的映射、将内核文件和根文件系统映像从Flash复制到RAM的特定位置、设置内核启动参数以及调用内核执行等。通常情况下,第二阶段的代码基于C语言设计,具有良好的可读性和可移植性。

(3)优先级翻转问题。原因是低优先级任务持有高优先级任务所需的临界资源,从而导致高优先级任务被延迟执行。

解决方法:优先级继承。优先级翻转问题发生时,让持有共享资源的低优先级任务获取被阻塞高优先级任务的优先级,以尽快执行并释放共享资源,进而使高优先级任务能够得到快速响应。

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐