Part Number: TMS320F2808
Tool/software: TI C/C++ Compiler
| CCS Version: | 10.0.0.00010 |
| Compiler Version: | TI v20.2.1.LTS |
| MCU: | TMS320F2808 |
I use the macro "DELAY_US(100)" to insert a 100us delay in my source code, and this macro is defined in the file "DSP280x_Examples.h" redirecting to an ASM implementation in file "DSP280x_usDelay.asm" with the function name "DSP28x_usDelay". But I noticed that the program jumped to ILLEGAL_ISR() and stopped here after the code DELAY_US(100) being executed. Further debugging revealed that the asm function "DSP28x_usDelay" functions abnormal. The value in ACC register should be decreased by 1 step by step, but this dose not happen. The PC register redirects the program to a meaningless address, and then jumps to the default ILLEGAL_ISR().
Some figures below illustrate the debug information when this case happened. Is there any method could be taken to solve this problem? I'm glad to get any proposal, many thanks!
- Breakpoint is set at source code "SUB ACC, #1"
- Without ACC subtraction, the program directly jumps to location 0x00270000
- And then jumps to ILLEGAL_ISR()







