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

发布者:心灵清澈最新更新时间:2015-04-15 来源: eechina关键字:Freescale  HC08  MCU  集成开发环境 手机看文章 扫描二维码
随时随地手机看文章
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.jpg 
图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为本设计中所用到的该库中的类及函数的说明。可以调用这些类及其函数实现建立连接、发送数据和接收数据的程序功能,从而实现指令的通信以及程序代码的传输。[page]

表1本设计中使用到的USB库的类及函数说明
2.gif 

4.4 C语言程序调试功能的设计

调试功能实现对汇编和c语言的源码级在线调试。两者实现过程大体相似,但C语言调试的实现相对复杂。在此只针对C程序进行说明。

汇编程序和C程序在编译后都会产生调试信息文件(后缀名为.dbg)。dbg文件包含有相应的信息以供调试时使用。该文件详细记录了调试所需要的行号与存储地址等信息.包括文件首地址、函数的首末地址、每行源代码的行号和首地址、局部变量以及全局变量的名称地址类型等,如图2所示。对C语言程序的调试主要是基于对该调试信息文件的调用和判断。调试动作的设计首先是“设置断点”,接着点击“开始调试”,进入调试模式.然后选择“单步步入(Step Into)”、“单步步过(Step Over)”或“执行”至下一断点处等调试操作根据程序运行或变量的值判断调试。

下面分别阐述设计思路。

(1)设置断点

如在文件main.c中选择所需中断的一代码行.假设选择第33行,点击菜单“调试”一>“设置断点”,则在调试文件.dbg文件中找到“FILE main.c"行下的“LINE 33 8096”(如图2的双下划线), 该LINE后的33(十进制)等于当前设置断点的行号33,然后提取该“LINE”行中的8096(十六进制.本语句的首地址),作为当前的断点地址。则在界面上显示当前所选择断点的代码行呈红色高亮显示。否则所选择的不是代码行。

3.gif 
图2 dbg文件结构

(2)开始调试

设置断点后。点击菜单“调试" -> “开始调试”,程序运行至断点地址处.产生断点中断.则返回目标MCU运行的有关信息至PC机,在IDE界面中当前断点行呈蓝色高亮显示,在寄存器跟踪窗口和变量跟踪窗口中显示目标MCU中相应的值。接着选择不同的调试操作继续进行.如“单步步入”("单步步过"或“执行”至下一断点的设计思路与之类似)。

(3)单步步入

“单步步入”即从当前断点处按程序执行的流程一条一条语句的运行调试。设计调试的方法是.从程序“开始调试”运行至断点起,点击“单步步入”,程序先计算下一个断点地址。从断点开始.MCU的断点模块自动将当前断点地址加1.作为下一个断点地址.但C语言一条语句编译后往往不止一条汇编语句,可能几十条.甚至几百条.如此计算.则加1还不是下一条C语句的首地址。这时须将返回的PC寄存器值继续加1。直至下一条C语句首地址.即PC寄存器里的值等于下一条C语句对应的首地址,这样一次“单步步人”完成。若需继续执行,则再点击“单步步入”命令。

5 实验硬件系统

为了配合本IDE,根据HC08系列MCU电气特征、功能,设计了一个通用的实验硬件系统,方便了实验教学,方便了嵌入式系统的开发和测试。

实验硬件系统的实物结构如图3所示。

4.jpg 
图3 HC08嵌入式实验硬件系统

硬件系统主要由以下几部分构成:①MC908GP32和支撑电路构成核心板(更换MCU只要更换该板即可)。本系统为其提供的支撑电路主要由5v电源、晶振电路和PLL电路构成。其中晶振电路采用了一个32.768KHz的晶振为MCU提供振荡信号,PLL电路是主要由电容和滤波网络构成的负反馈环路,使频率稳定地提高至2.4576MHz。②串行通信(SCI)电路。早期的电平转换集成电路由MC1488、MC1489构成.但需另配12V供电,使接线繁琐。本系统采用目前较多用的MAX232将MCU的TTL电平转换为标准的RS-232电平,它仅需共用5V供电实现电平转换。③外围接口和元件。为了给用户提供足够的接口,充分考虑不同用户和开发者的需要.本系统提供2个标准9芯串口、LCD接口、键盘接口、8组指示灯和开关、电位器、蜂鸣器、模拟量接口、继电器以及各种通信口等,不仅满足MCU的教学,也满足MCU开发评估及测试的需要。④IC插线和扩展槽。本系统还具有一定的可扩展性,通过提供的Ic插线和扩展槽,用户可自行扩展其它的IC和设备。

