没有合适的资源?快使用搜索试试~ 我知道了~
嵌入式系统设计(基于STM32F4): 这是一个基于STM32F4系列MCU的嵌入式系统设计。主要包含: 硬件设计: • 选择STM32F4系列MCU作为主控芯片。该系列支持高达168MHz主频,外设丰富。 • 设计外围电路,包括传感器、驱动芯片、LED显示等 • 利用STM32F4相关外设,完成各组件的驱动和接口连接。 • 设计PCB原理图,制作测试板并进行调试。 时钟设计: • 利用外部晶振为PLL提供参考时钟,获得所需系统时钟。 • 合理配置AHB/APB1/APB2分频,满足不同外设时钟需求。 • 进一步优化时钟系统,降低频率获得最佳功耗。 外设配置: • 相关外设初始化,包括GPIO/ADC/PWM/USB等等。 • 实现外设间的通信与交互,驱动复杂外设电路。 • 对复杂外设寄存器进行原子读写操作,确保正确工作。 软件程序设计: • 利用标准C语言编写嵌入式代码。 • 采用模组化设计,提高可维护性。 • 设计中断服务例程,实现外设和软件间的交互。
资源推荐
资源详情
资源评论
《嵌入式系统设计(基于 STM32F429)》
习题答案
第1章 课后题参考答案
1. 嵌入式系统定义是什么?它由哪几部分组成?
答:
IEEE(Institute of Electrical and Electronics Engincers,美国电气和电子工程师协会)对嵌入式系统的定
义是:用于控制、监视或者辅助操作机器和设备的装置(原文为Devices Used to Control, Monitor or Assist the
Operation of Equipment,Machinery or Plants)。这主要是从应用对象上加以定义的,嵌入式系统是软件和硬
件的综合体,还可以涵盖机械等附属装置,定义比较宽泛。
国内普遍认同的嵌入式系统的定义是:以应用为中心,以计算机技术为基础,软件和硬件可裁剪,适
应于应用系统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。与 IEEE 的定义相比,
国内的定义更加具体。
嵌入式系统由硬件和软件两部分组成。嵌入式系统的硬件层一般由嵌入式处理器、内存、人机接口、
复位/看门狗电路、 I/O 接口电路组成,它是整个系统运行的基础,通过人机接口和 I/O 接口实现和外部的
通信。嵌入式系统的软件层主要由应用程序、硬件抽象层、嵌入式操作系统和驱动程序、板级支持包组成
(其中,嵌入式操作系统主要实现应用程序和硬件抽象层的管理,在一些应用场合可以不使用,直接编写裸
机应用程序)。
2. 试说明冯诺依曼计算机与现代计算机的结构组成。
答:
冯诺依曼体系计算机结构主要由五大部件组成。
(1)存储器:用来存放数据和程序
(2)运算器:主要运行算数运算和逻辑运算,并将中间结果暂存到运算器中
(3)控制器:主要用来控制和指挥程序和数据的输入运行,以及处理运算结果
(4)输入设备:用来将人们熟悉的信息形式转换为机器能够识别的信息形式,常见的有键盘,鼠标等
(5)输出设备:可以将机器运算结果转换为人们熟悉的信息形式,如打印机输出,显示器输出等
3. 什么是地址码、操作数?
答:
机器指令是由操作码和操作数构成。
操作码表示指令功能。
操作数是用于实现指令功能的数据,这个操作数可以是直接可以使用的数据(立即数),也可以是表示
控制器
数据
计算
输入设备 存储器 输出设备
程序 结果
运算器
用于寻址存储单元的地址(不同表示形式,直接寻址或间接寻址)。
因此指令中表示寻址存储单元地址的操作数被认为是地址码。
4. 什么是CISC、RISC 指令系统?二者有什么区别?
答:
CISC 体系的指令特征为使用微代码,计算机性能的提高往往是通过增加硬件的复杂性来获得的。
RISC 体系的指令特征: RISC 包含简单、基本的指令,这些简单、基本的指令可以组合成复杂指令。
(1)CISC 的指令能力强,单多数指令使用率低却增加了CPU 的复杂度,指令是可变长格式; RISC 的
指令大部分为单周期指令,指令长度固定,操作寄存器,只有Load/Store操作内存
(1)CISC 支持多种寻址方式; RISC 支持方式少
(2)CISC 通过微程序控制技术实现; RISC 增加了通用寄存器,硬布线逻辑控制为主,是和采用流水
线
(3)CISC 的研制周期长
(4)RISC 优化编译,有效支持高级语言
大部分嵌入式系统使用的处理器使用的都是RISC 指令集。例如: ARM、MIPS 处理器
5. 嵌入式系统处理器有哪几种?如何选择?
答:
嵌入式处理器是嵌入式系统的核心,是控制、辅助系统运行的硬件单元。分为以下几种:
(1)嵌入式微处理器
一般用于中高端嵌入式系统应用场景,可跑中大型操作系统。
(2)嵌入式微控制器
一般用于低端嵌入式系统应用场景,可跑小型操作系统或裸机运行程序。
(3)嵌入式DSP
一般用于数据运算集中的应用场景。
(4)嵌入式SoC
在此主要指基于FPGA 的 SOPC 系统,处理器和FPGA 系统混合集成。 一般应用于通信、数据中心等
对数据处理实时性有要求的场景。
嵌入式系统处理器的选择主要根据应用场景决定。
6. 嵌入式系统存储器从功能上分为哪两类?一般采用何种类型存储器件?
答:
存储器的主要功能是存储程序和各种数据,分为易失性存储器和易失性存储器。
(1)随机存取存储器(易失性存储器)
SRAM; 可作为主存和高速缓存使用。
DRAM 和 SDRAM: 一般可作为主存使用。
(2)只读存储器(非易失性存储器)
存储在只读存储器 (Read-OnlyMemory,ROM) 中的数据可以在掉电后不丢失, ROM 主要用于存储
程序和一些数据(常量、系数等),存储在其中的数据只能读不能改,需要使用特定的方法擦除和烧录数据。
(3)闪存存储器(非易失性存储器)
NOR Flash存储器:用来做执行程序存储器。
NAND Flash存储器:主要用于海量数据存储。
eMMC(Embedded Multi Media Card) 存储器:主要作固态硬盘使用。
7.I/O 与CPU 信息传送控制方式是什么?
答:
(1)查询控制方式: CPU
通过程序主动读取状态寄bai存器以了解接口情况,并完成相应的数据操作。
查询操作需要在时钟周期较少的间隔内重复进行,因而CPU 效率低。
(2)中断控制方式:当程序常规运行中,若外部有优先级更高的事件出现,则通过中断请求通知CPU,
CPU 再读取状态寄存器确定事件的种类,以便执行不同的分支处理。这种方式CPU 效率高且实时性好。
(3)DMA(Direct Memory Access)控制方式:直接内存存取即数据传送的具体过程直接由硬件 (DMA
控制器)在内存和IO 之间完成, CPU 只在开始时将控制权暂时交予DMA, 直到数据传输结束。这种方式
传送速度比通过CPU 快,尤其是在批量传送时效率很高。
8. 嵌入式实时操作系统定义是什么?典型的嵌入式实时操作系统有哪几种?
答:
嵌入式实时操作系统主要面向控制、通信等领域。实时操作系统除了要满足应用的功能需求,还要满
足应用提出的实时性要求,属于抢占式操作系统。嵌入式实时操作系统能及时响应外部事件的请求,并以
足够快的速度予以处理,其处理结果能在规定的时间内控制、监控生产过程或对处理系统做出快速响应,
并控制所有任务协调、
一致地运行。
典型的嵌入式实时操作系统有VxWork、μCOS-IⅢI、QNX、FreeRTOS、eCos、RTX 及 RT-Thread
等。
9. 试说明嵌入式系统调试过程,并说明嵌入式系统有哪几种调试技术。
答:
嵌入式系统的调试包括硬件调试、软件调试以及综合调试。硬件调试一般是指系统刚开发出来时上电
前后的检查,包括:
(1)上电前检查电源和地是否短路,目视检查是否有虚焊、漏焊;
(2)上电后检查时钟线上的频率和波形、幅度是否正常,各电源电压是否稳定正常,各芯片温度是否
正常,各指示灯是否正常。
软件调试一般是指保证硬件一切正常的情况下验证程序执行的时序是否正确,逻辑和结果是否与设计
要求相符,能否满足功能和性能要求等。软件调试的方法有很多,包括:
(1)用指示灯跟踪调试;
(2)用串口打印调试;
(3)用简单的调试器进行汇编代码级调试;
(4)用比较高端的调试器进行源代码级调试;
(5)用仿真器进行硬件仿真。
10. 嵌入式系统与计算机系统有什么区别?
答:
通用计算机系统的技术要求是高速、海量的数值计算,其技术发展方向是总线速度的无限
提升、存储容量的无限扩大;而嵌入式计算机系统的技术要求则是智能化控制,技术发展方向是
与对象系统密切相关的潜入性能、控制能力与控制的可靠性不断提高。
《嵌入式系统设计(基于STM32F429)》
第2章课后题参考答案
1. 列举出三家公司生产的Cortex-M3 和 Cortex-M4 内核控制器。
答:
兆易创新(国产 www.gd32mcu.com):GD32F101/103
(Cortex-M4)、GD32F330/350 系列 (Cortex-M4)
灵动微电子(国产 www.mindmotion.com.cn):MM32F0
系列 (Cortex-M3)、GD32F303/305 系列
系列(Cortex-M0)、MM32F1 系列(Cortex-M0)
意法半导体: STM32F103VCT6(Cortex-M3)、STM32F407ZGT6(Cortex-M4)、STM32F429IGT6
(Cortex-M4)
恩智浦半导体: LPC1800 MCU系列 (Cortex-M3)、LPC4000 系列 (Cortex-M4)
2. 列举Corte-M3/M4 处理器使用的寄存器组,并说明 R13、R14、R15 的功能。
答:
Cortex-M4 内核具有以下32位寄存器。
● 13个通用寄存器: R0~R12。
● 堆栈指针 (SP):
存储寄存器 (R13)
的别名, SP process
和SP main;
● 链接寄存器 (LR):R14。
● 程序计数寄存器 (PC):R15。
通用寄存器没有特殊的体系结构定义用途。大多数指定通用寄存器的指令都能够使用 R0~R12。 寄存
器R13、R14、R15 具有特殊功能。
D₂
D₀
R0
R1
R2
R3
R4
R5
R6
R7
R8
R9
R10
R11
R12
R13
R13
R14
R15
通用寄存器(低组)
通用寄存器(高组)
主堆栈指针
(MSP)
进程堆栈指针
(PSP)
链接寄存器
(LR)
程序计数寄存器(PC)
堆栈指针 (R13):Cortex-M4 内核拥有两个堆栈指针:主堆栈指针 (MSP) 和进程堆栈指针 (PSP),
它们是分组寄存器,在SP main 和 SP process之间切换。在任何时候,进程堆栈和主堆栈中只有一个是可
见的,由堆栈指针指示。
链接寄存器 (R14): 在执行分支和链接指令 (BL) 或带有交换的分支和链接指令 (BLX) 时,链接
寄存器用于接收来自程序计数寄存器的返回地址。
程序计数寄存器 (R15): 程序计数寄存器总是指向下一条待执行的指令。只要修改程序计数寄存器的
值,就能改变程序的执行流程。处理器复位后,程序计数寄存器一般有一个复位值,也就是整个程序开始
执行的起始点,然后CPU 根据设计的程序流程执行后续的程序功能。
3. 试说明 Corte-M3/M4 处理器堆栈操作。
答:
堆栈类型分为4种:满递减堆栈、满递增堆栈、空递增堆栈、 空递减堆栈。在默认情况下使用满递
减堆栈。堆栈操作分为入栈和出栈操作。
入栈操作:R0 中存储了0x12345678,
通过PUSH
{R0}入栈指令,使 R0 中的内容入栈到堆栈中,假设
入栈前堆栈指针指向单元的地址是0x1008。 按照满递减堆栈的入栈规律,执行PUSH {R0}指令,则先将堆
栈指针减4,使其指向地址是0x1004的单元,然后将RO 中的数据0x12345678 存储到0x1004 存储单元中。
入栈操作示意图
出栈操作:通过 POP {R0}出栈指令,使栈顶单元中的存储内容出栈到 R0 中,假设出栈前堆栈指针指
向单元的地址是0x1004。 按照满递减堆栈的出栈规律,执行 POP {R0]指令,则先将堆栈指针指向的栈顶
单元内容0x12345678 出栈到R0 中,然后将堆栈指针加4,使其指向地址为0x1008 的单元。
出栈操作示意图
入栈操作与出栈操作顺序相反。
4. 试说明 Corte-M3/M4 处理器两种模式和两种特权的使用。
答:
两种模式: 线程模式和处理器模式。
这两种模式可以区别普通应用程序的代码和异常服务例程的代码(包括中断服务例程的代码)。
两种特权: 特权级和用户级。
提供一种存储器访问的保护机制,使得普通的用户程序代码不能意外地,甚至恶意地执行涉及要害的
线程模式和处理器模式状态切换
5. 什么是大端模式和小端模式?
Occupied
Occupied
Last
pushed
data
入栈前
Occupied
Occupied
Occupied
0x12345678
入栈后
PUSH{R0)
堆找指计
0x1010
0x100c
0x1008
0x1004
0x1000
堆栈指针
RO R0
0x12345678
POP(R0)
0x100c
Oecupied Occupied
0x1008
Occupied
Last pushed
data —堆栈指针
0x1004
0x12345678 堆栈指针 0x12345678
0x1000
出栈前 出栈后
0x₁010
Oecupied Occupied
Memory
address
异
常
异
常
退
出
CONTROL[0]=1
位置CONTROL[0]
线程模式
用户级访问
CONTROL[0J-0
线程模式
异常
处理器模式
特权级访问 特权级访问
操作。处理器支持两种特权级,这也是一个基本的安全模型。
R0
0x12345678
剩余65页未读,继续阅读
资源评论
weixin_52545652
- 粉丝: 7
- 资源: 3
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功