[2018年最新整理]DSP28335教程附录4DSP的C语言
DSPx m C Programming Appendix D TMS320C28x? MCU Workshop Learning Objectives Learn the basic C environment for the C28x family How to control the C environment How to use the C-compiler optimizer Discuss the importance of volatile Explain optimization tips Boot.ASM - Invoked With “-C” The Stack The C/C++ compiler uses a stack to: Allocate local variables Pass arguments to functions Save the processor status Save the function return address Save temporary results The compiler uses the hardware stack pointer (SP) to manage the stack. SP defaults to 0x400 at reset. The run-time stack grows from low addresses to higher addresses. Setting Up the Stack Boot.asm sets up SP to point at .stack The .stack section has to be linked into the low 64k of data memory. The SP is a 16-bit register and cannot access addresses beyond 64K. Stack size is set by the linker. The linker creates a global symbol, --STACK-SIZE, and assigns it a value equal to the size of the stack in bytes. (default 1K words) You can change stack size at link time by using the -stack linker command option. C28x C-Language Data Types Accessing Interrupts / Status Register Pragma Examples Optimization Scope Optimization Performance Optimization Issue: “Volatile” Variables Summary: Optimization Tips Lab D: Procedure – C Optimization Lab D Solutions * DSPx m Copyright ? 2009 Texas Instruments. All rights reserved. Technical Training Organization T TO Reset : PC RAMalign=2 ... } Note: The compiler provides no means to check for stack overflow during compilation or at ru