TI中文支持网
TI专业的中文技术问题搜集分享网站

关于CCS中加载的两个CMD文件的功能的问题

如题:  现在项目倒是很稳定,但是我想深入的了解和应用DSP ,型号是2808,在工程中加载了两个CMD文件,到现在位置还不明白是什么功能,意思是什么?而且里面的内容也不一样,为什么?

   DSP280x_Headers_nonBIOS.cmd  和 F2808_nonBIOS_flash. cmd  

  谢谢。

lei zhai:

回复 Eric Ma:

非常感谢 Eric 的解答,对于CMD文件,我还想再请教您其他问题:

  DSP280x_Headers_nonBIOS.cmd

MEMORY{ PAGE 0: /* Program Memory */

PAGE 1: /* Data Memory */

DEV_EMU :         origin = 0x000880, length = 0x000180 /* device emulation registers */ FLASH_REGS : origin = 0x000A80, length = 0x000060 /* FLASH registers */ CSM :                   origin = 0x000AE0, length = 0x000010 /* code security module registers */ ADC_MIRROR : origin = 0x000B00, length = 0x000010 /* ADC Results register mirror */ CPU_TIMER0 : origin = 0x000C00, length = 0x000008 /* CPU Timer0 registers */ CPU_TIMER1 : origin = 0x000C08, length = 0x000008 /* CPU Timer0 registers (CPU Timer1 & Timer2 reserved TI use)*/ CPU_TIMER2 : origin = 0x000C10, length = 0x000008

。。。。。

}

SECTIONS{

。。。。。。

}

在这个文件中映射的硬件寄存器地址全部在page1 中,也就是说全部在数据存储器中。那为什么在F2808_nonBIOS_flash. cmd 文件中,却又对PAGE0和PAGE1做分配?还有在程序中我看到TI的文档也提到过,如果使用少些FLASH的话,需要将flash中的内容复制到ram中才能执行(不知道我是否理解的正确),这我实在不理解为什么要复制flash中的内容到ram ? 还有DSP280x_Headers_nonBIOS.cmd,硬件寄存器映射的地址为什么在PAGE1中? 总体来说,我感觉我现在都不知道DSP内部的程序是如何开始启动,如何工作?对外设寄存器的操作是在那里执行?   问题有点乱,还望您见谅,因为之前使用时都是在例程上修改,现在想深入的了解才有了这么多问题。再次谢谢您。。

memcpy( &secureRamFuncs_runstart,&secureRamFuncs_loadstart,&secureRamFuncs_loadend – &secureRamFuncs_loadstart);

MEMORY{PAGE 0: /* Program Memory */ BEGIN_M0 : origin = 0x000000, length = 0x000002 /* Part of M0SARAM. Used for "Boot to M0" bootloader mode. */ L0SARAM : origin = 0x008000, length = 0x001000 /* 4Kw L0 SARAM */ H0SARAM : origin = 0x00A002, length = 0x002000 /* 8Kw H0 SARAM */ OTP : origin = 0x3D7800, length = 0x000400 /* 1Kw OTP */ FLASH_ABCD : origin = 0x3E8000, length = 0x00FF80 /* 64kW FLASH, Sectors A, B, C, and D combined */ CSM_RSVD : origin = 0x3F7F80, length = 0x000076 /* Part of FLASH Sector A. Reserved when CSM is in use. */ BEGIN_FLASH : origin = 0x3F7FF6, length = 0x000002 /* Part of FLASH Sector A. Used for "boot to flash" bootloader mode. */ PASSWORDS : origin = 0x3F7FF8, length = 0x000008 /* Part of FLASH Sector A. CSM password locations. */ IQTABLES : origin = 0x3FF000, length = 0x000B50 /* Part of Boot ROM */ BOOTROM : origin = 0x3FFB50, length = 0x000470 /* 4Kw Boot ROM */ RESET : origin = 0x3FFFC0, length = 0x000002 /* part of Boot ROM */

PAGE 1 : /* Data Memory */ M0SARAM : origin = 0x000002, length = 0x0003FE /* 1Kw M0 SARAM */ M1SARAM : origin = 0x000400, length = 0x000400 /* 1Kw M1 SARAM */ L1SARAM : origin = 0x009000, length = 0x001000 /* 4Kw L1 SARAM */}

SECTIONS{/*** Compiler Required Sections ***/ /* Program memory (PAGE 0) sections */ .text : > FLASH_ABCD, PAGE = 0 .cinit : > FLASH_ABCD, PAGE = 0 .const : > FLASH_ABCD, PAGE = 0 .econst : > FLASH_ABCD, PAGE = 0 .pinit : > FLASH_ABCD, PAGE = 0 .reset : > RESET, PAGE = 0, TYPE = DSECT /* We are not using the .reset section */ .switch : > FLASH_ABCD, PAGE = 0

/* Data Memory (PAGE 1) sections */ .bss : > L1SARAM, PAGE = 1 .ebss : > L1SARAM, PAGE = 1 .cio : > L1SARAM, PAGE = 1 .stack : > M1SARAM, PAGE = 1 .sysmem : > L1SARAM, PAGE = 1 .esysmem : > L1SARAM, PAGE = 1

/*** User Defined Sections ***/ codestart : > BEGIN_FLASH, PAGE = 0 /* Used by file CodeStartBranch.asm */ csm_rsvd : > CSM_RSVD, PAGE = 0 /* Used by file passwords.asm */ passwords : > PASSWORDS, PAGE = 0 /* Used by file passwords.asm */ secureRamFuncs : LOAD = FLASH_ABCD, PAGE = 0 /* Used by InitFlash() in SysCtrl.c */ RUN = L0SARAM, PAGE = 0 LOAD_START(_secureRamFuncs_loadstart), LOAD_END(_secureRamFuncs_loadend), RUN_START(_secureRamFuncs_runstart)}

如题:  现在项目倒是很稳定,但是我想深入的了解和应用DSP ,型号是2808,在工程中加载了两个CMD文件,到现在位置还不明白是什么功能,意思是什么?而且里面的内容也不一样,为什么?

   DSP280x_Headers_nonBIOS.cmd  和 F2808_nonBIOS_flash. cmd  

  谢谢。

Bruce:

回复 Eric Ma:

飘过,学习了

如题:  现在项目倒是很稳定,但是我想深入的了解和应用DSP ,型号是2808,在工程中加载了两个CMD文件,到现在位置还不明白是什么功能,意思是什么?而且里面的内容也不一样,为什么?

   DSP280x_Headers_nonBIOS.cmd  和 F2808_nonBIOS_flash. cmd  

  谢谢。

3802326:

回复 Eric Ma:

Eric 您好,

       看到此贴,有个问题请教您,在CCS中,配置选项里边,有一个Linker comand file ,这个选项,只能指定一个链接文件,即cmd文件,请问如果工程中有两个cmd文件,是如何在工程中进行指定呢?

赞(0)
未经允许不得转载:TI中文支持网 » 关于CCS中加载的两个CMD文件的功能的问题
分享到: 更多 (0)