C语言重点语法及CodeWarrior使用介绍

合集下载

CodeWarrior基础入门

CodeWarrior基础入门

在图 1-8 中项目窗口的右上角有一些小图标,这些图标代表了项目开发管理的最基 本功能:

该图标可以即时改变目标单片机型号
和开发调试场景。按下这一图标,将弹出 图 1-4 所示的对话框,可以按照前面针对
新项目建立模板的介绍,改变目标单片机
的型号,或设定不同的当前目标开发调试
场景。对于调试场景的改变,也可以直接
命信息出现,当前源程序的编译将立即终止,你必须按给出的信息提示解
决这些错误,然后才能继续编译。
完成编译过程中代码生成的各类选项设定,所含内容也很多, 最需要关注的是优化栏“Optimization”。你可以按实际需要打开或关闭 某些特定的优化选项,但我们一般通过下面介绍的“Smart Sliders”做综
在的项目文件夹中。如果你准备在新的项 目中修改这些文件,就选择拷贝,以免把
图 1-5
原始的文件改变后而影响先前的一些项 目;“Create main.c/main.asm file”选择是否在本项目中生成全新的 main.c 或 main.asm 文件,一般的项目开发都需要生成新的 main 文件。按用户自己的要求和
开发场景,不必太在意在这里的选择。
到此你如果按“Finish”,整个项目建立过程将完成,剩下的一些项目设定将自动 用缺省配置。如果你要自己选择调整,则按“Next”进入下一步,往项目中添加现 成的文件,见图 1-5。
张明峰 2007 年 10 月 于上海
FSL 08 系列单片机开发及 C 语言编程简介
件,可 以是 C,也 可以 是 asm, 或 C++。你可以在此栏下点击鼠标右键 在弹出菜单中选择“Add Files”添加
其他源程序文件; Includes 栏目下包含本项目所有被引

Codewarrior帮助文件

Codewarrior帮助文件
7. C1019: Incompatible type to previous declaration 与先前的定义不相符 Description The specified identifier was already declared 要定义的标志符在前面已经被定义过了 Example unsigned char i; unsigned char i(); Tips Choose another name for the identifier of the second object. 选择另外一个标志符重新定义,如例 unsigned char i; unsigned char j();
8. C1025: ',' expected before '...' 缺少“,” Description An open parameter list was declared without a ‘,’ before the ‘...’. 函数形参列表中,没有用“,”分割 Example void foo(unsigned char a ...); Tips Insert a ‘,’ before the ‘...’. 形参之间插入“,”
15. C1800: Implicit parameter-declaration (missing prototype) for ‘<FuncName>’错 误的函数调用方式
[ERROR] Description A function was called without its prototype being declared before.
10. C1096: Illegal index value 数组元素个数定义错误 [ERROR] Description The index value of an array declaration was equal or less than 0. 数字元素的个数在定义时小于等于 0 Example unsigned char i[0]; // error; // for 16bit unsigned char this is 0x8CA0 or -29536 ! static char dct_data[400*90]; Tips The index value must be greater than 0. If the index value is a calculated one, use a ‘u’ to make the calculation unsigned (e.g. 400*90u). 数组定义时,数组的个数要大于零,若元素个数为一个计算所得的数字,则最好在后面加 u 表示为无符号数。

C语言重点语法及CodeWarrior使用介绍

C语言重点语法及CodeWarrior使用介绍
硬件调试。实际就是我们经常说的 BDM 调试。BDM 调试是基于芯片本身内含
的在线调试功能,可实现程序下载,单步/全速运行,可以设若干个断点,可 以观察和修改任意寄存器或 RAM 内存空间。BDM 几乎是开发飞思卡尔 8 位 (9S08 和 RS08 系列)、16 位(9S12 系列)和 32 位(Coldfire V1 系列)单片
快速实现芯片初始化代码的自动生成工 作,而且 PE 还提供了大量的软件库可供 用户开发时嵌入或调用。因为 8 位单片机
结构和功能相对简单,实现的控制项目复
杂度也不是很高,故一般情况下 8 位机开 发我们都不需要 PE 的介入,自己直接编
图 1-6
写程序代码即可。关于 PE 的详细介绍将
耗费大量的文字,这里按下不提。所以在 图 1-6 的对话框中选择“None”,并直接 按“Next”进入下一步。
如果你以前编写了很多代码文件现在想重 复利用,那么可以通过图 1-5 对话框左面
的文件树选择对应的文件,按中间的
“ Add ” 逐 个 添 加 到 右 侧 的 “ Project Files ” 列 表 中 。 若 加 错 了 就 用 “Remove”把列表中的文件移除。注意 此列表下方的两个选项:“Copy files to project”选择是否将所选的文件拷贝到现
这是项目建立模板的最后一步。在这一步
你可以决定有关 C/C++的一些编译和代码 生成模式,见图 1-7。 启动代码选择。所有 C 编译器会自动
生成一些启动代码。单片机复位后的
指令运行将首先执行这些启动代码, 然后再进入到你自己的程序模块 main
函数。这些启动代码主要完成堆栈指
针初始化、全局和静态变量自动清零

codewarrior使用指南

codewarrior使用指南
CodeWarrior 快速入门
1、安装 CodeWarrior 软件 安装 CodeWarrior 所需要的电脑的硬件资源如下,目前一般的电脑都可以满足这个要求。
16 位单片机的编程环境:CodeWarrior V4.6,V4.7,V5.0,V5.1 CodeWarrior V5.1 的下载链接: /lgfiles/devsuites/HC12/CW_HC12_v5.1_SPECIAL.exe 软件安装很简单,和其它软件的安装过程是一样的,按照默认的设置直接点击“下一步” 即可完成安装。 2、创建新工程(单片机以以 MC9S12XS128 为例,调试工具以 BDM 为例) 1) 点 击电 脑 左下 角 的 开始 菜 单, 开 始 >所 有 程 序>Freescale CodeWarrior> CodeWarrior development studio for S12(X) V5.0> CodeWarriorIDE。IDE 开始运行,出现下图 1 所示的窗口。
图11
图12 接下来给核心板供电,核心板的供电电压是 5V。有的 BDM 有 5V 供电模式,这个时候 直接用 BDM 供电就可以。 2)在新建的工程中键入如下代码 #include <hidef.h> #include "derivative.h" #define LEDCPU PORTK_PK4 #define LEDCPU_dir DDRK_DDRK4 void delay(void) { unsigned int i; for(i=0;i<50000;i++); } void main(void) { LEDCPU_dir=1; EnableInterrupts;
图8

