手把手教你RISC-V CPU(下) 工程与实践 RISC-V CPU下 工程与实践 PDF下载 公众号 其他格式

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

计算机与互联网 硬件与维护

  • ISBN:9787115569493
  • 包装:平装
  • 开本:16开
  • 版次:1
  • 用纸:胶版纸
  • 页数:267
  • 出版社:人民邮电出版社
  • 出版时间:2021-09-01
  • 作者:

手机扫码免费下载

纠错留言

#电子书截图

手把手教你RISC-V CPU(下) 工程与实践 RISC-V CPU下 工程与实践截图 手把手教你RISC-V CPU(下) 工程与实践 RISC-V CPU下 工程与实践截图 手把手教你RISC-V CPU(下) 工程与实践 RISC-V CPU下 工程与实践截图 手把手教你RISC-V CPU(下) 工程与实践 RISC-V CPU下 工程与实践截图

#电子书简介

产品特色

编辑推荐

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

内容简介

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

作者简介

胡振波,拥有上海交通大学电子工程系学士学位和微电子学硕士学位。国内RISC-V社区活跃的贡献者,具有过10处理器研发经验,在Marvell和Synopsys等企业负责过多款高性能和低能耗处理器研发工作。2018年,创办了RISC-V处理器IP和芯片解决方案公司-----芯来科技。

目录

