您好!
我正在配置 CLA。 在本例中、我 创建了如下链接器命令文件。 连接调试器时、程序工作正常。 但它不是从闪存引导。 如果有人能帮助我解决这个问题、我将不胜感激。
_Cla1Prog_Start =_Cla1funcsRunStart;
_cla_ScratchPad_size = 0x100;
堆0x400
-stack 0x400
//为将要使用的 CLA 暂存区定义大小
//由 CLA 编译器生成局部符号和 temps
//还强制引用标记的特殊符号
//暂存区是。
//CLA_ScratchPad_size = 0x100;
--undef_sym=__cla_scratchpad_end
--undef_sym=__cla_scratchpad_start
存储器
{
第0页:
/* begin 用于"引导至 SARAM"引导加载程序模式*/
/*begin:origin = 0x000000,length = 0x000002*/
RAMM0:origin = 0x000050、length = 0x0003B0
RAML5L8:origin = 0x00C000、length = 0x008000
/* RAML0_L2:origin = 0x008000、length = 0x001000 */
RAML3:origin = 0x009000,length = 0x001000
/*RESET:origin = 0x3FFFC0,length = 0x000002*/
/*FPUTABLES:origin = 0x3FD590,length = 0x0006A0*/* Boot ROM 中的 FPU 表*/
/*IQTABLES:origin = 0x3FDF00,length = 0x000B50*/*引导 ROM 中的 IQMath 表*/
/*IQTABLES2:origin = 0x3FEA50,length = 0x00008C *///引导 ROM 中的 IQMath 表*/
/*IQTABLES3:origin = 0x3FEADC,length = 0x0000AA */* Boot ROM 中的 IQMath 表*/
OTP:origin = 0x3D7800,length = 0x000400 //片上 OTP */
FLASHH:origin = 0x3D8000,length = 0x004000 //片上闪存*/
FLASHG:origin = 0x3DC000、length = 0x004000 //片上闪存*/
FLASHF:origin = 0x3E0000,length = 0x004000 //片上闪存*/
FLASHE:origin = 0x3E4000、length = 0x004000 //片上闪存*/
FLASHD:origin = 0x3E8000、length = 0x004000 //片上闪存*/
FLASHC:origin = 0x3EC000,length = 0x004000 //片上闪存*/
FLASHA:origin = 0x3F4000,length = 0x003F80 //片上闪存*/
csm_RSVD:origin = 0x3F7F80,length = 0x000076 // FLASHA 的一部分。 当 CSM 正在使用时、使用所有0x0000进行编程。 *
begin:origin = 0x3F7FF6,length = 0x000002/* FLASHA 的一部分。 用于"引导至闪存"引导加载程序模式。 *
CSM_PWL_P0:origin = 0x3F7FF8,length = 0x000008 // FLASHA 的一部分。 FLASHA 中的 CSM 密码位置*/
/*BootROM:origin = 0x3FF3B0,length = 0x000C10*/
ROM:origin = 0x3FF3B0,length = 0x000C10 //引导 ROM */
复位:origin = 0x3FFFC0,length = 0x000002 //引导 ROM 的部分*/
向量:origin = 0x3FFFC2,length = 0x00003E
第1页:
BOOT_RSVD:origin = 0x000002,length = 0x00004E // M0的一部分,引导 ROM 将使用此栈*/
RAMM1:origin = 0x000400、length = 0x000400 //片上 RAM 块 M1 *
CLARAM0:origin = 0x008800,length = 0x000400
CLARAM1:origin = 0x008C00,length = 0x000400
CLARAM2:origin = 0x008000、length = 0x000800
RAML4:origin = 0x00A000、length = 0x002000 //片上 RAM 块 L4 */
/* RAML5:origin = 0x00C000、length = 0x002000 */*片上 RAM 块 L5 */
/* RAML6:origin = 0x00E000、length = 0x002000 */*片上 RAM 块 L6 */
/* RAML7:origin = 0x010000,length = 0x002000 */*片上 RAM 块 L7 */
/* RAML8:origin = 0x012000,length = 0x002000 */*片上 RAM 块 L8 */
USB_RAM:origin = 0x040000、length = 0x000800 // USB RAM *
CLA1_MSGRAMLOW:origin = 0x001480,length = 0x000080
CLA1_MSGRAMHIGH:origin = 0x001500,length = 0x000080
}
部分
{
/*"引导至 SARAM"模式的设置:
codestart 段(可在 DSP28_CodeStartBranch.asm 中找到)
将执行重定向到用户代码的开始。 *
/*codestart:> Begin,page = 0
ramfuncs:>RAMM0,page = 0
.text:> RAML5L8,page = 0
.cinit:> RAMM0,page = 0
.pinit:> RAMM0,page = 0
switch:>RAMM0,page = 0
.reset:> reset,page = 0,type = DSECT*/
/*分配计划领域:*/
.cinit:> FLASHA,page = 0
.pinit:> FLASHA,page = 0
.text:> FLASHA,page = 0
codestart:> begin,page = 0
ramfuncs:load = FLASHD,
运行= RAML5L8、
load_start (_RamfuncsLoadStart)、
load_end (_RamfuncsLoadEnd)、
run_start (_RamfuncsRunStart)、
load_size (_RamfuncsLoadSize)、
PAGE = 0
csmpasswds:>csm_PWL_P0,page = 0
csm_rsvd:>csm_RSVD,page = 0
.stack:>RAML4,page = 1.
.ebss:> RAML4,PAGE = 1
/*.econst:>RAML4,page = 1*/
.esysmem:>RAML4,page = 1.
.sysmem:>RAML4,page = 1.
.cio:>RAML4,page = 1.
econst:> FLASHA,PAGE = 0
.switch:> FLASHA,PAGE = 0
/*分配 IQ 数学区域:*/
IQMath:> FLASHA,page = 0 /*数学代码*/
/*IQmathTables:>IQTABLES,page = 0,type = NoLoad*/
暂存区:> CLARAM0,PAGE = 1
.bss_cla:> CLARAM0,PAGE = 1
.CONST_CLA:> CLARAM0、PAGE = 1
IQMath :>RAML4,page = 1.
/* IQmathTables:>IQTABLES,page = 0,type = NoLoad*/
/*分配 FPU 数学区域:*/
/*FPUmathTables:> FPUTABLES,page = 0,type = NoLoad*/
Cla1Prog:> RAML3,
load_start (_Cla1funcsLoadStart)、
load_end (_Cla1funcsLoadEnd)、
load_size (_Cla1funcsLoadSize)、
run_start (_Cla1funcsRunStart)、
PAGE = 0
Cla1ToCpuMsgRAM:> CLA1_MSGRAMLOW,page = 1.
CpuToCla1MsgRAM:>CLA1_MSGRAMHIGH,PAGE = 1.
Cla1DataRam0:> CLARAM0,PAGE = 1
Cla1DataRam1:> CLARAM1,PAGE = 1
Cla1DataRam2:> CLARAM2,PAGE = 1.
CLA1mathTables:> CLARAM1,
Load_start (_Cla1mathTablesLoadStart)、
Load_End (_Cla1mathTablesLoadEnd)、
load_size (_Cla1mathTablesLoadSize)、
run_start (_Cla1mathTablesRunStart)、
PAGE = 1.
CLAscratch:
{*。obj (CLAscratch)
。 +=_cla_ScratchPad_size;
*。obj (CLAscratch_end)}> CLARAM0、
PAGE = 1.
.reset:> reset,page = 0,type = DSECT
VECTORS:> VECTORS,PAGE = 0,TYPE = DSECT
}
我使用 的是 CCS 版本:10.1.1和编译器版本20.12.0。 如果有人能帮助我解决这个问题、我将不胜感激。
谢谢你
此致、
Eranda