[DSP 日常记录] #4 CCS 工程程序基本结构

接上篇


这里有一个简单例程

在这一例程里,分别有以下几种文件 

  • 程序入口 (main.c等)
  • 连接命令文件 (*.cmd)
  • Target Configuration 文件
  • C运行文件库 (rtsXXX.lib)
  • .asm 文件

程序入口

即CPU启动或复位后开始执行的程序地址。一般默认程序入口有三种:地址 0000、_c_int00 和 _main

其中 _c_int00 定义在 rtsxxx.lib 库中,c_int00() 函数完成:初始化堆栈指针和页指针;初始化全局变量;最后调用 main()

此外还可以自行设置入口地址  Project properties-Built-C2000 Linker/C6000 Linker-Advance Options-Symbol Management


连接命令文件 (.cmd)

CMD文件内一般由三部分组成:输入输出定义、MEMORY 命令、SECTION 命令。

其中输入输出命令可以通过 CCS 的 Build Option 菜单设置,可以不在 CMD 文件中定义。MEMORY 命令描述系统实际的硬件资源。SECTION 命令描述“段”如何定位,另外注意使用的是"SECCTIONS",而非"SECTION"。

-l rts67plus.lib
-l dsp67x.lib
-l evmomapl137bsl.lib

-stack           0x00001000      /* Stack Size */ 
-heap            0x00001000      /* Heap Size */

MEMORY 
{
    AIS:            o = 0x11800000  l = 0x00005000
    DSPRAM: o = 0x11805000  l = 0x00035000
}
 
SECTIONS
{  
    .vecs	>   DSPRAM  	/*中断向量表*/
    .bss	>   DSPRAM 	/*全局变量和静态变量*/
    .cinit	>   DSPRAM	/* 变量初值表*/
    .cio	>   DSPRAM	/*用于stdio函数*/
    .const	>   DSPRAM  	/* 常数和字符串 */
    .stack	>   DSPRAM  	/*堆栈 */
    .system	>   DSPRAM  	/* 用动态分配内存,有malloc等函数才会出现*/
    .text	>   DSPRAM   /*程序代码 */
    .switch	>   DSPRAM	/*用于大型switch语句跳转表*/
    .far	>   DSPRAM	/*以far申明的全局变量和静态变量*/
    .my_data >AIS
}
#pragma DATA_SECTION (GlobalBuf,”.my_data”)
#pragma DATA_ALIGN (GlobalBuf, 4);
int far GlobalBuf[2048];
#pragma CODE_SECTION (myFunc,”.my_code”)
void myFunc(int a, int b)
{
}

Vector.asm

 .sect ".vecs"
 .align 1024

_intcVectorTable:
_vector0:   VEC_ENTRY _c_int00    ;RESET
_vector1:   VEC_ENTRY _vec_dummy  ;NMI
_vector2:   VEC_ENTRY _vec_dummy  ;RSVD
_vector3:   VEC_ENTRY _vec_dummy
_vector4:   VEC_ENTRY _vec_dummy
_vector5:   VEC_ENTRY _vec_dummy
_vector6:   VEC_ENTRY _vec_dummy   ;_isrIps
_vector7:   VEC_ENTRY _vec_dummy
_vector8:   VEC_ENTRY _isrAdda
_vector9:   VEC_ENTRY _isrUart
_vector10:  VEC_ENTRY _vec_dummy
_vector11:  VEC_ENTRY _vec_dummy
_vector12:  VEC_ENTRY _vec_dummy
_vector13:  VEC_ENTRY _vec_dummy
_vector14:  VEC_ENTRY _vec_dummy
_vector15:  VEC_ENTRY _vec_dummy

 

 

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 精致技术 设计师:CSDN官方博客 返回首页