×
嵌入式 > 嵌入式开发 > 详情

Freescale+HC08+MCU集成开发环境的设计

发布时间:2020-08-17 发布时间:
|
1 引言

Freescale(其前身为Motorola半导体部)公司推出的系列MCU,具有单一电源供电、支持在线编程的内部Flash。在线写入、读出稳定,为研制新型嵌入式应用开发工具提供了技术基础。Freescale公司的MCU应用非常广泛,销量已多年名列前茅,其中HC08系列MCU,功耗低、运用灵活.占销量中的重要部分。开发廉价且实用的Freescale HC08系列MCU的编程调试开发工具对该系列MCU在我国的推广应用具有重要价值。目前市面上能支持HC08的集成开发环境(IDE).除了CodeWarrior,虽对HC08系列MCU都支持。但系统庞大,功能复杂。价格贵,另外一些高校如清华、复旦等,只能支持某几款芯片,对于有200多款的HC08 MCU,较大局限,使用不便,不利于应用开发,更不便于教学实践。

本实验室从1999年开始研制集成开发环境.在分析了各种嵌入式系统集成开发系统后.推出了一种新型的HC08MCU通用型的集成开发环境.每年不断进行改进升级.现已基本成型。本IDE具有结构清晰、操作简洁的特点.集成了程序编辑、编译、下载、联机调试、硬件评估等功能,有较好的实用前景。在阐述本IDE的设计基础上,本文简要分析了IDE的Pc方软件主要技术要点和简单介绍了本IDE配套的硬件系统的基本结构。

2 设计思路与技术优势

对HC08系列MCU。进行深入的研究。经过长期的实践与探索,研制了新型的嵌入式应用系统的集成开发环境。软件分两大部分:PC方软件和MCU方软件,配套硬件分三大部分:PC机、写入器(也称调试器或编程器)和实验箱(或评估板或嵌入式产品)。

1) IDE主要设计思路是:

(1)PC方软件提供程序管理、编辑、编译、下载、联机调试等功能,源程序经过编辑和编译成S19目标文件后.通过USB接口与写入器中的MCU(称主控MCU)方软件通信.将该目标文件发给主控MCU,然后写人器又与实验箱MCU(称目标MCU)芯片串行通信,将该目标文件写入目标MCU芯片的FIash中。成功后可以试运行。检验目标MCU中的程序能否正常运行.否则联机调试该程序。

(2)HC08系列MCU间资源差异较大,进入监控的支撑电路有差别,为了设计适用于不同MCU的通用IDE,解决这些问题是关键,具体方法参考文献,即MCU间资源差异的问题是通过PC机中的数据库保存其差异而得到解决。进入监控的支撑电路问题是通过在PC机和目标MCU间加一个主控MCU而得到解决从而为实现通用的IDE奠定基础。

(3)作为以MC908GP32(旧称MC68HC908GP32)MCU为蓝本进行“单片机原理与嵌入式应用”教学的实验箱配套软件,实验箱提供了基本实验所需的接线端口.还提供了扩展实验的接线排孔。运用本开发环境根据实验项目开发软件要求.可完成所有基于MC908GP32 MCU的接口实验。对于Freescale该系列其他MCU。可通过置换核心板(MCU与其支撑电路构成的),而达到更换HC08 MCU的目的,便于进行其他MCU的实验。

2) 本开发环境与传统的仿真器相比具有如下技术优势:

(1)传统仿真器的“仿真系统”一般是使用软件仿真的技术,在宿主机上通过软件的方式实现目标机的功能。这种方式虽可以模拟大部分目标机的功能。但是这种方式并非是真正的目标系统.往往在此基础上开发出来的程序.一旦移到目标系统上运行.却会出现一些在仿真软件中无法遇到的问题。而本开发环境是基于硬件之上的,对目标系统可以达到完美的模拟,即在本开发环境上开发出来的程序在移到目标系统上时,由于硬件基础相同.因此不会发生任何兼容性问题。

(2)与传统仿真器相比,提供的调试功能为在线调试方式,操作界面为Windows界面,操作犹如调试纯软件,方法简洁。

3 集成开发环境的设计

为方便开发和调试嵌入式系统,设计了基于C编译的HC08 MCU集成开发环境.软件总体分两大部分:PC方软件与MCU方软件.PC方软件可分为脱机编辑编译和联机下载调试两部分。MCU方软件设计请参考文献。

