首页 理论教育 CodeWarrior工具在单片机与嵌入式系统实践中的应用

CodeWarrior工具在单片机与嵌入式系统实践中的应用

时间:2023-11-19 理论教育 版权反馈
【摘要】:本节主要讲解在CodeWarrior环境中新建和设置工程项目的步骤和方法。BDM几乎是开发飞思卡尔8位、16位和32位单片机的标准调试模式,运用最为广泛。图3-11 项目文件添加界面5.处理器专家选项处理器专家,是CodeWarrior开发平台内自带的可实现芯片内部各种资源模块配置并自动生成相关代码的一个软件工具,不过只有评估版的CW才支持该功能。

CodeWarrior工具在单片机与嵌入式系统实践中的应用

本节主要讲解在CodeWarrior(简称为CW)环境中新建和设置工程项目的步骤和方法。

1.在CodeWarrior中启动新项目建立

在操作系统中启动CodeWarrior IED集成开发平台,项目启动项界面如图3-7所示选择“Create New Project”(新建工程)。同时也可以在打开的CW开发平台中使用File菜单下单击“New”按钮,弹出“建立新项目的模板”对话框,文件菜单新建工程界面如图3-8所示。

978-7-111-50417-7-Chapter03-7.jpg

图3-7 项目启动项界面

978-7-111-50417-7-Chapter03-8.jpg

图3-8 文件菜单新建工程界面

2.进入工程新建向导,按照芯片种类和型号选择对应的选项,同时选择仿真运行模式。

选择项目开发对应的单片机芯片型号一项中,CW6.3版本支持几乎所有的HCS08单片机型号,同时版本中增加了飞思卡尔最低端的8位机(RS08系列)、低端32位处理器(Coldfire V1系列)和Flexis系列的单片机的支持。当选择了一个MCU型号后,在对话框右侧会显示出所有针对该型号芯片可用的项目调试场景,MCU与链接选择界面如图3-9所示。其中:

●Full Chip Simulator是芯片全功能模拟仿真,即无须任何目标系统的硬件资源,可直接在用户的PC机上模拟运行单片机的程序,在模拟运行过程中可以观察调试程序的各项控制和运行流程,分析代码运行的时间,观察各种变量等。CW提供了功能强大的模拟激励功能,可以在模拟运行时模拟一些外部事件的输入,配合程序调试。

●P&E Multilink/Cyclone Pro是基于P&E公司的硬件调试工具,可实现实时在线硬件调试。实际就是前面所提到的BDM调试。BDM调试是基于芯片本身内含的在线调试功能,可实现程序下载,单步/全速运行,可以设置若干个断点,并观察和修改任意寄存器或RAM内存空间。BDM几乎是开发飞思卡尔8位(S08和RS08系列)、16位(S12系列)和32位(Coldfire V1系列)单片机的标准调试模式,运用最为广泛。

●SofTec HCS08是SofTec公司提供的硬件调试工具,目前国内使用较少。

●HCS08 Open Source BDM是一种开源的飞思卡尔专用下载调试器模式,在该模式中,可以使用开源BDM下载调试器对芯片的运行进行实时调试。该方式是目前国内教学方面用得最多的一种调试方式。

本书中,我们在MCU型号上选择HCS08家族系列的MC9S08AC16,同时使用HCS08Open Source BDM项目调试场景,如图3-9所示。

978-7-111-50417-7-Chapter03-9.jpg

图3-9 MCU与链接选择界面

3.项目开发语言设置

选择项目开发所用的编程语言,项目开发编程语言选项界面如图3-10所示。通常我们在此处选择C语言编程,有时因具体项目要求,除了C编程外还需要编写独立汇编语言模块,此时可以再加选汇编工具(Assembly)。

978-7-111-50417-7-Chapter03-10.jpg

图3-10 项目开发编程语言选项界面

在该界面右半区是项目名称与保存路径选项,一般的简便做法是在项目名“Project Name”输入框中输入要建立的新项目名字,再在“Location”一栏中使用“Set...”按键修改项目存放的文件夹路径,完成后单击“下一步”按钮。

4.项目文件添加

在该界面中可以往项目中添加现成的文件,如果用户以前编写过很多代码文件现在想重复利用,那么就可以通过图3-11所示的对话框左面的文件树选择对应的文件,按中间的“Add”逐个添加到右侧的“Project Files”列表中。若加错了可使用“Remove”把列表中的文件移除。注意:此列表下方的两个选项“Copy files to project”和“CreatemAin.c/main.asm file”并且默认值的选中的。Copy files to project选项是将所选的文件复制到当前的项目文件夹中。如果用户准备在新的项目中修改这些文件,就选择复制,以免由于原始的文件的改变而影响先前的一些项目;CreatemAin.c/main.asm file选项是在本项目中生成全新的main.c或main.asm文件,一般的项目开发都需要生成新的main文件。按用户自己的要求和目的自由选取。建议大家保留默认的选择状态,如果没有什么现成的文件需要加入,就直接单击“下一步”按钮。

