9G-S12 CWS12开发过程简介
一,准备CWS12+LICENSE+OSBDM 软件包
1,在http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=CW-HCS12X&fpsp=1&tab=Design_Tools_Tab
上注册下载Eval tion: CodeWarrior Development Studio for Freescale HCS12(X) Microcontrollers V5.0 软件
CW_S12_v5.0_Eval.exe
(自行安装到默认C盘)
2,在www.mcu123.net/bbs/ 上下载uFztvdTV.rar 文件包
解压后得到文件license.dat
(把license.dat文件解压放在C:\Program Files\Freescale\CodeWarrior for S12(X) V5.0目录)
3,在http://shop36265907.taobao.com/上联系购买
BDM XS128 USBDM V1.3 8/16/32位 通用下载器及驱动程序
如需要自己制作请查看:
http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=1312798&bbs_page_no=1&bbs_id=2070
网址。
二,建立9S12_ook工程
1,在启动菜单中打开CodeWarrior IDE,在Startup向导框中选择“Create New Project”向导,点开“HCS12X”下面的“HCS12XS Family”
下面的“MC9S12XS128”器件,点击“下一步”;
2,选择开发语言“C”,项目名称用“ook.mcp”项目路径用“D:\works\9S12_ook-1.0\ook”,再占点击“下一步”;添加源码,再点击“下一步”
初始化代码产生意见用“None”,点击“下一步”;启动代码,内存模式,浮点格式,都用默认,再点击“下一步”;
3,FLASH,RAM的页面影射用默认,点击“下一步”,PC-LINT代码管理意见用“None”,点击“完成”建立项目工程。
三,修改9S12_ook工程
1,打开IDE左面“Files”中“Sources”中的“main.c”文件,把该文件修改如下:
#include <hidef.h> /* common defines and macros */
#include "derivative.h" /* derivative-specific definitions */
#include <stdio.h>
extern void SCI_Init(void);
void PLL_init(void)
{
CLKSEL=0X00; // disengage PLL to system
PLLCTL_PLLON=1; // turn on PLL
SYNR=0x00 | 0x01; // VCOFRQ[7:6];SYNDIV[5:0]
REFDV=0x80 | 0x01; // REFFRQ[7:6];REFDIV[5:0]
POSTDIV=0x00; // 4:0, fPLL= fVCO/(2xPOSTDIV)
_asm(nop); // BUS CLOCK=16M
_asm(nop);
while(!(CRGFLG_LOCK==1)); //when pll is steady ,then use it;
CLKSEL_PLLSEL =1; //engage PLL to system;
}
void delay_ms(int nms)
{
int i,j;
for(i=0;i<nms;i++)
{ for(j=0;j<2770;j++){;}} //32MHz--1ms
}
void main(void) {
int i=0;
/* put your own code here */
PLL_init();
SCI_Init();
EnableInterrupts;
printf("\n\r\n\r\n\r9S12ook Version 1.0-xs128 (y nxih h@21cn.com) Build on %s %s\n\r\n\r",__DATE__,__TIME__);
for(;;)
{
printf("\n\r9S12ook-1.0 run times = %d ...",i++);
delay_ms(1000);
_FEED_COP(); /* feeds the dog */
} /* loop forever */
/* please make sure that you never leave main */
}
2,在D:\works\9S12_ook-1.0\ook中建立“Drivers”文件夹,及“ rt.c”文件:
#include <hidef.h> /* common defines and macros */
#include "derivative.h" /* derivative-specific definitions */
#include <stdio.h>
void SCI_Init(void)
{
SCI0CR2=0x2c; //enable Receive Full Interrupt,RX enable,Tx enable
SCI0BDH=0x00; //SCI0BDL=busclk/(16*SCI0BDL)
SCI0BDL=0x68; //busclk 8MHz, 9600bps,SCI0BDL=0x68
}
void TERMIO_PutChar(unsigned char ch)
{
while(!(SCI0SR1&0x80)) ; //keep waiting when not empty
SCI0DRL=ch;
}
unsigned char TERMIO_GetChar(void)
{
while(!(SCI0SR1&0x80)) ; //keep waiting when not empty
return SCI0DRL;
}
3,在IDE左面“Files”点击右键,选择“Create Group”在向导中填入“Drivers”,点击“OK”,
在IDE左面“Files”下面的“Drivers”上右击选择“Add Files”,打开“D:\works\9S12_ook-1.0\ook\Drivers\ rt.c”;
四,调试9S12_ook工程
1,在菜单中选择“Project”->“Make”编译工程生成目标码;
2,把USBDM 下载器连接上开发板及USB接口,安装下载器自带的TBDML驱动;
3,在IDE工程左面的仿真类型中选择用“TBDML”然后在菜单中选择“Project”->“Debug”调试工程;
4,跳出几个框都确认后就能把目标码下载到CPU中,然后可以在实时仿真界面做单步,全速等操作。
离线