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.

CCS/TMS320C5535: CSL SysCtrl.c Causes Verification Failure?

Part Number: TMS320C5535


Tool/software: Code Composer Studio

I recently obtained an EZDSP5535 to use for a project. I am currently working with the CSL to get familiar with the functionality of this board and I am running into an interesting problem.

Whenever I add csl_sysctrl.c to my project, I am no longer able to debug. When I build, I run into no issues, but when I go to debug, I get the following error message:

"C55xx: File Loader: Verification failed: Values at address 0x00000@DATA do not match Please verify target memory and memory map."

I have tried to check that I was not doing anything incorrect with the linker file, but I can't seem to see anything out of place. The problem is solved when I exclude this c file from the build, but I need this file to use the EZDSP's BSL.

I am running CCS7 on Windows 10

Any advice?

  • Hi,

    You need to double-check your linker command file. The address 0x0 corresponds to the MMRs and therefore you can't load data there (check section 6.2.2 of the device's datasheet).

    To help you with that, I suggest taking a look at the file c5535.cmd provided with ccsv7 and installed under ccsv7/ccs_base/c5500/include

    Also, the reference below contains some advice about linker command files. 

    http://processors.wiki.ti.com/index.php/Linker_Command_File_Primer 

    Hope this helps,

    Rafael

  • I am currently using a slightly modified version of the c5535 cmd file which indeed has a location for MMRs. However, pointing me to the linker did help me find the problem.

    SysCtrl.c uses switch statements and needs a .switch Section in the linker. The C5535 linker does not have a .switch section, making the linker place the switch statement tables at address 0.

    Adding a .switch section to the linker was the solution to the problem.

    Another Linker/CSL problem I ran into is that although the Linker and Datasheet both support the claim that the vectors section should be of size 0x100. The vectors.asm file that defines the Vector table takes up exactly 0x200 words. I simply modified the linker to allow the larger size. Is this the correct approach?

  • Hi,

    Thanks for reporting back your findings.

    >>The vectors.asm file that defines the Vector table takes up exactly 0x200 words. I simply modified the linker to allow the larger size. Is this the correct approach?
    The linker is a slave of the linker command file, therefore you can set the size of your sections any size you want. However, the main question is: do you actually have physical memory on the device to back up the increase in size? If so, then there is no problem at all.

    As to the reason why the vectors are taking twice the space as expected, I can't quite explain. Perhaps the documentation mistakenly refers to the size in 16-bit words instead of 8-bit bytes? I am not sure, but perhaps the experts in the C5500 device forum would know better.

    Hope this helps,
    Rafael