This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
Hi everyone,
I get this fail and after building on F28035, like below, could anyone give me some suggestions?
Thanks.
placement fails for object "Cla1Prog", size 0x2da (page 0). Available
ranges: RAML0L1 size: 0xc00 unused: 0x2d2 max hole: 0x2d2
warning: entry-point symbol other than "_c_int00" specified: "code_start"
error: errors encountered during linking; "Example_2803xClaAdcFir.out" not built
Hi Daniel,
your object Cla1Prog is too large to be placed into RAML0L1 (size is 0x2da, available space in RAML0L1 is 0x2d2). Change your linker command file - either make the RAM Section larger, or split your Cla1Prog into multiple Sections and map them into different RAM Sections.
Best regards
Andreas
Daniel,
Note that you can only run code on the CLA from L3 RAM. You will need to copy this code over to L3 and then configure L3 to be a CLA RAM to run it.
Regards,
Dave Foley
Hi Andreas, hi David,
thanks for the fast response.
I have no idea how to that. I tyed to somethink like this:
MEMORY
{
PAGE 0 :
/* BEGIN is used for the "boot to SARAM" bootloader mode */
BEGIN : origin = 0x000000, length = 0x000002
RAMM0 : origin = 0x000050, length = 0x0003B0
/* RAML0L1 : origin = 0x008000, length = 0x000C00*/
RAML0L1 : origin = 0x008000, length = 0x001000
RESET : origin = 0x3FFFC0, length = 0x000002
IQTABLES : origin = 0x3FE000, length = 0x000B50 /* IQ Math Tables in Boot ROM */
IQTABLES2 : origin = 0x3FEB50, length = 0x00008C /* IQ Math Tables in Boot ROM */
IQTABLES3 : origin = 0x3FEBDC, length = 0x0000AA /* IQ Math Tables in Boot ROM */
BOOTROM : origin = 0x3FF27C, length = 0x000D44
PAGE 1 :
BOOT_RSVD : origin = 0x000002, length = 0x00004E /* Part of M0, BOOT rom will use this for stack */
RAMM1 : origin = 0x000480, length = 0x000380 /* on-chip RAM block M1 */
RAML2 : origin = 0x009000, length = 0x000C00
/* RAML2 : origin = 0x008C00, length = 0x000400*/
/* RAML3 : origin = 0x009000, length = 0x001000*/
}
SECTIONS
{
/* Setup for "boot to SARAM" mode:
The codestart section (found in DSP28_CodeStartBranch.asm)
re-directs execution to the start of user code. */
codestart : > BEGIN, PAGE = 0
ramfuncs : > RAMM0 PAGE = 0
; .text : > RAML0L1, PAGE = 0
.text : > RAML3, PAGE = 1
.cinit : > RAMM0, PAGE = 0
.pinit : > RAMM0, PAGE = 0
.switch : > RAMM0, PAGE = 0
.reset : > RESET, PAGE = 0, TYPE = DSECT /* not used, */
; .stack : > RAMM1, PAGE = 1
.stack : > RAMML0L1, PAGE = 0
.ebss : > RAML2, PAGE = 1
.econst : > RAML2, PAGE = 1
.esysmem : > RAML2, PAGE = 1
IQmath : > RAML0L1, PAGE = 0
IQmathTables : > IQTABLES, PAGE = 0, TYPE = NOLOAD
But I always got new error messages:
warning: creating output section "Cla1Prog" without a SECTIONS specification
library "libc.a"
warning: creating output section "Cla1ToCpuMsgRAM" without a SECTIONS
specification
warning: creating output section "CpuToCla1MsgRAM" without a SECTIONS
specification
"../28035_RAM_lnk.cmd", line 120: warning: memory range not found: RAMML0L1 on
page 0
"../28035_RAM_lnk.cmd", line 120: error: no valid memory range(NULL) available
for placement of ".stack"
"../28035_RAM_lnk.cmd", line 120: error: run placement fails for object
".stack", size 0x300 (page 0)
error: unresolved symbols remain
if I do it in normal configuration (change the uncomment code) the I'll get these error messages:
arning: creating output section "Cla1Prog" without a SECTIONS specification
warning: creating output section "Cla1ToCpuMsgRAM" without a SECTIONS
specification
warning: creating output section "CpuToCla1MsgRAM" without a SECTIONS
specification
undefined first referenced
symbol in file
--------- ----------------
_Cla1funcsLoadEnd ./Example_2803xClaAdcFir.obj
_Cla1funcsLoadStart ./Example_2803xClaAdcFir.obj
_Cla1funcsRunStart ./Example_2803xClaAdcFir.obj
error: unresolved symbols remain
warning: entry-point symbol other than "_c_int00" specified: "code_start"
error: errors encountered during linking; "Example_2803xClaAdcFir.out" not
built
library "libc.a"
>> Compilation failure
gmake: *** [Example_2803xClaAdcFir.out] Error 1
gmake: Target `all' not remade because of errors.
Can someone help me again?
Tank you
I got the fail.
But now there's a problem I can't understand.
I'm using the body of the "cla_adc_fir" example. Just the main, shared and cla sections will be changed by myself. If I'll run my programm, everytime I'll jump into the "DSP2803x_DefaultIsr.c" into the Illegal operation TRAP (interrupt void ILLEGAL_ISR(void) ).
Can someone tell me what why the program could be jump into this interrupt (just in general)
Thank you
Greets
Daniel,
The ILLEGAL_ISR is executed if an instruction fetch retreives a value from memory that does not correspond to a proper opcode. It is likely you are making a call to a RAM location that has not been initialized. I think if you return from the ISR it should bring you back to the offending address. Or, it might be stored in the RPC register, I can't remember.
Regards,
Dave Foley
hi David
when I run code on the CLA from L3 RAM,but I only use 2K,can I use the other 2k for CUP?if you can ,how to do that?
Can you help me ?
Thank you