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.

CCS/CCSTUDIO-TM4X: CCS Debugger using Segger J-Link does not allow setting bit 1 of CONTROL register

Part Number: CCSTUDIO-TM4X

Tool/software: Code Composer Studio

I am using the following:

  • CCS version 8.0.0.00016
  • Segger J-Link Plus (with latest f/w update as of this afternoon)
  • DK-TM4C129X dev kit
  • Windows 10 (X64)

I was trying to get a simple sample project using Micrium's uC/OS-II working on my setup. I experienced a problem where in the RTOS' assembly code that launches the startup task, the address of the startup task was not getting loaded properly into a register. After working with Micrium tech support, we discovered that there seems to be a problem when using the J-Link debugger.

There is a line of code in the RTOS that consists of an “MSR CONTROL, R0” instruction. That instruction should result in bit 1 of the CONTROL register being set. However, when using the J-Link, the bit does not get set. If I use the ICDI debug interface, it works fine. 

I also discovered that if I use the J-Link, and do a CPU Reset before executing, the code also works correctly.

This seems to indicate that something is going on when the J-Link debugger is loading the memory and getting things initialized that is preventing the CONTROL register from being properly accessed. Resetting the CPU appears to fix things.

I have zipped up the project files and made them available on Dropbox at the following link: https://www.dropbox.com/s/hjqew6icu7tk2e4/VIO-CPU-Port.zip?dl=0.

The specific line of code that does not work is line 238 of os_cpu_a.asm

I appreciate any help you can give me regarding this issue.

Regards,

Dave