- 1、本文档共72页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
嵌入式语言开发培训一
Inspur group 嵌入式C语言开发-培训(一) 嵌入式C语言修炼之道 Agenda 前言 嵌入式开发环境介绍 C语言在嵌入式应用特点 嵌入式C语言修炼之道 前言 本培训针对于具有C语言和数据结构基础,在嵌入式开发领域中的研发人员,对C语言和数据结构并不做详细的讲述;以开发中经常出现的问题为重点,力图通过程序事例讲述编程中易犯的错误陷阱,避免以后的开发中出现类似问题;并结合嵌入式开发环境下,如何开发高效、稳定、健壮的程序,如何调试程序也做概括性介绍。 嵌入式开发环境介绍 以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。 嵌入式系统的一个特点在于其开发的特殊性与困难性。 开发机器!= 执行机器 开发环境!= 执行环境 嵌入式系统具有的产品特征 面向用户、面向产品、面向应用计算机系统 软硬件紧密结合,软件直接访问硬件进行控制 软件要求固化存储 软件代码高质量、高可靠性 系统软件(OS)的高实时性是基本要求 多任务操作系统、应用软件集成、硬件平台共同集成 常见的操作系统有vxworks、uclinux、montavista linux、Windows CE、 uC/OS 几种常见的嵌入式系统开发调试平台 目标板上统通常没有操作系统或是有一个精简的操作系统,开发过程首先在宿主机上软件仿真或是经过仿真器硬件仿真,然后经过目标主机的编译器编译,生成 *.hex或是.bin文件,通过写片机烧写到目标板的ROM、EPROM或是FLASH中。 目标板上通常有一个比较完备的操作系统做支持,通常在宿主机上软件仿真,交叉编译后生成*.hex或是COFF格式,下载到目标系统,通过TCP/IP网络,用打印文本日志方式,实现跟踪调试程序。 在linux下实现调试技术有 NFS(网络文件系统 )、通过tail –f 观察文本输出、ftp、telnet、minicom,gdb。 仿真器和模拟器的运用 模拟器: 模拟器是一个基于主机或是桌面的软件的应用程序,用于评估嵌入式目标机器而设计的程序。模拟器重建目标机器的运行条件并解释执行。 模拟器不是基于硬件的,对于与硬件通信不能仿真正确性,只能保证验证软件逻辑的正确性。 仿真器: 仿真器是一个硬件设备,它接收开发宿主机的指令,并使其在目标板上运行的装置。 可以实现下载目标程序到目标板上执行,通过与仿真器配套的集成开发编译环境(IDE),在开发主机上可以断点跟踪、改变寄存器和内存单元、分析CPU内部寄存器的值、调试中断服务程序。 几种常用的调试方法 指令集模拟器(模拟器) 一种利用PC机端的仿真开发软件模拟调试的方法。 驻留监控软件 驻留监控程序运行在目标板上,PC机端调试软件可通过并口、串口、网口与之交互,以完成程序执行、存储器及寄存器读写、断点设置等任务,如gdb。 JTAG仿真器 通过ARM芯片的JTAG边界扫描口与ARM核进行通信,不占用目标板的资源,是目前使用最广泛的调试手段。 在线仿真器 使用仿真头代替目标板上的CPU,可以完全仿真ARM芯片的行为。但结构较复杂,价格昂贵,通常用于ARM硬件开发中。 输出日志跟踪程序运行 通常需要操作系统的支持,如linux,通过telnet,登录到目标主机用“tail –f logname.log ” 跟踪日志输出,很多linux驱动就是用这种方法写的。 两种计算机体系结构---冯.诺依曼结构 程序指令存储和数据存储合并在一起的存储器结构。 以复杂指令集(CISC)为代表。 命令字长短不一,流水线容易出现阻塞停滞。 程序指令和数据的宽度相同 (机器字长)。 通常采用小端字节序(little endian )即低位放在低地址。 如:英特尔的x86系列、MIPS公司的MIPS处理器。 两种计算机体系结构---哈佛结构 程序存储与数据存储有单独的存储器。 精简指令集(RISC)为代表。 通常有大量内部存储设备,避免存储恢复操作。 采用大端字节序(big endian )即低位放在高位地址。 采用其他RISC技术。 函数调用时采用滑动窗口,无需压栈出栈。 采用短指令机构,通畅的流水线。 采用硬解码(复杂指令集通常采用以可编程的控制存储器为核心控制逻辑部件)速度更快。 如:单片机(51、Microchip 的PIC)、ARM7、ARM9、ARM10、ARM11、摩托罗拉 的MC68 、Zilog的Z8处理器。 端模式介绍: 端模式(Endian)的这个词出自Jonathan Swift书写的《格列佛游记
文档评论(0)