codewarrior的使用

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第六章CodeWarrior的软件开发环境
6.3 打开工程
在主菜单下选择File/Open。

如图6—2
图6-2 打开工程菜单
弹出对话框图6-3,在“对象类型”中选择“Project Files(*。

mcp)”。

图6-3 工程对象类型
出现图6—4,选择要打开的工程,然后点击“打开”,就可以打开一个工程。

图6-4 工程对象名称
如果想要修改程序,在图6—5界面可以完成。

图6—5用户工程文件窗口
此时,如果想要编译连接和在线调试程序,参考6。

5和6.6。

6。

4 创建项目
从主菜单栏选择File\New.出现一个新的窗口如图6—6所示。

注意: 新窗口可能和你的屏幕不相同,取决于你的安装对象。

图6-6新建工程
单击Project标签显示项目面板。

选择HC(S)08 New Project Wizard。

在Project name 输入框,输入新项目的名称。

在Location输入框,确定你想保存的文件的路径。

注意:当IDE创建一个项目时,会自动在项目文件中添加扩展名为。

MCP的工程文件.
点击确定,出现新项目对话框如图6-7所示。

在Page1中,选择你所使用的芯片的类型.
图6-7 选择芯片类型
在Page2中,选择使用语言的种类,如图6—8所示
图6—8 选择编程语言
在Page3种选择使用相对汇编还是绝对汇编,如图6-9所示。

图6—9 选择汇编方式
在Page4中进行方式选择,如图6-10所示.
图6-10选择调试模式
P&E Full Chip Simulation方式允许芯片及其外围设备进行在线调试,或者是利用软件进行模拟时采用这种方式。

P&E Hardware Debugging 方式是当HC08与外围设备硬件接口是通过P&E
提供的时候,就得采用这种方式。

MMDS-MMEVS 方式是指目标界面与MMDS—MMEVS 仿真系统连接,使用Motosil 协议是多使用的方式.
上述三种是比较常用的几种的方式,如果不确定的时候,可以把三种方式都选上,这样会把连接变得更简单.
点击完成,项目创建完成,如图6—11所示。

图6—11 工程建立完成界面
在工程窗口打开Sources\main。

asm(选择编程语言类型不同,文件后缀不同,如果是C,那么就是main。

c),在该文件中编写用户程序.
6.5编译连接
编好程序之后,点击图6-12 Make按钮,进行编译连接。

图6—12 编译连接
如果编译连接没有错误,则可以调试程序。

点击图6—13Debug按钮调试程序。

图6—13 调试程序
出现图6—14,仿真或实时调试界面。

图6-14 仿真或实时调试界面
6。

6 在线编程
注意:实验电路板电源开关断开。

JP2的3、4两个端子短接。

1、确立目标
在“True-Time Simulator & Real—Time Debug”工具界面,点击:Component->Set Target 在Processor栏,选择HC08,在Target栏,选择P&E Target Interface,然后点击OK,如图6—15所示
图6—15 确立目标
最后关闭“True-Time Simulator & Real—Time Debug”工具界面,在主界面中重新按下“Debug”,进入“True-Time Simulator & Real—Time Debug”调试.
2、在线调试
重新进入后,PEDebug-〉Mode:Full Chip Simulation-〉In-Circuit ……如图6—16所示。

图6—16 调试界面
系统将自动弹出如下的界面,如图6—17所示。

图6-17 连接界面点击Close Port。

出现界面如图6—18。

图6—18 关闭串口界面
闭合目标板电源开关,给目标板供电,最后点击Contact target with these settings…。

出现图6-19界面,最后点击YES,程序就下载到实验板上了。

注:如果此时不出现图6-19,断开目标板电源,再次点击图6-18中Refresh List,然后再给目标板供电。

图6—19 查询是否擦除、下载程序
然后在DEBUG界面上进行调试,如图6—20所示。

图6—20 DEBUG界面
点击上图所示:
运行(run)程序;
单步运行(single step)程序;
单步运行(step into)程序;
跳出运行(step out)函数;
跟踪(trace)程序;
程序停止(halt)运行;
目标板复位(reset target)。

