编辑推荐
《嵌入式C编程实战》向读者介绍嵌入式C语言开发以及嵌入式系统的微处理器架构的相关知识。《嵌入式C编程实战》的目的是向读者循序渐进地展示嵌入式系统的项目的整体设计,从而掌握系统设计的能力和牢固的理论知识。
《嵌入式C编程实战》中采用了BeMicroMax10开发板,该开发板可以实现硬件的重构,因此可以用它来完成各种不同硬件架构下的实验。
《嵌入式C编程实战》可以作为嵌入式C语言开发的入门读物。它并不仅仅是一本学习嵌入式C语言开发的教材,也是在嵌入式系统中使用那些神奇的传感器做实验时的好助手。《嵌入式C编程实战》所对应的强化课程和远程课程详见http://www.agstu.se。《嵌入式C编程实战》中硬件设计都可以在http://lowlevelcprogramming.agstu.com/下载。
+《嵌入式C编程实战》具有以下特色
●每个案例都来自真实的工程项目;
●《嵌入式C编程实战》实例都坚持理论和实践相结合;
●针对C语言位操作的精彩讲解;
●如何编写高效的C语言代码;
●设备驱动以及驱动板级支持包(BSP)的编写;
●轮转系统和中断系统;
●模拟信号转换器和BeMicroMax10可重构硬件开发板的相关内容;
●可使用免费的AlteraSW专业开发工具来实现《嵌入式C编程实战》中的所有实例。内容简介
嵌入式系统一般指非PC系统,它包括硬件和软件两部分。嵌入式产品应用领域极为广泛,并且具备非常好的发展前景!
《嵌入式C编程实战》致力于使用微控制器来设计嵌入式系统,《嵌入式C编程实战》包含8章内容,介绍了嵌入式软件设计基础理论,还提供了多个C语言的编程示例。通过理论与实践相结合的方式,《嵌入式C编程实战》可以帮助读者快速掌握嵌入式开发的核心技巧。
《嵌入式C编程实战》适合嵌入式开发人员以及想要学习嵌入式C语言开发的学生和普通程序员阅读。作者简介
LarsBengtsson博士目前在哥德堡大学担任副教授,他编写了一些电子、编程、嵌入式系统以及电子测量系统方面的书籍。LarsBengtsson博士的研究领域主要是嵌入式测量系统以及仪器芯片研制。
LennartLindh目前是一名从事教育行业的副教授,他在多所大学从事研究和FPGA产品的研发。他知名的成果是一款可以用于单处理器和多处理器系统的基于实时内核的硬件产品。他还是FPGAworld会议(www.fpgaworld.com)的组织者,并为嵌入式软件硬件系统设计课程。目录
第1章 嵌入式系统简介1
1.1 嵌入式计算机系统1
1.2 应用程序和平台6
1.3 复杂度降低7
1.3.1 抽象8
1.3.2 结构9
1.3.3 层次结构10
1.4 硬件-FPGA设备10
1.4.1 软件11
1.4.2 硬件和软件之间的接口12
1.5 软件开发工具14
1.5.1 编译器15
1.5.2 链接器15
1.6 YouTube的推荐资源16
第2章 硬件与软件的安装17
2.1 软件(IDE)18
2.2 硬件平台19
2.2.1 BeMicroMAX10开发板19
2.2.2 系统时钟21
2.2.3 LED和按钮22
第3章 案例124
3.1 硬件架构-案例1A24
3.1.1 CPUNiosII25
3.1.2 Avalon总线27
3.1.3 JTAGUART28
3.2 设计案例1A29
3.2.1 介绍29
3.2.2 案例1A:硬件部分29
3.2.3 实现31
3.3 设计案例1B43
3.3.1 理论:调试、监控和仿真43
3.3.2 传统的软件调试44
3.3.3 案例1B:使用调试器46
3.3.4 案例1B:软件调试49
3.4 设计案例1C:嵌入式C语言开发55
3.4.1 理论:二进制格式和ASCII码55
3.4.2 理论:Altera专用软件“HAL(硬件抽象层)”57
3.4.3 理论:内存映射60
3.4.4 PIO理论(并行输入/输出)61
3.4.5 理论:C语言中的位操作62
3.4.6 理论:使用键盘和终端进行输入和输出67
3.4.7 案例1C:内存映射与硬件69
3.4.8 案例1C:软件设计70
3.4.9 小结77
第4章 案例2-添加外部存储78
4.1 存储78
4.1.1 RAM79
4.1.2 ROM80
4.2 设计案例2:添加外部RAM84
4.3 小结89
4.4 YouTube资源和网络资源推荐89
第5章 案例3-编写设备驱动程序90
5.1 简介90
5.2 案例规范92
5.3 接口92
5.3.1 驱动程序92
5.3.2 寄存器93
5.4 软件–硬件抽象层95
5.5 设计案例3A:编写设备驱动99
5.6 将设备驱动程序整合到BSP中104
5.7 设计案例3B:使用tickle文件107
5.8 设备驱动程序109
5.9 小结111
第6章 案例4-C代码的优化112
6.1 简介112
6.2 值得考虑的部分113
6.2.1 选择一个优秀的算法113
6.2.2 编写简单明了的代码113
6.2.3 操作114
6.2.4 了解编译器的选项115
6.2.5 将C代码移植到VHDL中115
6.3 代码优化技术115
6.3.1 变量116
6.3.2 结构体122
6.3.3 函数124
6.3.4 条件分支与循环128
6.3.5 指针131
6.4 简单执行时间测量技术133
6.5 设计案例4:测量C代码性能135
6.6 小结140
6.7 引用141
第7章 案例5-轮询和中断142
7.1 简介142
7.2 软件轮询输入/输出系统143
7.3 设计案例5A:硬件架构-轮询系统144
7.4 设计案例5A:软件-轮询系统144
7.5 中断系统148
7.5.1 简介148
7.5.2 NiosⅡ处理器的中断150
7.6 设计案例5B:中断系统154
7.7 讨论158
7.8 引用158
7.9 YouTube推荐159
第8章 案例6-模拟信号处理160
8.1 简介160
8.2 嵌入式系统中的模拟信号160
8.2.1 ADCs-模拟数字转换器160
8.2.2 逐次逼近163
8.2.3 MAX10开发板上的ADC模块164
8.2.4 LDR-光敏电阻167
8.3 设计案例6:信号的处理168
8.3.1 案例6:产品规格168
8.3.2 案例6:硬件168
8.3.3 案例6:实现169
8.4 讨论171
8.5 引用172
8.6 YouTube视频推荐172