版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、TM2015年年6月月单片机与嵌入式系统实践单片机与嵌入式系统实践第三章第三章 单片机与嵌入式系统开发单片机与嵌入式系统开发工具工具TMSlide 1目录目录3.1 Codewarrior3.1 Codewarrior集成开发环境集成开发环境 3.1.1 Codewarrior 3.1.1 Codewarrior简介简介 3.1.2 Codewarrior 3.1.2 Codewarrior的安装的安装 3.1.3 Codewarrior 3.1.3 Codewarrior的使用的使用 3.1.4 3.1.4 项目管理和设定项目管理和设定 3.1.5 3.1.5 程序下载与程序下载与BDMBD
2、M调试调试3.2 3.2 嵌入式嵌入式C C语言编程语言编程 3.2.1 3.2.1 嵌入式嵌入式C C语言简介语言简介 3.2.2 3.2.2 嵌入式变量的使用嵌入式变量的使用 3.2.3 3.2.3 嵌入式嵌入式C C语法扩充语法扩充3.3 3.3 项目实践项目实践 Codewarrior Codewarrior基本操作基本操作TMSlide 23.1 Codewarrior3.1 Codewarrior集成开发环境集成开发环境3.1.1 Codewarrior简介 CodeWarrior系列集成开发环境(IDE)是Metrowerks公司为飞思卡尔嵌入式微处理器设计的软件开发工具。该开发
3、工具是商用嵌入式软件开发工具中使用较为广泛的软件之一。 CodeWarrior集成开发环境包括构建平台和应用所必需的所有主要工具:编辑器、编译器、调试器、链接器、汇编程序和IDE界面等。CodeWarrior将调试技术与开发环境结合在一起,将C/C+源级别调试和嵌入式应用开发整合于一体,为开发工作提供高度可视且自动化的框架,可以加快复杂应用的开发。TMSlide 33.1 Codewarrior3.1 Codewarrior集成开发环境集成开发环境3.1.2 Codewarrior的安装 飞思卡尔公司针对不同的MCU,为用户提供了不同的Codewarriror软件版本。对于HCS08/RS08
4、系列MCU,飞思卡尔公司提供给用户的是CodeWarrior for Microcontrollers,安装文件读者可直接从飞思卡尔的官方网站http:/ /software_tools/中免费下载,下载版本有评估版(evaluation edition)和特别版(Special Edition)具体安装步骤详见教材TMSlide 43.1 Codewarrior3.1 Codewarrior集成开发环境集成开发环境3.1.3 Codewarrior的使用(1)在CodeWarrior中启动新项目建立(2)进入工程新建向导,按照芯片种类和型号选择对应的选项,同时选择仿真运行模式。(3)项目开发
5、语言设置(4)项目文件添加(5)处理器专家选项(6)嵌入式编程语言设置(7)连接设置(8)进入工程开发界面TMSlide 53.1 Codewarrior3.1 Codewarrior集成开发环境集成开发环境l 3.1.4 项目管理和设定(1)选择芯片的调试场景(2)改变目标单片机型号和开发调试场景(3)项目配置选项设定: 最终目标代码类型设定 C编译选项设定(Complier for HC08) 连接器选项设定(Linker forHC08) (4)代码生成(make)(5)打开并进入代码调试窗口 TMSlide 63.1 Codewarrior3.1 Codewarrior集成开发环境集成
6、开发环境3.1.5 程序下载与BDM调试 为了在不同的计算机平台之间传输程序代码和数据,飞思卡尔公司将程序和数据文件以一种可打印的格式(ASCII格式)编码成S文件。用CodeWarrior编译会自动生成*.abs.s19文件,用户使用时都是将该S文件烧录到芯片中即可。 在使用S文件和背景调试工具将程序下载到芯片中并调试时,常需要软件和硬件两个方面的条件。在硬件连接方面,用户可以在PC端使用USB接口与BDM调试写入器连接,BDM调试器的另一端通过6-PIN的接口与嵌入式系统的核心板(S08最小系统)连接。在软件方面,使用CodeWarrior下载,并在线运行调试界面即可开始运行调试 TMSl
7、ide 73.2 嵌入式嵌入式C语言编程语言编程3.2.1 嵌入式C语言简介 C 语言最初是为UNIX 操作系统的开发与应用而开发设计的,目前已经成为一种非常流行的编程语言。在嵌入式系统中用C 语言更容易写出一个集效率、可读性和可移植性于一体的好代码。 在使用嵌入式C语言编程时一点要注意与硬件资源的结合,考虑资源的合理利用,做到能简就简,不随意浪费,以提高代码效率。TMSlide 83.2 嵌入式嵌入式C语言编程语言编程 3.2.2 嵌入式变量的使用(1 1)变量的大小)变量的大小 不同架构的不同架构的MCU 中数据类型的长度是不同的中数据类型的长度是不同的,这对于代码效率有很大的这对于代码效
8、率有很大的影响。在影响。在8位机中位机中,例如例如HCS08系列单片机中系列单片机中8位形式数据的执行效率是最高位形式数据的执行效率是最高的的. .所以,要得到高效的所以,要得到高效的C C 语言程序,我们应该使用类型定义语言程序,我们应该使用类型定义(typedef)(typedef)的方的方式规定各种数据类型的长度,尽可能的采用式规定各种数据类型的长度,尽可能的采用8 8位数据长度。位数据长度。TMSlide 93.2 嵌入式嵌入式C语言编程语言编程 3.2.2 嵌入式变量的使用(2 2)有符号数和无符号数的选择)有符号数和无符号数的选择 除了数据长度,数据是否是有符号数也会影响嵌入式代码
9、的效率。一般来除了数据长度,数据是否是有符号数也会影响嵌入式代码的效率。一般来说,无符号数的执行效率要比有符号数高很多。比如两个说,无符号数的执行效率要比有符号数高很多。比如两个8 8位长度的有符号数位长度的有符号数相加,得到一个相加,得到一个1616位长度的有符号数,这需要位长度的有符号数,这需要3131个字节的代码,而若改成两个字节的代码,而若改成两个无符号数运算则代码字节可减少一半以上。同样,有符号数与无符号数进个无符号数运算则代码字节可减少一半以上。同样,有符号数与无符号数进行比较运算所需的代码也比两个都是无符号数运算所需的代码要多。行比较运算所需的代码也比两个都是无符号数运算所需的代
10、码要多。TMSlide 103.2 嵌入式嵌入式C语言编程语言编程 3.2.2 嵌入式变量的使用(3 3)定点数和浮点数运算)定点数和浮点数运算 对于运算复杂、精度要求较高的场合,我们常常需要用到浮点运算,而对于运算复杂、精度要求较高的场合,我们常常需要用到浮点运算,而目前大多数目前大多数8 8位位MCU MCU 只支持整数运算,对于浮点运算,既要得到精确的计算结只支持整数运算,对于浮点运算,既要得到精确的计算结果又不降低代码效率的话,我们可以采用先把数据按比例放大,运算结束后果又不降低代码效率的话,我们可以采用先把数据按比例放大,运算结束后再按相同比例缩小的方法进行。再按相同比例缩小的方法进
11、行。 此外,还可以用移位的方法来替代乘除运算。此外,还可以用移位的方法来替代乘除运算。TMSlide 113.2 嵌入式嵌入式C语言编程语言编程 3.2.2 嵌入式变量的使用(4)全局变量、局部变量和静态变量 在嵌入式系统中,全局变量的使用可以有效地提高代码效率,全局变量一般会有一个固定的存储位置,如果把它放在零页地址中,代码效率将大大提高。同时在全局资源有限的情况下,使用局部变量有时反而代码效率更高。 在编程时使用静态变量也是提高效率的一种非常有用的方法,这样可以在把变量存储在全局地址范围的同时保持代码的可移植性和再使用性,但是需要注意的是用来存放静态变量的RAM 空间不能释放出来给其他子程
12、序使用。TMSlide 123.2 嵌入式嵌入式C语言编程语言编程3.2.3 嵌入式C语法扩充(1)变量类型和定义 Codewarrior 中S08系列单片机C 编译器支持的基本变量类型及其缺省的长度位数由下表所示。当然,在使用时有些变量的长度可以按实际项目需要而改变,具体设置见下图,该此对话框可由Type Size配置按纽打开。TMSlide 133.2 嵌入式嵌入式C语言编程语言编程3.2.3 嵌入式C语法扩充(1)变量类型和定义 Codewarrior 中S08系列单片机C 编译器支持的基本变量类型及其缺省的长度位数由下表所示。当然,在使用时有些变量的长度可以按实际项目需要而改变。 在嵌
13、入式程序设计中对于变量类型的选择有两条最基本的原则须遵循:第一是能用短的变量类型就不用长的;第二是能用无符号数就不用有符号数。TMSlide 143.2 嵌入式嵌入式C语言编程语言编程3.2.3 嵌入式C语法扩充(2)变量的特殊修饰 变量绝对定位:在定义时用“”给出其绝对地址 变量volatile声明:volatile型变量顾名思义就是这些变量是易变的 const :用以声明变量为永不变化的常数。TMSlide 153.2 嵌入式嵌入式C语言编程语言编程3.2.3 嵌入式C语法扩充(3)#pragma声明 是基于单片机开发的特点而对标准C语法的一个扩充。它对充分利用单片机内各类有限的资源起到不
14、可或缺的关键作用。 #pragma DATA_SEG #pragma CONST_SEG #pragma INTO_ROM #pragma CODE_SEG #pragma TRAP_PROCTMSlide 163.2 嵌入式嵌入式C语言编程语言编程3.2.3 嵌入式C语法扩充(4)中断服务函数编写用关键词interrupt和中断矢量编号定义中断函数用关键词interrupt定义中断函数,中断矢量入口由prm文件指定用#pragma TRAP_PROC定义中断函数TMSlide 173.3 项目实践项目实践 Codewarrior基本操作要求: 使用Codewarrior新建一个工程,并在该工
15、程编写程序实现在PTE口输出数据0 xAA,完成程序调试与下载,并通过调试窗口查看调试数据。方案设计: 新建一个空白的项目工程,在工程的main()函数中编写代码,设置端口数据方向和数据内容,即PTEDD=0 xFF、PTED=0 xAA,调试并选择Open Source DBM下载至开发板,或选择Full Chip Simulation进行软件仿真,打开Ture-Time Simulator&Real-Time debugger调试界面进行数据查验。具体内容详见教材TM人有了知识,就会具备各种分析能力,人有了知识,就会具备各种分析能力,明辨是非的能力。明辨是非的能力。所以我们要勤恳读书,广泛阅读,所以我们要勤恳读书,广泛阅读,古人说古人说“书中自有黄金
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年电信行业安全管理员面试题集
- 2026年互联网企业系统分析师面试题解析
- 2026年税务专员岗位面试题库及答案详解
- 2026年技术问题解决流程及案例分析集
- 2026年教师招聘面试题库及教学能力评估
- 2026年金融投资公司客户经理助理面试题
- 2026年航空业面试流程及常见问题解析
- 2026年高校招生办主任面试问题集
- 2026年给水调度员供水调度模拟试题含答案
- (2025版)神经纤维瘤病诊疗指南课件
- 4第四章 入侵检测流程
- 钯金的选矿工艺
- 家庭系统疗法
- 四川省遂宁市2024届高三上学期零诊考试高三生物答案
- 桥梁施工技术培训课件
- 南部山区仲宫街道乡村建设规划一张表
- 锅炉焊接工艺规程
- 中学生地理奥林匹克竞赛(高中组)试题
- GB/T 4291-2017冰晶石
- GB/T 4249-2018产品几何技术规范(GPS)基础概念、原则和规则
- GB/T 2652-1989焊缝及熔敷金属拉伸试验方法
评论
0/150
提交评论