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/TM4C123GH6PGE: TM4C123GH6PGE

Part Number: TM4C123GH6PGE

Tool/software: TI-RTOS

Hi,

I've recently obtained the TM4C123GXL eval kit in preparation for a new project. I am in the process of porting a stripped down TI-RTOS project that only consists of a few tasks and semaphores. The following are some of the results I'm getting:

1) The projects builds fine and runs OK in debug mode.

2) When I reset the board, the program runs and my UART ISR is firing.

3) The tasks don't appear to be running.

I've setup CCS (v7.3.0) to generate a .bin file as well as a .hex file (Motorola S3 output). I notice the bin file is >500 Megabytes. It looks like the data section, which is in RAM (0x2000000) is being added to the .bin file, and the gap between flash and ram is being filled with zeros (0). That's making the bin file huge. The flasher is unable to open and load the bin file to flash. 

I made one change to .cmd file so that the .data segment goes into flash instead of sram (.data : > FLASH). I made the following observations:

4) The program appears to run in the debugger the same way as in step (2) above.

5) The generated bin file is only about 33kbytes

6) I'm able to pause the program and look at ROV.

7) ROV shows that all tasks are in "Invalid Mode". Please see picture below:

What does "Invalid mode" mean? 

It looks like I might need a more sophisticated linker command file. What are my options?

Thanks in advance for your help.

Best Regards,

Kens 

  • Hi Kens,

      I have some comments.

     1. Normally the task will block with a semaphore_pend waiting for the Hwi to call the semaphore_post. If your task is not running then you might want to check if the semaphore_post is called.

     2. You cannot map the .data to the flash. The flash is a non-volatile memory. The .data holds your run-time variables. The variables cannot be changed if they are in the flash.

     3. What is the reason why you don't want to use the .out file? Of course, you can use .bin file if you want but it won't have the debug symbols. I will suggest you start with the .out file first.

     4. There are many TI-RTOS examples (i.e. UART examples and others). I will suggest you take a look at these examples (i.e. UART and Kernel using semaphore) and perhaps use one of them and then build you application on top of it. That could be easier to start with.

  • Hi Charles,

    Thanks for your detailed response to my post. I did one of the UART examples that you pointed me to, and that worked well. I must have screwed up something in porting my project. You've provided me with something that I can build from. I appreciate the help.

    Best Regards,

    Kens