CodeWarrior V10.1 使用方法快速入门

CodeWarrior V10.1 使用方法快速入门

CodeWarrior V10.1 使用方法快速入门CodeWarrior V10.1 Quick Start Guide1.启动CodeWarrior。

如果是首次启动该软件,需要设定一个工作空间。

选定工作空间后,如果是第一次运行CodeWarrior,则首先进入“欢迎”界面,点击该界面左上角“×”按钮,关闭该界面后即进入“C/C++项目”编程界面。

2.新建工程:在工具栏中选择 “文件->新建->BareBoard Project”,如图1所示。

图11)设定文件名在缺省状态下,该新建工程将保存在当前工作空间的文件夹下。

完成后点击“下一步”,如图2所示。

图22)选择芯片类型。

此处以MK10N512VMD100为例。

选择好芯片类型后,点击“下一步”,如图3所示。

图33)选择调试器类型(可多选)如果成功安装了新的USBBDM并且patch成功,此处会出现USBDM选项,如图4所示。

如果要在该工程中添加一些已有文件、或者希望生成一个默认的main.c文件,则完成后点击“下一步”。

如无上述需求,则直接点击“完成”。

此时将生成一个包含Startup Code、但不含main.c 的新工程。

图44)选择导入的默认文件以及是否生成main.c,完成后点击“下一步”。

CodeWarrior的默认编程语言是C,也支持C++和汇编,如果使用C语言编程,此处也可直接单击“完成”,具体操作如图5所示。

图55)选择编程语言,完成后点击“下一步”,如图6所示。

图66)选择是否需要调用一些快速开发工具(如Processor Expert、Device Initialization),完成后点击“完成”,如图7所示。

图7至此,CodeWarrior将为您生成一个包含Startup.c和main.c的新工程。

在编程界面(C/C++项目)下的工程窗口下,您可以浏览该工程含有的全部文件。

如果您无法找到上述窗口,可在CodeWarrior界面左下角的视图管理器中寻找。

CodeWarrior使用说明

CodeWarrior使用说明
5.5.3).插件设置(Plug-In Settings): 供插件开发商调试他们的插件;
htt第p:/一/bb章s.el认ecf识oomd电eW子技a术rr论io坛r 电子发烧上友海天马
5.5.4).隐藏文件夹(Shielded Folders): 在这里指定的文件夹在工程设计期间,或 执行查找和比较操作期间,将要被忽略掉.如果在你的工程级有一个巨大的“数据”文 件目录,而你又不想让这些文件降低CodeWarrior 的操作速度时,这个设置就很管用 了;
5.3.2).视窗化(Windowing): 设定调试器如何管理它的窗口(比如隐藏所有打开 的编辑器窗口);
htt第p:/一/bb章s.el认ecf识oomd电eW子技a源自rr论io坛r 电子发烧上友海天马
5.3.3).全局设置(Global Settings): 几个用于定制调试器在全局层次如何工作 的设置。比如当一个包含了程序调试信息的文件被打开时,是否启动这个程序;
的使用的设置。正如你所见到的,CodeWarrior 有许多设置项和选项。设置完后点 击“Save”按钮保存你所作的修改,点击“Close”按钮将忽略你所作的所有修改。在进 入下一节课之前,多练习几次。最后请确认“默认的文本文件格式(Default Text File Format)”(在编辑器设置面板中)保持为 DOS 设置。
htt第p:/一/bb章s.el认ecf识oomd电eW子技a术rr论io坛r 电子发烧上友海天马
1). CodeWarrior 能做些什么? A).使用 C/C++ 进行编程 B).也支持 Java 开发 本课程仅限于应用C/C++ 语言在 Windows 平台上使用 CodeWarrior 进行的开发. 2). CodeWarrior 优点是什么? CodeWarrior 能够自动地检查代码中的明显错误,它通过一个集成的调试器和编辑器来扫描

Codewarrior使用指南

Codewarrior使用指南

Codewarrior 使用指南飞思卡尔 HC08/HCS12 系列微控制器开发环境 - Codewarrior 使用指南(草稿)tyf01@ 2005 年 10 月仅供学习参考,请勿用于商业目的1Codewarrior 使用指南第一章 Codewarrior IDE 概述在软件开发过程中,通常需要经过以下几个步骤: • 新建:创建新项目,源文件 • 编辑:按照一定的规则编辑源代码,注释 • 编译:将源代码编译成机器码,同时还会检查语法错误和进行编译优化 • 链接:将编译后的独立的模块链接成一个二进制可执行文件 • 调试:对软件进行测试并发现错误 在软件开发中,每个过程都会用到不同的工具。

如果每个工具都单独存在,这样就 会给开发人员带来很多不便。

所以很多公司为开发人员提供了集成开发环境。

开发 人员可以在同一个工具或平台上完成以上全部的工作。

Codewarrior 是 Metrowerks 公司开发的软件集成开发环境(以后简称 IDE)。

飞思 卡尔所有系列的微控制器都可以在 codewarrior IDE 下进行软件开发。

Codewarrior IDE 特点Codewarrior IDE 为软件开发提供了一系列的工具,其中包括: 项目管理器:为软件开发人员管理上层的文件;将项目进行分组管理,比如文件或 目标系统;跟踪状态信息,比如修改日期;决定编译顺序或每次编译应包括哪些文 件;与插件一起提供版本控制功能 编辑器:利用颜色来区分不同的关键字;允许用户利用颜色机制自定义关键字;自 动检查括号范围;利用菜单在不同的文件或函数中导航 搜索器:搜索一个特定的字符串;用特定的字符串代替查找到的字符串;允许使用 常规表达式;提供文件比较功能; 源代码浏览器:标志符(变量名称,函数名称)数据库;利用数据库来对代码快速 定位;对所有的标志符连接到用到它的代码中; 编译系统:编译器将源代码编译成机器码;链接器将目标文件链接成可执行文件 调试器:利用标志符数据库进行源代码级调试;支持各种标志符数据库,比如: codeview, DWARF, SYM 等Codewarrior IDE 优点•交叉平台开发2Codewarrior 使用指南 开发人员可以在不同的操作系统下使用 codewarrior IDE 来开发自己的软 件。

CodeWarriorV.软件使用指南

CodeWarriorV.软件使用指南

Code Warrior 软件使用指南一、软件安装指南二、关于BDM驱动三、创建一个新的工程四、编写与运行你的程序2011年10月16日陈万忠Code Warrior 软件使用指南一、软件安装指南1. 打开文件安装文件夹2. 找到安装文件3. 双击此文件,出现安装界面:4. 点击“NEXT”按钮,出现安装路径信息。

如果修改系统默认路径,点击“change”按钮,然后修改安装路径,否则点击“NEXT”按钮。

5. 在安装过程中,根据提示信息,完成每一步的安装。

6. 安装完毕后,在所有程序中找到Code Warrior 执行文件,点击执行即可进入Code Warrior 集成环境。

7. 也可以拖到桌面上。

此时桌面出现如下图标:二、关于BDM驱动请将“BDM使用说明和驱动”文件夹下的文件:和以及三个文件,复制到:C:\Program Files\Freescale\\Prog\gdi目录下(或者你安装时修改过的Code Warrior 所在目录\Prog\gdi子目录下),在调试时选择Open Source BDM 调试接口即可。

三、创建一个新的工程创建一个新的工程,要按照下面向导选项的8个步骤来选择完成。

双击桌面快捷图标,进入 Code Warrior集成开发环境窗口。

第一步:创建一个新的工程。

第二步:选择CPU类型,选择HCS12X目录下的HCS12X Family。

第三步:选择CPU芯片型号和BDM工具TBDML。

第四步:选择编程语言,我们选择C语言编程。

第五步:添加文件到工程,一般直接按“下一步”。

第六步:快速开发应用程序选择,选None。

第七步:选择中的用户自定义模式。

第八步:选择不使用PC-Lint(TM)链接工具软件,点击“完成”按钮,Code Warrior集成开发环境就会自动生成整个工程的文件系统。

四、编写与运行你的程序在Code Warrior集成开发环境中,利用其自动生成的函数模板,就可以编写和调试你的应用程序了。

1.Freescale CodeWarrior 简要使用说明

1.Freescale CodeWarrior 简要使用说明

Freescale CodeWarrior 使用说明在智能车竞赛中,我们主要使用Freescale公司提供的CodeWarrior软件开发环境对单片机进行编程,在应用中,我们使用的是CodeWarrior4.7或CodeWarrior5.0的版本,在这里以CodeWarrior5.0为例,给大家说明CodeWarrior软件的一些使用说明。

点击桌面或开始菜单中的CodeWarrior IDE的图标,就可以进入CodeWarrior集成开发环境,具体结果如图一所示。

图一我们点击Startup中的第一个选项”Create New Project”,来新建工程。

之后进入向导菜单,如图二所示图二智能车使用的MC9S12XS128单片机作为主控芯片,所以我们在器件中选择相应的芯片,同时,在智能车校赛过程中,大家都是使用学校提供的BDM作为下载区,所以在Connections 中选择TBDML。

然后点击下一步。

下一步界面如图三所示图三在这一界面中,我们首先选择编程的语言,我们主要使用C语言进行编程,所以我们需要选中C的复选框,同时我们还需要在project name和location中对我们工程的名称和路径进行设定,这里我们给出的例子的工程名为SMARTCAR,路径在D盘根目录,这里每个人都可以根据喜好自由设定,然后点击下一步。

之后的界面如图四所示图四在这里,我们可以将一些已经编写好的文件纳入到工程中,这里由于我们是建立一个空白的全新的工程,所以,我们跳过此步,直接点击下一步。

之后的界面如图五所示图五这里我们不进行修改,直接点击下一步。

下一步菜单如图六所示,这里我们对C或C++语言进行一些设置。

图六在实际使用中,我们主要对第三项”Select the floating point format supported”进行修改,默认选择了”None”,这样我们在编程中就无法使用浮点数”float”,这是非常不方便的。

CodeWarrior使用说明

CodeWarrior使用说明