6 结束语

以上所阐述的Freescale HC08 MCU集成开发环境设计思路.以及技术要点.对于开发者,具有一定的启发和借鉴作用。本系统的推出.有力地解决了国内开发Freescale HC08嵌入式应用系统主要依赖国外开发平台的现状。经过几年的研制和推广应用.配合Freescale公司的大学计划已经获得较好的应用效果。
关键字:Freescale  HC08  MCU  集成开发环境 引用地址:Freescale+HC08+MCU集成开发环境的设计

上一篇:MCU嵌入式系统的领域分析方法
下一篇:IC卡接口芯片TDA8007的读写器设计

推荐阅读最新更新时间:2024-03-16 13:58

基于AVR单片机的电梯外呼板系统设计
简介:本系统采用AVR单片机,使用CAN总线通信,通信安全可靠,实时性好,主要用在电梯系统中的外呼召唤显示,同时也可以用在电梯轿厢中用于楼层信息的显示。将其接入电梯仿真系统中,本系统能够快速响应,长时间运行期间安全可靠,增加和删除节点简单方便。 随着现代社会的发展,科学技术的进步,出现了众多高层建筑和智能建筑。电梯,作为高层建筑内部一种重要的交通工具,其应用规模日益扩大。而作为电梯系统中必不可少的一部分,电梯召唤显示板(简称电梯外呼板)的应用也随之剧增。 电梯外呼板应用于每层楼的电梯门外,供乘客及电梯维保人员使用。电梯外呼板将乘客及维保人员的需求信息通过CAN总线传达给电梯主板,电梯主板接收信息并执行相应的操作。同时,电梯
[单片机]
基于AVR<font color='red'>单片机</font>的电梯外呼板系统设计
基于MSP430F149单片机的光电编码器位置检测系统方案
1、光电编码器原理 光电编码器是集光、机、电技术于一体的数字化传感器,其基本原理就是在特制的码盘上按一定规律编排光栅图案,将这些图案用光电头读取,转变为高低有序排列的电平信号。光电编码器输出信号为A , B , Z 3 个信号,其中A , B 为相位差90°的方波信号, Z 为过零脉冲信号。如图1所示,光电编码器每旋转一周,A、B 相输出同样数量的脉冲, Z相输出一个脉冲,脉冲的个数和电机旋转角度,电机的运行距离成正比关系。 A相、B相都是光电编码器产生的,这两个信号的前沿和后沿都对应着光电码盘的1/4节距的信息鉴相就是通过分析图1的A相,B相信号,得出电机的旋转方向。如果A相脉冲超前B相90,电机正转,反之,电机反转。
[单片机]
基于MSP430F149<font color='red'>单片机</font>的光电编码器位置检测系统方案
飞思卡尔S12系列CAN初始化总结和分享
CAN初始化流程: 1.查询是否进入初始化状态,如不是,进入初始化状态,此处需设置CANCTL0,CANCTL1寄存器 2.设置CAN波特率,此处需设置CANBTR0,CANBTR1寄存器,具体计算过程可参照我的另一篇博客 https://blog.csdn.net/chenwenyang0/article/details/83378556 3.关闭相应CAN口滤波器,此处需设置CANIDMR寄存器。 4.使能MSCAN模块,进入一般模式,选择时钟,此处需设置CANCTL0,CANCTL1寄存器 5.设置接收或者发送中断使能 /***************************************
[单片机]
<font color='red'>飞思卡尔</font>S12系列CAN初始化总结和分享
51单片机基础之数码管(二)
原理: 因为数码管有8个,我们必须采用38译码器来节省单片机的资源,这里先简单介绍一下38译码器的原理,之后会慢慢补充常用芯片的原理和工作方法。 功能:38译码器有三个信号输入端,2的3次方就是8,有八种输出情况,每种情况对应一个输出,八个数码管分别连接八个输出,三个输入就可以实现八个数码管的动态显示。 真值表: 代码: #include reg52.h #define SMG P0 typedef unsigned int u16; //对系统默认数据类型进行重定义 typedef unsigned char u8; //配置38译码器,到时候要用 sbit LSA=P2^2; sbit LSB
[单片机]
51<font color='red'>单片机</font>基础之数码管(二)
51单片机的ISP下载电路设计
51单片机可以通过ISP下载方式烧写程序,常用的工具为USB/TTL,常用的芯片有MAX232、CH340G等。下面介绍以CH340G芯片设计的ISP下载电路。 1.51单片机程序下载原理 51单片机程序烧写接口为RXD和TXD,即UART口,这两个接口是通信口,配合不同的芯片可以实现不同的通讯方式。如果连接MAX232即可实现232通信,如果连接MAX3082即可实现RS485通讯。下载程序正是通过这两个接口来实现的。下载方式如下图所示。单片机的RXD和TXD要与USB/TTL设备的TXD和RXD交叉连接才能实现下载。 2.CH340G芯片介绍 CH340是一个USB总线的转接芯片,实现USB转串口、USB转IrDA红外
[单片机]
51<font color='red'>单片机</font>的ISP下载电路设计
Hi-Tech PICC 8bit MCU 的学习笔记 -- 环境篇
/*---------------------------------------------------------*/ Hi-Tech PICC 8bit MCU 的学习笔记 ---------- 环境篇 /*---------------------------------------------------------*/ 第一节 环境 1.概况 PIC 单片机的 C 语言编译器众多,常见的有 Hitech、CCS、IAR、Bytecraft 等公司,其中最常用的是Hitech 公司的PICC 编译器。在此列出几个主要的针对 PIC 单片机的 C 编译器相关连接网址,供参考: Hitech-PIC
[单片机]
单片机小白学习之路(一)
单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。相当于一个微型的计算机,和计算机相比,单片机只缺少了I/O设备。概括的讲:一块芯片就成了一台计算机。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。同时,学习使用单片机是了解计算机原理与结构的最佳选择。 单片机的使用领域已十分广泛,如智能仪表、实时工控、通讯设备、导航系统、家用电器等。各种产品一旦用上了单片机,就能起到使产品升级换代的功效,常在产品名称前冠以形容词——“智能型”,如智能型洗衣机等 单片机 其实这个看到的只是单片机的外壳与引脚,其实最重要的芯片在里面(芯片就一点点大,用导线与引脚相连) 其实作为一
[单片机]
<font color='red'>单片机</font>小白学习之路(一)
8051单片机供水系统水位控制的硬件电路设计
供水系统水位控制原理 下图是水塔水位控制原理图。图中虚线表示允许水位变化的上下限。在正常情况下,应保持水位在虚线范围之内,为此,在水塔的不同高度安装固定不动的三根金属棒,以感知水位变化情况。其中A棒处于下限水位以下,C棒处于上限水位,B棒在下限水位处。A棒接+5V电源,B棒、C棒各通过一个电阻与模拟地相连。 水塔由电机带动水泵供水,单片机控制电机转动以达到对水位控制的目的。供水时,水位上升,当达到上限时,由于水的导电作用,B棒、C棒连通+5V电源,因此,b、c两端均为高电平“1”状态。这时,应停止电机和水泵的工作,不再给水塔供水。 当水位降到下限时,B棒、C棒都不能与A棒导通,因此,b、c两端均为“0”状态。这时,应启动电机,
[单片机]
8051<font color='red'>单片机</font>供水系统水位控制的硬件电路设计
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved