Part Number: TMS320F28377S
Other Parts Discussed in Thread: C2000WARE, CCSTUDIO
I am working on proof of function of the CLA on a TMS320F28377S. Well am certain it works, but demonstrating it works in our code base is the question.
I am using the mathworks example c28377Sblink_cla, that generates CLA code as prototype. I modified the mathworks example to be even simpler.
In the end I have a .cla and .c files from the code generator. using the mathworks linker control file, I added the code and modified an existing linker control file.
In Flash:
Cla1funcsLoadStart
75D0 8100 74C0 00F4 7AC0 810C 7590 003C 7BC0 003D 7BC0 003C 7B40 003D 7B80 003C 7BC0 003C 7B80
0004 7F20 0000 7FA0 0000 7FA0 0000 7FA0 0024 7981 0000 7FA0 0000 7FA0 0000 7FA0 8106 7580 0000
7841 003C 7BC0 003C 7B80 0004 7F20 0000 7FA0 0000 7FA0 0000 7FA0 0008 7981 0000 7FA0 0000 7FA0
0000 7FA0 8106 7580 810C 75C0 4502 7841 8100 73C0 3000 7881 0004 7C20 8102 74C0 8100 73C0 4502
7841 00F0 7A80 3000 7881 0004 7C20 8104 74C0 0000 7842 406B 7580 0000 7841 FFFF 7882 0004 7C60
8102 73D0 0005 7EA0 0019 7C60 0004 7C80 406B 75C0 0000 7842 0000 7841 FFFF 7882 416B 7580 0004
7C60 8104 73D0 0005 7EA0 0019 7C60 0004 7C80 416B 75C0 0000 79AF 0000 7FA0 0000 7FA0 0000 7FA0
8108 73C0 1480 74C0 3842 7841 1502 73C0 2E45 7881 0004 7C00 40C9 7841 0FDB 7881 810A 0110 0004
7C20 8102 74C0 06D8 799F 0000 7FA0 0000 7FA0 0000 7FA0 0000 7D80 8100 74C0 40C9 7840 8102 73D0
0FDB 7880 0001 7D00 0000 7FA0 0000 7FA0 0000 7FA0 0018 7984 0000 7FA0 0000 7FA0 0000 7FA0 40C9
7840 0FDB 7880 0004 7C40 810A 74C0 000C 798E 0000 7FA0 0000 7FA0 0000 7FA0 00F4 7AC0 810A 74C0
0000 7841 8108 73C0 0001 7881 0004 7CC0 8108 74C0 0000 7FA0 0000 7FA0 0000 7FA0 0000 7F80
C$SW5, Cla1funcsLoadEnd
I LS 05 ram: is not loaded.
Cla1funcsRunStart, HAL_MODULATION_fnProcess, c
0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000
C$L1
0000 0000 0000 0000
C$L2
0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
Cla1Task1, c
0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
C$L1
Linker command file:
RAMLS_CLA_PROG : origin = 0x00A800, length = 0x000800
/* Control Law Accelerator (CLA) program code section */
Cla1Prog : LOAD = FLASH_CODE,
RUN = RAMLS_CLA_PROG,
LOAD_START(_Cla1funcsLoadStart),
LOAD_END(_Cla1funcsLoadEnd),
RUN_START(_Cla1funcsRunStart),
LOAD_SIZE(_Cla1funcsLoadSize),
PAGE = 0, ALIGN(4)
related GEL file lines
*(int *)0x5F432 =0x003F; /* RAM INIT FOR LS0..LS5 Memory */
/* Program memory maps */
GEL_MapAddStr(0x00008000,0, 0x800, "R|W|AS2",0); /* LS0 RAM (with PARITY) (4KBytes) */
GEL_MapAddStr(0x00008800,0, 0x800, "R|W|AS2",0); /* LS1 RAM (with PARITY) (4KBytes) */
GEL_MapAddStr(0x00009000,0, 0x800, "R|W|AS2",0); /* LS2 RAM (with PARITY) (4KBytes) */
GEL_MapAddStr(0x00009800,0, 0x800, "R|W|AS2",0); /* LS3 RAM (with PARITY) (4KBytes) */
GEL_MapAddStr(0x0000A000,0, 0x800, "R|W|AS2",0); /* LS4 RAM (with PARITY) (4KBytes) */
GEL_MapAddStr(0x0000A800,0, 0x800, "R|W|AS2",0); /* LS5 RAM (with PARITY) (4KBytes) */
/* Data memory maps */
GEL_MapAddStr(0x00008000,1, 0x800, "R|W|AS2",0); /* LS0 RAM (with PARITY) (4KBytes) */
GEL_MapAddStr(0x00008800,1, 0x800, "R|W|AS2",0); /* LS1 RAM (with PARITY) (4KBytes) */
GEL_MapAddStr(0x00009000,1, 0x800, "R|W|AS2",0); /* LS2 RAM (with PARITY) (4KBytes) */
GEL_MapAddStr(0x00009800,1, 0x800, "R|W|AS2",0); /* LS3 RAM (with PARITY) (4KBytes) */
GEL_MapAddStr(0x0000A000,1, 0x800, "R|W|AS2",0); /* LS4 RAM (with PARITY) (4KBytes) */
GEL_MapAddStr(0x0000A800,1, 0x800, "R|W|AS2",0); /* LS5 RAM (with PARITY) (4KBytes) */
Any comments?
Can gel commands blocking something?
thanks