文轩儿童书店店铺主页二维码
文轩儿童书店 微信认证
新华文轩线上直营儿童店 100%正版保证
微信扫描二维码,访问我们的微信店铺
你可以使用微信联系我们,随时随地的购物、客服咨询、查询订单和物流...

手把手教你RISC-V CPU 下 工程与实践

59.60
运费: ¥ 0.00-15.00
库存: 9 件
手把手教你RISC-V CPU 下 工程与实践 商品图0
手把手教你RISC-V CPU 下 工程与实践 商品图1
手把手教你RISC-V CPU 下 工程与实践 商品图2
手把手教你RISC-V CPU 下 工程与实践 商品图3
手把手教你RISC-V CPU 下 工程与实践 商品缩略图0 手把手教你RISC-V CPU 下 工程与实践 商品缩略图1 手把手教你RISC-V CPU 下 工程与实践 商品缩略图2 手把手教你RISC-V CPU 下 工程与实践 商品缩略图3

商品详情

手把手教你RISC-V CPU 下 工程与实践

作  者:胡振波,芯来科技生态组 编
定  价:89
出 版 社:人民邮电出版社
出版日期:2021年09月01日
页  数:284
装  帧:平装
ISBN:9787115569493

1.《手把手教你设计CPU——RISC-V处理器篇》延续篇,配套新蜂鸟E203开源项目,加入更多新内容。 2.书中含有大量动手实践示例程序,从嵌入式开发与工程实践的角度,对如何使用E203 MCU进行详细介绍。 3.知识体系完整,分为上下两册,涵盖RISC-V处理器软硬件开发的全流程。 4.中国工程院院士倪光南、芯原股份董事长戴伟民为本书作序推荐。

目录

