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为本规划中所用到的该库中的类及函数的阐明。能够调用这些类及其函数完结树立衔接、发送数据和接纳数据的程序功用,然后完结指令的通讯以及程序代码的传输。