978-7-111-50417-7-Chapter03-11.jpg

图3-11 项目文件添加界面(www.xing528.com)

5.处理器专家选项

处理器专家(Processor Expert,PE),是CodeWarrior开发平台内自带的可实现芯片内部各种资源模块配置并自动生成相关代码的一个软件工具,不过只有评估版的CW才支持该功能。通过PE,用户可以快速实现芯片初始化代码的自动生成工作,而且PE还提供了大量的软件库可供用户开发时嵌入或调用。因为8位单片机结构和功能相对简单,实现的控制项目复杂度也不是很高,故一般情况下8位机开发我们都不需要PE的介入,自己直接编写程序代码即可。关于PE的详细介绍将在后续的章节中进行,此处如图3-12的对话框中选择“None”,并直接进入“下一步”。

6.嵌入式编程语言设置

该步骤是关于编程语言的设置,在这一步中可以设置有关C/C++的一些编译和代码生成模式,嵌入式C语言设置界面如图3-13所示。

978-7-111-50417-7-Chapter03-12.jpg

图3-12 处理器专家选项界面

978-7-111-50417-7-Chapter03-13.jpg

图3-13 嵌入式C语言设置界面

第一个选项为启动代码选择项,所有C编译器会自动生成一些启动代码,单片机复位后的指令运行将首先执行这些启动代码,然后再进入到用户的程序模块main函数。这些启动代码主要完成堆栈指针初始化、全局和静态变量自动清零或赋初值以及调用main函数等。ANSI标准初始化“ANSI startup code”即完成上述工作,这也是项目开发的标准选择;而最小初始化“Minimal startup code”选项则实现启动代码最少,芯片上电后除了初始化堆栈指针外,就直接调用main函数,进入main函数模块,其变量的清零和赋初值必须由用户自己编写代码实现。在这里请读者特别注意,最小初始化不会对全局或静态变量自动清零,需要用户手动设置,这一点在编程中有时需要注意。

选项二是编译内存模式选择。“Tiny”模式是指所有程序不超过64KB,RAM变量不超过内存地址最前面的256字节(有时也被称作第0页);“Small”模式程序空间一样不超过64KB,但RAM不限于第0页,可以覆盖整个64K地址空间。如果你选择的芯片有超过第0页空间的RAM并想在设计中充分利用,就应该选择该默认的“Small”模式。

选项三是浮点运算库选择。当用户程序设计需要使用浮点运算时就应该选择加入浮点运算库。浮点运算库有两种:一是标准浮点float和双精度浮点double都用32位精度表示,换句话说float和double都看成是float,这样做的目的是减少代码量,提高运算速度;另一种是double使用64位精度表示,毋庸置疑这样运算精度将增加,但代码量也将增加,运算时间也会更长。用户可以按实际计算需求酌情选取。如果设计中无须浮点运算,就选择“None”。

7.连接设置

该步骤是设置的最后一步,主要是用来设置是否与PC—Lint连接,通常该项选择“NO”,连接设置界面如图3-14所示。

978-7-111-50417-7-Chapter03-14.jpg

图3-14 连接设置界面

8.进入工程开发界面

全部选择完成并确认后,按<完成>键,则项目建立成功,用户可以进入项目开发界面开始编写自己的代码并调试目标系统。完成后的工程开发界面如图3-15所示,其中:

978-7-111-50417-7-Chapter03-15.jpg

图3-15 工程开发界面

●Sources栏目下包含所有源程序文件,可以是C,也可以是asm或C++。用户可以在此栏下单击鼠标右键在弹出菜单中选择“Add Files”添加其他源程序文件。

●Includes栏目下包含本项目所有被引用的头文件。用户可以自己编写项目相关的头文件并添加到本栏目下。

●Libs栏目所包含的是本项目开发用到的代码库,可以是目标代码形式或C源程序形式。

●Project Setting下放的全是项目的配置文件。Startup Code下是刚才建项目时自动生成的启动文件,用户可以打开观察具体的程序代码,也可以在必要时自己添加或修改这些启动代码;Link Files下有三个文件分别是:用于编程器下载的代码文件格式配置(bbl文件)、机器代码连接定位用的内存说明和配置文件(prm文件)、生成的目标代码在内存中的映射文件(map文件),其中prm文件最为关键。

●Generated Code是由处理器专家模块设置自动生成的芯片的初始化程序。若建立工程时没有选择PE选项,则该栏目不显示。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