可以通过图6—21中的界面随时检查寄存器、RAM中的内容,便于检查出程序中的错误。

图6—21 调试界面
如图6-21所示,在“souce”窗口,点击右键,在第一栏中将程序运行到光标处,设置断点,看当前指令的PC值.具体如下所示:
●Set Breakpoint 设断点
●Run to Cursor 运行到光标行
●Show Breakpoint 显示断点
●Show location 显示地址
但是这里有一点须注意,在脱机仿真的时候,可以设置多个断点,在线调试的时候最多可以设置一个断点.
在“memory"窗口,我们可以实现如下的操作:
●检查寄存器,RAM,FLASH ROM中的内容
●双击窗口中的字节,可输新值,回车确认
●点右键,出现的下拉菜单中我们可以更改窗口的一些属性,具体如下所示
●Word size 可以选择用什么样的长度来显示存储单元的内容
●Format 可以选择用什么进制显示,如十六进制(HEX)、八进制
(OCT)、二进制(BIN)等
●Mode 可以进行更新频率的选择,如自动、定期等等
●Display 可以选择窗口显示内容的选择,选择是否显示地址、ASC码
●Fill 可以在一个区间内输入你想要的数值
●Address 可以输入你想查看的存储器空间的开始地址
●Copymem 可以将一段已经写入的内容复制到你想要存放的地址空间去
●Search Pattern 可以在确定的地址里面寻找表达式
在“data”窗口,显示定义的变量,但是不能双击输入内容,点击右键可以实现如下的操作:
●Open module Open mdodule显示该应用的源文件,全局变量显示在数据块
上,只有全局变量才支持Open module
●Add expression 可以增加变量
●Set Watchpoint 只有当没有设置Watchpoint或取消Watchpoint时,才会
弹出该菜单,当选择一个变量将其设置为一个读/写Watchpoint,一条黄色线就会出现在该变量的旁边,当程序执行到与该变量相关时,程序停止运行,而且目前的程序状态就会在各窗口显示出来
●Show watchpoint 打开设置Watchpoint窗口,你可以看到当前程序所设置
的Watchpoint
●Show location 强制让所有的窗口显示与变量相关的信息
其余的菜单内容与其它的窗口里面的内容相似,这里就不再赘述了
“register”窗口如图6—22所示:
图6—22 register窗口
在图中我们可以清楚地看到几个寄存器中的内容,并可以双击输入新值,条件码寄存器的Status中黑色表示置1,灰色表示为0.
可以在PC 栏中输入输入要运行程序的起始地址,即PC值,然后单步运行,程序就会从设置的PC地址开始执行程序。

由此,可以通过CodeWarrior非常方便的下载程序运行,并可以进行单步调试,为系统程序的开发提供的非常有力的工具。

6.7 利用Visualizationtool进行脱机仿真
注意:在进行脱机仿真之前,一定要修改中断矢量地址。

在线编程调试或实时运行状态参考表2-3转向矢量表,表中详细地写出了每个中断的地址。

仿真运行状态参考表2—2中断矢量表。

比如在线编程调试或实时运行状态使用复位向量定义如下:
ORG $FDFD ;复位向量地址
JMP Entry
当使用脱机仿真时,必须把上面两句作如下修改:
ORG $FFFE ;复位向量地址
DC.W Entry
其他中断向量参考该修改进行.在进行在线调试和脱机仿真相结合的时候,不同调试状态下中断进行上面的交替修改。

程序编译通过之后,系统将自动进入Debug调试界面(如图6-23所示),在这个界面里面我们既可以直接写入程序调试,也可以利用单步运行随时检查寄存器的内容,便于寻找程序中的错误,还可以利用Visualizationtool进行脱机仿真。

下边将重点讲述利用Visualizationtool进行脱机仿真.
图6—23 DEBUG界面
在“True-Time Simulator & Real-Time Debug"工具界面,点击:Component —〉Set Target 在Processor栏,选择HC08,在Target栏,选择Simulator Target Interface,然后点击OK,如图6—24所示。