CodeWarrior使⽤说明第⼀章: 认识CodeWarrior第⼆章: ⼯程和⽬标⽂件的显⽰和定制第三章: 编译第四章: 链接第五章: 调试第六章: 定制第七章: 库函数和Microsoft Foundation Classes (MFC)1). CodeWarrior 能做些什么?A).使⽤C/C++ 进⾏编程B).也⽀持Java 开发本课程仅限于应⽤C/C++ 语⾔在Windows 平台上使⽤CodeWarrior 进⾏的开发.2). CodeWarrior 优点是什么?CodeWarrior 能够⾃动地检查代码中的明显错误,它通过⼀个集成的调试器和编辑器来扫描你的代码,以找到并减少明显的错误,然后编译并链接程序以便计算机能够理解并执⾏你的程序.3).常⽤编程类型说明:A).应⽤程序(如:⽂本编辑器WordPad )B). 庞⼤的商业软(如:⽐如象Adobe Photoshop,MicrosoftWord,CodeWarrior…)C). 控制⾯板(control panels)<实际上是设置系统功能的⼀个简单界⾯,⽐如可以在控制⾯板中完成.如:设置⾳量和⿏标移动速度这样⼀些参数.>D). 动态链接库(dynamic linked libraries,DLLs)<提供⼀些很有⽤的被系统和应⽤程序共享的函数.通常它们没有⽤户界⾯.>E). 插件(plug-ins)<类似于DLLs,插件也是可供其它软件使⽤的⼩程序,但插件只能被特定的软件使⽤.>4).CodeWarrior⼯具条介绍: 4.1).⽂件菜单: 4.2).编辑菜单4.3).查看菜单4.4).查找菜单4.5).⼯程菜单4.6).调试菜单4.8).窗⼝菜单4.9).帮助菜单4.7).VCS 菜单5).CodeWarrior 集成开发环境的设置5.1).通⽤设置5.5.1).编译设置(Build Settings): 选择是否在执⾏编译之前保存已打开的源⽂件,以及有多少内存被⽤于编译⼯作;5.5.2).IDE 之外(IDE Extras): ⼏个独⽴的设置.⽐如指定CodeWarrior 是否使⽤⼀个第三⽅的⽂本编辑器——因为集成的编辑器并不是很完美,这可以通过指定⼀个你惯⽤的编辑器来替代它;5.5.3).插件设置(Plug-In Settings): 供插件开发商调试他们的插件;5.5.4).隐藏⽂件夹(Shielded Folders): 在这⾥指定的⽂件夹在⼯程设计期间,或执⾏查找和⽐较操作期间,将要被忽略掉.如果在你的⼯程级有⼀个巨⼤的“数据”⽂件⽬录,⽽你⼜不想让这些⽂件降低CodeWarrior 的操作速度时,这个设置就很管⽤了;5.5.5).资料树(Source Trees): ⽤于指定CodeWarrior 在编译程序时⽤不着的⽬录.5.2).编辑器设置5.2.1).编辑器设置(Editor Settings): ⼏个⽤于定制编辑器显⽰、管理⽂本和窗⼝的设置项;5.2.2).字体和制表符(Fonts and Tabs): 设置编辑器中的⽂本⼤⼩、字体、制表符和其它显⽰设置;5.2.3).⽂本颜⾊(Text Colors): ⽤于指定特定语⾔元素(⽐如程序的注释)在编辑窗⼝中的显⽰的颜⾊。

codewarrior使用指南

codewarrior使用指南

codewarrior使用指南Transition TitleCodewarrior使用指南TM内容利用向导创建一个新工程项目在新项目中加入或删除文件编译调试启动程序PRM文件设置如何对IO及寄存器进行操作如何写中断程序如何使用汇编和C语言混合编程嵌入式编程注意事项如何使用Processor ExpertSlide 2TMFreescale and the Freescale logo are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. Freescale Semiconductor, Inc. 2022年.利用向导创建一个新工程项目在新项目中加入或删除文件编译调试启动程序PRM文件设置如何对IO及寄存器进行操作如何写中断程序如何使用汇编和C语言混合编程嵌入式编程注意事项如何使用Processor ExpertTMFreescale and the Freescale logo are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. Freescale Semiconductor, Inc. 2022年.创建新工程11、创建新工程2、选择HCS12 New Project Wizard3、输入工程名Slide 4TMFreescale and the Freescale logo are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. Freescale Semiconductor, Inc. 2022年.创建新工程24、选择MCU类型5、选择语言类型Slide 5TMFreescale and the Freescale logo are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. Freescale Semiconductor, Inc. 2022年.创建新工程36、选择是否采用Processor Expert 7、选择是否使用PC-lint如果用Processor Expert,选择YesSlide 6TMFreescale and the Freescale logo are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. Freescale Semiconductor, Inc. 2022年.创建新工程48、选择是否用浮点运算9、选择存储器类型Slide 7TMFreescale and the Freescale logo are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. Freescale Semiconductor, Inc. 2022年.创建新工程510、选择调试器类型Slide 8TMFreescale and the Freescale logo are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. Freescale Semiconductor, Inc. 2022年.编译调试是否产生调试信息源程序文件夹Start up文件夹Prm文件夹Map 文件夹库文件夹列出相关文件代码长度TM变量长度Slide 9是否被包含在Target中Freescale and the Freescale logo are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. Freescale Semico。

CodeWarrior软件与编程的讲解(完整版)

CodeWarrior软件与编程的讲解(完整版)

CodeWarrior 使用教程第一课认识CodeWarriorTranslated from CodeWarrior 能做些什么?当你知道自己能写更好的程序时,你一定不会再使用别人开发的应用程序。

但是常常会发生这种情况,就是当你写了无数行代码后,却找不到使得整个程序出错的那一行代码,导致根本没法编译和链接整个程序。

这可能更令人灰心丧气。

本文将告诉你如何使用CodeWarrior 这一工具解决上述问题。

从现在开始,我们将集中精力学习如何在CodeWarrior 中使用C/C++ 进行编程。

为了学习本课程,你必须已经能够比较熟练地使用上述两种语言之一。

CodeWarrior 也可以支持Java 开发,但那是另一门课程的内容。

本课程仅限于在Windows 平台上使用CodeWarrior 进行的开发。

一旦你精通了CodeWarrior 编程后,你可以试试在其它平台上使用CodeWarrior。

本文中讨论过的大部分内容都可以应用到开发Mac 应用程序中。

CodeWarrior 能够自动地检查代码中的明显错误,它通过一个集成的调试器和编辑器来扫描你的代码,以找到并减少明显的错误,然后编译并链接程序以便计算机能够理解并执行你的程序。

你所使用过的每个应用程序都经过了使用象CodeWorrior 这样的开发工具进行编码、编译、编辑、链接和调试的过程。

现在你在我们的指导下,自己也可以去做这些工作了。

你可以使用CodeWarrior 来编写你能够想象得到的任何一种类型的程序。

如果你是一个初学者,你可以选择编写一个应用程序(比如一个可执行程序),比如象微软公司的文本编辑器WordPad 这样的应用程序。

应用程序可能是最容易编写的程序了,而那些庞大的商业软件,比如象Adobe Photoshop,Microsoft Word 以及CodeWarrior 软件都是极其复杂的。

