- 1、本文档共41页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第3讲设计方法分析
核心算法处理能力要求 Compute=9216000×(1pixel计算) 总的IO性能要求 1个像素3次取,3次存 IO= 9216000×(1pixel存取) 两种方案对数据处理单元的性能要求 如果采用ARM处理器实现,则处理器的性能需求最少满足上述要求: 9216000*(9+6+3+3) =193,536,000 9216000*(9+6+30+30)=691,200,000 * 两种架构的对比 Pixel方案: 数据流程简单 缺点是:这种IO接口形式,对前后级造成很大压力。对于ARM系统来说,处理器的效率较低。处理器访问外存的性能较差。 Frame方案 数据流程中加入缓存,尽管增加了实现的复杂性,但有利于保证数据的连续性 可利用DMA功能进行IO传输,从而提高处理器的利用率 两种架构的最大区别在于对IO接口的性能要求上, Pixel方案对接口的性能要求高很多! 经过不同架构的比较,最终确定系统的设计方案 Pixel方案:适合FPGA实现 Frame方案:适合处理器来实现 读数据 数据处理 写像素 Buf Buf Buf 处理器的性能计算 接口性能要求 接口性能要求 嵌入式系统设计工具 明确了系统的体系架构和开发流程以后,接下来就要进行开发、调试与测试,包括选择适当的开发环境和开发工具,例如编译器、链接器、定位器,或者直接使用集成开发环境(IDE),随后将编译好的程序转为映像(Image),下载到目标平台上,与开发平台连接后进行调试和测试。 编译器 编译器(Compiler)是将一种语言翻译成另一种语言的计算机程序。它将源程序作为输入,产生目标语言。通常,源程序采用高级语言编写,如C/C++,或者是汇编语言。而目标语言则是目标机器的目标代码(Object Code),有时也称为机器代码(Machine Code)。使用编译器可以使我们不必直接编写麻烦的机器代码,而直接使用便于理解的高级语言或插入了助记符的汇编语言,提高了编程的效率。常见的编译器有Visual C++、Borland C++以及Linux下的GCC等。 链接器 编译完程序后会产生目标代码,但要执行程序还需要对目标代码进行链接,这就要用到链接器。链接器将所有的目标代码文件?.o或者?.obj以及lib中的数据段区,包括text、data、bss区段的数据进行合并,并且将尚未决定的函数和变量调用对应起来。在嵌入式系统中,要链接出一个可以放到ROM中执行的程序,开发人员还必须对启动代码进行链接,并且制定链接关系地址。 集成开发环境 集成开发环境(Intergrated Development Enviroment,IDE)是用于程序开发的应用程序,一般包括代码编辑器、编译器、调试器和图形用户界面工具。该程序可以独立运行,也可以和其他程序并用。最典型的例子就是Visual C++,许多的开发环境都将其作为模板,并得到了广泛的应用。集成开发环境的好处就是可以方便地管理各种工程项目和函数库,特别是当整个系统越来越大的时候,可以省去很多管理和设置上的麻烦,减轻了开发人员的负担。实际上,软件开发环境正是朝着IDE的方向发展。 交叉开发环境 嵌入式系统通常是一个资源受限的系统,直接在嵌入式系统的目标硬件平台上编写软件是很困难甚至是不可能的,因此,在嵌入式系统的开发中往往用到一个交叉开发环境(Cross Development Environment)。所谓交叉开发,就是在通用计算机(比如PC)上编辑、编译程序,生成可以在目标平台上运行的二进制代码指令,然后再下载到目标平台上进行调试的开发方式。通用计算机一般称为宿主机,目标平台称为目标机。交叉开发环境一般由运行于宿主机上的交叉开发软件和系统仿真器组成。交叉开发软件一般为一个集成开发环境。 在线仿真器 在线仿真器(In-Circuit Emulator,ICE)是一种模拟CPU的设备,能执行CPU的全部动作。采用该方式调试时,利用仿真头代替目标板上的CPU,可以完全仿真CPU的行为,并且提供了丰富的调试功能,但缺点是结构复杂、价格昂贵,通常用于硬件开发中。 在线调试器 在线调试器(In-Circuit Debug,ICD)是将CPU的除错(调试)功能的引脚引出来,让外部的硬件直接连接到这些引脚上去监控整个CPU的动作,这样开发人员就可以很容易地利用比较便宜的除错(调试)工具和CPU的除错(调试)模块进行沟通,一般这些CPU上的除错模块都提供读出写入内存、读出写入CPU寄存器、单步执行、中断以及触发等功能设置。目前,比较流行的是ARM公司开发板上使用的JTAG(Joint Test Action Group)调试端口。 ICD调试方式比ICE便宜得多,因此现在越来越多的开发人员开始采用这种方式。 传统的嵌入式系统设计过程
文档评论(0)