- 问题:
- 嵌入式系统与通用计算机的主要区别是什么?
- 解释MCU的基本架构组成部分
- 什么是中断?中断服务程序(ISR)的设计注意事项?
- 轮询与中断驱动的优缺点对比
- GPIO的输入/输出模式有哪些?
- 如何配置时钟树以满足低功耗需求?
- 解释看门狗定时器(WDT)的作用
- 嵌入式系统中常见的存储器类型及区别(ROM/RAM/Flash)
- 什么是DMA?典型应用场景?
- 如何实现嵌入式系统的启动引导(Bootloader)?
- 解释内存对齐(Memory Alignment)的概念
- 什么是位带(Bit-Banding)操作?
- 如何防止嵌入式系统中的堆栈溢出?
- 解释哈佛架构与冯·诺依曼架构的区别
- 嵌入式系统中如何实现代码保护?
回答技巧:
-
结构化表达:分点回答(如“第一…第二…”)。
-
举例说明:结合常见芯片(如STM32)或场景(如智能家居)。
-
承认不足:若完全不懂,可回答:“这部分我还在学习中,我的初步理解是…”。
-
关联基础:用已掌握的知识推导答案(如通过C语言理解内存对齐)。
example:
- 1. 嵌入式系统与通用计算机的主要区别?
回答:
嵌入式系统与通用计算机的核心区别体现在这几个方面:
第一是专用性:嵌入式系统为特定任务设计(如空调温控模块),而通用计算机(如笔记本电脑)支持多种应用。
第二是实时性:许多嵌入式系统需实时响应事件(如汽车安全气囊触发),通用计算机对实时性要求较低。
第三功耗成本方面:嵌入式系统常追求低功耗和小体积(如智能手表),而通用计算机更注重性能扩展。
比如:智能手机的摄像头模块是嵌入式系统,而手机整体可视为通用计算机。
2. MCU的基本架构组成部分?
回答:
MCU(微控制器)的核心架构包括:
(1)CPU:执行指令的核心,如ARM Cortex-M系列。
(2)存储器:
Flash:存储固件代码(非易失性)。
RAM:存储临时数据(掉电丢失)。
(3)外设模块:
GPIO:控制输入/输出引脚。
定时器/PWM:用于时间管理和信号生成。
ADC/DAC:模数/数模转换。
通信接口:UART、SPI、I2C等。
(4)总线系统:连接CPU、存储器和外设的数据/地址/控制总线。
3.什么是中断?中断服务程序(ISR)的设计注意事项?
回答:
中断:硬件或软件触发的异步事件,暂停当前程序以优先处理紧急任务。
ISR设计注意事项:
短小高效:仅执行关键操作(如置标志位),复杂逻辑移至主循环。
避免阻塞:禁止使用延时函数或等待外部事件。
数据保护:共享变量需用volatile修饰或原子操作保护。
优先级管理:合理配置中断嵌套,防止优先级反转。
示例:串口接收中断ISR仅将数据存入缓冲区,主程序解析协议。
4. 轮询与中断驱动的优缺点对比
回答:
轮询:
优点:实现简单(如循环读取传感器状态),适合低实时性场景。
缺点:CPU占用率高,响应延迟不可控(如频繁空转浪费资源)。
中断驱动:
**优点:**实时性强(事件触发立即响应),CPU利用率高(可休眠)。
**缺点:**编程复杂(需处理竞态条件),中断过多可能导致堆栈溢出。
场景对比:温湿度传感器定期采样可用轮询,火灾报警必须用中断。