编辑: 865397499 | 2014-01-22 |
Debugger, OCD, BDM, HCS08/HCS12 Written by:Meng Zhongwei Supervised by: Wang Yihuai 目录
第一章 绪论.1 1.1 课题背景.1 1.1.1 调试技术的发展.1 1.1.2 后台调试模式应用现状.3 1.2 编程调试器开发的必要性.3 1.3 本文工作和结构.5 1.3.1 本文工作.5 1.3.2 本文结构.6
第二章 相关技术概要和设计方案.7 2.1 编程调试器相关基础知识.7 2.1.1 USB2.0 接口技术.7 2.1.2 BDM 通信技术
10 2.2 影响编程调试器性能的因素.15 2.2.1 BDM 通信协议剖析
15 2.2.2 现有编程调试器局限分析.16 2.3 设计方案.18 2.3.1 整体框架.18 2.3.2 与CodeWarrior 兼容性解决.19 2.4 本章小结.20
第三章 硬件设计.22 3.1 芯片选型及功能概述.22 3.2 编程调试器硬件设计.23 3.2.1 最小系统电路设计.23 3.2.2 电源控制电路设计.25 3.2.3 目标 MCU 复位控制检测电路
27 3.2.4 BDM 通信电路
30 3.2.5 其他电路.31 3.3 硬件测试及设计体会.32 3.3.1 硬件模块测试.32 3.3.2 硬件设计体会.33 3.4 本章小结.34
第四章 软件设计.35 4.1 总体设计.35 4.2 MCU 方软件
37 4.2.1 USB 模块设计.37 4.2.2 BDM 通信设计
42 4.2.3 速度测试及收发程序的选择.45 4.2.4 通信格式及命令处理.48 4.3 PC 方软件设计.51 4.3.1 驱动动态链接库分析.51 4.3.2 驱动动态链接库的设计.52 4.4 软件测试与性能分析.57 4.4.1 软件测试.57 4.4.2 性能分析.59 4.4 本章小结.60
第五章 应用实例设计.62 5.1 编程工具设计分析.62 5.2 编程工具实现.63 5.2.1 设备初始化.64 5.2.2 擦除.64 5.2.3 写入.66 5.2.4 读取和其他.67 5.3 本章小结.67
第六章 总结与展望.68 6.1 全文总结.68 6.2 课题展望.69 参考文献.70 攻读硕士学位期间公开发表的论文及鉴定项目.74 附录 A JM60 芯片 USB 模块寄存器
75 附录 B USB 设备描述符
76 附录 C 编程调试器驱动程序库.78 C.1 HCS12 库函数.78 C.2 HCS08 库函数.80 附录 D 编程调试器原理图.81 D.1 最小系统原理图.81 D.2 控制电路原理图.82 附录 E 编程调试器实物图
83 致谢.84 飞思卡尔 HCS08/HCS12 系列 MCU 编程调试器的设计与研究
第一章 绪论
1
第一章 绪论 飞思卡尔半导体公司是为汽车、消费、工业、网络和无线市场设计并制造半导体 产品的全球领先供应商.它旗下的
8 位、16 位及
32 位MCU 由于性能优越而被广泛 应用于众多领域. 利用 MCU(Microcontroller Unit, 微控制器)进行嵌入式产品的开发, 一个好的嵌入式开发工具是不可或缺的.嵌入式开发工具通常由负责代码编辑、编译 的IDE (Integrated Development Environment,集成开发环境)和与目标 MCU 连接的编 程调试器两部分组成[1-3] . 飞思卡尔公司针对 HCS
08、 HCS12 和ColdFire 各系列 MCU 提供了相应的开发工具.在国内各大高校进行了相关的研究,苏州大学于
2002 年开 发了 SD-1 在线编程系统[4-5] .经过多年的改进,推出了各系列的 MT-IDE 及对应的编 程调试器,但这些编程调试器存在适用范围狭窄且不能与飞思卡尔 CodeWarrior IDE 兼容的问题.本文在 MT-IDE 编程调试器的基础上,以适用整个 HCS08/HCS12 系列 MCU 和兼容 CodeWarrior 为目标,开发了通用 BDM(Background Debug Mode,后台 调试模式)编程调试器 USBDM(Universal BDM). 本章首先介绍了编程调试器的发展历程与现状,阐述了本课题研究的必要性,然 后给出了课题所要实现的功能,最后给出了本文的研究内容与论文结构. 1.1 课题背景 1.1.1 调试技术的发展 嵌入式调试技术的发展过程与嵌入式应用开发技术的发展如影随行,密不可分[6] . 随着硬件和软件技术的不断发展,嵌入式应用开发的技术越来越高级,越来越完善. 相应的嵌入式调试技术也得到了不断的发展, 嵌入式调试方式的更新是其发展的重要 标志.嵌入式调试技术大致经历了以下几个阶段[7-10] : 1) Crash and Burn Crash and Burn 是最原始的调试方式.用户编写代码并反复检查直到编译通过, 随后将程序固化到目标 MCU 的非易失性存储器中,观察程序能否正常运行;