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.

RTOS/AM5728: DSP code results issue

Part Number: AM5728
Other Parts Discussed in Thread: SYSBIOS

Tool/software: TI-RTOS

When I run this code on x86 or arm, the output is what I intended, but the result was different on dsp.

The problem with dsp is that the address of the memory does not occasionally increase, and something seems to align the address.

The dsp, arm, x86  program has an optimization option of -O3.

test source is

main()
{
char *srcbuf = (char*)malloc(256);
char *destbuf =(char*)malloc(256);

int i;
for(i=0; i < 256; i++)
{
*(srcbuf+i) = i;
}

int *src = (int*)srcbuf;
int *dest = (int*)destbuf;

for(i=0; i < 256/4 ; i++)
{

*dest = *src;
printf("[%08x][%08x][%08x][%08x]\n",*dest, *src, dest, src);
dest+=2;
src = (char*)src+3;



}

free(srcbuf);
free(destbuf);

}

x86 or arm result

[03020100][03020100][00021110][00021008]
[06050403][06050403][00021118][0002100b]
[09080706][09080706][00021120][0002100e]
[0c0b0a09][0c0b0a09][00021128][00021011]
[0f0e0d0c][0f0e0d0c][00021130][00021014]
[1211100f][1211100f][00021138][00021017]
[15141312][15141312][00021140][0002101a]
[18171615][18171615][00021148][0002101d]
[1b1a1918][1b1a1918][00021150][00021020]
[1e1d1c1b][1e1d1c1b][00021158][00021023]
[21201f1e][21201f1e][00021160][00021026]
[24232221][24232221][00021168][00021029]
[27262524][27262524][00021170][0002102c]
[2a292827][2a292827][00021178][0002102f]
[2d2c2b2a][2d2c2b2a][00021180][00021032]
[302f2e2d][302f2e2d][00021188][00021035]
[33323130][33323130][00021190][00021038]
[36353433][36353433][00021198][0002103b]
[39383736][39383736][000211a0][0002103e]
[3c3b3a39][3c3b3a39][000211a8][00021041]
[3f3e3d3c][3f3e3d3c][000211b0][00021044]
[4241403f][4241403f][000211b8][00021047]
[45444342][45444342][000211c0][0002104a]
[48474645][48474645][000211c8][0002104d]
[4b4a4948][4b4a4948][000211d0][00021050]
[4e4d4c4b][4e4d4c4b][000211d8][00021053]
[51504f4e][51504f4e][000211e0][00021056]
[54535251][54535251][000211e8][00021059]
[57565554][57565554][000211f0][0002105c]
[5a595857][5a595857][000211f8][0002105f]
[5d5c5b5a][5d5c5b5a][00021200][00021062]
[605f5e5d][605f5e5d][00021208][00021065]
[63626160][63626160][00021210][00021068]
[66656463][66656463][00021218][0002106b]
[69686766][69686766][00021220][0002106e]
[6c6b6a69][6c6b6a69][00021228][00021071]
[6f6e6d6c][6f6e6d6c][00021230][00021074]
[7271706f][7271706f][00021238][00021077]
[75747372][75747372][00021240][0002107a]
[78777675][78777675][00021248][0002107d]
[7b7a7978][7b7a7978][00021250][00021080]
[7e7d7c7b][7e7d7c7b][00021258][00021083]
[81807f7e][81807f7e][00021260][00021086]
[84838281][84838281][00021268][00021089]
[87868584][87868584][00021270][0002108c]
[8a898887][8a898887][00021278][0002108f]
[8d8c8b8a][8d8c8b8a][00021280][00021092]
[908f8e8d][908f8e8d][00021288][00021095]
[93929190][93929190][00021290][00021098]
[96959493][96959493][00021298][0002109b]
[99989796][99989796][000212a0][0002109e]
[9c9b9a99][9c9b9a99][000212a8][000210a1]
[9f9e9d9c][9f9e9d9c][000212b0][000210a4]
[a2a1a09f][a2a1a09f][000212b8][000210a7]
[a5a4a3a2][a5a4a3a2][000212c0][000210aa]
[a8a7a6a5][a8a7a6a5][000212c8][000210ad]
[abaaa9a8][abaaa9a8][000212d0][000210b0]
[aeadacab][aeadacab][000212d8][000210b3]
[b1b0afae][b1b0afae][000212e0][000210b6]
[b4b3b2b1][b4b3b2b1][000212e8][000210b9]
[b7b6b5b4][b7b6b5b4][000212f0][000210bc]
[bab9b8b7][bab9b8b7][000212f8][000210bf]
[bdbcbbba][bdbcbbba][00021300][000210c2]
[c0bfbebd][c0bfbebd][00021308][000210c5]



dsp result

