嵌入式网络系统设计:基于ATMEL ARM7系列PDF电子书下载
- 电子书积分:15 积分如何计算积分?
- 作 者:焦海波,刘健康编著
- 出 版 社:北京:北京航空航天大学出版社
- 出版年份:2008
- ISBN:7811242621
- 页数:480 页
第1章 搭建自己的硬件平台 1
1.1 目标系统简介 1
1.2 芯片选型 1
1.3 主芯片功能特性介绍 2
1.3.1 Atmel AT91SAM7x256芯片 2
1.3.2 Realtek RTL8201BL物理层(PHY)芯片 6
1.4 电路设计 8
1.4.1 电源及时钟电路 8
1.4.2 接口电路 9
1.4.3 以太网电路 11
1.5 自己制作Wiggler仿真器 12
1.5.1 Wiggler仿真器简介 12
1.5.2 Wiggler仿真器电路 13
1.5.3 Wiggler仿真器驱动软件 14
第2章 建立开发环境 17
2.1 安装ADS1.2 17
2.2 安装设置仿真器 18
第3章 构建一个最基本的嵌入式系统 19
3.1 Hello,embedded world! 19
3.2 第一个驱动程序 25
3.2.1 点亮开发板 25
3.2.2 脱离仿真环境 32
3.2.3 代码剖析——驱动程序的基本构造 41
3.2.4 RO与程序执行时的地址空间 48
3.3 使用高速时钟PLLCK——让LED飞起来 53
3.3.1 Atmel的头文件及时钟选择代码 53
3.3.2 时钟发生器与电源管理控制器 58
3.3.3 时钟设置代码剖析 62
3.4 精确控制LED的闪烁频率——使用定时器 66
3.4.1 编写第五个程序 67
3.4.2 映像文件、入口点与Startup段 71
3.4.3 中断处理 76
3.4.4 处理器模式 88
3.4.5 异常 92
3.4.6 代码剖析 96
3.5 中断嵌套与快速中断 112
3.5.1 普通中断的嵌套 112
3.5.2 快速中断与嵌套 125
3.6 自己编写下载工具 128
第4章 系统的改进——使用RTOS 132
4.1 RTOS简介 132
4.2 μC/OS-Ⅱ——一个开源的RTOS简介 136
4.3 移植μC/OS-Ⅱ到AT91SAM7x256 137
4.3.1 下载μC/OS-Ⅱ及移植范例 137
4.3.2 移植方法 142
4.3.3 准备工作——建立基本的ADS工程 144
4.3.4 OS_CPU.H 147
4.3.5 OS_CPU_C.C的移植 159
4.3.6 OS_CPU_A.S 179
4.3.7 编写测试代码 197
4.3.8 编译器移植与μC/OS-Ⅱ配置文件 200
4.3.9 使用AXD验证μC/OS-Ⅱ 207
4.4 μC/OS-Ⅱ的通信及同步机制 223
4.4.1 实现第一个要求——使用信号量 223
4.4.2 实现第二个要求——使用互斥型信号量 228
4.4.3 实现第三个要求 231
4.5 总结 247
第5章 进阶——嵌入式TCP/IP协议栈LwIP 248
5.1 协议层 248
5.2 LwIP概览 249
5.3 进程模型 249
5.4 操作系统模拟层 250
5.5 缓冲与内存管理 251
5.5.1 包缓冲区(Packet buffers)——pbufs 251
5.5.2 内存管理 252
5.6 网络接口 253
5.7 IP处理 254
5.7.1 接收数据包 254
5.7.2 发送数据包 254
5.7.3 转发数据包 255
5.7.4 ICMP处理 255
5.8 UDP处理 256
5.9 TCP处理 257
5.9.1 概览 257
5.9.2 数据结构 258
5.9.3 序号计算 261
5.9.4 排队与发送数据 261
5.9.5 接收报文段 262
5.9.6 接受新的连接 263
5.9.7 快速重发 263
5.9.8 定时器 263
5.9.9 RTT估算 264
5.9.10 阻塞控制 264
5.10 协议栈接口 264
5.11 应用程序接口 265
5.11.1 基本概念 265
5.11.2 API实现 266
5.12 API参考手册 267
5.12.1 数据类型 267
5.12.2 缓冲区函数 267
5.12.3 网络连接函数 270
5.13 实现BSD Socket库 276
5.13.1 socket表示方法 276
5.13.2 分配socket 276
5.13.3 连接设置 277
5.13.4 发送和接收数据 279
5.14 LwIP应用实例 283
5.14.1 使用LwIP API 283
5.14.2 使用协议栈直接接口 285
第6章 移植LwIP——实现操作系统模拟层 288
6.1 获得LwIP源码 288
6.2 建立一个最基本的工程 288
6.3 把LwIP加入工程 288
6.4 官方文档——操作系统模拟层移植说明 290
6.5 准备工作——建立文件、定义数据类型及其他 293
6.6 信号量操作函数 297
6.6.1 sys_new_sem()函数 297
6.6.2 sys_sem_signal()函数 297
6.6.3 sys_sem_free()函数 298
6.6.4 sys_arch_sem_wait()函数 298
6.6.5 编译 301
6.7 邮箱操作函数 304
6.7.1 准备工作——设计思路及数据类型定义 304
6.7.2 sys_mbox_new()函数 309
6.7.3 sys_mbox_free()函数 311
6.7.4 sys_mbox_post()函数 311
6.7.5 sys_arch_mbox_fetch()函数 312
6.8 实现sys_thread_new()函数 313
6.9 实现sys_arch_timeouts()函数 316
6.10 实现临界保护函数 318
6.11 扫尾——结束操作系统模拟层的编写 319
第7章 以太网MAC(EMAC)编程手册 323
7.1 概览 323
7.2 结构框图 323
7.3 功能描述 324
7.3.1 接收缓冲区 325
7.3.2 发送缓冲区 328
7.3.3 EMAC发送模块 330
7.3.4 暂停帧(Pause Frame)支持 331
7.3.5 EMAC接收模块 331
7.3.6 EMAC地址检查模块 332
7.3.7 广播地址 333
7.3.8 哈希寻址 333
7.3.9 复制所有帧(或混杂模式) 334
7.3.10 类型ID检查 334
7.3.11 VLAN支持 334
7.3.12 PHY管理 335
7.3.13 MII与RMII接口 335
7.4 操作说明 336
7.4.1 初始化配置 336
7.4.2 初始化接收缓冲区数组 336
7.4.3 初始化发送缓冲区数组 337
7.4.4 地址匹配 337
7.4.5 中断 338
7.4.6 发送帧 338
7.4.7 接收帧 338
7.5 用户接口——寄存器说明 339
7.5.1 网络控制寄存器 340
7.5.2 网络配置寄存器 342
7.5.3 网络状态寄存器 343
7.5.4 发送状态寄存器 344
7.5.5 接收缓冲区队列指针寄存器 344
7.5.6 发送缓冲区队列指针寄存器 345
7.5.7 接收状态寄存器 346
7.5.8 中断状态寄存器 346
7.5.9 中断使能寄存器 348
7.5.10 中断禁止寄存器 348
7.5.11 中断掩码寄存器 349
7.5.12 PHY管理寄存器 350
7.5.13 暂停时间寄存器 351
7.5.14 低位哈希寄存器 351
7.5.15 高位哈希寄存器 351
7.5.16 低位特殊地址寄存器1~4 352
7.5.17 高位特殊地址寄存器1~4 352
7.5.18 类型ID寄存器 353
7.5.19 用户输入/输出寄存器 353
7.5.20 统计寄存器 354
第8章 LwIP应用之旅——初始化、网络驱动及使用8.1 rawapi.txt——LwIP初始化说明 355
8.2 准备工作——建立LwIP入口文件 357
8.3 _ilvInitLwIP()函数 358
8.4 _ilvSetLwIP()函数 359
8.5 ethernetif_init()——初始化底层网络接口函数 364
8.5.1 ethernetif_init()——底层网络接口的入口函数 365
8.5.2 low_level_output()——链路层发送函数 366
8.5.3 low_level_init()——网卡初始化函数 368
8.5.4 EMACInit()——网卡初始化工作的实际完成者 370
8.5.5 ethernetif_input()——实现接收线程 397
8.5.6 low_level_input()——读取完整的一帧数据 399
8.5.7 GetInputPacketLen()函数——获得帧长 401
8.5.8 EMACReadPacket()——搬运,从接收缓冲区到pbuf 405
8.5.9 EMACSendPacket()函数——发送一帧数据 411
8.5.10 编译ethernetif.c及lib_emac.c文件 415
8.6 ping——结束LwIP的移植 418
8.6.1 编译、链接整个工程 418
8.6.2 遗漏的工作——把LwIP整合到系统中 421
8.6.3 测试LwIP——ping及简单的WEB服务器 425
第9章 重构——继续改进系统 428
9.1 改善软件系统的可维护性 428
9.1.1 提高源码的可读性 428
9.1.2 添加必要的注释语句 430
9.1.3 重新调整程序文件及代码的组织结构 431
9.2 改善软件系统的可扩展性、可重用性 432
9.2.1 重新架构网络系统 432
9.2.2 编码实现新的系统架构 435
9.2.3 小结 443
9.3 SWI系统调用 444
9.3.1 工作机制 444
9.3.2 编码实现SWI系统调用 447
第10章 实现动态网页服务 451
10.1 设计思路 451
10.2 源码剖析 454
10.3 实现DNS解析 460
附录A 开发板原理图 471
附录B ARM指令集编码 472
附录C 程序状态寄存器位域说明 474
附录D AT91SAM7x256内嵌外设用户接口列表 475
附录E PIO控制器复用引脚说明 479
参考文献 481
- 《计算机网络与通信基础》谢雨飞,田启川编著 2019
- 《管理信息系统习题集》郭晓军 2016
- 《中国铁路人 第三届现实主义网络文学征文大赛一等奖》恒传录著 2019
- 《信息系统安全技术管理策略 信息安全经济学视角》赵柳榕著 2020
- 《系统解剖学速记》阿虎医考研究组编 2019
- 《慢性呼吸系统疾病物理治疗工作手册》(荷)瑞克·考斯林克(RikGosselink) 2020
- 《社会文化系统中的翻译》姜秋霞,杨正军 2019
- 《中国生态系统定位观测与研究数据集 森林生态系统卷 云南西双版纳》邓晓保·唐建维 2010
- 《物联网与嵌入式技术及其在农业上的应用》马德新 2019
- 《大气氮沉降及其对生态系统的影响》方琨,王道波 2019
- 《市政工程基础》杨岚编著 2009
- 《家畜百宝 猪、牛、羊、鸡的综合利用》山西省商业厅组织技术处编著 1959
- 《《道德经》200句》崇贤书院编著 2018
- 《高级英语阅读与听说教程》刘秀梅编著 2019
- 《计算机网络与通信基础》谢雨飞,田启川编著 2019
- 《看图自学吉他弹唱教程》陈飞编著 2019
- 《法语词汇认知联想记忆法》刘莲编著 2020
- 《培智学校义务教育实验教科书教师教学用书 生活适应 二年级 上》人民教育出版社,课程教材研究所,特殊教育课程教材研究中心编著 2019
- 《国家社科基金项目申报规范 技巧与案例 第3版 2020》文传浩,夏宇编著 2019
- 《流体力学》张扬军,彭杰,诸葛伟林编著 2019
- 《大学计算机实验指导及习题解答》曹成志,宋长龙 2019
- 《指向核心素养 北京十一学校名师教学设计 英语 七年级 上 配人教版》周志英总主编 2019
- 《大学生心理健康与人生发展》王琳责任编辑;(中国)肖宇 2019
- 《大学英语四级考试全真试题 标准模拟 四级》汪开虎主编 2012
- 《大学英语教学的跨文化交际视角研究与创新发展》许丽云,刘枫,尚利明著 2020
- 《北京生态环境保护》《北京环境保护丛书》编委会编著 2018
- 《复旦大学新闻学院教授学术丛书 新闻实务随想录》刘海贵 2019
- 《大学英语综合教程 1》王佃春,骆敏主编 2015
- 《大学物理简明教程 下 第2版》施卫主编 2020
- 《指向核心素养 北京十一学校名师教学设计 英语 九年级 上 配人教版》周志英总主编 2019