电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

嵌入式技术及应用 教学课件 ppt 作者 曹金玲 第三章

10页
  • 卖家[上传人]:E****
  • 文档编号:89495207
  • 上传时间:2019-05-25
  • 文档格式:PPTX
  • 文档大小:61.67KB
  • / 10 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、第3章 利用C语言开发嵌入式系统,本章主要内容,3.1 C语言与汇编语言的比较 3.2应用C语言开发ARM入门,3.1 C语言与汇编语言的比较,ARM处理器支持两种语言进行设计,一种是汇编语言(ARM/Thumb),另一种是高级语言(如C/C+语言)。汇编语言的机器代码生成效率很高,但可读性却不强,复杂的程序很难读懂;而高级语言在大多数情况下其机器代码生成效率较差,但可读性和可移植性却比汇编语言强很多,而且还可以嵌入汇编来解决高效性的代码编写问题。由于本章的重点是C语言开发嵌入式系统,所以本节只就ARM的汇编指令集做一个概括性介绍。,3.1 C语言与汇编语言的比较,利用汇编语言开发ARM系统底层驱动 ARM的汇编指令包括32位的ARM指令集和16位的Thumb指令集。ARM指令集效率高,代码密度低,而Thumb指令集具有更好的代码密度,却保持ARM的大多数性能上的优势,它是ARM指令集的子集(注:代码密度是单位存储空间中包含的指令的个数。举例说明,ARM指令是32位的,而Thumb指令是16位的,如果在1K的存储空间中,可以放32条ARM指令,但是可以放64条Thumb指令,因此存放T

      2、humb指令时,代码密度高)。ARM程序和Thumb程序可相互调用,它们之间的状态切换开销几乎为零。,3.1 C语言与汇编语言的比较,利用C语言开发ARM底层驱动 C语言是目前常用编程语言中结合底层硬件最好的高级语言。C语言应用在嵌入式开发中的特点是代码效率较高而执行效率较低。之所以C语言的执行效率较低时因为用C语言编写的ARM底层驱动在通过软件编译时会生成相应的汇编代码,汇编代码再被编译为机器码由ARM处理器执行。C程序转换为汇编程序这个过程是由编译软件自动完成的,用户无法对其进行干涉,所以一条C程序究竟转换为多少汇编代码在一般情况下是不知道的,所以用户无法根据指令周期对程序运行的精确时间进行估计,分析由汇编语言编写的简单延迟代码和用C语言中for循环编写的简单延迟代码就是很好的例证。 虽然相对于汇编语言,C语言的执行效率较低,但是ARM9处理器的速度非常快(百兆级),S3C2410A的最高速度就可达266MHz。一般非高速应用,这个级别的速度都能满足需要,所以C语言所带来的代码上的开销基本可以忽略不计。如果一定要求对程序的关键地方做时间上的严格控制,可以采取C语言和汇编语言混合编程

      3、的模式处理。关键程序段用汇编语言编写,其他部分还是采用C语言编写,这样一来就可以两全其美了。 采用C语言编写ARM9底层驱动,只需要对ARM9处理器的外设控制器的寄存器进行全面了解就能写出功能完整的驱动程序。有关ARM9处理器的启动程序和操作系统在ARM9处理器上的关于CPU的移植,这两部分代码都用汇编语言编写。一般开发系统出厂时,这两部分代码全部由厂家提供,用户可以直接使用,无需自行编写。,3.1 C语言与汇编语言的比较,C语言与汇编语言比较 1汇编语言的特点 汇编语言直接同底层软件甚至硬件进行交互,其优点是: (1)能够直接访问与硬件相关的存储器或I/O端口; (2)能够不受编译器的限制,对生成的二进制代码进行完全的控制; (3)方便对位的操作; (4)能够对关键代码进行更准确的控制; (5)能够根据特定的应用对代码做最佳的优化,提高运行速度; (6)能够最大限度地发挥硬件的功能。 汇编语言是一种层次非常低的语言,它仅仅高于直接手工编写二进制的机器指令码,所以汇编语言有如下缺点: (1)编写的代码晦涩难懂,不易维护; (2)因为汇编你语言与硬件联系紧密,所以只能针对特定的体系结构和

      4、处理器进行优化; (3)由于其代码效率低,所以开发效率很低。,3.1 C语言与汇编语言的比较,2C语言的特点 C语言的优点是: (1)简洁紧凑、灵活方便。C语言一共只有32个关键字,9种控制语句,程序书写形式自由,区分大小写。把高级语言的基本结构和语句与低级语言的实用性结合起来。 (2)运算符丰富。C语言的运算符包含的范围很广泛,共有34种运算符。C语言把括号、赋值、强制类型转换等都作为运算符处理。从而使C语言的运算类型极其丰富,表达式类型多样化。 (3)数据类型丰富。C语言的数据类型有:整型、实型、字符型、数组类型、指针类型、结构体类型、共用体类型等。能用来实现各种复杂的数据结构的运算。并引入了指针概念,使程序效率更高。 (4)C是结构式语言。C语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。 (5)适用范围大,可移植性好。C语言有一个突出的优点就是适合于多种操作系统,如Linux、UNIX和windows等;也适用于多种机型。 C语言与汇编程序相比,其缺点是语法要求不是很严格,程序设计自由度很大,这样写出的程序容易出现

      5、Bug;另外由于C语言是高级语言,对于硬件程序设计所生成目标代码的效率相对较低,一般比汇编程序生成的目标代码效率低10%20%。C语言和汇编语言混合编程基本上可以解决C语言代码效率较低的问题。,3.2应用C语言开发ARM入门,1 宏定义 对ARM器件的操作实质上就是对其各个功能寄存器的操作。达盛公司的实验平台中对S3C2410A的所有功能寄存器都做了宏定义,这样做是为了简化寄存器的访问操作。文件2410ADDR.H中包含了S3C2410A的所有寄存器定义。 / I/O PORT #define rGPACON (*(volatile unsigned *)0x56000000) /Port A control #define rGPADAT (*(volatile unsigned *)0x56000004) /Port A data #define rGPBCON (*(volatile unsigned *)0x56000010) /Port B control #define rGPBDAT (*(volatile unsigned *)0x56000014) /Port B data #define rGPBUP (*(volatile unsigned *)0x56000018) /Pull-up control B,3.2应用C语言开发ARM入门,2 程序架构 相关头文件包含 定义全局变量 主函数体 相关变量的定义 功能函数调用/注释 ,3.2应用C语言开发ARM入门,3 程序的注释及说明 在开发ARM程序的过程中需要注意一下几点: (1)变量及常量的定义名称要有具体的意义。也就是说变量或常量的定义不要用简单的a、b、c等字母,多用num、count等有实际意义的单词定义变量或常量。 (2)关键的程序行要有注释。注释一方面是给该程序的开发者维护程序使用,另一方面是给其他开发人员使用。 (3)在每个功能函数的开头都要有相关的信息注释。例如: 建议读者采用上述函数注释信息形式,给自己开发的功能函数编写注释。 (4)建议在主函数的开头部分根据程序功能多定义全局变量,这样程序处理数据比较方便。 (5)子函数的名称也必须是有实际意义的单词或拼音,这样便于程序维护和移植。,

      《嵌入式技术及应用 教学课件 ppt 作者 曹金玲 第三章》由会员E****分享,可在线阅读,更多相关《嵌入式技术及应用 教学课件 ppt 作者 曹金玲 第三章》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    信息化课堂中的合作学习结业作业七年级语文 发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2 2022年小学体育教师学期工作总结
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.