图6—24 确立目标界面
设置完成,关闭“True—Time Simulator & Real—Time Debug”工具界面。

在主界面中重新按下“Debug”,进入“True—Time Simulator & Real-Time Debug"调试界面,点击Simulater->Reset,如图6—25。

图6-25 仿真状态复位
选择Component—>Open…,如图6-26。

图6—26
将会出现如下的界面,如图6—27所示
图6—27 选择Visualizationtool界面
点击OK,进入Visualizationtool界面,如图6—28所示.
图6-28 Visualizationtool界面
如上图所示在空白处点击右键,选择要添加的元件.由于该示例事要做一个跑马灯的演示实验,所以选择“7 Segment Display”。

在空白处点击右键,选择Properties,如图6-29所示。

设置:
Refresh Mode : Periodical
Refresh Time (100ms):1
或者选择:CPU cycles。

设置完成,关闭窗口。

图6—29 Visualizationtool属性界面
双击7 Segment Display,如图6—30
所示设置:
Kind of Port : Memory
Port to Display : 0x01
设置完毕,关闭窗口。

图6-30 七段数码管属性界面
点击右键,取消选择Edit Mode,在“True-Time Simulator & Real-Time Debug”调试界面,按下Sart/Continue,运行程序,在本示例中,用7 Segment Display来演示跑马灯实验,可以看到七段数码的每一段在交替闪烁,如图6-31。

图6-31 仿真界面
点击保存,可以将这个Visualizationtool的工程保存下来,下次运行的时候只要用Display Mode,然后运行程序就可以了。

保存配置:File\Save Configuration,如图6—32所示。

图6-32 保存配置界面
运行程序,可以按照图6-20中运行或单步执行程序,可以看到仿真状态下程序运行情况。

6.8 Processor Expert应用
6.8。

1创建工程
本工程使用一个电位器和一个数码显示管,电位器用于表示模拟信号,如:罐里的液面位置、温度等,数码显用于显示其值.下面我们将一步一步演示创建工程的过程。

启动CodeWarrior :
Start 〉 Programs > Metrowerks CodeWarrior 〉 CW08 V3.0 〉 CodeWarrior IDE
在CodeWarrior界面中,选择菜单File〉New,如图6-33所示。

图6-33 开始创建
在Project栏里选择HC(S)08 New Project Wizard
Project Name中填入:MyQY4
如果需要更改存入目录请点Location栏的Set按钮
按下确定,进入一下步,如图6—34所示
图6-34 新建工程
选择CPU类型,找到MC68HC908QY4,点击选取,按“下一步”,如图6—35所示.
图6—35 选择芯片类型
选择以C语言为开发语言,如图6-36所示。

图6-36 选择C语言
使用Processor Expert,如图6—37所示。

图6—37 使用Processor Expert 不使用PC—Lint™,如图6—38所示。

图6—38 不使用PC-Lint™选择标准启动代码,如图6—39所示。

图6—39 选择标准启动代码不需要浮点支持,如图6—40所示.
图6-40 不需要浮点支持内存使用模式选择Tiny,如图6-41所示
图6—41 选择内存使用模式连接方式,使用缺省值,如图6—42所示。

图6—42 选择连接方式点击“完成”,如图6—43所示.
图6-43 创建完成界面
在左边的导航栏里选择Processor Expert
选择Beans,点右键,选择“Add Bean(s)…”,如图6—44所示。

图6-44 内核选择
选取并双击ADC,Processor Expert导航栏里Beans中增加了AD1:ADC
选取并双击BitsIO,Processor Expert导航栏里Beans中增加了Bits1:BitsIO
选取并双击BitIO,Processor Expert导航栏里Beans中增加了Bit1:BitIO
选取并双击BitIO,Processor Expert导航栏里Beans中增加了Bit2:BitIO
编辑AD1的属性,如图6—45
Interrupt service:disabled
Conversion Time 21。

