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

博客接上篇介绍了一个DSP简单例程包含的文件,如程序入口、连接命令文件等。程序入口默认有三种,还可自行设置;连接命令文件由输入输出定义、MEMORY命令、SECTION命令三部分组成,输入输出命令可通过菜单设置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

接上篇


这里有一个简单例程

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

  • 程序入口 (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

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值