第1章 开源蜂鸟E203 MCU总体介绍 1
1.1 蜂鸟E203 MCU的系统结构和特性 1
1.2 蜂鸟E203 MCU的存储资源 2
1.2.1 片上存储资源 2
1.2.2 片外Flash存储资源 2
1.3 蜂鸟E203 MCU的外设资源 3
1.4 蜂鸟E203 MCU的地址分配 3
1.5 蜂鸟E203 MCU的时钟域划分 4
1.6 蜂鸟E203 MCU的电源域划分 5
1.7 蜂鸟E203 MCU的低功耗模式 5
1.8 蜂鸟E203 MCU的全局复位 6
1.9 蜂鸟E203 MCU的上电流程控制 7
1.10 蜂鸟E203 MCU的顶层引脚 7
1.11 蜂鸟E203 MCU的GPIO复用功能 8
1.12 蜂鸟E203 MCU的中断处理 9
1.12.1 蜂鸟E203处理器核的异常和中断处理 9
1.12.2 蜂鸟E203处理器核的中断接口 11
1.12.3 CLINT模块生成计时器中断和软件中断 12
1.12.4 PLIC管理多个外部中断 13
第2章 开源蜂鸟E203 MCU的外设 17
2.1 蜂鸟E203 MCU的外设概述 17
2.2 PLIC 17
2.3 CLINT 18
2.4 LCLKGEN 18
2.4.1 LCLKGEN简介 18
2.4.2 LCLKGEN的寄存器 18
2.5 HCLKGEN 18
2.5.1 HCLKGEN简介 18
2.5.2 HCLKGEN的寄存器 19
2.6 GPIO 19
2.6.1 GPIO的功能 19
2.6.2 GPIO的寄存器 19
2.6.3 I/O结构和IOF模式 20
2.6.4 MCU各外设复用GPIO引脚 20
2.6.5 GPIO中断 21
2.6.6 GPIO_PADDIR寄存器 21
2.6.7 GPIO_PADIN寄存器 21
2.6.8 GPIO_PADOUT寄存器 21
2.6.9 GPIO_INTTEN寄存器 22
2.6.10 GPIO_INTTYPE0和GPIO_INTTYPE1寄存器 22
2.6.11 GPIO_INTSTATUS寄存器 22
2.6.12 GPIO_IOFCFG寄存器 22
2.7 SPI 22
2.7.1 SPI的背景知识 22
2.7.2 SPI的特性 25
2.7.3 SPI的寄存器 25
2.7.4 SPI数据线 26
2.7.5 QSPI0的寄存器配置 26
2.7.6 QSPI1和QSPI2的寄存器配置 38
2.8 I2C 41
2.8.1 I2C的背景知识 41
2.8.2 I2C的功能 42
2.8.3 I2C的寄存器 43
2.8.4 I2C的接口数据线 43
2.8.5 I2C_PRE寄存器 43
2.8.6 I2C_CTR寄存器 44
2.8.7 I2C_TX寄存器和I2C_RX寄存器 44
2.8.8 I2C_CMD寄存器 45
2.8.9 I2C_STATUS寄存器 45
2.8.10 I2C的常用操作序列 46
2.9 UART 48
2.9.1 UART的背景知识 48
2.9.2 UART的特性和功能 49
2.9.3 UART的寄存器 49
2.9.4 UART的接口数据线 50
2.9.5 UART_DLL寄存器和UART_DLM寄存器 50
2.9.6 UART_RBR寄存器 51
2.9.7 UART_THR寄存器 51
2.9.8 UART_FCR寄存器 52
2.9.9 UART_LCR寄存器 52
2.9.10 UART_LSR寄存器 53
2.9.11 UART_IER寄存器 53
2.9.12 UART_IIR寄存器 54
2.10 PWM 54
2.10.1 PWM的背景知识 54
2.10.2 PWM的功能和特性 54
2.10.3 PWM的寄存器 55
2.10.4 PWM模块的输出信号 55
2.10.5 TIMx_CMD(x=0,1,2,3)寄存器 55
2.10.6 TIMx_CFG(x=0,1,2,3)寄存器 56
2.10.7 TIMx_TH(x=0,1,2,3)寄存器 57
2.10.8 TIMx_CH0_TH(x=0,1,2,3)寄存器 57
2.10.9 TIMx_CH1_TH(x=0,1,2,3)寄存器 58
2.10.10 TIMx_CH2_TH(x=0,1,2,3)寄存器 58
2.10.11 TIMx_CH3_TH(x=0,1,2,3)寄存器 59
2.10.12 TIMx_CNT(x=0,1,2,3)寄存器 60
2.10.13 PWM_ENT_CFG寄存器 60
2.10.14 PWM_TIMER_EN寄存器 61
2.11 WDT 62
2.11.1 WDT的背景知识 62
2.11.2 WDT的特性、功能和结构 62
2.11.3 WDT的寄存器 63
2.11.4 通过WDOGCFG寄存器对WDT进行配置 63
2.11.5 WDT的计数器计数值寄存器—WDOGCOUNT 64
2.11.6 通过WDOGKEY寄存器解锁 65
2.11.7 通过WDOGFEED寄存器“喂狗” 65
2.11.8 WDT的计数器比较值寄存器—WDOGS 66
2.11.9 通过WDOGCMP寄存器配置阈值 66
2.11.10 WDT产生全局复位 66
2.11.11 WDT产生中断 67
2.12 RTC 67
2.12.1 RTC的背景知识 67
2.12.2 RTC的特性、功能和结构 67
2.12.3 RTC的寄存器 68
2.12.4 通过RTCCFG寄存器进行配置 68
2.12.5 RTC的计数器计数值寄存器—RTCHI/RTCLO 69
2.12.6 RTC的计数器比较值寄存器—RTCS 70
2.12.7 通过RTCCMP寄存器配置阈值 70
2.12.8 RTC产生中断 70
2.13 PMU 70
2.13.1 PMU的背景知识 70
2.13.2 PMU的特性、功能和结构 71
2.13.3 PMU的寄存器 72
2.13.4 通过PMUKEY寄存器解锁 72
2.13.5 通过PMUSLEEP寄存器进入休眠模式 73
2.13.6 通过PMUSLEEPI0~PMUSLEEPI7寄存器配置休眠指令序列 73
2.13.7 通过PMUBACKUP系列寄存器保存关键信息 75
2.13.8 通过PMUIE寄存器设置唤醒条件 75
2.13.9 通过PMUWAKEUPI0~PMUWAKEUPI7寄存器配置唤醒指令序列 76
2.13.10 通过PMUCAUSE寄存器查看唤醒原因 77
第3章 开源蜂鸟E203 MCU硬件开发平台 78
3.1 Nuclei FPGA开发板 78
3.1.1 Nuclei DDR200T开发板简介 79
3.1.2 Nuclei DDR200T开发板的硬件功能模块 80
3.1.3 蜂鸟E203 MCU的功能引脚分配 88
3.2 蜂鸟JTAG调试器 89
3.3 总结 90
第4章 软件编译过程 91
4.1 GCC工具链 91
4.1.1 GCC工具链简介 91
4.1.2 binutils 92
4.1.3 C运行库 93
4.1.4 GCC命令行选项 94
4.2 准备工作 94
4.2.1 安装Linux 94
4.2.2 准备HelloWorld程序 94
4.3 编译过程 95
4.3.1 预处理 95
4.3.2 编译 96
4.3.3 汇编 96
4.3.4 链接 97
4.3.5 一步到位的编译 99
4.4 ELF文件 99
4.4.1 ELF文件的种类 99
4.4.2 ELF文件的段 100
4.4.3 查看ELF文件 100
4.4.4 反汇编 101
4.5 嵌入式系统编译的特殊性 102
4.6 总结 103
第5章 嵌入式开发的特点与RISC-V GCC工具链 104
5.1 嵌入式系统开发的特点 104
5.1.1 交叉编译和远程调试 104
5.1.2 移植newlib或newlib-nano作为C运行库 105
5.1.3 引导程序以及中断和异常处理 106
5.1.4 嵌入式系统的链接脚本 106
5.1.5 减小代码规模 106
5.1.6 支持printf()函数 107
5.1.7 提供板级支持包 107
5.2 RISC-V GNU工具链 108
5.2.1 RISC-V GNU工具链的获取 108
5.2.2 RISC-V GCC工具链的“-march”和“-mabi”选项 109
5.2.3 RISC-V GCC工具链的“-mcmodel”选项 113
5.2.4 RISC-V GCC工具链的预定义的宏 114
5.2.5 RISC-V GNU工具链的使用实例 115
第6章 RISC-V汇编语言程序设计 116
6.1 汇编语言概述 116
6.2 RISC-V汇编程序概述 117
6.3 RISC-V汇编伪指令 118
6.4 RISC-V汇编程序伪操作 118
6.5 RISC-V汇编程序示例 122
6.5.1 标签 122
6.5.2 宏 122
6.5.3 定义常数及其别名 122
6.5.4 立即数赋值 123
6.5.5 标签地址赋值 123
6.5.6 设置浮点数舍入模式 124
6.5.7 完整实例 124
6.6 在C/C++程序中嵌入汇编程序 125
6.6.1 GCC内联汇编简介 126
6.6.2 GCC内联汇编的“输出操作数”和“输入操作数”部分 127
6.6.3 GCC内联汇编的“可能影响的寄存器或存储器”部分 128
6.6.4 GCC内联汇编实例1 128
6.6.5 GCC内联汇编实例2 129
6.6.6 小结 130
6.7 在汇编程序中调用C/C++语言中的函数 130
6.8 总结 131
第7章 开源蜂鸟E203 MCU的软件开发平台 132
7.1 HBird SDK概述 132
7.2 HBird SDK的目录结构 133
7.3 HBird SDK的底层实现解析 134
7.3.1 移植了newlib的桩函数 134
7.3.2 支持了printf()函数 135
7.3.3 提供系统链接脚本 136
7.3.4 系统启动引导程序 140
7.3.5 系统中断和异常处理 145
7.3.6 使用newlib-nano减小代码规模 149
7.4 HBird SDK的使用 150
7.4.1 HBird SDK的环境配置与工具链安装 150
7.4.2 HBird SDK的运行 154
第8章 集成开发环境——Nuclei Studio 158
8.1 Nuclei Studio的简介、下载与启动 158
8.1.1 Nuclei Studio简介 158
8.1.2 Nuclei Studio的下载与启动 158
8.2 使用Nuclei Studio进行蜂鸟E203MCU的开发 160
第9章 初试蜂鸟E203 MCU开发 168
9.1 蜂鸟E203 MCU在Nuclei DDR200T开发板中的实现 168
9.2 蜂鸟调试器的驱动程序的安装和蜂鸟调试器的设置 175
9.3 基于HBird SDK运行HelloWorld程序 177
9.3.1 将程序下载至DDR200T开发板 177
9.3.2 将程序在DDR200T开发板上运行 178
9.3.3 将程序在DDR200T开发板上调试 180
9.4 基于Nuclei Studio运行HelloWorld程序 183
9.4.1 将程序下载至DDR200T开发板 183
9.4.2 将程序在DDR200T开发板上运行 186
9.4.3 将程序在DDR200T开发板上调试 187
第10章 Benchmark实验 190
10.1 实验目的 190
10.2 实验准备 190
10.3 实验原理 190
10.3.1 Dhrystone简介 191
10.3.2 Dhrystone示例程序 193
10.3.3 CoreMark简介 194
10.3.4 CoreMark示例程序 195
10.4 实验步骤 196
10.4.1 在HBird SDK中运行Dhrystone示例程序 196
10.4.2 在Nuclei Studio中运行Dhrystone示例程序 198
10.4.3 在HBird SDK中运行CoreMark示例程序 200
10.4.4 在Nuclei Studio中运行CoreMark示例程序 202
第11章 内联汇编实验 205
11.1 实验目的 205
11.2 实验准备 205
11.3 实验原理 205
11.3.1 在C/C++程序中嵌入汇编程序 205
11.3.2 内联汇编示例程序 206
11.4 实验步骤 206
11.4.1 在HBird SDK中运行内联汇编示例程序 206
11.4.2 在Nuclei Studio中运行内联汇编示例程序 208
第12章 GPIO实验 213
12.1 实验目的 213
12.2 实验准备 213
12.3 实验原理 213
12.3.1 GPIO简介 213
12.3.2 GPIO示例程序 214
12.4 实验步骤 215
12.4.1 在HBird SDK中运行GPIO示例程序 215
12.4.2 在Nuclei Studio中运行GPIO示例程序 216
第13章 PWM实验 220
13.1 实验目的 220
13.2 实验准备 220
13.3 实验原理 220
13.3.1 PWM简介 220
13.3.2 PWM示例程序 221
13.4 实验步骤 222
13.4.1 在HBird SDK中运行PWM示例程序 222
13.4.2 在Nuclei Studio中运行PWM示例程序 224
第14章 SPI实验 227
14.1 实验目的 227
14.2 实验准备 227
14.3 实验原理 227
14.3.1 SPI简介 227
14.3.2 SPI示例程序 228
14.4 实验步骤 229
14.4.1 在HBird SDK中运行SPI示例程序 229
14.4.2 在Nuclei Studio中运行SPI示例程序 231
第15章 I2C实验 235
15.1 实验目的 235
15.2 实验准备 235
15.3 实验原理 235
15.3.1 I2C简介 235
15.3.2 I2C示例程序 236
15.4 实验步骤 237
15.4.1 在HBird SDK中运行I2C示例程序 237
15.4.2 在Nuclei Studio中运行I2C示例程序 238
第16章 中断相关实验 243
16.1 实验目的 243
16.2 实验准备 243
16.3 实验原理 243
16.3.1 计时器中断和软件中断 243
16.3.2 计时器中断和软件中断示例程序 244
16.3.3 外部中断 244
16.3.4 外部中断示例程序 245
16.4 实验步骤 246
16.4.1 在HBird SDK中运行计时器中断与软件中断示例程序 246
16.4.2 在Nuclei Studio中运行计时器中断与软件中断示例程序 247
16.4.3 在HBird SDK中运行外部中断示例程序 249
16.4.4 在Nuclei Studio中运行外部中断示例程序 251
第17章 FreeRTOS的移植与示例程序运行 253
17.1 RTOS概述 253
17.1.1 RTOS的定义 253
17.1.2 基于RTOS的开发与裸机开发 254
17.2 常用的实时操作系统 254
17.3 FreeRTOS概述 255
17.4 FreeRTOS在蜂鸟E203 MCU中的移植 257
17.5 FreeRTOS示例程序的运行 261
17.5.1 FreeRTOS示例程序 261
17.5.2 在HBird SDK中运行FreeRTOS示例程序 261
17.5.3 在Nuclei Studio中运行FreeRTOS示例程序 262
第18章 获取更多资源 265
18.1 开源蜂鸟E203 MCU文档资源 265
18.2 开源蜂鸟E203 MCU嵌入式开发实验 265
18.3 开源蜂鸟E203处理器教学资源 266
18.4 开源蜂鸟E203论坛 266

