目录为搜索词,详情看每一节后图片
思维导图已上传,点击这里下载
嵌入式系统开发
全部章节图片
第一章 嵌入式系统概论
1.1
SoC
IP核
1.2
1.2.1
ASCII
GB2312
GB18030
UTF8
UTF16
超文本
字符形状两种描述方法
1.2.2
数字图像
1.2.3
音频
1.3
1.3.1
传输介质分为 有线通信 和 无线通信
数字通信的传输技术
1.3.3
IP地址
第一章图片
第二章 嵌入式处理器
2.1
2.1.1
指令集分类:
存储机制:
2.1.3
2.1图片
2.3
2.3.2
2.3.3
ARM异常的中断响应过程
2.3.4
2.3.5
2.3图片
2.4
ARM指令:32位RISC
指令格式{}{S} , {,}
ARM指令及功能描述
ARM 存储器访问指令
ARM 数据处理指令
ARM 跳转指令
ARM 协处理器指令
ARM 杂项指令
ARM 伪指令
条件指令(码):
移位操作符:
多寄存器及块拷贝寻址
2.4图片
2.5
2.5.1
汇编器支持的伪指令
符号定义伪指令
数据定义伪指令
汇编控制伪指令
其他伪指令
2.5.2
常用的运算符
2.5图片
第三章 嵌入式系统硬件组成
3.1
3.1.1
嵌入式最小硬件系统
电源模块
稳压器
时钟
JTAG 测试接口
3.1.2
前向通道,即输人接口
后向通道,即输出接口
人机交互通道包括键盘或触摸屏
相互互连通道包括各种通信通道
3.1图片
3.2
3.2.1
总线
AMBA 先进微控制器总线体系 (Advanced Microcontroller Bus Architecture)
APB 先进外围总线 (Advanced Peripheral Bus)
AHB 先进高性能总线 (Advanced Highperlormance Bus)
AXI 可扩展接口 (Advanced eXtensible Interface)
ACE AXI一致性扩展 (AXI Coherency ExtensionsACE)
- AMBA 总线主要有三种总线
- AHB、APB 总线仅支持串行通信,属于串行接口
- AXI 总线的读写数据通道独立,支持并行通信,属于并行接口
3.2.2 基于 ARM 内核的嵌人式芯片硬件组成
存储器及控制器
中断控制器
DMA 控制器
电源管理
时钟控制器
GPIO端口
定时计数组件
看门狗定时器 ( WDT)使系统定时复位的硬件或软件称为看门狗定时器
Timer 是通用定时器,可用于一般的定时
RTC 可直接提供年月日时分秒
PWM 用于脉冲宽度的调制
模拟通道组件
ADC 从模拟信号到数字信号
DAC 从数字信号到模拟信号
比较器 对模拟电压信号等与基准信号相比较
互联通信组件
3.4大部分内容移至此处
UART 通用异步收发器
I2C 集成电路互连总线接口
SPI 串行外设接口
CAN 控制器局域网
USB 通用串行总线
Ethernet 以太网通信接口
HDMI 高清晰度多媒体接口
3.2图片
3.3
3.3.1 存储器层次结构
处理器内部
主存储器(内存) (次次快)
外部存储器 (最慢)
3.3.2
存储器分类
存取特性
所处物理位置
存储信息的不同
随机存取存储器 RAM
SRAM 静态随机存取存储器
DRAM 动态随机存取存储器
DDR SDRAM
只读存储器 ROM
MROM 掩膜工艺技术的只读存储器
PROM 一次可编程的只读存储器
EPROM 紫外线可擦除可编程的只读存储器
EEPROM 电擦除可编程的只读存储器
Flash ROM 闪速(或闪烁) 存储器,简称闪存
NAND Flash
NOR Flash
FRAM 铁电存储器
MRAM 磁性存储器
3.3.3 存储器主要性能指标
容量
内存容量
外存容量
带宽
并行总线的存储器带宽
串行总线的存储器带宽
3.3图片
3.4
大部分内容移至 3.2.2
3.4图片
3.4.7
触摸屏
电阻式触屏(俗称软屏)
电容式触摸屏 (俗称硬屏)
3.5
3.5.1
桥接器
3.5.5
PWM
定时器配置寄存器 TCFCO
定时器配置寄存器 TCFG1
PWM的基本操作
3.5图片
3.6
3.6.1
RS232 接口
RS485接口
3.6.4
WiFi 模块
蓝牙模块
3.6图片
第四章 嵌入式系统软件
4.1
4.1.2
简单的轮询结构
带中断的轮询结构(中断驱动结构 或前后台结构)
监控式操作系统+应用软件的结构
通用嵌入式操作系统+应用软件的结构
4.1.3
硬件抽象层 HAL 和 板级支持包 BSP
4.1.4
bootloader 引导加载程序(引导程序)
bootROM (引导只读存储器)
嵌入式操作系统的加载方式
引导加载程序的执行过程
4.1图片
4.2
4.2.1
实时系统
时限 (deadline,最后期限)
硬实时任务
中断延迟时间
4.2.2
嵌入式操作系统
按实时性分类:
嵌入式操作系统的内核结构
单内核 (宏内核) 结构
微内核结构
4.2.4
Linux内核组件
4.2.6
iOS 系统的组成与结构
4.2图片
4.3
4.3.2
μC/OSⅡ的任务状态
休眠 (Dormant) 态
就绪 (Ready) 态
运行 (Running) 态
等待 ( Waiting) 态,也称挂起 (Pending) 态
被中断 (Interrupted) 态
μC/OSⅡ任务调度
临界区
μC/OSⅡ的中断处理
4.3.3
μC/OSⅡ
μC/OSⅡ的系统服务
初始化与开始
HW_Init() 硬件初始化
OSStart() 启动多任务调度
OSInit( ) 初始化 μC/OSⅡ 内核
任务管理
OSTaskCreate() 创建任务
OSTaskCreateExt() 创建任务,并提供一些附加功能
OSTaskDel() 既可以删除任务自身,也可以删除其他任务
OSTaskDelReq() 让任务在使用完资源后先释放资源,再删除自己
OSTaskSuspend() 挂起一个任务,可以挂起自己或者挂起其他任务
OSTaskResume() 任务恢复,只能被其他任务恢复
时钟节拍与时间管理服务
OSTimeGet(void) 获得 tick计数器的当前值
OSTimeSet(INT32U ticks) 改变 tick 计数器的当前值
OSTimeDly() 将处于运行态的任务延迟一段时间
OSTimeDlyHMSM() 将处于运行态的任务延迟一段时间
OSTimeDlyHMSM (INT8U hours , INT8U inutes , INT8U seconds , INT16U milli)
hours、minutes、seconds 和 milli 分别为延时时间的小时数 (0 ~ 255)、分钟数(0 ~ 59)、秒数 (0 ~ 59) 和毫秒数 (0 ~ 999)
实际的延时时间是时钟节拍的整数倍
(调用函数之后进入等待状态,时间到达后转入就绪态)
OSTimeTick() 使任务转入就绪态
任务间通信与同步服务
- 任务间通信的方法:
信号量 ( semaphore)
消息邮箱(message mailbox)
消息队列 (message queue)
互斥信号量 (mutualexclusion semaphore,缩写为 mutex)
事件标志组 (event lag)
任务和中断服务程序之间传递的这些不同类型的信号被统称为 事件(event)
μC/OSⅡ利用事件控制块 ECB (Event Control Block) 作为这些交互机制的载体
一个任务或中断,可以通过事件控制块向其他任务发出信号
-
信号量
OS_EVENT* OSSemCreate( WORD value); 创建信号量
OS_EVENT* OSSemDel(OS_EVENT * pevent,INT8U opt,INT8U* er); 删除信号量
INT8U OSSemPost( OS_EVENT * pevent); 释放信号量
Void OSSemPend(OS_EVENT * pevent, INT16U timeout,in&u * em); 等待信号量
INT16U OSSemAccept( OS_EVENT * pevent); 无等待地请求信号量
INT8U OSSemQuery(OS_EVENT* pevent,0S_SEM_DATA * pdata) 查询信号量状态 -
互斥信号量
互斥信号量还可以解决优先级反转问题
互斥信号量由三部分组成
一个标志位,表示互斥信号量的当前值,只能是0或1
一个等待该互斥信号量的任务的列表
一个保留的空闲优先级值
OS_EVENT* OSMutexCreate (INT8U prio,INT8U * err); 创建 mutex
OS_EVENT* OSMutexDel (0S_EVENT * pevent , lNT8U opt , INT8U* err); 删除 mutex
INT8U OSMutexPost(OS EVENT * pevent); 释放 mutex
void 0SMutexPend(OS_EVENT * pevent, INT16U timeout , INT8U* err ) ; 等待 mutex
INT8U OSMutexAccep(0S_EVENTpevent,INT8Ucn) 无等待地请求 mutex
INT8U OSMutexQuery(OS_EVENT * pevent , 0S_MUTEX_DATA * pdata); 查询 mutex 状态 -
事件标志组
与上述函数结构类似
OSFlagCreate() 创建事件标志组
OSFlagDel() 删除事件标志组
OSFlagPost() 释放事件标志组
OSFlagPend() 等待事件标志组
OSFlagAccept() 无等待地请求事件标志组
OSFlagQuery() 查询事件标志组状态 -
消息邮箱
与上述函数结构类似
OS 后面改为 Mbox -
消息队列
与上述函数结构类似
OS 后面改为 Q
4.3.4
初始化与 main()函数结构
4.3图片
第五章 嵌入式系统的开发
5.1
5.1.3
驻留监控软件调试
指令集模拟器 Instruction Set Simulator,ISS
5.1图片
5.2
5.2.1
ADS
生成目标
控制连接器进行连接操作
地址映射
5.2.2
RVDS RealView Development Suite
5.2.3
GNU GNU’s Not Unix
GCC
文件后缀与文件类型
.c,该后缀的文件是指用 C 语言编写的源程序文件。
.a,该后缀的文件是指由目标文件组成的库文件。
.C、.cc 或 .cxx,该后级的文件是指用 C++语言编写的源程序文件。
.h,该后缀的文件是指头文件,它可以被其他源文件所包含。
.i,该后缀的文件是指已经预处理过的 C 语言编写的源程序文件。
.ii,该后缀的文件是指已经预处理过的 C++语言编写的源程序文件。
.o,该后缀的文件是指编译及汇编后生成的目标文件。
.s,该后缀的文件是指编译后生成的汇编语言程序。
.S,该后缀的文件是指汇编语言编写的源程序文件。