[03020100][03020100][95a1c318][95a1c210]
[03020100][03020100][95a1c320][95a1c213]
[07060504][07060504][95a1c328][95a1c216]
[0b0a0908][0b0a0908][95a1c330][95a1c219]
[0f0e0d0c][0f0e0d0c][95a1c338][95a1c21c]
[0f0e0d0c][0f0e0d0c][95a1c340][95a1c21f]
[13121110][13121110][95a1c348][95a1c222]
[17161514][17161514][95a1c350][95a1c225]
[1b1a1918][1b1a1918][95a1c358][95a1c228]
[1b1a1918][1b1a1918][95a1c360][95a1c22b]
[1f1e1d1c][1f1e1d1c][95a1c368][95a1c22e]
[23222120][23222120][95a1c370][95a1c231]
[27262524][27262524][95a1c378][95a1c234]
[27262524][27262524][95a1c380][95a1c237]
[2b2a2928][2b2a2928][95a1c388][95a1c23a]
[2f2e2d2c][2f2e2d2c][95a1c390][95a1c23d]
[33323130][33323130][95a1c398][95a1c240]
[33323130][33323130][95a1c3a0][95a1c243]
[37363534][37363534][95a1c3a8][95a1c246]
[3b3a3938][3b3a3938][95a1c3b0][95a1c249]
[3f3e3d3c][3f3e3d3c][95a1c3b8][95a1c24c]
[3f3e3d3c][3f3e3d3c][95a1c3c0][95a1c24f]
[43424140][43424140][95a1c3c8][95a1c252]
[47464544][47464544][95a1c3d0][95a1c255]
[4b4a4948][4b4a4948][95a1c3d8][95a1c258]
[4b4a4948][4b4a4948][95a1c3e0][95a1c25b]
[4f4e4d4c][4f4e4d4c][95a1c3e8][95a1c25e]
[53525150][53525150][95a1c3f0][95a1c261]
[57565554][57565554][95a1c3f8][95a1c264]
[57565554][57565554][95a1c400][95a1c267]
[5b5a5958][5b5a5958][95a1c408][95a1c26a]
[5f5e5d5c][5f5e5d5c][95a1c410][95a1c26d]
[63626160][63626160][95a1c418][95a1c270]
[63626160][63626160][95a1c420][95a1c273]
[67666564][67666564][95a1c428][95a1c276]
[6b6a6968][6b6a6968][95a1c430][95a1c279]
[6f6e6d6c][6f6e6d6c][95a1c438][95a1c27c]
[6f6e6d6c][6f6e6d6c][95a1c440][95a1c27f]
[73727170][73727170][95a1c448][95a1c282]
[77767574][77767574][95a1c450][95a1c285]
[7b7a7978][7b7a7978][95a1c458][95a1c288]
[7b7a7978][7b7a7978][95a1c460][95a1c28b]
[7f7e7d7c][7f7e7d7c][95a1c468][95a1c28e]
[83828180][83828180][95a1c470][95a1c291]
[87868584][87868584][95a1c478][95a1c294]
[87868584][87868584][95a1c480][95a1c297]
[8b8a8988][8b8a8988][95a1c488][95a1c29a]
[8f8e8d8c][8f8e8d8c][95a1c490][95a1c29d]
[93929190][93929190][95a1c498][95a1c2a0]
[93929190][93929190][95a1c4a0][95a1c2a3]
[97969594][97969594][95a1c4a8][95a1c2a6]
[9b9a9998][9b9a9998][95a1c4b0][95a1c2a9]
[9f9e9d9c][9f9e9d9c][95a1c4b8][95a1c2ac]
[9f9e9d9c][9f9e9d9c][95a1c4c0][95a1c2af]
[a3a2a1a0][a3a2a1a0][95a1c4c8][95a1c2b2]
[a7a6a5a4][a7a6a5a4][95a1c4d0][95a1c2b5]

...

