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.

Concerto code attempting to load to unwritable memory region.

Other Parts Discussed in Thread: CONTROLSUITE

Something has changed about my Concerto project. Code Composer now refuses to load the C28 code. I see no dianostic messages when comnpiling or linking. There is no problem connecting the C28 or connecting or loading the M35 code. The error messages appear when I try to laod the program to hardware. The debug console error messages are:

C28xx_0: GEL Output:
Memory Map Initialization Complete
C28xx_0: GEL Output:
RAM Initialization Complete
C28xx_0: Loader: One or more sections of your program falls into a memory region that is not writable. These regions will not actually be written to the target. Check your linker configuration and/or memory map.
C28xx_0: AutoRun: Target not run as breakpoint could not be set: Unknown error

I got a fresh copy of the .cmd file and modified it to accommodate my code. It gives no errors until I try to load it to hardware. The modifications that I made to the .cmd file are:
(1) Enlarged RAMM0 to 0x600 at the expense of RAMM1 which shrank to 0x1B0, the total of the two remaining unchanged from the controlSUITE copy value of 0x800.  
(2) Put my assembler macro data, GaN_1p0_data, in RAMM1 on page 1 
(3) Enlarged RAML2 by 0x400 to 0x1400 and decreased RAML3 by the same amount to 0x0C00 to accommodate .stack, .econst, and .ebss..

I have spent a day studying the .map file and the 28M35H52C1_RAM_lnk_c28.cmd file.  I can't find the problem. The only diannostic I see doesn't tell me which part of the program sections fall on unwritable memory. Is there some place to look other than the debug console? Can some one suggest what to do?

  • Hi,

    Is it a secure device on which you are facing this issue? Can you check the memory content @ address locations 0x13FFF8 to 0x13FFFE. If all these locations are not 0xFFFF_FFFF then it's a secure device.

    Also before trying to load the program, can you open the memory watch window to check the content @ address ox0 (RAMM0) and see if you can write to this address location.

     

    Regards,

    Vivek Sing

  • The contents of memory locations 13FF8-13FFF are FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF. 

    I am not sure I can answer your other question. CCS does not display the memory contents until I connect target. When I connect the M3 and look at its 0x0 location I see 0x20004900. I cannot change this value manually, and it does not change when I load the M3 code. When I connect the C28 and look at its 0x0, I see 0000 0000, I can change its value manually, and of course I cannot  load its code as described previously.

    But I am confused by your statement that 0x0 corresponds to RAMM0. The .cmd file I retrieved from controlSUITE begins RAMM0 at 0x50.

  •  Ok, that means it's not secure so there should not be any issue.

    I was referring address 0x0 on C28x which you are able to modify. On M3, 0x0 address is for ROM hence you can't modify this.

    What's the exact error you get when you try to load the .out. Please do check for the messages in CCS console window also.

    Regards,

    Vivek Singh

  • The exact message is what I wrote in my first message to this forum. It is IN the console message that I cut and pasted in that message.