PC方软件采用标准的Win32界面.利用Visual C++MFC编写.主界面设计如图1所示,其中左边为工程管理窗口,右边为代码编辑窗口.下面为编译输出及调试窗口。


图1 集成开发环境主界面

本IDE的主要设计功能和技术特点如下:

(1)标准的Win32视窗界面,充分体现Windows平台的特性。具有安装方便、操作简洁等特点。并配置内容丰富的帮助系统,帮助用户快速入门,学习HC08 MCU的编程方法。

(2)工程管理。工程管理分别对c文件和头文件两种源文件进行管理.对汇编也支持.在主界面上以文件树的形式呈现。工程属性根据编程要求而设置,通过“编译设置”对话框进行,它包括MCU类型、Flash区程序的起始地址、RAM起始地址和终止地址、堆栈起始地址等设置。工程管理的主要功能是管理源程序文件和生成编译器所需的文件。在保存T程的同时后台生成了该工程的make file文件(包含编译选项和工程属性)、src文件(包含工程中使用到的文件和资源)。

(3)下载程序。下载程序是将生成的目标机器码写入目标MCU中的.包括通信模块和S19文件分析模块两部分。通信模块负责实现PC机与主控MCU的USB通信。发送命令、参数和程序代码等,和主控MCU一起对目标MCU完成相应的擦除、写入和调试等操作功能。S19文件分析模块负责先对S19文件进行分析和打包.将文件的内容转换成便于传输的格式,并判断文件中程序的起始地址、页数以及是否越界等.然后进行发送通信。

(4)调试器以及寄存器查看器和内存变量查看器。写入器也兼有调试功能.所以也称调试器。调试的功能设计是参照通用IDE的调试方法而设计的,进入调试模式(即监控模式),可以单步调试或断点调试。调试时可以通过寄存器查看器和内存变量查看器观察目标MCU运行的当前值,以便发现程序问题所在.实现在线调试功能。

4 技术设计要点

在系统的开发设计过程中,遇到许多的问题。下面把主要问题的一些处理方法作简要分析说明,供大家借鉴。限于篇幅.HC08系列MCU的调试器通用性设计具体见文献。

4.1中文和语法高亮的实现

语法高亮在集成开发系统的代码编写过程中是主要的问题之一。已有的一些控件虽然语法高亮功能比较全,但是对中文支持不是很好.最突出的就是半个汉字问题(在选择和删除字符的时候汉字当两个字符处理,一次只能删除半个,会出现乱码)。使用MFC的RichEdit控件虽可以解决中文问题,但又没有语法高亮的功能,为此,就以RichEdit为基类编写了语法高亮类,才解决语法高亮和中文的显示问题。其主要编程的思路是:通过捕获用户键盘输入的事件.判断用户输入的单词是否为c语言中的关键字.如果是,则改变其颜色。

4.2 GNU编译器的整合

本系统使用的是由GNU移植的HC08编译器,该软件不仅是开源、免费的。而且执行效率高,功能强,对c代码具有优化的功能。但是唯一的问题是。该编译器是Win32控制台程序,输出的编译信息都是在不同控制台下的.不易整合在一个IDE中。更甚的是编译器的输出信息都是非标准的输出流,无法使用ShellExecute函数捕获,也无法输出到管道文件中。为了解决该问题参考了一些国内外的资料,受此启发。采用CreateThread的方法,也就是创建子线程的办法,通过线程的管道,将编译输出信息捕获.并显示在窗口中。同时在此基础上也实现了从编译错误信息跳转到源代码的功能。

4.3 PC机与写入器的USB通信设计

写入器和PC机建立USB通信除了MCU与PC的通信程序设计外.PC方必须要有相应的驱动程序。本设计使用的USB开发包USBIO_EL是由德国Thesycon Systemsoftware&Consulting GmbH公司提供的免费软件,该开发包提供的功能是限制版本的USB驱动程序usbio_el.sys和USB动态链接库usbiocom.dll文件。usbio_el.sys 的限制部分为:厂商ID只能为0x0C70.仅支持一个中断IN端点和中断OUT端点,支持的端点缓冲区大小最大为8字节。而本设计写入器中使用的MC68HC908JB8芯片的USB模块恰好满足限制版本的条件,故可使用该驱动程序;usbiocom.dll可以直接加载至程序中,使用其中的类;表1为本设计中所用到的该库中的类及函数的说明。可以调用这些类及其函数实现建立连接、发送数据和接收数据的程序功能,从而实现指令的通信以及程序代码的传输。


『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
艾默生CT变频器鞍钢集团应用案例集锦