编辑: ACcyL | 2015-08-25 |
5 外设头文件(请见参考 [25-32])包含以下名称的命令文件 DSP281x_Headers_nonBIOS.cmd F2802x_Headers_nonBIOS.cmd DSP280x_Headers_nonBIOS.cmd DSP2803x_Headers_nonBIOS.cmd DSP2804x_Headers_nonBIOS.cmd F2805x_Headers_nonBIOS.cmd DSP2833x_Headers_nonBIOS.cmd F2806x_Headers_nonBIOS.cmd 这些文件包含连接外设寄存器结构所需的连接程序内存和程序段声明. 由于 CCS 在一个项目中 支持多于一个的连接程序命令文件,所以除了您的用户连接程序命令文件外,用户需要做的是其 中一个适当的连接程序命令文件添加到您的用户代码项目中. 总的来说,连接器命令文件的顺序无关紧要,这是因为在项目构建期间,CCS 在评估任一连接器 命令文件的程序段部分前,评估每个连接程序命令文件的内存段部分. 这样确保了所有内存在 将任一程序段连接至内存前被定义. 然而,高级用户也许需要在某些不常出现的情况下手工控 制连接器命令文件的顺序. 这可以在 Project→Properties(项目属性)菜单上的 CCS v5 内, 选择 CCS Build category(构建目录)的Link Order 连接顺序标签页内指定. 2.2 DSP/BIOS 项目 DSP/BIOS 配置工具生成一个连接器命令文件,此文件规定如何连接所有 DSP/BIOS 生成的程序段, 并且在缺省情况下,连接至所有 C 语言编译程序生成的程序段. 当从 RAM 运行您的应用时, 这个连接器命令文件也许是唯一一个在用文件. 然而,当从闪存存储器中执行时,很有可能需 要生成且连接一个或多个用户定义的程序段. 特别是,任何配置片载闪存控制寄存器(例如, 闪存等待状态)的代码不能从闪存执行. 此外,用户也许需要从 RAM(而非闪存)中运行特定 时间关键函数来大幅提升性能. 必须创建一个用户连接器命令文件来处理这些用户定义的程序 段. 除了用户和 DSP/BIOS 生成的连接器命令文件,外设头文件(请见参考 [25 - 32])包含以下名 称的连接器命令文件 DSP281x_Headers_BIOS.cmd F2802x_Headers_BIOS.cmd DSP280x_Headers_BIOS.cmd DSP2803x_Headers_BIOS.cmd DSP2804x_Headers_BIOS.cmd F2805x_Headers_BIOS.cmd DSP2833x_Headers_BIOS.cmd F2806x_Headers_BIOS.cmd 这些部分包含用于连接外设寄存器结构的连接器内存和数据段声明. 由于 CCS 支持一个项目中 有多于一个连接器命令文件,所以用户需要做的是将全部三个连接器命令文件添加到它们的项目 中. 总的来说,连接程序命令文件的顺序无关紧要,这是因为在项目构建期间,CCS 在评估任一连接 器命令文件的数据段部分前,评估每个连接器命令文件的内存段部分. 这样确保了所有内存在 将任一数据段连接至内存前被定义. 然而,高级用户也许需要在某些不常出现的情况下(例如, 优先占用和使 一个数据段的 DSP/BIOS 连接无效)手工控制连接器命令文件评估的顺序. 这可 以在 Project →Properties(项目属性)菜单上的 CCS v5 内,选择 CCS Build category (构建目录)的Link Order 连接顺序标签页内指定. ZHCA550L
6 从TMS320F28xxx 数字信号处理器 (DSP) 上的内部闪存存储器上运行一个应用
3 在何处连接段 存在有两个基本的段类型:已初始化和未初始化. 已初始化段必须在器件加电时包含有效数据. 例如,可在已初始化段中发现代码和常量. 当设计一个具有 F28xxx DSP(例如,没有在用的仿 真器或调试程序,没有执行引导加载的主机处理器)的独立嵌入式系统时,所有已初始化段必须 被连接至非易失性内存(例如,片载闪存). 一个未经初始化的段在器件加点时不包含有效值. 例如,在未经初始化的段中会发现变量. 代码执行时,代码将把值写入到变量位置. 因此, 未经初始化的段必须被连接至易失性内存(例如,RAM). 建议调用 Cw 连接器选项(对于所有新建的 CCS 项目,此选项为缺省选中). -w 选项将在连 接器发现您项目中的任一段还没有针对连接一个连接器命令文件而被明确指定时产生一个警告. 当连接器遇到未指定的段时,它使用一个缺省的分配算法来将段连接至内存(它将把段连接至具 有走狗可用空闲空间的第一个被定义的内存). 这几乎始终存在风险,并且会导致不可靠且无 法预计的代码运行. -w 选项将识别任一未指定的段(例如,那些被用户偶尔忘记的段),这样, 用户可以在需要时添加合适的连接器命令文件. 在CCS v5 中,-w 选项复选框可在 Project → Properties 菜单,然后选择 Build →C2000 Linker →Diagnostic Category (构建 C2000 连接器诊断目录)找到. 注意: C 语言编译程序使用较大内存模型十分重要(相对于较小内存模型). 小型内存模型 要求特定的已初始化段被连接至下层 64Kw 可寻址空间内的非易失性内存. 然而,任何F28xxx 器件上的这个区域内没有闪存存储器,并且未来的 F28xxx 器件也可能是这 样. 因此,应该使用较大内存模型. 对于 CCS v5 项目来说,较大内存模型复选框 可在Project→ Properties 菜单,然后选择Build→ C2000 Compiler →Basic Options(构建 C2000 编译程序基本选项)目录中找到. 对于所有新创建的 CCS 项目,它被缺省选中. 对于非 DSP/BIOS 项目,用户应该将较大内存模型 C 语言编译程序运行支持库包含在 他们的代码项目中. 对于定点器件,为库 rts2800_ml.lib(相对于用于较小内存模型 的rts2800.lib).. 对于浮点器件,用于标准 C 语言代码的为 rts2800_fpu32.lib, 或者用于 C++ 代码的 rts2800_fpu32_eh.lib(没有针对浮点器件的较小内存模型库). 在CCS v5 中,有一个针对库的 自动 设置,此设置可在根据您的项目设置(例如, 浮点支持和内存模型选择),让CCS 为您选择正确的库时使用. 对于 DSP/BIOS 项目,DSP/BIOS 将负责将所需的库包括在内. 用户不应在一个 DSP/........