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.

problems downloading enetLwip_sysbios.out to AM3359 IDK

Other Parts Discussed in Thread: AM3359, SYSBIOS

I am a new user to both CCS and AM3359 IDK. 

I have succeeded in following the directions of the AM335x SYSBIOS Industrial SDK Getting Started Guide and was able to build and download the enetLwip example once, and get it to run. When I realized I had not hooked up the UART connection, I tried to stop and restart, but since then nothing has worked. I've tried all the same steps, including cycling power to board etc. When I try to download, I get the message below.

CortxA8: Trouble Writing Memory Block at 0x80028000 on Page 0 of Length 0x670: (Error -2130 @ 0x80028000) Unable to access device memory. Verify that the memory address is in valid memory. If error persists, confirm configuration, power-cycle board, and/or try more reliable JTAG settings (e.g. lower TCLK). (Emulation package 5.0.747.0)

CortxA8: GEL: File: C:\ti\am335x_sysbios_ind_sdk_1.0.0.5\sdk\examples\enetLwip_sysbios\Debug\enetLwip_sysbios.out: Load failed.

CortxA8: Trouble Reading Register CP15_CONTROL_REGISTER: (Error -2131 @ 0x20013F00) Unable to access device register. Reset the device, and retry the operation. If error persists, confirm configuration, power-cycle the board, and/or try more reliable JTAG settings (e.g. lower TCLK). (Emulation package 5.0.747.0).

This is simply a TI provided example and hardware.  I don't know how to interpret any of these error messages or how to begin solving this problem.

  • Hi John,

    John Rathkey said:
    CortxA8: Trouble Writing Memory Block at 0x80028000 on Page 0 of Length 0x670: (Error -2130 @ 0x80028000) Unable to access device memory. Verify that the memory address is in valid memory. If error persists, confirm configuration, power-cycle board, and/or try more reliable JTAG settings (e.g. lower TCLK). (Emulation package 5.0.747.0)

    There usually is some target initialization needed to enable external memory like DDR2. Usually this initialization is done in a GEL file (ex: AM335x.gel). It sounds like the target was initialized once (since you were able to load that one time) but since then, it is not anymore. There usually is some master GEL function that initializes clock, memory, etc like 'AM335x_EVM_Initialization()' or something like that. You should be able to see it under the 'Scripts' menu. Have you tried rerunning the initialization routines?

    Thanks

    ki

  • Thanks Ki, this solved the problem.  I had confused selecting the gel file with actually going to the scripts menu and running it.  So do I need to run this gel file first every time I want to reload the program?

    Most of the debugging tools are intuitive, like breakpoints and stepping.  But so far I have not been able to perform a reset/restart sequence.  I assume this should be initiated when I am halted.  The reset button gives me SW or HW or system reset choices.  Which should I choose?  So far, every choice results in some error.  If I simply try to restart from halt without resetting I get this message "No source available for "_c_int00() at 0x80000000" ".  I appear to be able to halt and resume, but there is no source to view.  What is the proper sequence to just start over without re-loading?

    I would also like to see any "System_printf" messages and "UARTPutString" messages.  Is there some document that tell me how to run this application and view all the diagnostics or demonstrations it has to offer?

    I tried following the directions in the "AM335x SYSBIOS Industrial SDK 01.00.00.05 User Guide" for this application "To see the web server, connect the AM335x device to the PC with a Ethernet cable and go to http:/ / 192. 168. 1. 2 using any web browser."  It resulted in the message "HTTP Error 403 (Forbidden): The server refused to fulfill the request"  Now what?  This guide also states "The application also prints status messages on UART console."  What is a "UART console"?

    Thanks again for your help

  • John Rathkey said:
    I had confused selecting the gel file with actually going to the scripts menu and running it. 

    Sometimes this is the case. You can configure the GEL file so that it will run functions automatically when you connect to the target. How to do this? See:

    http://www.ti.com/lit/an/spraa74a/spraa74a.pdf

    It is an old app note but the content still applies for v5

    John Rathkey said:
    So do I need to run this gel file first every time I want to reload the program?

    You can use the OnPreFileLoaded() GEL callback (see above link)

    John Rathkey said:
    But so far I have not been able to perform a reset/restart sequence.  I assume this should be initiated when I am halted. 

    The correct sequence is highly device specific, often customer board specific. It is up to the customer to setup the correct sequence. GEL files are a common way to configure this

    John Rathkey said:
    So far, every choice results in some error.  If I simply try to restart from halt without resetting I get this message "No source available for "_c_int00() at 0x80000000"

    That is not an error. Basically what is happening is that when you restart the program, it goes back to the entry point of the program (_c_int00). This entry point is defined by the run-time library. Since CCS does not know about the source files for the run-time library, it will say so. This is expected and not an error. From here you can run to 'main'. When you load a program, it will set the PC to the entry point but then auto-run to main.

    John Rathkey said:
    What is the proper sequence to just start over without re-loading?

    Again, this is highly device/program/target specific. In some cases, a restart is fine. For others, you will need to do some additional initialization. I am not familiar enough with your target to provide specific instructions. The AM335x forum would be a better resource for that. But I would guess that a restart is fine in most cases unless you power cycle.

    John Rathkey said:
    I would also like to see any "System_printf" messages and "UARTPutString" messages.  Is there some document that tell me how to run this application and view all the diagnostics or demonstrations it has to offer?

    I believe System_printf is from BIOS. You can refer to the BIOS User's guide. The output should be displayed using the BIOS RTA or KOV tools. Not sure about the other one.

    John Rathkey said:
    I tried following the directions in the "AM335x SYSBIOS Industrial SDK 01.00.00.05 User Guide" for this application "To see the web server, connect the AM335x device to the PC with a Ethernet cable and go to http:/ / 192. 168. 1. 2 using any web browser."  It resulted in the message "HTTP Error 403 (Forbidden): The server refused to fulfill the request"  Now what?  This guide also states "The application also prints status messages on UART console."  What is a "UART console"?

    I am guessing the UART console is some kind of hyperterminal program like hyperterm, teraterm, etc. CCSv5 has something called the terminal plug-in that you can drop in.

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

    I'm not too familiar with the SDK. This is a general tools forum. I suggest posting in the Am335x forums for more answers related to the SDK and your other device specific questions. The experts there can answer the rest of your questions.

    Thanks

    ki