图书介绍
NiosⅡ软件架构解析PDF|Epub|txt|kindle电子书版本网盘下载
![NiosⅡ软件架构解析](https://www.shukui.net/cover/49/31773429.jpg)
- 蔡伟纲编著 著
- 出版社: 西安:西安电子科技大学出版社
- ISBN:9787560619224
- 出版时间:2007
- 标注页数:230页
- 文件大小:16MB
- 文件页数:251页
- 主题词:微处理器-系统设计
PDF下载
下载说明
NiosⅡ软件架构解析PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第一部分 横向揭密3
第1章 中断揭密篇3
1.1 异常的概念3
1.1.1 中断的引入3
1.1.2 异常的引入3
1.2 与异常相关的术语3
1.application context(应用背景)3
2.exception context(异常背景)4
3.context switch(背景切换)4
4.exception handler(异常handler)4
5.exception overhead(异常开销)4
6.hardware interrupt(硬件中断)4
7.interrupt service routine(ISR,中断服务函数)4
8.software exception(软件异常)4
9.implementation-dependent instruction(依赖于处理器具体实现的指令)4
10.unimplemented instruction(未完成指令)4
11.invalid instruction(无效指令)4
1.3 Nios Ⅱ异常处理概述4
1.4 Nios Ⅱ处理器的异常地址5
1.5 Nios Ⅱ处理器支持的异常类型5
1.6 Nios Ⅱ处理器的异常触发机理6
1.硬件中断的触发机理6
2.软件异常的触发机理6
1.7 Nios Ⅱ处理器对异常的响应7
1.异常的硬件响应7
2.异常的软件响应7
1.8 异常handler架构7
1.顶层异常handler8
2.硬件中断handler8
3.软件异常handler9
4.外设中断的ISR10
1.9 中断向量表12
1.10 中断控制器初始化13
1.11 中断的调试13
1.12 中断响应性能分析14
1.中断性能指标参数14
2.影响中断性能的因素14
3.中断性能测试实例15
1.13 Nios Ⅱ异常处理小结15
1.14 Nios Ⅱ异常处理注意事项16
1.软件异常与硬件中断返回地址的区别16
2.异常handler代码存储布局16
3.异常handler代码编译控制17
1.15 源文件19
1.alt_exception_entry.S19
2.alt_irq_entry.S26
3.alt_exception_trap.S28
4.alt_exception_muldiv.S29
5.alt_irq_register.c30
6.alt_irq_handler.c31
7.alt_irq_entry.h33
8.alt_irq_table.h33
9.alt_irq.h34
10.alt_irq_vars.c38
11.nios2.h38
第2章 复位揭密篇41
2.1 复位的概念41
2.2 Nios Ⅱ处理器的复位地址41
2.3 Nios Ⅱ处理器的复位响应42
1.复位的硬件响应42
2.复位的软件响应42
2.4 Nios Ⅱ处理器的复位状态43
2.5 Nios Ⅱ的启动代码44
1.代码段入口-start44
2.硬件描述层的C入口函数alt_main45
2.6 Nios Ⅱ处理器的Bootloader46
1.Bootloader承担的任务46
2.Altera提供的Bootloader46
3.Bootloader的模式48
4.Elf2flash48
2.7 Nios Ⅱ系统的Boot过程分析49
1.从EPCS Flash中Boot50
2.从CFI Flash中Boot51
3.Bootloader源文件53
2.8 Nios Ⅱ处理器复位小结54
2.9 源文件55
1.CrtO.S55
2.alt_main.c60
3.walt_sys_init.c63
4.alt_set_args.h64
5.alt_load.c65
6.alt_load.h67
第3章 HAL揭密篇68
3.1 HAL系统库概览68
1.主要功能69
2.通用设备模型69
3.C标准库——Newlib70
3.2 基于HAL的项目架构70
3.3 HAL源码的组织架构71
1.HAL元件71
2.HAL元件的目录结构72
3.HAL头文件72
4.HAL源文件72
5.HAL外设头文件72
3.4 HAL编程环境73
1.系统描述文件System.h73
2.HAL定义的数据类型76
3.UNIX风格接口函数76
4.HAL文件系统77
5.应用程序入口78
6.存储空间布局78
7.堆和栈空间80
8.全局变量指针寄存器81
9.缓存(Cache)81
10.紧耦合存储器(Tightly-Coupled Memory)84
第4章 外设驱动篇86
4.1 使用HAL外设驱动86
1.使用HAL外设总体思路86
2.HAL支持的外设86
3.使用字符模式设备87
4.使用文件子系统88
5.使用定时器设备88
6.使用Flash设备93
7.使用DMA设备100
8.PIO驱动详解104
9.ioctl函数110
4.2 HAL外设自动初始化原理110
1.系统初始化文件alt_sys_init.c110
2.alt_sys_init.c的生成111
3.宏定义*_INSTANCE和*_INIT112
4.3 开发HAL外设驱动112
1.开发符合通用设备模型的HAL外设驱动112
2.开发自定义HAL外设驱动120
4.4 集成HAL外设驱动121
4.5 小封装驱动121
4.6 命名空间121
4.7 重载设备驱动122
第5章 应用程序二进制接口篇125
5.1 概述125
5.2 数据类型约定125
5.3 内存对齐约定126
5.4 寄存器使用约定126
1.寄存器保护127
2.Caller-Saved寄存器127
3.Callee-Saved寄存器127
5.5 Endianess128
5.6 栈(stack)与帧(frame)空间129
1.帧结构129
2.消除帧指针131
3.帧空间的开辟与释放132
5.7 函数参数与返回值接口132
1.函数参数132
2.函数返回值133
5.8 栈空间代码示例134
1.源码134
2.反汇编代码135
第二部分 纵向解析141
第6章 IDE属性配置141
6.1 系统库属性配置141
1.菜单操作141
2.属性配置示例141
3.属性介绍142
6.2 C/C++ Build属性配置144
1.菜单操作144
2.属性配置示例144
3.属性介绍144
6.3 Preferences属性配置145
1.菜单操作145
2.属性配置示例146
3.属性介绍146
第7章 软件调试技巧148
7.1 观察寄存器148
7.2 观察变量148
7.3 观察内存149
7.4 观察表达式150
7.5 设置断点150
7.6 Watchpoint151
7.7 在HAL源文件中设置断点152
7.8 指令单步调试模式153
7.9 观察复杂的结构变量154
7.10 观察.objdump文件154
7.11 Trace155
7.12 Profiling156
第8章 软件开发技巧157
8.1 优化代码尺寸157
1.使能编译优化选项157
2.使用小封装设备驱动157
3.减少文件描述器的数目158
4.使用/dev/null设备名158
5.使用UNIX风格的IO函数取代标准C函数158
6.使用精简版本NewLib C标准库159
7.消除未用的设备驱动159
8.使用_exit替代exit函数160
9.禁止指令仿真功能160
8.2 开发和使用库文件161
1.库文件的优点161
2.Nios Ⅱ IDE支持的库项目类型161
3.创建库项目161
4.如何在Nios Ⅱ IDE中使用库文件161
8.3 使用自定义的Linker Script162
8.4 重载HAL源码163
8.5 自定义代码和数据属性164
8.6 使用asm/C/C++混合编程165
1.C与C++混合编程范例166
2.C与ASM混合编程范例167
3.内联汇编范例168
第9章 软件架构中的预处理器171
9.1 如何在Nios Ⅱ IDE中控制全局预处理器171
9.2 Nios Ⅱ软件架构中的预处理器172
1.ALT_NO_BOOTLOADER172
2.ALT_USE_SMALL_DRIVERS173
3.ALTERA_AVALON_JTAG_UART_SMALL173
4.ALT_EXCEPTION_STACK173
5.ALT_STACK_CHECK174
6.ALT_NO_INSTRUCTION_EMULATION174
7.ALT__TRAP_HANDLER174
8.ALT_NO_CLEAN_EXIT175
9.NIOS2_ICACHE_SIZE175
10.ALT ASM_SRC175
11.ALT_SIM_OPTIMIZE176
12.NIOS2_HAS_DEBUG_STUB176
第10章 软件架构中的特殊宏定义177
10.1 语言符号粘贴操作符(##)177
10.2 __ALT_LOAD_SECTIONS,_ALT_LOAD_SECTIONS,ALT_LOAD_SECTIONS177
10.3 ALT_LOAD_SECTION_BY_NAME178
10.4 <COMPONENT_NAME>_INSTANCE179
10.5 <COMPONENT NAME>_INIT180
第11章 汇编语言相关语法181
11.1 Nios Ⅱ汇编器的特殊宏181
1.%lo181
2.%hi181
3.%hiadj181
4.%gprel181
11.2 Nios Ⅱ汇编器特殊宏的应用示范181
1.把一个32位的立即数IMMED32赋予寄存器181
2.在汇编指令中寻址全局变量182
11.3 Nios Ⅱ指令集182
11.4 GCC汇编语言语法知识182
第12章 链接脚本(Linker Script)184
12.1 链接脚本基本概念184
12.2 链接脚本的相关语法185
1.ENTRY185
2.INCULDE185
3.INPUT185
4.OUTPUT FORMAT185
5.OUTPUT ARCH185
6.KEEP185
7.PROVIDE186
8.MEMORY186
9.(.)187
10.LOADADDR187
11.SECTIONS187
12.3 NiosⅡ链接脚本中定义的符号188
1.__alt_stack_pointer188
2.__alt_stack_limit188
3.__alt_exception_stack_pointer188
4.__alt_exception_stack_limit188
5.__alt_heap_start188
6.__alt_heap_end189
7.__bss_start189
8.__bss_end189
9._gp189
12.4 在源文件中使用链接脚本定义的符号189
12.5 Linker Script输入节点190
1.默认节点属性190
2.自定义节点属性190
12.6 Linker Script输出节点191
12.7 Linker Script逻辑段191
12.8 Linker Script如何控制代码的存储布局191
12.9 Nios Ⅱ IDE自动生成的链接脚本191
第13章 编译文件介绍200
13.1 makefile相关文件200
1.makefile.mk200
2.app.mk202
3.system.mk202
4.generated_all.mk202
5.app_rules.mk202
6.system_rules.mk203
7.generated_app.mk203
8.common.mk203
9.component.mk203
10.gnu_rules.mk203
11.gtf_rules.mk204
13.2 其他文件204
1.ptf文件204
2.stf文件204
3.cdtbuild文件204
第14章 处理器操作模式及寄存器205
14.1 操作模式205
1.Normal模式205
2.Debug模式205
14.2 通用寄存器205
14.3 控制寄存器206
1.status(ct10)206
2.estatus(ct11)206
3.bstatus(ct12)206
4.ienable(ct13)206
5.ipending(ct14)206
6.cpuid(ct15)206
14.4 内建(builtin)函数207
第15章 软件开发工具介绍208
15.1 Nios Ⅱ集成开发环境及其相关工具208
1.Nios Ⅱ IDE208
2.Flash Programmer208
3.Instruction Set Simulator209
4.Quartus Ⅱ Programmer209
15.2 Altera命令行工具209
1.命令行工具的位置209
2.命令行工具的使用209
3.命令行工具的帮助209
4.Nios Ⅱ IDE命令行工具209
5.文件转换工具210
15.3 GNU编译器工具链211
15.4 软件库和嵌入式软体元件211
1.Hardware abstraction layer(HAL)system library211
2.MicroC/OS-Ⅱ RTOS212
3.Lightweight IP TCP/IP stack212
4.Newlib ANSI C standard library212
5.Read-only zip file system212
6.Example designs212
第16章 VerifyFailed小结216
16.1 nios2-download介绍216
1.何时使用nios2-download工具216
2.nios2-download的对象216
3.nios2-download的操作步骤216
4.nios2-download的工作原理216
16.2 VerifyFailed的可能原因217
1.物理板的问题217
2.Nios Ⅱ系统的软硬件不同步217
3.FPGA未用的I/O口设置不正确217
4.JTAG信号干扰217
5.目标地址不属于RAM类型的地址范畴218
6.目标地址没有与CPU的data master总线互连218
7.存储器的数据引脚应为双向IO口218
8.SDRAM的时序问题218
9.Nios Ⅱ系统本身存在的缺陷219
16.3 VerifyFailed解决方案219
16.4 关闭verify功能220
16.5 修改elf文件去除不要verify的部分220
第17章 动态栈溢出检测功能222
17.1 动态栈溢出检测的原理222
17.2 动态栈溢出检测的实现222
1.et寄存器222
2.sp寄存器223
3.栈溢出检测的核心指令223
4.动态栈溢出检测的具体操作223
17.3 独立异常栈224
17.4 源文件224
1.alt_stack.h224
2.alt_sbrk.c226
参考文献230