商品详情
书名:手把手教你RISC-V CPU.下.工程与实践
定*:89.0
ISBN:9787**5569493
作者:胡振波 主编 芯来科技生态组 编著
版次:第*版
出版时间:202*-09
内容提要:
本书通过开源蜂鸟E203处理器系统地介绍了RISC-V处理器的嵌入式软件开发方法。*书共3个*分*8章,*但给出嵌入式软件开发的*流程,而且介绍了蜂鸟E203处理器的具体使用方法,通过提供大量的实战项目,帮助读者做到理论与实践相结合。 本书主要面向嵌入式软件开发工程师,以及对RISC-V感兴趣的初*和技术爱好者。
作者简介:
胡振波,拥有上海交通大学电子工程系学士学位和微电子学硕士学位。*内RISC-V社区活跃的贡献者,具有*过*0处理器研发经验,在Marvell和Synopsys等企业负责过多款*性能和低能耗处理器研发工作。20*8年,*办了RISC-V处理器IP和芯片解决方案公司-----芯来科技。
目录:
第 *章 开源蜂鸟E203 MCU总体介绍 *
*.* 蜂鸟E203 MCU的系统结构和*性 *
*.2 蜂鸟E203 MCU的存储资源 2
*.2.* 片上存储资源 2
*.2.2 片外Flash存储资源 2
*.3 蜂鸟E203 MCU的外设资源 3
*.4 蜂鸟E203 MCU的地址分配 3
*.5 蜂鸟E203 MCU的时钟域划分 4
*.6 蜂鸟E203 MCU的电源域划分 5
*.7 蜂鸟E203 MCU的低功耗模式 5
*.8 蜂鸟E203 MCU的*局复位 6
*.9 蜂鸟E203 MCU的上电流程控制 7
*.*0 蜂鸟E203 MCU的*层引脚 7
*.** 蜂鸟E203 MCU的GPIO复用功能 8
*.*2 蜂鸟E203 MCU的中断处理 9
*.*2.* 蜂鸟E203处理器核的异常和中断处理 9
*.*2.2 蜂鸟E203处理器核的中断接口 **
*.*2.3 CLINT模块生成计时器中断和软件中断 *2
*.*2.4 PLIC管理多个外*中断 *3
第 2章 开源蜂鸟E203 MCU的外设 *7
2.* 蜂鸟E203 MCU的外设概述 *7
2.2 PLIC *7
2.3 CLINT *8
2.4 LCLKGEN *8
2.4.* LCLKGEN简介 *8
2.4.2 LCLKGEN的寄存器 *8
2.5 HCLKGEN *8
2.5.* HCLKGEN简介 *8
2.5.2 HCLKGEN的寄存器 *9
2.6 GPIO *9
2.6.* GPIO的功能 *9
2.6.2 GPIO的寄存器 *9
2.6.3 I/O结构和IOF模式 20
2.6.4 MCU各外设复用GPIO引脚 20
2.6.5 GPIO中断 2*
2.6.6 GPIO_PADDIR寄存器 2*
2.6.7 GPIO_PADIN寄存器 2*
2.6.8 GPIO_PADOUT寄存器 2*
2.6.9 GPIO_INTTEN寄存器 22
2.6.*0 GPIO_INTTYPE0和GPIO_INTTYPE*寄存器 22
2.6.** GPIO_INTSTATUS寄存器 22
2.6.*2 GPIO_IOFCFG寄存器 22
2.7 SPI 22
2.7.* 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 QSPI*和QSPI2的寄存器配置 38
2.8 I2C 4*
2.8.* I2C的背景知识 4*
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.*0 I2C的常用操作序列 46
2.9 UART 48
2.9.* 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寄存器 5*
2.9.7 UART_THR寄存器 5*
2.9.8 UART_FCR寄存器 52
2.9.9 UART_LCR寄存器 52
2.9.*0 UART_LSR寄存器 53
2.9.** UART_IER寄存器 53
2.9.*2 UART_IIR寄存器 54
2.*0 PWM 54
2.*0.* PWM的背景知识 54
2.*0.2 PWM的功能和*性 54
2.*0.3 PWM的寄存器 55
2.*0.4 PWM模块的输出信号 55
2.*0.5 TIMx_CMD(x=0,*,2,3)寄存器 55
2.*0.6 TIMx_CFG(x=0,*,2,3)寄存器 56
2.*0.7 TIMx_TH(x=0,*,2,3)寄存器 57
2.*0.8 TIMx_CH0_TH(x=0,*,2,3)寄存器 57
2.*0.9 TIMx_CH*_TH(x=0,*,2,3)寄存器 58
2.*0.*0 TIMx_CH2_TH(x=0,*,2,3)寄存器 58
2.*0.** TIMx_CH3_TH(x=0,*,2,3)寄存器 59
2.*0.*2 TIMx_CNT(x=0,*,2,3)寄存器 60
2.*0.*3 PWM_ENT_CFG寄存器 60
2.*0.*4 PWM_TIMER_EN寄存器 6*
2.** WDT 62
2.**.* WDT的背景知识 62
2.**.2 WDT的*性、功能和结构 62
2.**.3 WDT的寄存器 63
2.**.4 通过WDOGCFG寄存器对WDT进行配置 63
2.**.5 WDT的计数器计数值寄存器—WDOGCOUNT 64
2.**.6 通过WDOGKEY寄存器解锁 65
2.**.7 通过WDOGFEED寄存器“喂狗” 65
2.**.8 WDT的计数器比较值寄存器—WDOGS 66
2.**.9 通过WDOGCMP寄存器配置阈值 66
2.**.*0 WDT产生*局复位 66
2.**.** WDT产生中断 67
2.*2 RTC 67
2.*2.* RTC的背景知识 67
2.*2.2 RTC的*性、功能和结构 67
2.*2.3 RTC的寄存器 68
2.*2.4 通过RTCCFG寄存器进行配置 68
2.*2.5 RTC的计数器计数值寄存器—RTCHI/RTCLO 69
2.*2.6 RTC的计数器比较值寄存器—RTCS 70
2.*2.7 通过RTCCMP寄存器配置阈值 70
2.*2.8 RTC产生中断 70
2.*3 PMU 70
2.*3.* PMU的背景知识 70
2.*3.2 PMU的*性、功能和结构 7*
2.*3.3 PMU的寄存器 72
2.*3.4 通过PMUKEY寄存器解锁 72
2.*3.5 通过PMUSLEEP寄存器进入休眠模式 73
2.*3.6 通过PMUSLEEPI0~PMUSLEEPI7寄存器配置休眠指令序列 73
2.*3.7 通过PMUBACKUP系列寄存器*存关键信息 75
2.*3.8 通过PMUIE寄存器设置唤醒条件 75
2.*3.9 通过PMUWAKEUPI0~PMUWAKEUPI7寄存器配置唤醒指令序列 76
2.*3.*0 通过PMUCAUSE寄存器查看唤醒原因 77
第3章 开源蜂鸟E203 MCU硬件开发平台 78
3.* Nuclei FPGA开发板 78
3.*.* Nuclei DDR200T开发板简介 79
3.*.2 Nuclei DDR200T开发板的硬件功能模块 80
3.*.3 蜂鸟E203 MCU的功能引脚分配 88
3.2 蜂鸟JTAG调试器 89
3.3 总结 90
第4章 软件编译过程 9*
4.* GCC工具链 9*
4.*.* GCC工具链简介 9*
4.*.2 binutils 92
4.*.3 C运行库 93
4.*.4 GCC命令行选项 94
4.2 准备工作 94
4.2.* 安装Linux 94
4.2.2 准备HelloWorld程序 94
4.3 编译过程 95
4.3.* 预处理 95
4.3.2 编译 96
4.3.3 汇编 96
4.3.4 * 97
4.3.5 *步到位的编译 99
4.4 ELF文件 99
4.4.* ELF文件的种类 99
4.4.2 ELF文件的段 *00
4.4.3 查看ELF文件 *00
4.4.4 反汇编 *0*
4.5 嵌入式系统编译的*殊性 *02
4.6 总结 *03
第5章 嵌入式开发的*点与RISC-V GCC工具链 *04
5.* 嵌入式系统开发的*点 *04
5.*.* 交叉编译和远程调试 *04
5.*.2 移植newlib或newlib-nano作为C运行库 *05
5.*.3 引导程序以及中断和异常处理 *06
5.*.4 嵌入式系统的*脚本 *06
5.*.5 减小代码规模 *06
5.*.6 支持printf()函数 *07
5.*.7 提供板级支持* *07
5.2 RISC-V GNU工具链 *08
5.2.* RISC-V GNU工具链的获取 *08
5.2.2 RISC-V GCC工具链的“-march”和“-mabi”选项 *09
5.2.3 RISC-V GCC工具链的“-mcmodel”选项 **3
5.2.4 RISC-V GCC工具链的预定义的宏 **4
5.2.5 RISC-V GNU工具链的使用实例 **5
第6章 RISC-V汇编语言程序设计 **6
6.* 汇编语言概述 **6
6.2 RISC-V汇编程序概述 **7
6.3 RISC-V汇编伪指令 **8
6.4 RISC-V汇编程序伪操作 **8
6.5 RISC-V汇编程序示例 *22
6.5.* 标签 *22
6.5.2 宏 *22
6.5.3 定义常数及其别名 *22
6.5.4 立*数赋值 *23
6.5.5 标签地址赋值 *23
6.5.6 设置浮点数舍入模式 *24
6.5.7 完整实例 *24
6.6 在C/C++程序中嵌入汇编程序 *25
6.6.* GCC内联汇编简介 *26
6.6.2 GCC内联汇编的“输出操作数”和“输入操作数”*分 *27
6.6.3 GCC内联汇编的“可能影响的寄存器或存储器”*分 *28
6.6.4 GCC内联汇编实例* *28
6.6.5 GCC内联汇编实例2 *29
6.6.6 小结 *30
6.7 在汇编程序中调用C/C++语言中的函数 *30
6.8 总结 *3*
第7章 开源蜂鸟E203 MCU的软件开发平台 *32
7.* HBird SDK概述 *32
7.2 HBird SDK的目录结构 *33
7.3 HBird SDK的底层实现解析 *34
7.3.* 移植了newlib的桩函数 *34
7.3.2 支持了printf()函数 *35
7.3.3 提供系统*脚本 *36
7.3.4 系统启动引导程序 *40
7.3.5 系统中断和异常处理 *45
7.3.6 使用newlib-nano减小代码规模 *49
7.4 HBird SDK的使用 *50
7.4.* HBird SDK的环境配置与工具链安装 *50
7.4.2 HBird SDK的运行 *54
第8章 集成开发环境——Nuclei Studio *58
8.* Nuclei Studio的简介、下载与启动 *58
8.*.* Nuclei Studio简介 *58
8.*.2 Nuclei Studio的下载与启动 *58
8.2 使用Nuclei Studio进行蜂鸟E203MCU的开发 *60
第9章 初试蜂鸟E203 MCU开发 *68
9.* 蜂鸟E203 MCU在Nuclei DDR200T开发板中的实现 *68
9.2 蜂鸟调试器的驱动程序的安装和蜂鸟调试器的设置 *75
9.3 基于HBird SDK运行HelloWorld程序 *77
9.3.* 将程序下载*DDR200T开发板 *77
9.3.2 将程序在DDR200T开发板上运行 *78
9.3.3 将程序在DDR200T开发板上调试 *80
9.4 基于Nuclei Studio运行HelloWorld程序 *83
9.4.* 将程序下载*DDR200T开发板 *83
9.4.2 将程序在DDR200T开发板上运行 *86
9.4.3 将程序在DDR200T开发板上调试 *87
第 *0章 Benchmark实验 *90
*0.* 实验目的 *90
*0.2 实验准备 *90
*0.3 实验原理 *90
*0.3.* Dhrystone简介 *9*
*0.3.2 Dhrystone示例程序 *93
*0.3.3 CoreMark简介 *94
*0.3.4 CoreMark示例程序 *95
*0.4 实验步骤 *96
*0.4.* 在HBird SDK中运行Dhrystone示例程序 *96
*0.4.2 在Nuclei Studio中运行Dhrystone示例程序 *98
*0.4.3 在HBird SDK中运行CoreMark示例程序 200
*0.4.4 在Nuclei Studio中运行CoreMark示例程序 202
第 **章 内联汇编实验 205
**.* 实验目的 205
**.2 实验准备 205
**.3 实验原理 205
**.3.* 在C/C++程序中嵌入汇编程序 205
**.3.2 内联汇编示例程序 206
**.4 实验步骤 206
**.4.* 在HBird SDK中运行内联汇编示例程序 206
**.4.2 在Nuclei Studio中运行内联汇编示例程序 208
第 *2章 GPIO实验 2*3
*2.* 实验目的 2*3
*2.2 实验准备 2*3
*2.3 实验原理 2*3
*2.3.* GPIO简介 2*3
*2.3.2 GPIO示例程序 2*4
*2.4 实验步骤 2*5
*2.4.* 在HBird SDK中运行GPIO示例程序 2*5
*2.4.2 在Nuclei Studio中运行GPIO示例程序 2*6
第 *3章 PWM实验 220
*3.* 实验目的 220
*3.2 实验准备 220
*3.3 实验原理 220
*3.3.* PWM简介 220
*3.3.2 PWM示例程序 22*
*3.4 实验步骤 222
*3.4.* 在HBird SDK中运行PWM示例程序 222
*3.4.2 在Nuclei Studio中运行PWM示例程序 224
第 *4章 SPI实验 227
*4.* 实验目的 227
*4.2 实验准备 227
*4.3 实验原理 227
*4.3.* SPI简介 227
*4.3.2 SPI示例程序 228
*4.4 实验步骤 229
*4.4.* 在HBird SDK中运行SPI示例程序 229
*4.4.2 在Nuclei Studio中运行SPI示例程序 23*
第 *5章 I2C实验 235
*5.* 实验目的 235
*5.2 实验准备 235
*5.3 实验原理 235
*5.3.* I2C简介 235
*5.3.2 I2C示例程序 236
*5.4 实验步骤 237
*5.4.* 在HBird SDK中运行I2C示例程序 237
*5.4.2 在Nuclei Studio中运行I2C示例程序 238
第 *6章 中断相关实验 243
*6.* 实验目的 243
*6.2 实验准备 243
*6.3 实验原理 243
*6.3.* 计时器中断和软件中断 243
*6.3.2 计时器中断和软件中断示例程序 244
*6.3.3 外*中断 244
*6.3.4 外*中断示例程序 245
*6.4 实验步骤 246
*6.4.* 在HBird SDK中运行计时器中断与软件中断示例程序 246
*6.4.2 在Nuclei Studio中运行计时器中断与软件中断示例程序 247
*6.4.3 在HBird SDK中运行外*中断示例程序 249
*6.4.4 在Nuclei Studio中运行外*中断示例程序 25*
第 *7章 FreeRTOS的移植与示例程序运行 253
*7.* RTOS概述 253
*7.*.* RTOS的定义 253
*7.*.2 基于RTOS的开发与裸机开发 254
*7.2 常用的实时操作系统 254
*7.3 FreeRTOS概述 255
*7.4 FreeRTOS在蜂鸟E203 MCU中的移植 257
*7.5 FreeRTOS示例程序的运行 26*
*7.5.* FreeRTOS示例程序 26*
*7.5.2 在HBird SDK中运行FreeRTOS示例程序 26*
*7.5.3 在Nuclei Studio中运行FreeRTOS示例程序 262
第 *8章 获取更多资源 265
*8.* 开源蜂鸟E203 MCU文档资源 265
*8.2 开源蜂鸟E203 MCU嵌入式开发实验 265
*8.3 开源蜂鸟E203处理器教学资源 266
*8.4 开源蜂鸟E203论坛 266
定*:89.0
ISBN:9787**5569493
作者:胡振波 主编 芯来科技生态组 编著
版次:第*版
出版时间:202*-09
内容提要:
本书通过开源蜂鸟E203处理器系统地介绍了RISC-V处理器的嵌入式软件开发方法。*书共3个*分*8章,*但给出嵌入式软件开发的*流程,而且介绍了蜂鸟E203处理器的具体使用方法,通过提供大量的实战项目,帮助读者做到理论与实践相结合。 本书主要面向嵌入式软件开发工程师,以及对RISC-V感兴趣的初*和技术爱好者。
作者简介:
胡振波,拥有上海交通大学电子工程系学士学位和微电子学硕士学位。*内RISC-V社区活跃的贡献者,具有*过*0处理器研发经验,在Marvell和Synopsys等企业负责过多款*性能和低能耗处理器研发工作。20*8年,*办了RISC-V处理器IP和芯片解决方案公司-----芯来科技。
目录:
第 *章 开源蜂鸟E203 MCU总体介绍 *
*.* 蜂鸟E203 MCU的系统结构和*性 *
*.2 蜂鸟E203 MCU的存储资源 2
*.2.* 片上存储资源 2
*.2.2 片外Flash存储资源 2
*.3 蜂鸟E203 MCU的外设资源 3
*.4 蜂鸟E203 MCU的地址分配 3
*.5 蜂鸟E203 MCU的时钟域划分 4
*.6 蜂鸟E203 MCU的电源域划分 5
*.7 蜂鸟E203 MCU的低功耗模式 5
*.8 蜂鸟E203 MCU的*局复位 6
*.9 蜂鸟E203 MCU的上电流程控制 7
*.*0 蜂鸟E203 MCU的*层引脚 7
*.** 蜂鸟E203 MCU的GPIO复用功能 8
*.*2 蜂鸟E203 MCU的中断处理 9
*.*2.* 蜂鸟E203处理器核的异常和中断处理 9
*.*2.2 蜂鸟E203处理器核的中断接口 **
*.*2.3 CLINT模块生成计时器中断和软件中断 *2
*.*2.4 PLIC管理多个外*中断 *3
第 2章 开源蜂鸟E203 MCU的外设 *7
2.* 蜂鸟E203 MCU的外设概述 *7
2.2 PLIC *7
2.3 CLINT *8
2.4 LCLKGEN *8
2.4.* LCLKGEN简介 *8
2.4.2 LCLKGEN的寄存器 *8
2.5 HCLKGEN *8
2.5.* HCLKGEN简介 *8
2.5.2 HCLKGEN的寄存器 *9
2.6 GPIO *9
2.6.* GPIO的功能 *9
2.6.2 GPIO的寄存器 *9
2.6.3 I/O结构和IOF模式 20
2.6.4 MCU各外设复用GPIO引脚 20
2.6.5 GPIO中断 2*
2.6.6 GPIO_PADDIR寄存器 2*
2.6.7 GPIO_PADIN寄存器 2*
2.6.8 GPIO_PADOUT寄存器 2*
2.6.9 GPIO_INTTEN寄存器 22
2.6.*0 GPIO_INTTYPE0和GPIO_INTTYPE*寄存器 22
2.6.** GPIO_INTSTATUS寄存器 22
2.6.*2 GPIO_IOFCFG寄存器 22
2.7 SPI 22
2.7.* 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 QSPI*和QSPI2的寄存器配置 38
2.8 I2C 4*
2.8.* I2C的背景知识 4*
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.*0 I2C的常用操作序列 46
2.9 UART 48
2.9.* 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寄存器 5*
2.9.7 UART_THR寄存器 5*
2.9.8 UART_FCR寄存器 52
2.9.9 UART_LCR寄存器 52
2.9.*0 UART_LSR寄存器 53
2.9.** UART_IER寄存器 53
2.9.*2 UART_IIR寄存器 54
2.*0 PWM 54
2.*0.* PWM的背景知识 54
2.*0.2 PWM的功能和*性 54
2.*0.3 PWM的寄存器 55
2.*0.4 PWM模块的输出信号 55
2.*0.5 TIMx_CMD(x=0,*,2,3)寄存器 55
2.*0.6 TIMx_CFG(x=0,*,2,3)寄存器 56
2.*0.7 TIMx_TH(x=0,*,2,3)寄存器 57
2.*0.8 TIMx_CH0_TH(x=0,*,2,3)寄存器 57
2.*0.9 TIMx_CH*_TH(x=0,*,2,3)寄存器 58
2.*0.*0 TIMx_CH2_TH(x=0,*,2,3)寄存器 58
2.*0.** TIMx_CH3_TH(x=0,*,2,3)寄存器 59
2.*0.*2 TIMx_CNT(x=0,*,2,3)寄存器 60
2.*0.*3 PWM_ENT_CFG寄存器 60
2.*0.*4 PWM_TIMER_EN寄存器 6*
2.** WDT 62
2.**.* WDT的背景知识 62
2.**.2 WDT的*性、功能和结构 62
2.**.3 WDT的寄存器 63
2.**.4 通过WDOGCFG寄存器对WDT进行配置 63
2.**.5 WDT的计数器计数值寄存器—WDOGCOUNT 64
2.**.6 通过WDOGKEY寄存器解锁 65
2.**.7 通过WDOGFEED寄存器“喂狗” 65
2.**.8 WDT的计数器比较值寄存器—WDOGS 66
2.**.9 通过WDOGCMP寄存器配置阈值 66
2.**.*0 WDT产生*局复位 66
2.**.** WDT产生中断 67
2.*2 RTC 67
2.*2.* RTC的背景知识 67
2.*2.2 RTC的*性、功能和结构 67
2.*2.3 RTC的寄存器 68
2.*2.4 通过RTCCFG寄存器进行配置 68
2.*2.5 RTC的计数器计数值寄存器—RTCHI/RTCLO 69
2.*2.6 RTC的计数器比较值寄存器—RTCS 70
2.*2.7 通过RTCCMP寄存器配置阈值 70
2.*2.8 RTC产生中断 70
2.*3 PMU 70
2.*3.* PMU的背景知识 70
2.*3.2 PMU的*性、功能和结构 7*
2.*3.3 PMU的寄存器 72
2.*3.4 通过PMUKEY寄存器解锁 72
2.*3.5 通过PMUSLEEP寄存器进入休眠模式 73
2.*3.6 通过PMUSLEEPI0~PMUSLEEPI7寄存器配置休眠指令序列 73
2.*3.7 通过PMUBACKUP系列寄存器*存关键信息 75
2.*3.8 通过PMUIE寄存器设置唤醒条件 75
2.*3.9 通过PMUWAKEUPI0~PMUWAKEUPI7寄存器配置唤醒指令序列 76
2.*3.*0 通过PMUCAUSE寄存器查看唤醒原因 77
第3章 开源蜂鸟E203 MCU硬件开发平台 78
3.* Nuclei FPGA开发板 78
3.*.* Nuclei DDR200T开发板简介 79
3.*.2 Nuclei DDR200T开发板的硬件功能模块 80
3.*.3 蜂鸟E203 MCU的功能引脚分配 88
3.2 蜂鸟JTAG调试器 89
3.3 总结 90
第4章 软件编译过程 9*
4.* GCC工具链 9*
4.*.* GCC工具链简介 9*
4.*.2 binutils 92
4.*.3 C运行库 93
4.*.4 GCC命令行选项 94
4.2 准备工作 94
4.2.* 安装Linux 94
4.2.2 准备HelloWorld程序 94
4.3 编译过程 95
4.3.* 预处理 95
4.3.2 编译 96
4.3.3 汇编 96
4.3.4 * 97
4.3.5 *步到位的编译 99
4.4 ELF文件 99
4.4.* ELF文件的种类 99
4.4.2 ELF文件的段 *00
4.4.3 查看ELF文件 *00
4.4.4 反汇编 *0*
4.5 嵌入式系统编译的*殊性 *02
4.6 总结 *03
第5章 嵌入式开发的*点与RISC-V GCC工具链 *04
5.* 嵌入式系统开发的*点 *04
5.*.* 交叉编译和远程调试 *04
5.*.2 移植newlib或newlib-nano作为C运行库 *05
5.*.3 引导程序以及中断和异常处理 *06
5.*.4 嵌入式系统的*脚本 *06
5.*.5 减小代码规模 *06
5.*.6 支持printf()函数 *07
5.*.7 提供板级支持* *07
5.2 RISC-V GNU工具链 *08
5.2.* RISC-V GNU工具链的获取 *08
5.2.2 RISC-V GCC工具链的“-march”和“-mabi”选项 *09
5.2.3 RISC-V GCC工具链的“-mcmodel”选项 **3
5.2.4 RISC-V GCC工具链的预定义的宏 **4
5.2.5 RISC-V GNU工具链的使用实例 **5
第6章 RISC-V汇编语言程序设计 **6
6.* 汇编语言概述 **6
6.2 RISC-V汇编程序概述 **7
6.3 RISC-V汇编伪指令 **8
6.4 RISC-V汇编程序伪操作 **8
6.5 RISC-V汇编程序示例 *22
6.5.* 标签 *22
6.5.2 宏 *22
6.5.3 定义常数及其别名 *22
6.5.4 立*数赋值 *23
6.5.5 标签地址赋值 *23
6.5.6 设置浮点数舍入模式 *24
6.5.7 完整实例 *24
6.6 在C/C++程序中嵌入汇编程序 *25
6.6.* GCC内联汇编简介 *26
6.6.2 GCC内联汇编的“输出操作数”和“输入操作数”*分 *27
6.6.3 GCC内联汇编的“可能影响的寄存器或存储器”*分 *28
6.6.4 GCC内联汇编实例* *28
6.6.5 GCC内联汇编实例2 *29
6.6.6 小结 *30
6.7 在汇编程序中调用C/C++语言中的函数 *30
6.8 总结 *3*
第7章 开源蜂鸟E203 MCU的软件开发平台 *32
7.* HBird SDK概述 *32
7.2 HBird SDK的目录结构 *33
7.3 HBird SDK的底层实现解析 *34
7.3.* 移植了newlib的桩函数 *34
7.3.2 支持了printf()函数 *35
7.3.3 提供系统*脚本 *36
7.3.4 系统启动引导程序 *40
7.3.5 系统中断和异常处理 *45
7.3.6 使用newlib-nano减小代码规模 *49
7.4 HBird SDK的使用 *50
7.4.* HBird SDK的环境配置与工具链安装 *50
7.4.2 HBird SDK的运行 *54
第8章 集成开发环境——Nuclei Studio *58
8.* Nuclei Studio的简介、下载与启动 *58
8.*.* Nuclei Studio简介 *58
8.*.2 Nuclei Studio的下载与启动 *58
8.2 使用Nuclei Studio进行蜂鸟E203MCU的开发 *60
第9章 初试蜂鸟E203 MCU开发 *68
9.* 蜂鸟E203 MCU在Nuclei DDR200T开发板中的实现 *68
9.2 蜂鸟调试器的驱动程序的安装和蜂鸟调试器的设置 *75
9.3 基于HBird SDK运行HelloWorld程序 *77
9.3.* 将程序下载*DDR200T开发板 *77
9.3.2 将程序在DDR200T开发板上运行 *78
9.3.3 将程序在DDR200T开发板上调试 *80
9.4 基于Nuclei Studio运行HelloWorld程序 *83
9.4.* 将程序下载*DDR200T开发板 *83
9.4.2 将程序在DDR200T开发板上运行 *86
9.4.3 将程序在DDR200T开发板上调试 *87
第 *0章 Benchmark实验 *90
*0.* 实验目的 *90
*0.2 实验准备 *90
*0.3 实验原理 *90
*0.3.* Dhrystone简介 *9*
*0.3.2 Dhrystone示例程序 *93
*0.3.3 CoreMark简介 *94
*0.3.4 CoreMark示例程序 *95
*0.4 实验步骤 *96
*0.4.* 在HBird SDK中运行Dhrystone示例程序 *96
*0.4.2 在Nuclei Studio中运行Dhrystone示例程序 *98
*0.4.3 在HBird SDK中运行CoreMark示例程序 200
*0.4.4 在Nuclei Studio中运行CoreMark示例程序 202
第 **章 内联汇编实验 205
**.* 实验目的 205
**.2 实验准备 205
**.3 实验原理 205
**.3.* 在C/C++程序中嵌入汇编程序 205
**.3.2 内联汇编示例程序 206
**.4 实验步骤 206
**.4.* 在HBird SDK中运行内联汇编示例程序 206
**.4.2 在Nuclei Studio中运行内联汇编示例程序 208
第 *2章 GPIO实验 2*3
*2.* 实验目的 2*3
*2.2 实验准备 2*3
*2.3 实验原理 2*3
*2.3.* GPIO简介 2*3
*2.3.2 GPIO示例程序 2*4
*2.4 实验步骤 2*5
*2.4.* 在HBird SDK中运行GPIO示例程序 2*5
*2.4.2 在Nuclei Studio中运行GPIO示例程序 2*6
第 *3章 PWM实验 220
*3.* 实验目的 220
*3.2 实验准备 220
*3.3 实验原理 220
*3.3.* PWM简介 220
*3.3.2 PWM示例程序 22*
*3.4 实验步骤 222
*3.4.* 在HBird SDK中运行PWM示例程序 222
*3.4.2 在Nuclei Studio中运行PWM示例程序 224
第 *4章 SPI实验 227
*4.* 实验目的 227
*4.2 实验准备 227
*4.3 实验原理 227
*4.3.* SPI简介 227
*4.3.2 SPI示例程序 228
*4.4 实验步骤 229
*4.4.* 在HBird SDK中运行SPI示例程序 229
*4.4.2 在Nuclei Studio中运行SPI示例程序 23*
第 *5章 I2C实验 235
*5.* 实验目的 235
*5.2 实验准备 235
*5.3 实验原理 235
*5.3.* I2C简介 235
*5.3.2 I2C示例程序 236
*5.4 实验步骤 237
*5.4.* 在HBird SDK中运行I2C示例程序 237
*5.4.2 在Nuclei Studio中运行I2C示例程序 238
第 *6章 中断相关实验 243
*6.* 实验目的 243
*6.2 实验准备 243
*6.3 实验原理 243
*6.3.* 计时器中断和软件中断 243
*6.3.2 计时器中断和软件中断示例程序 244
*6.3.3 外*中断 244
*6.3.4 外*中断示例程序 245
*6.4 实验步骤 246
*6.4.* 在HBird SDK中运行计时器中断与软件中断示例程序 246
*6.4.2 在Nuclei Studio中运行计时器中断与软件中断示例程序 247
*6.4.3 在HBird SDK中运行外*中断示例程序 249
*6.4.4 在Nuclei Studio中运行外*中断示例程序 25*
第 *7章 FreeRTOS的移植与示例程序运行 253
*7.* RTOS概述 253
*7.*.* RTOS的定义 253
*7.*.2 基于RTOS的开发与裸机开发 254
*7.2 常用的实时操作系统 254
*7.3 FreeRTOS概述 255
*7.4 FreeRTOS在蜂鸟E203 MCU中的移植 257
*7.5 FreeRTOS示例程序的运行 26*
*7.5.* FreeRTOS示例程序 26*
*7.5.2 在HBird SDK中运行FreeRTOS示例程序 26*
*7.5.3 在Nuclei Studio中运行FreeRTOS示例程序 262
第 *8章 获取更多资源 265
*8.* 开源蜂鸟E203 MCU文档资源 265
*8.2 开源蜂鸟E203 MCU嵌入式开发实验 265
*8.3 开源蜂鸟E203处理器教学资源 266
*8.4 开源蜂鸟E203论坛 266
- 人民邮电出版社有限公司 (微信公众号认证)
- 人民邮电出版社微店,为您提供最全面,最专业的一站式购书服务
- 扫描二维码,访问我们的微信店铺
- 随时随地的购物、客服咨询、查询订单和物流...