其它类型的程序指的是控制面板(control panels),动态链接库(dynamic linked libraries,DLLs) 和插件(plug-ins)。

CodeWarrior介绍(自己整理)

CodeWarrior介绍(自己整理)

写给CodeWarrior初学者1.运行CodeWarrior IDE,打开软件界面;2.点击“File”菜单下的“New”选项,然后在“Project”选项卡中选择“HC(S)12 New Project Wizard”,也就是新建工程向导,在右侧输入你要键入的工程名和你要放在哪个文件夹下面;3.点击“确定”后下面选择你采用的单片机型号,比如你选择“MC9S12D64”或者“MC9S12NE64”;(其中如果选择MC9S12NE64,则必须安装光盘上的NE64补丁插件)4.点击“下一步”后,选择你采用哪种编程语言,尽量不要选第三个“C++”,因为好像我试的有问题,如果你单纯的C,则选择第二个,如果你是C和汇编混合编程,则前两个都要选的;5.选择是否采用“处理器专家”,该项功能可以方便程序的寄存器设置,但我用过感觉比较糊涂,所以我一般选择“No”;6.下面就是选择是否采用“PC-lint”,选择“No”;7.选择是不是支持浮点数,如果你的工程采用浮点数则选择下面的两个中一个,否则选择“No”;8.选择采用哪种内存定位模式,一般选择第一个“Small”模式9.最后一步,选择前面两项,如果仅选择第一项,则仅可以软件调试,前两项都选择可以支持软件和硬件调试。

10.完成后,软件会自动创建一个工程,如下图所示,,其中左侧的sources 文件夹下面的main.c就是你的主程序文件,你可以在里面添加代码,同时在左侧按鼠标右键,会弹出菜单,里面有“Add Files”或“Create Group”等,可以根据你的需要往新创建的工程里添加你自己的头文件或者C文件。

11.你可以在main.c里面编辑你的代码,如果需要加入中断,则在左侧找到Prm文件夹下面打开“P&E_ICD_Linker.prm”,然后在右侧该文件里你可以加入你自己的中断函数和中断向量入口地址,记住:你在这个Prm里定义的自己的中断函数名,要和主函数里面的中断函数名对应起来;比如我在Prm文件里定义了串口接收中断:VECTOR ADDRESS 0XFFD6 SCI0Recive_ISR则在主函数(main.c)里面这样引用该中断函数:interrupt void SCI0Recive_ISR(void){里面是你自己的代码}12.现在一个简单的工程基本创建完成,点击下面的编译按钮进行或者调试按钮就进入调试环境13.如果您点击调试(绿色类似箭头按钮)的时候没反应,那可能是您设置的Debug 路径有问题,如果您采用我的方法,比如CW3.0仅安装了Compiler,然后安装了CW4的Debugger,这样的话就要设置一下Debug的路径。

Codewarrior使用指南

Codewarrior使用指南

创建新工程 6
9、是否添加Startup Code 10、选择Memory类型 11、选择是否使用浮点数及 类型
Slide 8
TM
Freescale™ and the Freescale logo are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © Freescale Semiconductor, Inc. 2005.
创建新工程 5
8、选择是否用设置初始化或处理器专家
Slide 7
TM
Freescale™ and the Freescale logo are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © Freescale Semiconductor, Inc. 2005.
模拟调试器界面
工具条
打开文件 单步 进入 单步 跳出 停止 复位
保存当前 设置
运行 单步跳过
汇编单步
Slide 15
TM
Freescale™ and the Freescale logo are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © Freescale Semiconductor, Inc. 2005.

codewarrior注释

codewarrior注释

codewarrior注释CodeWarrior是一种集成开发环境(IDE),可用于编写和调试嵌入式系统的软件。

它最初是由Metrowerks开发的,后来被Freescale收购,现在是NXP半导体的一部分。

CodeWarrior 具有众多功能和工具,可以帮助开发者编写和调试高效、可靠的嵌入式代码。

在CodeWarrior中,注释是一种常见的编程实践,用于解释代码的功能、目的和工作原理。

注释对于代码维护和合作开发非常重要,可以提高代码的可读性和可维护性。

以下是一些常见的CodeWarrior注释的示例和参考内容:1. 函数注释:函数注释应该解释函数的功能、输入参数、返回值和任何可能的副作用。

这些注释应该放在函数定义的前面。

例如:```/** computeSum函数计算两个整数的和** @param a: 第一个整数* @param b: 第二个整数* @return: 两个整数的和* @throws: 无异常情况*/int computeSum(int a, int b) {// 函数体省略}```2. 类和结构注释:对于类和结构,应该在其定义之前加入注释,解释其目的和用法。

```/** Point类表示一个二维平面上的点*/class Point {// 类定义省略};```3. 代码段注释:有时候,较复杂的代码段可能需要解释其执行逻辑。

在这种情况下,可以将注释放在代码段之前或之后。

```// 初始化变量sum为0int sum = 0;// 计算数组中的所有元素的和for (int i = 0; i < size; i++) {sum += array[i]; // 累加每个元素到sum}```4. TODO注释:TODO注释用于指示代码中需要完成或改进的部分。

这对于团队合作和代码维护非常有用。

```// TODO: 实现排序算法逻辑void sortArray(int array[], int size) {// 未完待续...}```5. Bug注释:Bug注释用于记录代码中已知的问题或bug。

CodeWarrior软件与编程的讲解(完整版)

CodeWarrior软件与编程的讲解(完整版)

CodeWarrior软件与编程的讲解(完整版)CodeWarrior 使用教程第一课认识 CodeWarriorTranslated from CodeWarrior 能做些什么?当你知道自己能写更好的程序时,你一定不会再使用别人开发的应用程序。

但是常常会发生这种情况,就是当你写了无数行代码后,却找不到使得整个程序出错的那一行代码,导致根本没法编译和链接整个程序。

这可能更令人灰心丧气。

本文将告诉你如何使用 CodeWarrior 这一工具解决上述问题。

