预览加载中,请您耐心等待几秒...
1/3
2/3
3/3

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

软件基础汇编语言C语言程序定位软件架构CSL//BSL库BIOSDDK信号处理库算法标准DAIS参考架构ReferenceFramwork软件开发实例SEED-VPM642视频监控软件开发方法组成:由代码和数据组成运行:要运行的程序其代码和数据必须存放在可由CPU寻址的存储空间存放:以代码块和数据块的形式存放代码块和数据块是程序的最小单元一个代码块或数据块在存储空间中连续、顺序存放不同的代码块或数据块,可以存放于不同的存储空间中定位:编译时定位:MCU系统采用编程时由ORG语句确定代码块和数据块的绝对地址编译器以此地址为首地址,连续、顺序地存放该代码块或数据块链接时定位:DSP系统采用编程时由"SECTION"伪指令,以区分不同的代码块或数据块编译器每遇到一个"SECTION"伪指令,从0地址重新开始一个代码块或数据块链接器将同名的"SECTION"合并,并按.cmd文件中的"SECTION"命令进行实际的定位加载时定位:PC机系统采用编程、编译和链接时均未对程序进行绝对定位程序运行前,由操作系统对程序进行重定位,并加载到存储空间中程序是什么程序定位方式的比较编译时定位:ORGxxxx,绝对定位优点:简单、容易上手缺点:程序员必须熟悉硬件资源模块化编程差工程化不支持链接时定位:SECTION,相对定位缺点:灵活、上手较难优点:程序员不必熟悉硬件资源模块化编程强工程化管理支持加载时定位:编译、链接时,相对定位缺点:必须要有操作系??支持优点:模块化编程强工程化管理支持DSP汇编程序基础Section("段")概念:一块连续的储存空间,用于存放代码块或数据块在编程时,"段"没有绝对定位,每个"段"都认为是从0地址开始的一块连续的储存空间,所以软件开发人员只需要将不同代码块和数据块放到不同的"段"中,而无需关心这些"段"究竟定位于系统何处优点:便于程序的模块化编程;便于工程化管理:可将软件开发人员和硬件开发人员基本上分离开重定位:由于所有的"段"都是从0地址开始,所以程序编译完成后无法直接运行的,要让程序正确运行,必须对"段"进行重新定位,这个工作由链接器完成.cmd文件:MEMORY命令描述系统硬件资源,SECTIONS命令描述软件人员程序中用到的"段"如何定位到恰当的硬件资源上DSP汇编语言:SECTION伪指令5个SECTION伪指令.bsssymbol,sizeinword.text.data.sect"sectionname"symbol.usect"sectionname",sizeinword其中symbol相当于变量名,sizeinword保留的存储单元长度(以字为单位)初试化段和未初始化段.bss和.usect为未初始化段,用于为变量、堆栈等保留一块存储空间.text、.data和.sect为初试化段,用于存放代码块或有初值的数据块系统定义的段和用户定义的段.text、.data和.bss为系统已定义好的段名用户根据需要用.sect和.usect伪指令来定义段名,创建相应的"段"汇编程序中,程序员用"段"伪指令来组织程序的代码和数据DSP汇编语言:汇编器对"段"的处理汇编器第一次遇到新"段"时,将该"段"的段程序计数器(SPC)置为0,并将随后的程序代码或???据顺序编译进该"段"中汇编器遇到同名"段"时,将它们合并,然后将随后的程序代码或数据顺序编译进该"段"中当汇编器遇到.text、.data和.sect伪指令时,汇编器停止将随后的程序代码或数据顺序编译进当前"段"中,而是顺序编译进遇到的"段"中当汇编器遇到.bss和.usect伪指令时,汇编器并不结束当前"段",而只是简单地暂时脱离当前"段",随后的程序代码或数据仍将顺序编译进当前"段"中。.bss和.usect伪指令,可以出现在.text、.data或.sect"段"中的任何位置,它们不会影响这些"段"的内容DSP汇编语言:链接器对"段"的处理链接器对"段"的处理有2个方面:将输入"段"组合产生输出"段"将多个.obj文件中的同名"段"合并一个输出"段"也可将不同名的"段"合并产生一个输出"段"将输出"???"定位到实际的存储空间中MEMORY命令:用于描述系统实际的硬件资源SECTIONS命令:用于描述程序中定义了哪些"段",这些"段"是否需要合并如何合并合并产生的输出"段"定位到实际硬件资源的何处链接器通过.cmd文件来获得上述这些信息链接器还将检查各输出"段"是否重叠、是否超界,避免了人工检查边界带来的隐患.cmd文件由3部分组成:输入//输出定义:这一部分,可通过CCS的"BuildOptions..."