第 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.3CLINT模块生成计时器中断和软件中断12
1.12.4PLIC管理多个外部中断13
第 2章开源蜂鸟E203 MCU的外设17
2.1蜂鸟E203 MCU的外设概述17
2.2PLIC17
2.3CLINT18
2.4LCLKGEN18
2.4.1LCLKGEN简介18
2.4.2LCLKGEN的寄存器18
2.5HCLKGEN18
2.5.1HCLKGEN简介18
2.5.2HCLKGEN的寄存器19
2.6GPIO19
2.6.1GPIO的功能19
2.6.2GPIO的寄存器19
2.6.3I/O结构和IOF模式20
2.6.4MCU各外设复用GPIO引脚20
2.6.5GPIO中断21
2.6.6GPIO_PADDIR寄存器21
2.6.7GPIO_PADIN寄存器21
2.6.8GPIO_PADOUT寄存器21
2.6.9GPIO_INTTEN寄存器22
2.6.10GPIO_INTTYPE0和GPIO_INTTYPE1寄存器22
2.6.11GPIO_INTSTATUS寄存器22
2.6.12GPIO_IOFCFG寄存器22
2.7SPI22
2.7.1SPI的背景知识22
2.7.2SPI的特性25
2.7.3SPI的寄存器25
2.7.4SPI数据线26
2.7.5QSPI0的寄存器配置26
2.7.6QSPI1和QSPI2的寄存器配置38
2.8I2C41
2.8.1I2C的背景知识41
2.8.2I2C的功能42
2.8.3I2C的寄存器43
2.8.4I2C的接口数据线43
2.8.5I2C_PRE寄存器43
2.8.6I2C_CTR寄存器44
2.8.7I2C_TX寄存器和I2C_RX寄存器44
2.8.8I2C_CMD寄存器45
2.8.9I2C_STATUS寄存器45
2.8.10I2C的常用操作序列46
2.9UART48
2.9.1UART的背景知识48
2.9.2UART的特性和功能49
2.9.3UART的寄存器49
2.9.4UART的接口数据线50
2.9.5UART_DLL寄存器和UART_DLM寄存器50
2.9.6UART_RBR寄存器51
2.9.7UART_THR寄存器51
2.9.8UART_FCR寄存器52
2.9.9UART_LCR寄存器52
2.9.10UART_LSR寄存器53
2.9.11UART_IER寄存器53
2.9.12UART_IIR寄存器54
2.10PWM54
2.10.1PWM的背景知识54
2.10.2PWM的功能和特性54
2.10.3PWM的寄存器55
2.10.4PWM模块的输出信号55
2.10.5TIMx_CMD(x=0,1,2,3)寄存器55
2.10.6TIMx_CFG(x=0,1,2,3)寄存器56
2.10.7TIMx_TH(x=0,1,2,3)寄存器57
2.10.8TIMx_CH0_TH(x=0,1,2,3)寄存器57
2.10.9TIMx_CH1_TH(x=0,1,2,3)寄存器58
2.10.10TIMx_CH2_TH(x=0,1,2,3)寄存器58
2.10.11TIMx_CH3_TH(x=0,1,2,3)寄存器59
2.10.12TIMx_CNT(x=0,1,2,3)寄存器60
2.10.13PWM_ENT_CFG寄存器60
2.10.14PWM_TIMER_EN寄存器61
2.11WDT62
2.11.1WDT的背景知识62
2.11.2WDT的特性、功能和结构62
2.11.3WDT的寄存器63
2.11.4通过WDOGCFG寄存器对WDT进行配置63
2.11.5WDT的计数器计数值寄存器—WDOGCOUNT64
2.11.6通过WDOGKEY寄存器解锁65
2.11.7通过WDOGFEED寄存器“喂狗”65
2.11.8WDT的计数器比较值寄存器—WDOGS66
2.11.9通过WDOGCMP寄存器配置阈值66
2.11.10WDT产生全局复位66
2.11.11WDT产生中断67
2.12RTC67
2.12.1RTC的背景知识67
2.12.2RTC的特性、功能和结构67
2.12.3RTC的寄存器68
2.12.4通过RTCCFG寄存器进行配置68
2.12.5RTC的计数器计数值寄存器—RTCHI/RTCLO69
2.12.6RTC的计数器比较值寄存器—RTCS70
2.12.7通过RTCCMP寄存器配置阈值70
2.12.8RTC产生中断70
2.13PMU70
2.13.1PMU的背景知识70
2.13.2PMU的特性、功能和结构71
2.13.3PMU的寄存器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.1Nuclei FPGA开发板78
3.1.1Nuclei DDR200T开发板简介79
3.1.2Nuclei DDR200T开发板的硬件功能模块80
3.1.3蜂鸟E203 MCU的功能引脚分配88
3.2蜂鸟JTAG调试器89
3.3总结90
第4章软件编译过程91
4.1GCC工具链91
4.1.1GCC工具链简介91
4.1.2binutils92
4.1.3C运行库93
4.1.4GCC命令行选项94
4.2准备工作94
4.2.1安装Linux94
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.4ELF文件99
4.4.1ELF文件的种类99
4.4.2ELF文件的段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.2RISC-V GNU工具链108
5.2.1RISC-V GNU工具链的获取108
5.2.2RISC-V GCC工具链的“-march”和“-mabi”选项109
5.2.3RISC-V GCC工具链的“-mcmodel”选项113
5.2.4RISC-V GCC工具链的预定义的宏114
5.2.5RISC-V GNU工具链的使用实例115
第6章RISC-V汇编语言程序设计116
6.1汇编语言概述116
6.2RISC-V汇编程序概述117
6.3RISC-V汇编伪指令118
6.4RISC-V汇编程序伪操作118
6.5RISC-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.1GCC内联汇编简介126
6.6.2GCC内联汇编的“输出操作数”和“输入操作数”部分127
6.6.3GCC内联汇编的“可能影响的寄存器或存储器”部分128
6.6.4GCC内联汇编实例1128
6.6.5GCC内联汇编实例2129
6.6.6小结130
6.7在汇编程序中调用C/C++语言中的函数130
6.8总结131
第7章开源蜂鸟E203 MCU的软件开发平台132
7.1HBird SDK概述132
7.2HBird SDK的目录结构133
7.3HBird 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.4HBird SDK的使用150
7.4.1HBird SDK的环境配置与工具链安装150
7.4.2HBird SDK的运行154
第8章集成开发环境——Nuclei Studio158
8.1Nuclei Studio的简介、下载与启动158
8.1.1Nuclei Studio简介158
8.1.2Nuclei 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.1Dhrystone简介191
10.3.2Dhrystone示例程序193
10.3.3CoreMark简介194
10.3.4CoreMark示例程序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.1GPIO简介213
12.3.2GPIO示例程序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.1PWM简介220
13.3.2PWM示例程序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.1SPI简介227
14.3.2SPI示例程序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.1I2C简介235
15.3.2I2C示例程序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.1RTOS概述253
17.1.1RTOS的定义253
17.1.2基于RTOS的开发与裸机开发254
17.2常用的实时操作系统254
17.3FreeRTOS概述255
17.4FreeRTOS在蜂鸟E203 MCU中的移植257
17.5FreeRTOS示例程序的运行261
17.5.1FreeRTOS示例程序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

^_^:6837b989902803fd38a3039535dfdc45


  • 评论列表(0

留言评论