从现在开始,我们将集中精力学习如何在 CodeWarrior 中使用 C/C++ 进行编程。

为了学习本课程,你必须已经能够比较熟练地使用上述两种语言之一。

CodeWarrior 也可以支持 Java 开发,但那是另一门课程的内容。

本课程仅限于在 Windows 平台上使用CodeWarrior 进行的开发。

一旦你精通了 CodeWarrior 编程后,你可以试试在其它平台上使用 CodeWarrior。

本文中讨论过的大部分内容都可以应用到开发 Mac 应用程序中。

CodeWarrior 能够自动地检查代码中的明显错误,它通过一个集成的调试器和编辑器来扫描你的代码,以找到并减少明显的错误,然后编译并链接程序以便计算机能够理解并执行你的程序。

你所使用过的每个应用程序都经过了使用象 CodeWorrior 这样的开发工具进行编码、编译、编辑、链接和调试的过程。

现在你在我们的指导下,自己也可以去做这些工作了。

你可以使用 CodeWarrior 来编写你能够想象得到的任何一种类型的程序。

如果你是一个初学者,你可以选择编写一个应用程序(比如一个可执行程序),比如象微软公司的文本编辑器 WordPad 这样的应用程序。

应用程序可能是最容易编写的程序了,而那些庞大的商业软件,比如象 Adobe Photoshop,Microsoft Word 以及 CodeWarrior 软件都是极其复杂的。

codewarrior的使用

codewarrior的使用

第六章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 协议是多使用的方式。

上述三种是比较常用的几种的方式,如果不确定的时候,可以把三种方式都选上,这样会把连接变得更简单。

CodeWarrior操作步骤

CodeWarrior操作步骤

CodeWarrior操作步骤建立Workspace1.打开CodeWarrior2.在目录下建立Workspace(注意工程不要建在桌面,在此为示范请勿效仿)3.建立新项目4.输入项目名称→Next5.选择您使用的芯片型号→Next6.选择编译器类型7.选择编译语言8.选择是否使用PE工具和视图工具9.代码优化选择10.配置完成,点击Finish工程各项配置1. 时钟配置.用户根据自己需求选择内外时钟及时钟大小2. 功能模块配置。

用户根据自己需求选择功能模块。

eg 。

IO 配置3.4. 各个功能模块配置好后,进行程序编写5. 主函数在ProcessorExperience.c 中6. 事件和中断等处理函数编写在Events 。

c 中Main 函数中的for 或while 循环从此出开始写,不然在更新PE 配置是程序被擦除触摸按键编写1.先将触摸按键库的5个文件添加进工程项目Sources中2.将触摸库添加到工程项目中。

右键点击Properties,进行一下设置。

3.更改触摸库TSI_config。

c文件设置第一步: 根据项目需要增加和减少使用到的TSI 通道.在TSI_config。

c 文件中,TSI_TOUCH _DELTA[MAX_TSI_NUM]数组定义了每个按键出发的阈值,分别对应TSI 物理通道的0-15,当某个按键触摸前后的差值大于该Delta 值时,就会触发对应的通道事件. 如果不需要使用某个通道时,可以直接把对应的Delta 值配置为0,那么在代码中该通道就不会被Initial, calibrate 和scan,如果重新启用,只需Delta 值配置为非0 即可。

第二步:配置按键号与物理通道之间的映射关系。

如下二维数组中, 左侧TSI_x 是实际的TSI 物理通道,右侧KEY_1, 2…N 对应着按键号0~N—1,这个按键号和TSI_main 函数的返回值touched_key 相对应,0xFF 表示未启用。

单元一(3)08C语言运算符使用及Codewarrior调试.

单元一(3)08C语言运算符使用及Codewarrior调试.

单元一(3)08C语言运算符使用及Codewarrior调试一、08C语言运算符介绍C语言的运算符与大多数计算机语言基本相同,分为算术、逻辑、关系和位运算及一些特殊的操作符。

下表列出了C语言的运算符及使用方法举例。

注:增量运算符和减量运算符存在运算和取数先后次序,例如,A++是先取变量A的值再对A加1,而++A是先对变量A加1再取A的值。

二、变量定义1.全局变量和局部变量全局变量为整个程序而定义,在整个程序运行期间,它们占用固定的RAM资源。

在C 语言中,在所有函数外部声明的变量都认为具有全局作用域,这些声明通常置于源文件的顶部。

“全局”实际上仅仅意味着标识符从声明点到文件末尾的范围内是可访问的,当程序包含多个源文件时,则在一个文件中定义的全局变量在其他文件引用时,需要使用extern关键字声明。

在引用文件内部,标识符的作用域是由extern声明的位置确定的。

如果该声明是全局的,那么该标识符对于文件是全局的;如果该声明是放在块内的,则它对于那个块就是局部的。

局部变量为某个函数或子程序而定义,只在函数运行时,从堆栈空间中分配存储空间;函数运行结束,所占用堆栈空间释放。

2.变量修饰符变量定义有三个修饰符值得注意,虽然它们与标准C是相同的,但是在嵌入式C语言中又有不同的含义。

(1)volatile大多数编译器对源程序编译时做优化操作,其中一种优化方法是基于这种假设:除非明确地把某值写到内存,否则内存中的值不会改变。

所以如果源程序中频繁使用某个内存,编译器会把这个内存放到CPU寄存器或高速缓存中,提高代码运行速度。

在嵌入式系统中,这种优化会影响程序的正确执行,典型的情况是:①硬件外设寄存器的值随时都在变化,并且这种变化是不需要在写寄存器程序来改变。

②内存变量在主程序中没有显示改变,但在中断服务程序被改变,如果编译器在主程序中将内存以寄存器来取代,中断服务程序对变量的改变就不能传递到主程序中。

对于这两种情况做变量声明时,需要加前缀volatile,告诉编译器不要对这些变量做优化操作。

使用CodeWarrior4.5建立一个工程-C语言版

使用CodeWarrior4.5建立一个工程-C语言版

