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

SYS/BIOS工程中使用CLA问题

请教各位专家:

使用CCS的SYS/BIOS建立使用CLA 的工程,使用芯片F28377D。请问如何处理CLA的存储器段.SECTION 问题。如数据段Cla1ToCpuMsgRAM,CpuToCla1MsgRAM,Cla1funcsRunStart,Cla1funcsLoadStart等,这些在文件“F2837xD_Headers_BIOS_cpu1.cmd”,及编译出的文件“*.map”中均没有找到。

在非SYS/BIOS工程中有设置数据段:

#ifdef __cplusplus
#pragma DATA_SECTION("Cla1ToCpuMsgRAM")

CLA存储器配置初始化函数:

void CLA_configClaMemory(void)
{
extern uint32_t Cla1funcsRunStart, Cla1funcsLoadStart, Cla1funcsLoadSize;

EALLOW;

#ifdef _FLASH
// Copy over code from FLASH to RAM
memcpy((uint32_t *)&Cla1funcsRunStart, (uint32_t *)&Cla1funcsLoadStart,
(uint32_t)&Cla1funcsLoadSize);
#endif //_FLASH

这些内容在SYS/BIOS工程中如何配置?

Susan Yang:

请您参考类似下面的cmd。

/** Copyright (c) 2015-2017, Texas Instruments Incorporated* All rights reserved.** Redistribution and use in source and binary forms, with or without* modification, are permitted provided that the following conditions* are met:** *Redistributions of source code must retain the above copyright*notice, this list of conditions and the following disclaimer.** *Redistributions in binary form must reproduce the above copyright*notice, this list of conditions and the following disclaimer in the*documentation and/or other materials provided with the distribution.** *Neither the name of Texas Instruments Incorporated nor the names of*its contributors may be used to endorse or promote products derived*from this software without specific prior written permission.** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;* OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.*/
/**======== TMS320F28379D.cmd ========*Define the memory block start/length for the F28379D*/// Define a size for the CLA scratchpad area that will be used
// by the CLA compiler for local symbols and temps
// Also force references to the special symbols that mark the
// scratchpad are.
CLA_SCRATCHPAD_SIZE = 0x100;
--undef_sym=__cla_scratchpad_end
--undef_sym=__cla_scratchpad_startMEMORY
{/* BEGIN is used for the "boot to FLASH" bootloader mode*/BEGIN: origin = 0x080000, length = 0x000002BOOT_RSVD : origin = 0x000002, length = 0x000120 /* Part of M0, BOOT rom will use this for stack *//* Flash sectors */FLASHA: origin = 0x080002, length = 0x001FFE/* on-chip Flash */FLASHB: origin = 0x082000, length = 0x002000/* on-chip Flash */FLASHC: origin = 0x084000, length = 0x002000/* on-chip Flash */FLASHD: origin = 0x086000, length = 0x002000/* on-chip Flash */FLASHE: origin = 0x088000, length = 0x008000/* on-chip Flash */FLASHF: origin = 0x090000, length = 0x008000/* on-chip Flash */FLASHG: origin = 0x098000, length = 0x008000/* on-chip Flash */FLASHH: origin = 0x0A0000, length = 0x008000/* on-chip Flash */FLASHI: origin = 0x0A8000, length = 0x008000/* on-chip Flash */FLASHJ: origin = 0x0B0000, length = 0x008000/* on-chip Flash */FLASHK: origin = 0x0B8000, length = 0x002000/* on-chip Flash */FLASHL: origin = 0x0BA000, length = 0x002000/* on-chip Flash */FLASHM: origin = 0x0BC000, length = 0x002000/* on-chip Flash */FLASHN: origin = 0x0BE000, length = 0x002000/* on-chip Flash */RESET: origin = 0x3FFFC0, length = 0x000002M01SARAM : origin = 0x000122, length = 0x0006DE/* on-chip RAM */D01SARAM : origin = 0x00B000, length = 0x001000/* Local Shared RAM (between CPU and CLA) sections*/
//LS02SARAM : origin = 0x008000, length = 0x001800 /* on-chip RAM */
//LS35SARAM : origin = 0x009800, length = 0x001800 /* on-chip RAM */RAMLS0: origin = 0x008000,length = 0x000800RAMLS1: origin = 0x008800,length = 0x000800RAMLS2: origin = 0x009000,length = 0x000800RAMLS3: origin = 0x009800,length = 0x000800RAMLS4_5: origin = 0x00A000,length = 0x001000/* on-chip Global shared RAMs */RAMGS07: origin = 0x00C000, length = 0x008000RAMGS815 : origin = 0x014000, length = 0x008000
//RAMGS0: origin = 0x00C000, length = 0x001000
//RAMGS1: origin = 0x00D000, length = 0x001000
//RAMGS2: origin = 0x00E000, length = 0x001000
//RAMGS3: origin = 0x00F000, length = 0x001000
//RAMGS4: origin = 0x010000, length = 0x001000
//RAMGS5: origin = 0x011000, length = 0x001000
//RAMGS6: origin = 0x012000, length = 0x001000
//RAMGS7: origin = 0x013000, length = 0x001000
//RAMGS8: origin = 0x014000, length = 0x001000
//RAMGS9: origin = 0x015000, length = 0x001000
//RAMGS10 : origin = 0x016000, length = 0x001000
//RAMGS11 : origin = 0x017000, length = 0x001000
//RAMGS12 : origin = 0x018000, length = 0x001000
//RAMGS13 : origin = 0x019000, length = 0x001000
//RAMGS14 : origin = 0x01A000, length = 0x001000
//RAMGS15 : origin = 0x01B000, length = 0x001000/* Shared MessageRam *//* CPU1 and CPU2 */CPU2TOCPU1RAM: origin = 0x03F800, length = 0x000400CPU1TOCPU2RAM: origin = 0x03FC00, length = 0x000400/* CPU and CLA */CLA1_MSGRAMLOW: origin = 0x001480,length = 0x000080CLA1_MSGRAMHIGH: origin = 0x001500,length = 0x000080
}SECTIONS
{/* Allocate program areas: */.cinit: > FLASHA | FLASHB | FLASHC | FLASHD | FLASHE |FLASHF | FLASHG | FLASHH | FLASHI | FLASHJ |FLASHK | FLASHL | FLASHM | FLASHN.binit: > FLASHA | FLASHB | FLASHC | FLASHD | FLASHE |FLASHF | FLASHG | FLASHH | FLASHI | FLASHJ |FLASHK | FLASHL | FLASHM | FLASHN
#ifdef __TI_EABI__.init_array: > FLASHA | FLASHB | FLASHC | FLASHD | FLASHE |FLASHF | FLASHG | FLASHH | FLASHI | FLASHJ |FLASHK | FLASHL | FLASHM | FLASHN
#else.pinit: > FLASHA | FLASHB | FLASHC | FLASHD | FLASHE |FLASHF | FLASHG | FLASHH | FLASHI | FLASHJ |FLASHK | FLASHL | FLASHM | FLASHN
#endif.text: > FLASHA | FLASHB | FLASHC | FLASHD | FLASHE |FLASHF | FLASHG | FLASHH | FLASHI | FLASHJ |FLASHK | FLASHL | FLASHM | FLASHNcodestart: > BEGINramfuncs: LOAD = FLASHA | FLASHB | FLASHC | FLASHD | FLASHE |FLASHF | FLASHG | FLASHH | FLASHI | FLASHJ |FLASHK | FLASHL | FLASHM | FLASHNRUN= RAMGS07LOAD_START(RamfuncsLoadStart),LOAD_SIZE(RamfuncsLoadSize),LOAD_END(RamfuncsLoadEnd),RUN_START(RamfuncsRunStart),RUN_SIZE(RamfuncsRunSize),RUN_END(RamfuncsRunEnd)#ifdef __TI_COMPILER_VERSION__
#if __TI_COMPILER_VERSION__ >= 15009000.TI.ramfunc : {} LOAD = FLASHA | FLASHB | FLASHC | FLASHD | FLASHE |FLASHF | FLASHG | FLASHH | FLASHI | FLASHJ |FLASHK | FLASHL | FLASHM | FLASHN,RUN= RAMGS07,table(BINIT)
#endif
#endif/* Allocate uninitalized data sections: */.stack: > M01SARAM | RAMGS07
#ifdef __TI_EABI__.bss: > M01SARAM | RAMGS07.sysmem: > RAMGS07 | M01SARAM.data: > M01SARAM | RAMGS07
#else.ebss: > M01SARAM | RAMGS07.esysmem: > RAMGS07 | M01SARAM
#endif.cio: > RAMGS07 | M01SARAM/* Initalized sections go in Flash */
#ifdef __TI_EABI__.const: > FLASHA | FLASHB | FLASHC | FLASHD | FLASHE |FLASHF | FLASHG | FLASHH | FLASHI | FLASHJ |FLASHK | FLASHL | FLASHM | FLASHN
#else.econst: > FLASHA | FLASHB | FLASHC | FLASHD | FLASHE |FLASHF | FLASHG | FLASHH | FLASHI | FLASHJ |FLASHK | FLASHL | FLASHM | FLASHN
#endif.switch: > FLASHA | FLASHB | FLASHC | FLASHD | FLASHE |FLASHF | FLASHG | FLASHH | FLASHI | FLASHJ |FLASHK | FLASHL | FLASHM | FLASHN.args: > FLASHA | FLASHB | FLASHC | FLASHD | FLASHE |FLASHF | FLASHG | FLASHH | FLASHI | FLASHJ |FLASHK | FLASHL | FLASHM | FLASHNFilter_RegsFile: > RAMGS07/* CLA specific sections */Cla1Prog: LOAD = FLASHD,RUN = RAMLS4_5,LOAD_START(Cla1funcsLoadStart),LOAD_END(Cla1funcsLoadEnd),RUN_START(Cla1funcsRunStart),LOAD_SIZE(Cla1funcsLoadSize),ALIGN(8)CLADataLS: > RAMLS0 | RAMLS1Cla1ToCpuMsgRAM: > CLA1_MSGRAMLOWCpuToCla1MsgRAM: > CLA1_MSGRAMHIGH/* CLA C compiler sections *///// Must be allocated to memory the CLA has write access to//CLAscratch:{ *.obj(CLAscratch). += CLA_SCRATCHPAD_SIZE;*.obj(CLAscratch_end) } >RAMLS1.scratchpad: > RAMLS1.bss_cla: > RAMLS1.const_cla:LOAD = FLASHB,RUN = RAMLS1,RUN_START(Cla1ConstRunStart),LOAD_START(Cla1ConstLoadStart),LOAD_SIZE(Cla1ConstLoadSize)/* The following section definitions are required when using the IPC API Drivers */GROUP : > CPU1TOCPU2RAM{PUTBUFFERPUTWRITEIDXGETREADIDX}GROUP : > CPU2TOCPU1RAM{GETBUFFER :TYPE = DSECTGETWRITEIDX :TYPE = DSECTPUTREADIDX :TYPE = DSECT}
}

,

jiujun sun:

谢谢你的指导!请问TI官方是否有F28377D适合CLA和SYS/BIOS在同一个工程的.CMD文件。如果没有,是否需在现有的CMD文件上手动更改?

,

Susan Yang:

“请问TI官方是否有F28377D适合CLA和SYS/BIOS在同一个工程的.CMD文件。”

据我所知是没有的,您需要自己来进行修改

赞(0)
未经允许不得转载:TI中文支持网 » SYS/BIOS工程中使用CLA问题
分享到: 更多 (0)