I want to know why the output differs from the dsp only.

  • The RTOS team have been notified. They will respond here.
  • Hi,

    Are you able to provide a C66x CCS project for this issue for us reproduce? Is it a bare metal or SYSBIOS? What is the L1D, L1P and L2 cache setting? You used the data buffer in DDR correct? Where the code run? Is the DDR cached or not?

    Regards, Eric

  • Hi lding.

    I am using pdk 1.0.7 and ipc 3.46.0.2.

    I am building a dsp firmware in ipc example and testing it under Linux.

    I do not use L1D or L1P cache, but L2 cache is used in program, but the example program is executed in ddr and I do not know how to check whether it is cached.

    When you build, you attach the relevant files.

    Thank you.

    config file and map file.zip

  • Hi,

    The issue you are dealing here is unaligned access.

    src = (char*)src+3;==========> This is 24-bit load to DSP, not 8-/16-/32-bit aligned.

    dest+=2; ========> this is fine.

    You can do this:

       for(i=0; i < 256/4 ; i++)

       {

       *dest = _mem4(src);

       System_printf("[%08x][%08x][%08x][%08x]\n",*dest, _mem4(src), dest, src);

       dest+=2;

       src = (char*)src+3;

       }

    I tested:

    [C66xx_DSP1] [03020100][03020100][8000fbd0][8000fac8]
    [06050403][06050403][8000fbd8][8000facb]
    [09080706][09080706][8000fbe0][8000face]
    [0c0b0a09][0c0b0a09][8000fbe8][8000fad1]
    [0f0e0d0c][0f0e0d0c][8000fbf0][8000fad4]
    [1211100f][1211100f][8000fbf8][8000fad7]
    [15141312][15141312][8000fc00][8000fada]
    [18171615][18171615][8000fc08][8000fadd]
    [1b1a1918][1b1a1918][8000fc10][8000fae0]
    [1e1d1c1b][1e1d1c1b][8000fc18][8000fae3]
    [21201f1e][21201f1e][8000fc20][8000fae6]
    [24232221][24232221][8000fc28][8000fae9]
    [27262524][27262524][8000fc30][8000faec]
    [2a292827][2a292827][8000fc38][8000faef]
    [2d2c2b2a][2d2c2b2a][8000fc40][8000faf2]
    [302f2e2d][302f2e2d][8000fc48][8000faf5]
    [33323130][33323130][8000fc50][8000faf8]
    [36353433][36353433][8000fc58][8000fafb]
    [39383736][39383736][8000fc60][8000fafe]
    [3c3b3a39][3c3b3a39][8000fc68][8000fb01]
    [3f3e3d3c][3f3e3d3c][8000fc70][8000fb04]
    [4241403f][4241403f][8000fc78][8000fb07]
    [45444342][45444342][8000fc80][8000fb0a]
    [48474645][48474645][8000fc88][8000fb0d]
    [4b4a4948][4b4a4948][8000fc90][8000fb10]
    [4e4d4c4b][4e4d4c4b][8000fc98][8000fb13]
    [51504f4e][51504f4e][8000fca0][8000fb16]
    [54535251][54535251][8000fca8][8000fb19]
    [57565554][57565554][8000fcb0][8000fb1c]
    [5a595857][5a595857][8000fcb8][8000fb1f]
    [5d5c5b5a][5d5c5b5a][8000fcc0][8000fb22]
    [605f5e5d][605f5e5d][8000fcc8][8000fb25]
    [63626160][63626160][8000fcd0][8000fb28]
    [66656463][66656463][8000fcd8][8000fb2b]
    [69686766][69686766][8000fce0][8000fb2e]
    [6c6b6a69][6c6b6a69][8000fce8][8000fb31]
    [6f6e6d6c][6f6e6d6c][8000fcf0][8000fb34]
    [7271706f][7271706f][8000fcf8][8000fb37]
    [75747372][75747372][8000fd00][8000fb3a]
    [78777675][78777675][8000fd08][8000fb3d]
    [7b7a7978][7b7a7978][8000fd10][8000fb40]
    [7e7d7c7b][7e7d7c7b][8000fd18][8000fb43]
    [81807f7e][81807f7e][8000fd20][8000fb46]
    [84838281][84838281][8000fd28][8000fb49]
    [87868584][87868584][8000fd30][8000fb4c]
    [8a898887][8a898887][8000fd38][8000fb4f]
    [8d8c8b8a][8d8c8b8a][8000fd40][8000fb52]
    [908f8e8d][908f8e8d][8000fd48][8000fb55]
    [93929190][93929190][8000fd50][8000fb58]
    [96959493][96959493][8000fd58][8000fb5b]
    [99989796][99989796][8000fd60][8000fb5e]
    [9c9b9a99][9c9b9a99][8000fd68][8000fb61]
    [9f9e9d9c][9f9e9d9c][8000fd70][8000fb64]
    [a2a1a09f][a2a1a09f][8000fd78][8000fb67]
    [a5a4a3a2][a5a4a3a2][8000fd80][8000fb6a]
    [a8a7a6a5][a8a7a6a5][8000fd88][8000fb6d]
    [abaaa9a8][abaaa9a8][8000fd90][8000fb70]
    [aeadacab][aeadacab][8000fd98][8000fb73]
    [b1b0afae][b1b0afae][8000fda0][8000fb76]
    [b4b3b2b1][b4b3b2b1][8000fda8][8000fb79]
    [b7b6b5b4][b7b6b5b4][8000fdb0][8000fb7c]
    [bab9b8b7][bab9b8b7][8000fdb8][8000fb7f]
    [bdbcbbba][bdbcbbba][8000fdc0][8000fb82]
    [c0bfbebd][c0bfbebd][8000fdc8][8000fb85]

    Also refer to this post: e2e.ti.com/.../601666

    Regards, Eric

  • It works. Thank you very much for your advice.