1、写给 CodeWarrior 初学者1 运行 CodeWarrior IDE,打开软件界面;2 点击“File”菜单下的“New”选项,然后在“Project”选项卡中选择“HC(S)12 New Project Wizard”,也就是新建工程向导,在右侧输入你要键入的工程名和你要放在哪个文件夹下面;3 点击“确定”后下面选择你采用的单片机型号,比如你选择“MC9S12D64”或者“MC9S12NE64”;(其中如果选择 MC9S12NE64,则必须安装光盘上的 NE64 补丁插件)4 点击“下一步”后,选择你采用哪种编程语言,尽量不要选第三个“C+” ,因为好像我试的有问题,如果你单纯的 C
2、,则选择第二个,如果你是 C 和汇编混合编程,则前两个都要选的;5 选择是否采用“处理器专家” ,该项功能可以方便程序的寄存器设置,但我用过感觉比较糊涂,所以我一般选择“No ”;6 下面就是选择是否采用“PC-lint”,选择“No ”;7 选择是不是支持浮点数,如果你的工程采用浮点数则选择下面的两个中一个,否则选择“No” ;8 选择采用哪种内存定位模式,一般选择第一个“Small”模式9 最后一步,选择前面两项,如果仅选择第一项,则仅可以软件调试,前两项都选择可以支持软件和硬件调试。10 完成后,软件会自动创建一个工程,如下图所示, ,其中左侧的 sources 文件夹下面的 main.
3、c 就是你的主程序文件,你可以在里面添加代码,同时在左侧按鼠标右键,会弹出菜单,里面有“Add Files”或“Create Group”等,可以根据你的需要往新创建的工程里添加你自己的头文件或者 C 文件。11 你可以在 main.c 里面编辑你的代码,如果需要加入中断,则在左侧找到 Prm 文件夹下面打开“P&E_ICD_Linker.prm” ,然后在右侧该文件里你可以加入你自己的中断函数和中断向量入口地址,记住:你在这个 Prm 里定义的自己的中断函数名,要和主函数里面的中断函数名对应起来;比如我在 Prm 文件里定义了串口接收中断:VECTOR ADDRESS 0XFFD6 SCI0
4、Recive_ISR则在主函数(main.c)里面这样引用该中断函数:interrupt void SCI0Recive_ISR(void)里面是你自己的代码12 现在一个简单的工程基本创建完成,点击下面的编译按钮进行或者调试按钮就进入调试环境13 如果您点击调试(绿色类似箭头按钮)的时候没反应,那可能是您设置的 Debug路径有问题,如果您采用我的方法,比如 CW3.0 仅安装了 Compiler,然后安装了 CW4的 Debugger,这样的话就要设置一下 Debug 的路径。 (如果您的 CW 软件自动安装,那不存在这个问题) ;设置 Debuger 路径如下,点击 Edit 菜单下面的
5、“P&EICD Settings”:14 在弹出的对话框中,左边选择“Build Extras”。右边指定“hiwave.exe”的位置,该文件一般在你安装的 CW 软件版本下的 Prog 文件夹下面,看你安装了哪个版本的CW 软件的 Debugger,然后找到那个软件的安装路径,然后找到它下面的 Prog 文件夹,hiwave.exe 就在它下面呢。15 设置了正确的 debugger 的路径后,然后进入调试环境,结果又弹出另外的对话框,如下所示,弹出的原因是你没连接仿真器或者仿真器连接的设置有问题;解决办法:a. 如果你没有仿真器,而仅打算进行软件仿真,则把 CodeWarrior 主界面
6、中的“P&E ICD”改为“Simulator”,就可以。b. 如果你有仿真器打算硬件调试,则在 Debug 环境中,点击 “Component”下拉框中的“Set Target”,然后选择你的仿真器类型,如果你用的国外的 P&E USB 仿真器,则该下拉框选择“ICD12 Target Interface”,如果你采用我自制的,则选择“GDI Target Interface”。16 好了,如果正确设置了仿真器的连接而且连上目标板,点击 Debug 后会把程序烧到目标板里,同时进入下面的界面,然后你就可以运行,设置断点,看寄存器内容了。其中左下方的“Data:1”和“Data:2”窗口可以观
7、看变量内容,鼠标双击该窗口,弹出的框中输入你要看的变量名,然后程序运行就可以看到该变量的值了。下面介绍如何用 Codewarrior 软件最简单的生成库文件1 用前面的用向导的方法建立一个自己的工程,要选择单片机类型,选择浮点数,选择内存模式等等2 在建好工程后,把左侧的除了“Sources”文件夹的其它文件夹全部 Remove,方法是鼠标右键单击相应的选项,然后选择 Remove 就可。最后只剩下一个 Source 文件夹了;3 进入 Source 文件夹下面的 Main.c,里面你可以写你自己的函数,如上图所示,你可以引用单片机的寄存器,可以定义外部变量,可以定义函数,甚至中断函数你都可以
8、放进去,这样可以使你的程序保密啊。4 写好你的 Main.c 后还需要设置一下,点击 Edit 下来菜单中的 ”P&E Settings”,弹出的对话框在左侧选择“Target Settings”,右侧在 Linker 里选择“Libmaker for HC12”,这样就设置好了,这时你编译就可以自动生产库了,如果你需要对生成的库自己指定文件名就按照第 5 步。5 生成自己指定名字的库名,还是在上面的选项对话框中,左侧选择下面的Libmaker for,右侧在 Library Filename 中自己指定名字。然后编译后,在你的工程的“Bin ”文件夹下就可以看到一个*.lib 文件 和*.l
9、st 文件,这就是你的库了怎么调用你的库呢?下面介绍一下。1 在你建立的自己的库的工程下面的“bin ”文件夹下面生成了两个文件,*.lib 文件 和*.lst 文件,这里我自己的库文件名字按照 out.lib 和 out.lst 命名的,下面都已这两个文件为准。2 把上面两个文件拷贝到你打算调用这个库的那个新工程里面,拷贝到哪个文件夹下面都行,我都把它们也是拷到了”bin”文件夹下面。3 同样在新工程里创建,或者自己用记事本写一个头文件,包含库文件中函数的声明,比如我的头文件:我自己命名是 outlib.h,里面的内容如下上面的那些变量和函数都是在我的库文件,out.lib 里面定义的函数和变量,比如我的out.lib 的部分内容如下:4 然后在你的新建工程的主函数里包含那个头文件,如下:5.最后把你的库文件添加到这个工程里就行,用“Add Files”的方法。6这样就 OK 了。