使用CodeWarrior4.5建立一个工程C语言版一、打开CodeWarrior IDE二、点击File下来菜单中的New三、在弹出的窗口中选择HC(S)12 New Project Wizard,给自己的工程起名,设置路径,点击确定。

四、点击下一步五、选择你所使用的器件型号(例如我们所用的MC9S12DG128B),点击下一步六、选择编程使用的语言,选择C,点击下一步七、选择No,点击下一步八、选择No,点击下一步九、选择minimal startup code ,点击下一步十、根据自己的需求选择浮点数运算的支持,点击下一步十一、根据自己的需求选择存储模式,点击下一步十二、选择如图方式,点击完成十三、完成后十四、工程中的用到的文件Sources 文件夹下面放的是源文件,main.c为主函数所在文件,若要新建源文件也要放在此文件夹下面;datapage.c文件为数据页面配置文件,一般写程序用不到,与编译有关,不可删除。

Startup Code 文件夹下面的Start12.c文件是开发环境编译时默认的最先执行的一段程序,在Start12.c的最后调用main.c的主函数。

在Start12.c中,创建工程所要注意的是对地址的重分配映射。

Prm文件夹下面的Full_Chip_Simulation_linker.prm文件里面是关于整个工程在编译连接时的一些规则设置,在此文件中,要注意的是Ram和Rom的地址定义和堆栈的大小。

十五、一般情况下Start12.c中的设置在如上方法建立的工程中,Start12.c文件中没有对各存储单元进行地址重分配,造成了地址的重叠,为了解决这个问题,需要在Start12.c中进行一些改动,把各存储单元进行地址重映射,充分利用各存储单元。

具体改动如下:第113行:把#ifdef和#endif开头的两行注释掉,改为:第409行处的改动与113行处一样,注释掉2行,改为:十六、一般情况下Full_Chip_Simulation_linker.prm中的设置在Full_Chip_Simulation_linker.prm中,由于在Start12.c中进行了地址的重映射,所以要改动Ram和Rom的地址定义;另外,如果所要编写的程序需要较大的栈(比如多重的程序调用、中断嵌套),还要改变堆栈的大小。

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

