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.

ST1 identifier error w/ TMS320R2812 & CCSv5/CSSv3.1

I am currently using a TMS320R2812  (eZdspR2812) & XDS510USB JTAG together with Code Composer Studio v5, on Windows XP.


My problem is this:

When in Code Composer Studio, when I attempt to debug an empty main.c, I immediately get the error:
C28xx Error: GEL Error: identifier ST1 not found

I get this error three separate times: when OnReset(), OnRestart(), and OnTargetConnect() call C28x_ChangeMode() (all of this is in the r2812.gel that came packaged with CCSv5).

A similar case I came upon involved setting the appropriate initialization script (.gel), which I set to the supplied r2812.gel. I also tested the connection, and it does appear that everything is connected properly.

Any ideas as to why, even with proper connection and proper initialization script, I still get the ST1 identifier error?

I've tried un/re-installing CCSv5.

----------------------------------------------------

A similar, possibly related issue arises when using the same TMS320R2812+XDS510USB w/ CCSv3.1
In this case, upon attempt to Debug > Connect, I get error #-140, with no real description as to what's wrong.
I have attempted troubleshooting THIS error with the SDConfig utility, but it appears to recognize both the JTAG and R2812 correctly.

  • Hello,

    will smith64 said:
    C28xx Error: GEL Error: identifier ST1 not found

    ST1 is a core register (Status Register 1). Not sure why GEL is unable to access it. There isn't any issue on my 2812 target (though I am using the F2812). Is it accessible via CCS?

    will smith64 said:
    I get this error three separate times: when OnReset(), OnRestart(), and OnTargetConnect() call C28x_ChangeMode() (all of this is in the r2812.gel that came packaged with CCSv5).

    I don't see C28x_ChangeMode() in the r2812.gel file. I do see C28x_Mode(). Is that what you meant.

    Thanks

    ki

  • Ki,

    Hello!
    [1] What is the "it" you refer to in "Is it accessible via CCS"?

    [2] Yes, I indeed mean C28x_Mode(). The function sets AMODE = 0 and OBJMODE = 1. There should be an identical function in the f2812.gel.

    EDIT:

    It is worth noting that the version of CCS I am currently using is v5.4

  • If you expand the core registers list in the Registers view in CCS, do you see ST1 with a valid value?
  • No - the "Core Registers" list expands to show nothing. In fact, I expanded every expandable list, and they were ALL empty.
  • That's odd. I was expecting to see something like the below:

    Can you show me a screenshot of your whole CCS IDE, including the register view with the Code Registers node expanded?

  • Sadly, I cannot provide you with a screenshot in a decent amount of time. While I do have the machine I am using in conjunction with the R2812/XDS510USB in front of me, it is not (and cannot be) connected to the network.
    My "Registers" pane looks like this:

    (Variables) (Expressions) [Registers]
    > Core Registers //expanded, nothing here
    > ADC // when expanded, nothing there
    > ...etc

    All the way down to the last register list present, SPIA.
    ---

    If you need more information about the state of my IDE right now, I can respond promptly.
  • Outside the error, are you able to work with the target fine? What I mean is load code, run, poke around memory via Memory view, etc..
  • This is my first time attempting to work with the target, actually. I've not been successful communicating with it, though the connection appears to be proper.
  • How did you verify the connection? Via the SdConfigEx utility? Can you run the 'Emulator -> Diagnostics' and chose the option for scan pattern (run a few iterations) and see if there are any errors?
  • Ah, yes, using SDConfig. With a pass of 1000 and pattern 0x55555555, no errors.

    EDIT:

    With a pass of 1000 and pattern 0x55554555, it errors at pass 560, actually!

  • At least basic JTAG connectivity is good.

    I assume you have been able to at least have CCS connect to the target. What happens when you open the memory browser view and browse to some good known address? After target connection, where the program counter (it should be shown in the Debug view). A screenshot really would be helpful here. If you cannot connect that particular machine to the network, maybe you can get the image on to a USB stick and copy it to the machine you are using to browse the forum.
  • Ki-Soo,

    Apologies for the delayed reply. I had a few days away from work and have returned! Unfortunately, I am still unable to provide screenshots. However, I can still answer your questions:

    > "I assume you have been able to at least have CCS connect to the target. What happens when you open the memory browser view and browse to some good known address?"

    Yes, I believe CCS connects to the target. When I open the Memory Browser view, with 'Data' selected, nothing appears. If I select the 'Program' or 'IO' options, there is still nothing - totally empty.

    EDIT: Okay, so I added the line "int x = 1;" to the code, and now I see 'x' in the variable browser present at address 0x00000003. I go to 0x00000003 in the Memory Browser - this works. I can see what's stored at that address, it is initially equal to 0000. The PC is at the start of main(), so I step into it, even with the GEL errors present. After "int x = 1", x is present at address 0x00000005 and the value at that address is, indeed, 0001.
     
    > "After target connection, where the program counter (it should be shown in the Debug view). A screenshot really would be helpful here."

    The program suspends at main.c:6 0x0000BF (reason unknown) (this points to the line 'return 0;')
    It is also the only line (aside from the main declaration) in the program. I do not know if this information is as useful as the empty memory browser.

    ---

    Is it not a worry that during one round of 1000 tests I received an error? Is that normal? (referring to previous reply)

  • Ki-Soo,

    Where SHOULD the ST1 register be properly identified? Is it possible I am missing something? Improper identification in the packaged gel? My understanding is that these interactions should be very 'plug n play' given my low level of involvement with the system.
  • will smith64 said:
    Is it not a worry that during one round of 1000 tests I received an error? Is that normal? (referring to previous reply)

    There is some stability issue there. I've run the test several thousand times without error.

    will smith64 said:
    Where SHOULD the ST1 register be properly identified? Is it possible I am missing something? Improper identification in the packaged gel? My understanding is that these interactions should be very 'plug n play' given my low level of involvement with the system.

    ST1 is a core register. It should be available to the debugger (once the target is connected, even if the device xml file is not used).

    If you type in some of the core registers in the Expressions view (ST1, PC, IER, SP, etc), is it recognized?

  • Ki-Soo Lee said:
    There is some stability issue there. I've run the test several thousand times without error

    I will keep this in mind in using this device. Will have to get a new one at some point to ensure stability - not a worry right now.

    It appears I have solved the ST1 identifier issue; I must have unknowingly messed with some of the settings, as creating a new CCS project with the "empty main" template works. So, now, I can see all the registers and their values. I am using the exact same .gel as before, however, so I am unsure which project setting caused this. Perhaps I was pointing to the wrong CMD file, I do not know.

    ----

    New problem:

    I get past the "ST1" error, and now to a new error: there is no Unlock_CSM() in the r2812.gel provided, so I copied the Unlock_CSM() from f2812.gel (did not expect it to work but figured I'd give it a try in the absence of a gel with a closer Unlock_CSM() ).
    When the program tries to Unlock_CSM(), I get an error about it being unable to access memory at a given location.

    Should the r2812 be using Unlock_CSM? Where can I find the proper Unlock_CSM() function, or is there a bigger problem?

  • will smith64 said:
    It appears I have solved the ST1 identifier issue; I must have unknowingly messed with some of the settings, as creating a new CCS project with the "empty main" template works. So, now, I can see all the registers and their values. I am using the exact same .gel as before, however, so I am unsure which project setting caused this. Perhaps I was pointing to the wrong CMD file, I do not know.

    yes that is certainly an odd one. perhaps it was one of the debug settings in the project properties? In any case glad to hear it is working now.

    will smith64 said:

    Should the r2812 be using Unlock_CSM? Where can I find the proper Unlock_CSM() function, or is there a bigger problem?

    This question I cannot help with. It is best to ask the device experts in the C2000 forums.

    Thanks

    ki

  • Ki,

    Thanks again for troubleshooting the ST1 issue with me. Perhaps once I get the other problem solved I will attempt to replicate it and get back to you!

    Regards