主题中讨论的其他器件:C2000WARE
CCS 生成可执行文件、检查映射文件不会显示问题、函数已正确放置、但出现警告:
警告#10247-D:正在创建不带 SECTIONS 规范的输出段".TI.ramfuncs"
此处是"2837x_RAM_lnk_cpu1.cmd"文件:
内存
{
第0页: /*程序存储器*/
/* begin 用于"boot to SARAM"引导加载程序模式*/
begin :origin = 0x000000、length = 0x000002
RAMM0 :origin = 0x000122、length = 0x0002DE //.cinit .pinit .switch
// RAMM1 :origin = 0x000400,length = 0x000400 //.stack
// RAMLS0 :origin = 0x008000,length = 0x000800
// RAMLS1 :origin = 0x008800,length = 0x000800
// RAMLS2 :origin = 0x009000,length = 0x000800
// RAMLS3 :origin = 0x009800,length = 0x000800
// RAMLS4 :origin = 0x00A000,length = 0x000800
// RAMLS5 :origin = 0x00A800,length = 0x000800
RAMLS012345 :origin = 0x008000、length = 0x003000 //.text
复位 :origin = 0x3FFFC0、length = 0x000002
第1页: /*数据存储器*/
BOOT_RSVD :origin = 0x000002、length = 0x000120
RAMM1 :origin = 0x000400、length = 0x000400 //.stack
RAMD0 :origin = 0x00B000、length = 0x000800 //.const
RAMD1 :origin = 0x00B800、length = 0x000800 //.ebss .esysmem
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
CPU2TOCPU1RAM :origin = 0x03F800、length = 0x000400
CPU1TOCPU2RAM :origin = 0x03FC00、length = 0x000400
}
部分
{
codestart :> begin, page = 0
#ifdef __TI_Compiler_version__
#if __TI_Compiler_version__>= 15009000
.TI.ramfunc:{}> RAMLS012345、 page = 0
#else
ramfuncs :> RAMLS012345、 page = 0
#endif
#endif
.text :> RAMLS012345、page = 0 /*可执行代码和常量*/
.cinit :> RAMD0、 page = 1 /*初始化的全局和静态变量*/
.pinit :> RAMM0 , page = 0 /*构造函数表,仅 C++,否则为空*/
.switch :> RAMM0、 page = 0 /* switch 语句的表*/
.reset :>RESET、 PAGE = 0、TYPE = DSECT /*未使用、*/
.stack :> RAMM1、 page = 1 /*对象堆栈空间、在项目 C2000Linker->基本选项中设置的大小*/
.stack :> RAMD0、 page = 1 /*对象堆栈空间、在项目 C2000Linker->基本选项中设置的大小*/
.ebss :> RAMD1、 page = 1 /*未初始化全局和静态变量、警告:未初始化为零*/
.esysmem :> RAMD1、 page = 1 /*堆空间、malloc 类型函数的存储器*/
econst :> RAMD0、 page = 1 /*常量变量*/
// Filter_Regs :45>> RAMGS0, 页面= 1
// ramgs0 :> RAMGS0, page = 1
// ramgs1 :> RAMGS1, page = 1
ramgs15 :> RAMGS15, 页面= 1
/*使用 IPC API 驱动程序时需要以下部分的定义*/
组:> CPU1TOCPU2RAM , page = 1
{
PUTBUFFER
PUTWRITEIDX
GET READIDX
}
组:> CPU2TOCPU1RAM , page = 1
{
GETBUFFER : 类型= DSECT
GETWRITEIDX : 类型= DSECT
PUTREADIDX : 类型= DSECT
}
}
//========================================
//文件结尾。
//========================================
下面是来自控制台的消息:
构建目标:"Wolfspeed_cpu1.out"
调用:C2000链接器
"c:/TI/ccs1250/ccs/tools/compiler/ti-cgt-c2000_22.6.1.LTS/bin/cl2000 -v28 -ml -mt -cla_support=cla1 - float_support=fpu32 --tmu_support=tmu0 --vcu_support=vcu2 -O2 /TI/ccs1250/ccs/tools/compiler/ti-cgt-c2000_22.6.1.LTS/lib --opt_for_speed=5 --fp_mode=relaxed /TI/ccs1250/ccs/tools/compiler/ti-cgt-c2000_22.6.1.LTS/include --advice:performance=all diag_wow=off --display_error_number --xml_link_info="Wolfspeed_cpu1_linkInfo.xml"--rom_model -o "Globalspeed_cpu1.out"./F2837xD/F2837xD_Adc.obj"/Source/C1_Can.obj ../F2837xD_/TI/c2000/C2000Ware_4_01_00_00/driverlib/f2837xd/driverlib/ccs/Debug/driverlib.lib "/"/Source/C1_Control.obj /Source/C1_Drivers.obj /Source/C1_Main.obj /Source/Func.obj。
警告#10247-D:正在创建不带 SECTIONS 规范的输出段".TI.ramfuncs"
完成目标构建:"Wolfspeed_cpu1.out"
请参阅上面的两行、以红色粗体突出显示。
我不知道如何删除该警告。 以下源代码请求将函数放置在".TI.ramfunc"段中:
#pragma code_section (ADC_A1_Interrupt、".TI.ramfunc");
中断失效 ADC_A1_Interrupt (void)
{
//函数正文如下所示
}
我使用 CCS 12.5.0
谢谢你。