内容介绍

本书通过开源蜂鸟E203处理器系统地介绍了RISC-V处理器的嵌入式软件开发方法。全书共3个部分18章,不但给出嵌入式软件开发的全流程,而且介绍了蜂鸟E203处理器的具体使用方法,通过提供大量的实战项目,帮助读者做到理论与实践相结合。 本书主要面向嵌入式软件开发工程师,以及对RISC-V感兴趣的初学者和技术爱好者。

胡振波,芯来科技生态组 编

胡振波,上海交通大学电子工程系本科、微电子学院硕士。拥有业界多年ASIC和CPU设计与验证经验,先后在Marvell任职ARM架构CPU设计高级工程师、在Synopsys任职研发经理、在比特大陆任职IC设计总监、在武汉聚芯微电子任职架构师,现致力于推动RISC-V架构在国内的传播和发展。 作者开发并开源了蜂鸟E200系列超低功耗RISC-V处理器内核。感兴趣的读者可关注作者如下微信公众号(或搜索“硅农亚历山大”),加入开源蜂鸟E200处理器核的交流讨论微信群。并且了解公众号中更多有关Verilog设计、CPU和RISC-V的知识分享。

文轩儿童书店店铺主页二维码
文轩儿童书店 微信公众号认证
新华文轩线上直营儿童店 100%正版保证
扫描二维码,访问我们的微信店铺
随时随地的购物、客服咨询、查询订单和物流...

手把手教你RISC-V CPU 下 工程与实践

手机启动微信
扫一扫购买

收藏到微信 or 发给朋友

1. 打开微信,扫一扫左侧二维码

2. 点击右上角图标

点击右上角分享图标

3. 发送给朋友、分享到朋友圈、收藏

发送给朋友、分享到朋友圈、收藏

微信支付

支付宝

扫一扫购买

打开微信,扫一扫

或搜索微信号:kidswinshare
文轩儿童书店官方微信公众号

收藏到微信 or 发给朋友

1. 打开微信,扫一扫左侧二维码

2. 点击右上角图标

点击右上角分享图标

3. 发送给朋友、分享到朋友圈、收藏

发送给朋友、分享到朋友圈、收藏