25 uS
图6—46 AD1属性编辑
设置Measure和GetValue为generate
code.
其它均为don’t generate code.如图
6-46所示
编辑Bits1的属性,如图6—47。

图6-45 AD1属性编辑
Bean name:DispNum
Pins:7
Pin0:PTB0
Pin1:PTB1
Pin2:PTB2
Pin3:PTB3
Pin4:PTB4
Pin5:PTB5
Pin6:PTB6
图6—47 Bits1属性编辑Pull resistor:No Pull resistor
Direction:Output
编辑Bit1的属性:
Bean name:BitPta4
Pin for IO:PTA4_OSC2_AD2_KBI4
Pull resistor:No Pull resistor
Direction:Output
编辑Bit2的属性:
Bean name:BitPtb7
Pin for IO:PTB7
Pull resistor:No Pull resistor
Direction:Output
图6-48 Bits1属性编辑
分别进入其Methods页
设置PutVal generate code.
其它均为don’t generate code。

如图6-48所示
选择菜单Project>Make
产生所需文件,
如图6—49所示
打开“MyQY6。

c”
可以看到主程序:
Main()函数
void main(void)
{
PE_low_level_init();
for(;;){ }

打开“MyQY6.c”
可以看到主程序:
Main()函数
void main(void)

PE_low_level_init(); 图6—49 编译界面
for(;;){ }
}
现在我们编写应用程序代码:
Const char decode0_9[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};
char disp[4];
char disp_bit;
static byte myValues[1]; /* Number of channels */
void display(char dbit) {
char i;
DispNum_PutVal(0);
BitPtb7_PutVal(dbit/2);
BitPta4_PutVal(dbit&1);
DispNum_PutVal(disp[dbit]);
for(i=255;i=0;i-—);
}
void main(void)
{
byte err;
PE_low_level_init();
for(;;){
disp_bit++;
disp_bit&=3;
display(disp_bit);
err = AD1_Measure(TRUE);
err = AD1_GetValue((byte *)myValues);
disp[3]=decode0_9[myValues[0]% 10];
disp[2]=decode0_9[(myValues[0]/10) % 10];
disp[1]=decode0_9[myValues[0]/100];

}
6。

8。

2编译调试
接下来,点“Make”编译。

点“Debug”进入调试.如图6—50所示。

在“True—Time Simulator & Real-Time Debug"工具界面,选择菜单:Component—>Set Target Processor栏,选择HC08, Target栏,选择Simulator Target Interface ,按“OK”。

图6—50 确立目标
关闭“True-Time Simulator & Real-Time Debug"工具界面,在主界面中重新按下“Debug",进入“True—Time Simulator & Real-Time Debug”调试界面.
选择Component—〉Open…,如图6—51所示。

图6-51 选择Visualizationtool
选择Visualizationtool,如图,点击OK,如图6—52所示。

图6-52添加元件
点击右键,选择Properties,如图6—53所示。

图6—53 编辑属性
设置:
Refresh Mode : Periodical
Refresh Time (100ms) : 3
点击右键,选择Add New Instrument -〉 Bar,在界面下放置虚拟元件
点击右键,选择Add New Instrument -> 7Segment Display,在界面下放置虚拟元件
点击右键,选择Add New Instrument —〉 Switch,在界面下放置虚拟元件双击Bar,如图6—54所示
设置:
Kind of Port :Memory
Port to Display : 0x3e
关闭窗口。

双击7Segment Display
设置:
Kind of Port :Memory
Port to Display : 0x86
关闭窗口。

设置:
Kind of Port : Memory
Port to Display :0x3c
Bitnumber to Display:7
关闭窗口。

图 6—54 BAR属性编辑点击右键,取消选择Edit Mode。

在“True—Time Simulator & Real-Time Debug”调试界面,按下Sart/Continue,运行程序,在本示例中,Bar元件模拟电位器,开关的一次动作表示一次A/D转换,7Segment Display元件显示转换结果。

6.8.3在线编程
这一部分在第四章中6。

6已经详细表述过了,这里就不再赘述。

相关文档
最新文档