RISC-V架构与嵌入式开发快速入门PDF电子书下载
- 电子书积分:13 积分如何计算积分?
- 作 者:胡振波著
- 出 版 社:北京:人民邮电出版社
- 出版年份:2019
- ISBN:9787115494139
- 页数:354 页
第1章 进入32位时代,谁能成为下一个8051 1
1.1磨刀不误砍柴工—CPU基础知识介绍 1
1.1.1 ISA—CPU的灵魂 2
1.1.2 CISC与RISC 3
1.1.3 32位与64位架构 4
1.1.4 ISA众生相 5
1.1.5 CPU的领域之分 9
1.1.6 8位时代的传奇“前辈”—8051 10
1.1.7 IoT的崛起—32位时代的到来 11
1.2无敌是多么寂寞— ARM统治着的世界 11
1.2.1独乐乐与众乐乐—ARM公司的盈利模式 12
1.2.2小个子有大力量—无处不在的Cortex-M系列 14
1.2.3移动王者—Cortex-A系列在手持设备领域的巨大成功 16
1.2.4进击的巨人—ARM进军PC与服务器领域的雄心 18
1.2.5游戏终结者之ARM 19
1.3东边日出西边雨,道是无晴却有晴—RISC-V登场 19
1.4 RISC-V和其他开放架构有何不同 21
1.4.1“平民英雄”—OpenRISC 22
1.4.2“豪门显贵”—SPARC 22
1.4.3“名校优生”—RISC-V 23
1.5结语:进入32位时代,谁能成为深嵌入式领域的下一个8051 ? 23
第2章 开源蜂鸟E203超低功耗RISC-V Core与SoC 25
2.1乱花渐欲迷人眼 25
2.2与众不同的蜂鸟E203处理器 25
2.3蜂鸟虽小,五脏俱全—蜂鸟E203简介 26
2.4蜂鸟E203性能指标 27
2.5蜂鸟E203配套SoC 28
第3章 大道至简—RISC-V架构之魂 29
3.1简单就是美—RISC-V架构的设计哲学 29
3.1.1无病一身轻—架构的篇幅 30
3.1.2能屈能伸—模块化的指令集 31
3.1.3浓缩的都是精华—指令的数量 31
3.2 RISC-V指令集架构简介 32
3.2.1模块化的指令子集 32
3.2.2可配置的通用寄存器组 33
3.2.3规整的指令编码 33
3.2.4简洁的存储器访问指令 34
3.2.5高效的分支跳转指令 35
3.2.6简洁的子程序调用 36
3.2.7无条件码执行 36
3.2.8无分支延迟槽 37
3.2.9零开销硬件循环 37
3.2.10简洁的运算指令 38
3.2.11优雅的压缩指令子集 38
3.2.12特权模式 39
3.2.13 CSR寄存器 40
3.2.14中断和异常 40
3.2.15矢量指令子集 40
3.2.16自定制指令扩展 40
3.2.17总结与比较 41
第4章RISC-V架构的中断和异常 43
4.1中断和异常概述 43
4.1.1中断概述 43
4.1.2异常概述 44
4.1.3广义上的异常 44
4.2 RISC-V架构异常处理机制 46
4.2.1进入异常 47
4.2.2退出异常 50
4.2.3异常服务程序 50
4.3 RISC-V架构中断定义 51
4.3.1中断类型 51
4.3.2中断屏蔽 54
4.3.3中断等待 55
4.3.4中断优先级与仲裁 55
4.3.5中断嵌套 56
4.3.6总结比较 57
4.4 RISC-V架构异常相关CSR寄存器 57
4.5蜂鸟E203的中断和异常实现 58
第5章 开源蜂鸟E203 MCU SoC总体介绍 59
5.1 Freedom E310 SoC简介 59
5.2蜂鸟E203 MCU SoC简介 60
5.3蜂鸟E203 MCU SoC框图 60
5.4蜂鸟E203 MCU SoC存储资源 61
5.4.1片上存储资源 61
5.4.2片外Flash存储资源 61
5.5蜂鸟E203 MCU SoC外设资源 62
5.6蜂鸟E203 MCU SoC地址分配 62
5.7蜂鸟E203 MCU SoC时钟域划分 63
5.8蜂鸟E203 MCU SoC电源域划分 64
5.9蜂鸟E203 MCU SoC低功耗模式 64
5.10蜂鸟E203 MCU SoC的全局复位 65
5.11蜂鸟E203 MCU SoC的上电流程控制 66
5.12蜂鸟 E203 MCU SoC芯片引脚表 67
5.13蜂鸟E203 MCU SoC的GPIO引脚分配 68
5.14蜂鸟E203 MCU SoC的中断处理 70
5.14.1蜂鸟E203处理器核的异常和中断处理 70
5.14.2蜂鸟E203处理器的中断接口 71
5.14.3 CLINT模块生成计时器中断和软件中断 72
5.14.4 PLIC管理多个外部中断 73
第6章 开源蜂鸟E203 MCU SoC外设介绍 77
6.1蜂鸟E203 MCU SoC外设总述 77
6.2 PLIC 78
6.3 CLINT 78
6.4 LCLKGEN 78
6.4.1 LCLKGEN简介 78
6.4.2 LCLKGEN寄存器列表 78
6.5 HCLKGEN 79
6.5.1 HCLKGEN简介 79
6.5.2 HCLKGEN寄存器列表 79
6.6 GPIO 79
6.6.1 GPIO特性 79
6.6.2 GPIO寄存器列表 80
6.6.3 I/O结构和IOF模式 80
6.6.4 SoC各外设复用GPIO引脚 83
6.6.5 GPIO中断 83
6.6.6 GPIO_VALUE寄存器 84
6.6.7 GPIO_INPUT_EN寄存器 84
6.6.8 GPIO_OUTPUT_EN寄存器 85
6.6.9 GPIO_PORT寄存器 85
6.6.10 GPIO_PUE寄存器 85
6.6.11 GPIO_DS寄存器 85
6.6.12 GPIO_OUTPUT_XOR寄存器 85
6.6.13 GPIO_RISE_IE、GPIO_RISE_IP等寄存器 85
6.7 SPI 86
6.7.1 SPI背景知识简介 86
6.7.2 SPI特性 88
6.7.3 SPI寄存器列表 89
6.7.4 SPI接口数据线 90
6.7.5通过SPI_SCKDIV寄存器配置SCK时钟频率 90
6.7.6通过SPI_SCKMODE寄存器配置SCK的极性与相位 90
6.7.7通过SPI_CSID寄存器配置SPI使能信号 92
6.7.8通过SPI_CSDEF寄存器配置使能信号的空闲值 92
6.7.9通过SPI_CSMODE寄存器配置使能信号的行为 92
6.7.10通过SPI_DELAY0和SPI_DELAY1寄存器配置使能信号的行为 93
6.7.11通过SPI_FCTRL寄存器使能QSPI0的Flash XiP模式 94
6.7.12通过SPI_FFMT寄存器控制QSPI0读取外部Flash 95
6.7.13通过SPI_FMT寄存器配置传输参数 97
6.7.14通过SPI_TXDATA寄存器发送数据 97
6.7.15 通过SPI_RXDATA寄存器接收数据 98
6.7.16通过SPI_TXMARK寄存器配置发送中断阈值 100
6.7.17通过SPI_RXMARK寄存器配置接收中断阈值 100
6.7.18通过SPI_IE和SPI_IP寄存器控制中断 101
6 8 I2C 102
6.8.1 I2C背景知识简介 102
6.8.2 I2C特性 103
6.8.3 I2C寄存器列表 103
6.8.4 I2C接口数据线 104
6.8.5通过I2C_PRERlo和I2C_PRERhi寄存器配置SCL时钟频率 104
6.8.6通过I2C_CTR寄存器配置功能和中断使能 104
6.8.7 I2C模块产生中断 105
6.8.8通过I2C_TXR和I2C_RXR寄存器发送和接收数据 105
6.8.9通过I2C_CR和I2C_SR寄存器发起命令和查看状态 106
6.8.10初始化I2C模块的序列 107
6.8.11通过I2C模块向外部从设备写数据的常用序列 107
6.8.12通过I2C模块从外部从设备读数据的常用序列 108
6.9 UART 109
6.9.1 UART背景知识简介 109
6.9.2 UART特性 110
6.9.3 UART寄存器列表 110
6.9.4 UART接口数据线 111
6.9.5通过UART_TXDATA寄存器发送数据 111
6.9.6通过UART_RXDATA寄存器接收数据 112
6.9.7通过UART_TXCTRL寄存器进行发送控制 113
6.9.8通过UART_RXCTRL寄存器进行接收控制 113
6.9.9通过UART_IE和UART_IP寄存器控制中断 114
6.9.10通过UART DIV寄存器配置波特率 115
6.10 P WM 116
6.10.1 PWM背景知识简介 116
6.10.2 PWM特性和结构图 116
6.10.3 PWM寄存器列表 117
6.10.4通过PWMCFG寄存器进行配置 118
6.10.5计数器计数值PWMCOUNT寄存器和PWM周期 119
6.10.6计数器比较值PWMS寄存器 120
6.10.7 PWM接口数据线 121
6.10.8产生左对齐或者右对齐的脉冲信号 121
6.10.9产生居中对齐的脉冲信号 122
6.10.10配置pwmcmp〈X〉gang结连产生任意形状的脉冲信号 124
6.10.11配置pwmdeglitch防止输出毛刺 124
6.10.12 PWM产生中断 124
6.11 WDT 125
6.11.1 WDT背景知识简介 125
6.11.2 WDT特性和结构图 125
6.11.3 WDT寄存器列表 126
6.11.4通过WDOGCFG寄存器进行配置 127
6.11.5计数器计数值WDOGCOUNT寄存器 128
6.11.6通过WDOGKEY寄存器解锁 128
6.11.7通过WDOGFEED寄存器喂狗 129
6.11.8计数器比较值WDOGS寄存器 129
6.11.9通过WDOGCMP寄存器配置阈值 130
6.11.10 WDT产生全局复位 130
6.11.11 WDT产生中断 130
6.12 RTC 131
6.12.1 RTC背景知识简介 131
6.12.2 RTC特性和结构图 131
6.12.3 RTC寄存器列表 131
6.12.4通过RTCCFG寄存器进行配置 132
6.12.5计数器计数值RTCHI/RTCLO寄存器 133
6.12.6计数器比较值RTCS寄存器 133
6.12.7通过RTCCMP寄存器配置阈值 134
6.12.8 RTC产生中断 134
6.13 PMU 134
6.13.1 PMU背景知识简介 134
6.13.2 PMU特性和结构图 135
6.13.3 PMU寄存器列表 136
6.13.4通过PMUKEY寄存器解锁 136
6.13.5通过PMUSLEEP寄存器进入休眠模式 137
6.13.6通过PMUSLEEPI〈X〉寄存器配置休眠指令序列 137
6.13.7通过PMUBACKUP〈X〉寄存器保存关键信息 139
6.13.8 通过PMUIE寄存器配置唤醒条件 139
6.13.9通过PMUWAKEUPI〈X〉寄存器配置唤醒指令序列 140
6.13.10通过PMUCAUSE寄存器查看唤醒原因 141
第7章 开源蜂鸟E203 MCU开发板与调试器 143
7.1蜂鸟E203 MCU开发板 143
7.2蜂鸟E203 JTAG调试器 143
第8章 编译过程简介 145
8.1 GCC工具链介绍 145
8.1.1 GCC工具链概述 145
8.1.2 Binutils 146
8.1.3 C运行库 147
8.1.4 GCC命令行选项 148
8.2准备工作 148
8.2.1 Linux安装 148
8.2.2准备Hello World程序 148
8.3编译过程 149
8.3.1预处理 149
8.3.2编译 150
8.3.3汇编 150
8.3.4链接 151
8.3.5一步到位的编译 153
8.4分析ELF文件 153
8.4.1 ELF文件介绍 153
8.4.2 ELF文件的段 154
8.4.3查看ELF文件 154
8.4.4反汇编 155
8.5嵌入式系统编译的特殊性 156
8.6本章小结 156
第9章 嵌入式开发特点与RISC-V GCC工具链 158
9.1嵌入式系统开发特点 158
9.1.1交叉编译和远程调试 158
9.1.2移植newlib或newlib-nano作为C运行库 159
9.1.3嵌入式引导程序和中断异常处理 160
9.1.4嵌入式系统链接脚本 160
9.1.5减少代码体积 161
9.1.6支持printf函数 161
9.1.7提供板级支持包 162
9.2 RISC-V GCC工具链简介 162
9.2.1 RISC-V GCC工具链种类 162
9.2.2 riscv-none-embed工具链下载 163
9.2.3 RISC-V GCC工具链的(-march=)和(-mabi=)选项 164
9.2.4 RISC-V GCC工具链的(-mcmodel=)选项 168
9.2.5 RISC-V GCC工具链的其他选项 169
9.2.6 RISC-V GCC工具链的预定义宏 170
9.2.7 RISC-V GCC工具链使用实例 170
第10章RISC-V汇编语言程序设计 171
10.1汇编语言简介 171
10.2 RISC-V汇编程序概述 172
10.3 RISC-V汇编指令 173
10.4 RISC-V汇编程序伪操作 173
10.5 RISC-V汇编程序示例 177
10.5.1定义标签 177
10.5.2定义宏 178
10.5.3定义常数 178
10.5.4立即数赋值 178
10.5.5标签地址赋值 179
10.5.6设置浮点舍入模式 179
10.5.7完整实例 180
10.6在C/C++程序中嵌入汇编 181
10.6.1 GCC内联汇编简述 181
10.6.2 GCC内联汇编“输出操作数”和“输入操作数”部分 182
10.6.3 GCC内联汇编“可能影响的寄存器或存储器”部分 183
10.6.4 GCC内联汇编参考实例一 184
10.6.5 GCC内联汇编参考实例二 185
10.6.6小结 186
10.7在汇编中调用C/C++函数 186
10.8本章小结 187
第11章 基于HBird-E-SDK平台的软件开发与运行 188
11.1 HBird-E-SDK平台简介 188
11.2 HBird-E-SDK平台代码结构 189
11.3 HBird-E-SDK板级支持包解析 190
11.3.1移植了Newlib桩函数 190
11.3.2支持了 printf函数 192
11.3.3提供系统链接脚本 193
11.3.4系统启动引导程序 198
11.3.5系统异常和中断处理 202
11.3.6减少代码体积 206
11.4使用HBird-E-SDK开发和编译程序 208
11.4.1在HBird-E-SDK环境中安装工具链 208
11.4.2在HBird-E-SDK环境中开发程序 210
11.4.3编译使得程序从Flash直接运行 211
11.4.4编译使得程序从ITCM中运行 212
11.4.5编译使得程序从Flash上载至 ITCM中运行 213
11.5使用HBird-E-SDK下载程序 213
11.5.1 JTAG调试器与MCU原型开发板的连接 213
11.5.2设置JTAG调试器在Linux系统中的USB权限 214
11.5.3将程序下载至MCU原型开发板 216
11.6在MCU原型开发板上运行程序 216
11.6.1程序从Flash直接运行 217
11.6.2程序从ITCM中运行 217
11.6.3程序从Flash上载至ITCM中运行 218
11.7使用GDB远程调试程序 218
11.7.1调试器工作原理 218
11.7.2 GDB常用操作示例 220
11.7.3使用GDB调试Hello World示例 221
第12章 开源蜂鸟E203 MCU的更多示例程序 226
12.1 Dhrystone示例程序 226
12.1.1 Dhrystone示例程序功能简介 226
12.1.2 Dhrystone示例程序代码结构 229
12.1.3运行Dhrystone 229
12.2 CoreMark示例程序 231
12.2.1 CoreMark示例程序功能简介 231
12.2.2 CoreMark示例程序代码结构 232
12.2.3运行CoreMark 233
12.3 Demo IASM示例程序 234
12.3.1 Demo IASM示例程序功能简介 234
12.3.2 Demo IASM示例程序代码结构 234
12.3.3 Demo IASM示例程序源码解析 235
12.3.4运行Demo IASM 235
12.4 Demo GPIO示例程序 236
12.4.1 Demo GPIO示例程序功能简介 236
12.4.2 Demo GPIO示例程序代码结构 237
12.4.3 Demo GPIO示例程序源码分析 237
12.4.4运行Demo GPIO 243
12.5中断嵌套 244
第13章Windows IDE集成开发调试环境 245
13.1 MCU Eclipse IDE简介与安装 245
13.1.1 MCU Eclipse IDE简介 245
13.1.2 RISC-V MCU Eclipse下载 246
13.1.3 RISC-V MCU Eclipse安装 247
13.2启动Eclipse 248
13.3创建Hello World项目 249
13.4配置Hello World项目 253
13.4.1配置工具链路径 253
13.4.2配置项目的编译和链接选项 256
13.4.3配置项目的BSP 262
13.4.4配置项目的包含路径和文件 265
13.5编译Hello World项目 267
13.6运行Hello World项目 269
13.6.1安装JTAG调试器在Windows系统中的USB驱动 269
13.6.2通过Eclipse下载程序至MCU开发板 270
13.6.3在MCU开发板上运行程序 274
13.7调试Hello World项目 276
13.8拓展一:基于MCU Eclipse运行调试demo_gpio示例 280
13.9拓展二:基于MCU Eclipse运行调试dhrystone示例 281
第14章 开源蜂鸟E203 MCU开发板移植RTOS 283
14.1 RTOS简述 283
14.2常用实时操作系统概述 284
14.3 FreeRTOS简介 285
14.4蜂鸟E203 MCU移植RTOS 286
附录A RISC-V架构指令集介绍 287
A.1 RV32GC架构概述 287
A.2 RV32E架构概述 288
A.3蜂鸟E203支持的指令列表 288
A.4寄存器组 288
A.4.1通用寄存器组 289
A.4.2 CSR寄存器 290
A.5指令PC 290
A.6寻址空间划分 290
A.7大端格式或小端格式 290
A.8工作模式 290
A.9 Hart概念 291
A.10复位状态 291
A.11中断和异常 292
A.12存储器地址管理 292
A.13存储器模型 292
A.14指令类型 293
A.14.1 RV32IMAFDC指令列表 293
A.14.2基本整数指令(RV32I) 293
A.14.3整数乘法和除法指令(RV32M指令子集) 302
A.14.4浮点指令(RV32F ,RV32D指令子集) 304
A.14.5存储器原子操作指令(RV32A指令子集) 315
A.14.6 16位压缩指令(RV32C指令子集) 318
A.15 伪指令 320
A.16指令编码 320
附录B RISC-V架构CSR寄存器介绍 321
B.1蜂鸟E203支持的CSR寄存器列表 321
B.2 RISC-V标准CSR 322
B.2.1 misa 322
B.2.2 mvendorid 323
B.2.3 marchid 323
B.2.4 mimpid 323
B.2.5 mhartid 324
B.2.6 fflags 324
B.2.7 frm 324
B.2.8 fcsr 324
B.2.9 mstatus 324
B.2.10 mtvec 326
B.2.11 mepc 326
B.2.12 mcause 327
B.2.13 mtval (mbadaddr) 327
B.2.14 mie 328
B.2.15 mip 328
B.2.16 mscratch 328
B.2.17 mcycle和mcycleh 329
B.2.18 minstret和minstreth 329
B.2.19 mtime、 mtimecmp和msip 329
B.3蜂鸟E203自定义CSR 330
mcounterstop 330
附录C RISC-V架构的PLIC介绍 331
C.1概述 331
C.2 PLIC中断目标 332
PLIC中断目标之阈值 333
C.3 PLIC中断源 333
C.3.1 PLIC中断源之闸口(Gateway)和IP 334
C.3.2 PLIC中断源之编号(ID) 334
C.3.3 PLIC中断源之优先级(Priority) 334
C.3.4 PLIC中断源之中断使能(Enable) 334
C.4 PLIC中断处理机制 335
C.4.1 PLIC中断通知机制(Notification) 335
C.4.2 PLIC中断响应机制(Claim) 335
C.4.3 PLIC中断完成机制(Completion) 336
C.4.4 PLIC中断完整流程 336
C.5 PLIC寄存器总结 337
C.6总结与比较 339
附录D存储器模型背景介绍 340
D.1为何要有存储器模型的概念 340
D.2存储器模型定义了什么 341
D.2.1按序一致性模型 341
D.2.2松散一致性模型 342
D.2.3释放一致性模型 342
D.2.4存储器模型总结 342
D.3存储器模型应用实例 343
D.4 RISC-V架构的存储器模型 344
附录E存储器原子操作指令背景介绍 345
E.1什么是“上锁”问题 345
E.2通过原子操作解决“上锁”问题 346
E.3通过互斥操作解决“上锁”问题 346
E.4 RISC-V架构的相关指令 348
附录F RISC-V指令编码列表 349
F.1 RV32I指令编码 349
F.2 RV32M指令编码 350
F.3 RV32A指令编码 350
F.4 RV32F指令编码 350
F.5 RV32D指令编码 351
F.6 RVC指令编码 351
附录G RISC-V伪指令列表 353
- 《HTML5从入门到精通 第3版》(中国)明日科技 2019
- 《少儿电子琴入门教程 双色图解版》灌木文化 2019
- 《区块链DAPP开发入门、代码实现、场景应用》李万胜著 2019
- 《Python3从入门到实战》董洪伟 2019
- 《高含硫气藏开发腐蚀控制技术与实践》唐永帆,张强 2018
- 《物联网与嵌入式技术及其在农业上的应用》马德新 2019
- 《主题公园开发与管理》梁增贤编著 2019
- 《小提琴入门新教程 第3册》王中男著 2018
- 《小提琴入门新教程 第2册》王中男编著 2017
- 《中南高校档案文化资源开发综合研究》涂上飙 2019
- 《流行音乐产业的符号学研究》刘小波著 2019
- 《风雨兼程》巴波著 1992
- 《陕西历代隐士事略》霍建波著 2019
- 《螺旋配位聚合物》刘崇波著 2019
- 《集资型犯罪理论与实务问题研究》唐新波著 2019
- 《《唐女郎鱼玄机诗》史话》张波著 2019
- 《意志视角下私法理论与体系的重构》王森波著 2019
- 《华北典型灌草植物根系力学研究》张超波著 2019
- 《黄河魂 飘扬的旗帜》张波著 2016
- 《道路施工技术研究》颜景波著 2018
- 《指向核心素养 北京十一学校名师教学设计 英语 七年级 上 配人教版》周志英总主编 2019
- 《办好人民满意的教育 全国教育满意度调查报告》(中国)中国教育科学研究院 2019
- 《北京生态环境保护》《北京环境保护丛书》编委会编著 2018
- 《人民院士》吴娜著 2019
- 《指向核心素养 北京十一学校名师教学设计 英语 九年级 上 配人教版》周志英总主编 2019
- 《中国人民的心》杨朔著;夕琳编 2019
- 《高等院校旅游专业系列教材 旅游企业岗位培训系列教材 新编北京导游英语》杨昆,鄢莉,谭明华 2019
- 《中华人民共和国成立70周年优秀文学作品精选 短篇小说卷 上 全2册》贺邵俊主编 2019
- 《指向核心素养 北京十一学校名师教学设计 数学 九年级 上 配人教版》周志英总主编 2019
- 《中华人民共和国成立70周年优秀文学作品精选 中篇小说卷 下 全3册》洪治纲主编 2019