图 1-7
张明峰 2007 年 10 月 于上海
FSL 08 系列单片机开发及 C 语言编程简介
或赋初值、调用 main 函数等。ANSI 标准初始化“ANSI startup code”即完成上 述工作,是项目开发的标准选择;最小初始化“Minimal startup code”除了初 始化堆栈指针外就直接调用 main 函数,代码最少,进入 main 函数最快,但变
系列的有些型号没有被包含在内。由于
HC08 为比较老的产品系列,已经不推
荐在太大。对于新用户来说,请尽量直接安 装 CW6.x 或以后推出的更新版本。
以典型的 9S08 系列为例,当你选择了一个 MCU 型号后,在图 1-4 右侧会显示出
所有针对该型号芯片可用的项目调试场景。其中: “Full Chip Simulator”是芯片全功能模拟仿真,即无需任何目标系统的硬件资
件,可 以是 C,也 可以 是 asm, 或 C++。你可以在此栏下点击鼠标右键 在弹出菜单中选择“Add Files”添加
其他源程序文件; Includes 栏目下包含本项目所有被引
用的头文件。你可以自己编写项目相
关的头文件并添加到本栏目下;
Libs 栏目所包含的是本项目开发用到 的代码库,可以是目标代码型式或 C
张明峰 2007 年 10 月 于上海
FSL 08 系列单片机开发及 C 语言编程简介
(prm 文件)、生成的目标代码在内存中的映射文件(map 文件)。其中 prm 文件最为关键,将在稍后重点专门介绍。
2. CodeWarrior 中项目的基本管理和设定
现在项目已经成功建立,应该可以开始编写自己的代码了。但在写代码之前,先了 解一下 CW 中最基本的项目管理和设定的方法还是很有必要。
量的清零和赋初值必须由用户自己编写代码实现。在这里请大家特别注意,即
最小初始化将不会对全局或静态变量自动清零,这一点在单片机编程中有时非
常重要。在实际产品中当单片机出现异常复位程序重新开始运行时,我们往往
希望原先的控制过程得以延续,因此一些关键变量的内容要在复位后保留而不
能不分青红皂白地一概清零。选择最小初始化代码可以实现这一特殊要求,但 还有更合理更高级的方法,将在后面介绍 prm 文件时详细说明。 编译内存模式选择。“Tiny”模式是指所有程序不超过 64KB,RAM 变量不超 过内存地址最前面的 256 字节(有时也被称作第 0 页);“Small”模式程序空 间一样不超过 64KB,但 RAM 不限于第 0 页,可以覆盖整个 64K 地址空间。如 果你选择的芯片有超过第 0 页空间的 RAM 并想在设计中充分利用,就应该选 择该缺省的“Small”模式。 浮点运算库选择。当你的程序设计决定用浮点运算时就应该选择加入浮点运算 库。浮点运算库有两种:一是标准浮点 float 和双精度浮点 double 都用 32 位精 度表示,换句话说 float 和 double 都看成是 float。这样做的目的是减少代码 量,提高运算速度;另一种是 double 用 64 位精度表示,毋庸置疑其运算精度
FSL 08 系列单片机开发及 C 语言编程简介
1. CodeWarrior 中建立新项目
运行 CodeWarrior(CW)集成开发平 台,如图 1-1 所示在 File 菜单下点击 New,弹出建立新项目的模板对话框, 见图 1-2。
一般的简便做法是在图 1-2 对话框左面 的 选 择 列 表 中 选 择 “ HC(S)08 New Project Wizard”,然后在右面的项目名 “Project Name”输入条中,输入你要 建立的新项目名字,再在“Location” 一栏中用 确定项目存放的文件夹路 经,完成后按“OK”进入下一步。
将增加,但代码量也将增加,运算时间也会更长。用户可以按实际计算需求酌 情选取。如果设计中无需浮点运算,就选择“None”。
全部选择完成并确认后,按“Finish”,
恭喜你:你的项目已经成功建立,可以开
始编写你自己的代码,调试你的目标系统
了。完成后的项目范例如图 1-8,其中: Sources 栏目下包含所有你的原程序文
这是项目建立模板的最后一步。在这一步
你可以决定有关 C/C++的一些编译和代码 生成模式,见图 1-7。 启动代码选择。所有 C 编译器会自动
生成一些启动代码。单片机复位后的
指令运行将首先执行这些启动代码, 然后再进入到你自己的程序模块 main
函数。这些启动代码主要完成堆栈指
针初始化、全局和静态变量自动清零
张明峰 2007 年 10 月 于上海
FSL 08 系列单片机开发及 C 语言编程简介
2. C 编译选项设定(Complier for HC08),对话框内容如图 2-3。在这里你可 以完成针对 C 编译器的所有配置设定。几个选项按纽解释如下:
选择配置编译时产生的各种信息,其中包括普通一般信息 (Information)、告警信息(Warning)、错误信息(Error)和致命信息 (Fatal)。出现一般或告警信息时编译能顺利完成,所以你可以有选择地 将某些你不希望太关注的信息屏蔽掉(Disable);但如果有任何错误或致
快速实现芯片初始化代码的自动生成工 作,而且 PE 还提供了大量的软件库可供 用户开发时嵌入或调用。因为 8 位单片机
结构和功能相对简单,实现的控制项目复
杂度也不是很高,故一般情况下 8 位机开 发我们都不需要 PE 的介入,自己直接编
图 1-6
写程序代码即可。关于 PE 的详细介绍将
耗费大量的文字,这里按下不提。所以在 图 1-6 的对话框中选择“None”,并直接 按“Next”进入下一步。
在的项目文件夹中。如果你准备在新的项 目中修改这些文件,就选择拷贝,以免把
图 1-5
原始的文件改变后而影响先前的一些项 目;“Create main.c/main.asm file”选择是否在本项目中生成全新的 main.c 或 main.asm 文件,一般的项目开发都需要生成新的 main 文件。按用户自己的要求和
源,直接在你的 PC 机上模拟运行单片机的程序,在模拟运行过程中可以观察
调试程序的各项控制和运行流程,分析代码运行的时间,观察各种变量,等 等。CW 提供了功能强大的模拟激励功能,可以在模拟运行时模拟一些外部事
件的输入,配合程序调试; “P&E Multilink/Cyclone Pro”是基于 P&E 公司的硬件调试工具实现实时在线
开发场景,不必太在意在这里的选择。
到此你如果按“Finish”,整个项目建立过程将完成,剩下的一些项目设定将自动 用缺省配置。如果你要自己选择调整,则按“Next”进入下一步,往项目中添加现 成的文件,见图 1-5。
张明峰 2007 年 10 月 于上海
FSL 08 系列单片机开发及 C 语言编程简介
你也可以在图 1-2 对话框左侧列表中选 择“Empty Project”,这样生成的项目 不包含任何文件,你必须在 CodeWarrior 中自己添加所有相关的文 件内容。我想除非有特殊理由,实际项 目开发过程中很少采用这种麻烦的方式 来建立自己的项目。
接下去是选择项目开发所用的编程语 言,见图 1-3。最常用的当然是 C 语言 编程。有时因具体项目要求,除了 C 编 程外还需要编写独立的汇编语言模块, 那 就 再 加选汇 编 工具 ( Assembly) 。 C++编程在免费版和标准版 CW 下都不 支持,只有在专业版下才可以使用。编 程语言选择完毕后按“Next”。
命信息出现,当前源程序的编译将立即终止,你必须按给出的信息提示解
决这些错误,然后才能继续编译。
完成编译过程中代码生成的各类选项设定,所含内容也很多, 最需要关注的是优化栏“Optimization”。你可以按实际需要打开或关闭 某些特定的优化选项,但我们一般通过下面介绍的“Smart Sliders”做综
机的标准调试模式,运用最为广泛; “SofTec HCS08”是另外一家 SofTec 公司提供的硬件调试工具,国内使用较
少; “HCS08 Serial Monitor”是基于芯片串口的监控调试开发模式。由于开发效率
较低,现在几乎无人使用。
注意不同系列,不同型号的芯片,或不同版本的 CW,其所对应或支持的开发场景 可能不同,在图 1-4 的项目建立模板中都可以显现出来。用户点击选择某一项场景 后,该场景将在项目建立完成后作为首选配置。你可以在稍后调试过程中随意切换
合的优化设定。
显示编译器当前设定的各类变量的长度和符号特性(针对字符 和枚举型变量),无特殊原因一般都不用对这些变量长度做任何修改。按 常规,在满足功能要求的前提下,变量长度尽可能短,字符型变量尽量选 择无符号型,以便提高代码编译效率和程序运行速度。
可以非常方便地实现代码优化
时的综合考虑。你可以用上面介绍的 “Option”对话框可以设定特定的优化选 项,但用此“Smart Sliders”对话框则可
如果你以前编写了很多代码文件现在想重 复利用,那么可以通过图 1-5 对话框左面
的文件树选择对应的文件,按中间的
“ Add ” 逐 个 添 加 到 右 侧 的 “ Project Files ” 列 表 中 。 若 加 错 了 就 用 “Remove”把列表中的文件移除。注意 此列表下方的两个选项:“Copy files to project”选择是否将所选的文件拷贝到现
点击当前场景右边的下拉菜单按纽,直接 用鼠标点击选择所需的新场景,如图 21;
图 2-1
该图标完成项目配置选项设定。点击该图标会弹出一个对话框,里面所含的
内容非常繁杂,这里只解释几个日常使用时最常用的选项配置:
图 2-2
图 2-3
1. 最终目标代码类型设定(Target Setting)。在这里你可以选择最终编译连 接生成的代码直接用于单片机程序运行(Link for HC08),或将各个源代 码文件编译连接生成一个库文件(Libmaker for HC08)。这些选择可以通 过图 2-2 所示的下拉菜单选择;
相关文档
最新文档