codewarrior的使用.docx
- 文档编号:9969130
- 上传时间:2023-02-07
- 格式:DOCX
- 页数:38
- 大小:1.81MB
codewarrior的使用.docx
《codewarrior的使用.docx》由会员分享,可在线阅读,更多相关《codewarrior的使用.docx(38页珍藏版)》请在冰豆网上搜索。
codewarrior的使用
第六章CodeWarrior的软件开发环境
6.3打开工程
在主菜单下选择File/Open。
如图6-2
图6-2打开工程菜单
弹出对话框图6-3,在“对象类型”中选择“ProjectFiles(*.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)08NewProjectWizard。
在Projectname输入框,输入新项目的名称。
在Location输入框,确定你想保存的文件的路径。
注意:
当IDE创建一个项目时,会自动在项目文件中添加扩展名为.MCP的工程文件。
点击确定,出现新项目对话框如图6-7所示。
在Page1中,选择你所使用的芯片的类型。
图6-7选择芯片类型
在Page2中,选择使用语言的种类,如图6-8所示
图6-8选择编程语言
在Page3种选择使用相对汇编还是绝对汇编,如图6-9所示。
图6-9选择汇编方式
在Page4中进行方式选择,如图6-10所示。
图6-10选择调试模式
P&EFullChipSimulation方式允许芯片及其外围设备进行在线调试,或者是利用软件进行模拟时采用这种方式。
P&EHardwareDebugging方式是当HC08与外围设备硬件接口是通过P&E提供的时候,就得采用这种方式。
MMDS-MMEVS方式是指目标界面与MMDS-MMEVS仿真系统连接,使用Motosil协议是多使用的方式。
上述三种是比较常用的几种的方式,如果不确定的时候,可以把三种方式都选上,这样会把连接变得更简单。
点击完成,项目创建完成,如图6-11所示。
图6-11工程建立完成界面
在工程窗口打开Sources\main.asm(选择编程语言类型不同,文件后缀不同,如果是C,那么就是main.c),在该文件中编写用户程序。
6.5编译连接
编好程序之后,点击图6-12Make按钮,进行编译连接。
图6-12编译连接
如果编译连接没有错误,则可以调试程序。
点击图6-13Debug按钮调试程序。
图6-13调试程序
出现图6-14,仿真或实时调试界面。
图6-14仿真或实时调试界面
6.6在线编程
注意:
实验电路板电源开关断开。
JP2的3、4两个端子短接。
1、确立目标
在“True-TimeSimulator&Real-TimeDebug”工具界面,点击:
Component->SetTarget在Processor栏,选择HC08,在Target栏,选择P&ETargetInterface,然后点击OK,如图6-15所示
图6-15确立目标
最后关闭“True-TimeSimulator&Real-TimeDebug”工具界面,在主界面中重新按下“Debug”,进入“True-TimeSimulator&Real-TimeDebug”调试。
2、在线调试
重新进入后,PEDebug->Mode:
FullChipSimulation->In-Circuit……如图6-16所示。
图6-16调试界面
系统将自动弹出如下的界面,如图6-17所示。
图6-17连接界面
点击ClosePort。
出现界面如图6-18。
图6-18关闭串口界面
闭合目标板电源开关,给目标板供电,最后点击Contacttargetwiththesesettings…。
出现图6-19界面,最后点击YES,程序就下载到实验板上了。
注:
如果此时不出现图6-19,断开目标板电源,再次点击图6-18中RefreshList,然后再给目标板供电。
图6-19查询是否擦除、下载程序
然后在DEBUG界面上进行调试,如图6-20所示。
图6-20DEBUG界面
点击上图所示:
运行(run)程序;
单步运行(singlestep)程序;
单步运行(stepinto)程序;
跳出运行(stepout)函数;
跟踪(trace)程序;
程序停止(halt)运行;
目标板复位(resettarget)。
可以通过图6-21中的界面随时检查寄存器、RAM中的内容,便于检查出程序中的错误。
图6-21调试界面
如图6-21所示,在“souce”窗口,点击右键,在第一栏中将程序运行到光标处,设置断点,看当前指令的PC值。
具体如下所示:
●SetBreakpoint设断点
●RuntoCursor运行到光标行
●ShowBreakpoint显示断点
●Showlocation显示地址
但是这里有一点须注意,在脱机仿真的时候,可以设置多个断点,在线调试的时候最多可以设置一个断点。
在“memory”窗口,我们可以实现如下的操作:
●检查寄存器,RAM,FLASHROM中的内容
●双击窗口中的字节,可输新值,回车确认
●点右键,出现的下拉菜单中我们可以更改窗口的一些属性,具体如下所示
●Wordsize可以选择用什么样的长度来显示存储单元的内容
●Format可以选择用什么进制显示,如十六进制(HEX)、八进制(OCT)、二进制(BIN)等
●Mode可以进行更新频率的选择,如自动、定期等等
●Display可以选择窗口显示内容的选择,选择是否显示地址、ASC码
●Fill可以在一个区间内输入你想要的数值
●Address可以输入你想查看的存储器空间的开始地址
●Copymem可以将一段已经写入的内容复制到你想要存放的地址空间去
●SearchPattern可以在确定的地址里面寻找表达式
在“data”窗口,显示定义的变量,但是不能双击输入内容,点击右键可以实现如下的操作:
●OpenmoduleOpenmdodule显示该应用的源文件,全局变量显示在数据块上,只有全局变量才支持Openmodule
●Addexpression可以增加变量
●SetWatchpoint只有当没有设置Watchpoint或取消Watchpoint时,才会弹出该菜单,当选择一个变量将其设置为一个读/写Watchpoint,一条黄色线就会出现在该变量的旁边,当程序执行到与该变量相关时,程序停止运行,而且目前的程序状态就会在各窗口显示出来
●Showwatchpoint打开设置Watchpoint窗口,你可以看到当前程序所设置的Watchpoint
●Showlocation强制让所有的窗口显示与变量相关的信息
其余的菜单内容与其它的窗口里面的内容相似,这里就不再赘述了
“register”窗口如图6-22所示:
图6-22register窗口
在图中我们可以清楚地看到几个寄存器中的内容,并可以双击输入新值,条件码寄存器的Status中黑色表示置1,灰色表示为0。
可以在PC栏中输入输入要运行程序的起始地址,即PC值,然后单步运行,程序就会从设置的PC地址开始执行程序。
由此,可以通过CodeWarrior非常方便的下载程序运行,并可以进行单步调试,为系统程序的开发提供的非常有力的工具。
6.7利用Visualizationtool进行脱机仿真
注意:
在进行脱机仿真之前,一定要修改中断矢量地址。
在线编程调试或实时运行状态参考表2-3转向矢量表,表中详细地写出了每个中断的地址。
仿真运行状态参考表2-2中断矢量表。
比如在线编程调试或实时运行状态使用复位向量定义如下:
ORG$FDFD;复位向量地址
JMPEntry
当使用脱机仿真时,必须把上面两句作如下修改:
ORG$FFFE;复位向量地址
DC.WEntry
其他中断向量参考该修改进行。
在进行在线调试和脱机仿真相结合的时候,不同调试状态下中断进行上面的交替修改。
程序编译通过之后,系统将自动进入Debug调试界面(如图6-23所示),在这个界面里面我们既可以直接写入程序调试,也可以利用单步运行随时检查寄存器的内容,便于寻找程序中的错误,还可以利用Visualizationtool进行脱机仿真。
下边将重点讲述利用Visualizationtool进行脱机仿真。
图6-23DEBUG界面
在“True-TimeSimulator&Real-TimeDebug”工具界面,点击:
Component->SetTarget在Processor栏,选择HC08,在Target栏,选择SimulatorTargetInterface,然后点击OK,如图6-24所示。
图6-24确立目标界面
设置完成,关闭“True-TimeSimulator&Real-TimeDebug”工具界面。
在主界面中重新按下“Debug”,进入“True-TimeSimulator&Real-TimeDebug”调试界面,点击Simulater->Reset,如图6-25。
图6-25仿真状态复位
选择Component->Open…,如图6-26。
图6-26
将会出现如下的界面,如图6-27所示
图6-27选择Visualizationtool界面
点击OK,进入Visualizationtool界面,如图6-28所示。
图6-28Visualizationtool界面
如上图所示在空白处点击右键,选择要添加的元件。
由于该示例事要做一个跑马灯的演示实验,所以选择“7SegmentDisplay”。
在空白处点击右键,选择Properties,如图6-29所示。
设置:
RefreshMode:
Periodical
RefreshTime(100ms):
1
或者选择:
CPUcycles。
设置完成,关闭窗口。
图6-29Visualizationtool属性界面
双击7SegmentDisplay,如图6-30所示设置:
KindofPort:
Memory
PorttoDisplay:
0x01
设置完毕,关闭窗口。
图6-30七段数码管属性界面
点击右键,取消选择EditMode,在“True-TimeSimulator&Real-TimeDebug”调试界面,按下Sart/Continue,运行程序,在本示例中,用7SegmentDisplay来演示跑马灯实验,可以看到七段数码的每一段在交替闪烁,如图6-31。
图6-31仿真界面
点击保存,可以将这个Visualizationtool的工程保存下来,下次运行的时候只要用DisplayMode,然后运行程序就可以了。
保存配置:
File\SaveConfiguration,如图6-32所示。
图6-32保存配置界面
运行程序,可以按照图6-20中运行或单步执行程序,可以看到仿真状态下程序运行情况。
6.8ProcessorExpert应用
6.8.1创建工程
本工程使用一个电位器和一个数码显示管,电位器用于表示模拟信号,如:
罐里的液面位置、温度等,数码显用于显示其值。
下面我们将一步一步演示创建工程的过程。
启动CodeWarrior:
Start>Programs>MetrowerksCodeWarrior>CW08V3.0>CodeWarriorIDE
在CodeWarrior界面中,选择菜单File>New,如图6-33所示。
图6-33开始创建
在Project栏里选择HC(S)08NewProjectWizard
ProjectName中填入:
MyQY4
如果需要更改存入目录请点Location栏的Set按钮
按下确定,进入一下步,如图6-34所示
图6-34新建工程
选择CPU类型,找到MC68HC908QY4,点击选取,按“下一步”,如图6-35所示。
图6-35选择芯片类型
选择以C语言为开发语言,如图6-36所示。
图6-36选择C语言
使用ProcessorExpert,如图6-37所示。
图6-37使用ProcessorExpert
不使用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创建完成界面
在左边的导航栏里选择ProcessorExpert
选择Beans,点右键,选择“AddBean(s)…”,如图6-44所示。
图6-44内核选择
选取并双击ADC,ProcessorExpert导航栏里Beans中增加了AD1:
ADC
选取并双击BitsIO,ProcessorExpert导航栏里Beans中增加了Bits1:
BitsIO
选取并双击BitIO,ProcessorExpert导航栏里Beans中增加了Bit1:
BitIO
选取并双击BitIO,ProcessorExpert导航栏里Beans中增加了Bit2:
BitIO
编辑AD1的属性,如图6-45
Interruptservice:
disabled
ConversionTime21.25uS
图6-46AD1属性编辑
设置Measure和GetValue为generatecode.
其它均为don’tgeneratecode.如图6-46所示
编辑Bits1的属性,如图6-47。
图6-45AD1属性编辑
Beanname:
DispNum
Pins:
7
Pin0:
PTB0
Pin1:
PTB1
Pin2:
PTB2
Pin3:
PTB3
Pin4:
PTB4
Pin5:
PTB5
Pin6:
PTB6
图6-47Bits1属性编辑
Pullresistor:
NoPullresistor
Direction:
Output
编辑Bit1的属性:
Beanname:
BitPta4
PinforIO:
PTA4_OSC2_AD2_KBI4
Pullresistor:
NoPullresistor
Direction:
Output
编辑Bit2的属性:
Beanname:
BitPtb7
PinforIO:
PTB7
Pullresistor:
NoPullresistor
Direction:
Output图6-48Bits1属性编辑
分别进入其Methods页
设置PutValgeneratecode.
其它均为don’tgeneratecode.
如图6-48所示
选择菜单Project>Make
产生所需文件,
如图6-49所示
打开“MyQY6.c”
可以看到主程序:
Main()函数
voidmain(void)
{
PE_low_level_init();
for(;;){}
}
打开“MyQY6.c”
可以看到主程序:
Main()函数
voidmain(void)
{
PE_low_level_init();图6-49编译界面
for(;;){}
}
现在我们编写应用程序代码:
Constchardecode0_9[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};
chardisp[4];
chardisp_bit;
staticbytemyValues[1];/*Numberofchannels*/
voiddisplay(chardbit){
chari;
DispNum_PutVal(0);
BitPtb7_PutVal(dbit/2);
BitPta4_PutVal(dbit&1);
DispNum_PutVal(disp[dbit]);
for(i=255;i=0;i--);
}
voidmain(void)
{
byteerr;
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-TimeSimulator&Real-TimeDebug”工具界面,选择菜单:
Component->SetTargetProcessor栏,选择HC08,Target栏,选择SimulatorTargetInterface,按“OK”。
图6-50确立目标
关闭“True-TimeSimulator&Real-TimeDebug”工具界面,在主界面中重新按下“Debug”,进入“True-TimeSimulator&Real-TimeDebug”调试界面。
选择Component->Open…,如图6-51所示。
图6-51选择Visualizationtool
选择Visualizationtool,如图,点击OK,如图6-52所示。
图6-52添加元件
点击右键,选择Properties,如图6-53所示。
图6-53编辑属性
设置:
RefreshMode:
Periodical
RefreshTime(100ms):
3
点击右键,选择AddNewInstrument->Bar,在界面下放置虚拟元件
点击右键,选择AddNewInstrument->7SegmentDisplay,在界面下放置虚拟元件
点击右键,选择AddNewInstrument->Switch,在界面下放置虚拟元件
双击Bar,如图6-54所示
设置:
KindofPort:
Memory
PorttoDisplay:
0x3e
关闭窗口。
双击7SegmentDisplay
设置:
KindofPort:
Memory
PorttoDisplay:
0x86
关闭窗口。
设置:
KindofPort:
Memory
PorttoDisplay:
0x3c
BitnumbertoDisplay:
7
关闭窗口。
图6-54BAR属性编辑
点击右键,取消选择EditMode。
在“True-TimeSimulator&Real-TimeDebug”调试界面,按下Sart/Continue,运行程序,在本示例中,Bar元件模拟电位器,开关的一次动作表示一次A/D转换,7SegmentDisplay元件显示转换结果。
6.8.3在线编程
这一部分在第四章中6.6已经详细表述过了,这里就不再赘述。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- codewarrior 使用