打印

C6748连载6:CMD文件

[复制链接]
838|1
手机看帖
扫描二维码
随时随地手机跟帖
沙发
877049204|  楼主 | 2019-1-7 11:07 | 只看该作者
在CMD文件中自定义段,可以把变量或者函数放在指定内存中,这样可以加快程序运行速度。
/****************************************************************************/
/*                                                                          */
/*              内存读写及性能测试                                          */
/*                                                                          */
/*              2014年09月12日                                              */
/*                                                                          */
/****************************************************************************/

MEMORY
{
    SHDSPL2ROM   o = 0x11700000  l = 0x00100000  /* 1MB   L2 共享内置 ROM */
    SHDSPL2RAM   o = 0x11800000  l = 0x00040000  /* 256KB L2 共享内置 RAM */

    SHDSPL1PRAM  o = 0x11E00000  l = 0x00008000  /* 32KB  L1 共享内置程序 RAM */
    SHDSPL1DRAM  o = 0x11F00000  l = 0x00008000  /* 32KB  L1 共享内置数据 RAM */

    SHRAM        o = 0x80000000  l = 0x00020000  /* 128KB 共享 RAM */

    DDR2         o = 0xC0000000  l = 0x08000000  /* 128MB  DDR2 分配给 DSP */
}

SECTIONS
{
    .text                        >  0x11810000                                  /* 可执行代码 */
    .stack                        >  SHDSPL2RAM                                  /* 栈 */
    .cinit                        >  SHDSPL2RAM                /* 初始化表 */
    .const                        >  SHDSPL2RAM                /* 常量 */
    .switch                        >  SHDSPL2RAM                /* 跳转表 */
        .cio                        >  SHDSPL2RAM                /* C 输入输出缓存 */
        .sysmem                        >  SHDSPL2RAM                /* 动态内存分配区域 */

        GROUP(NEARDP_DATA)
        {
           .neardata
           .rodata
           .bss
        }               >  SHDSPL2RAM

    .far                        >  SHDSPL2RAM
    .fardata                >  SHDSPL2RAM

        /* 自定义段 */
    .DataL2                        >  SHDSPL2RAM
    .DataSHRAM                >  SHRAM
    .DataDDR2                >  DDR2
}
在main函数中,通过#pragam 可以把变量放在指定内存中,L1、L2、还是DDR2中
// 待测试数据
#pragma DATA_ALIGN(Test, 8);
unsigned char Test[Size];

// 待测试变量
#pragma DATA_SECTION(DataL2,".DataL2");
#pragma DATA_ALIGN(DataL2, 8);
unsigned char DataL2[Size];

#pragma DATA_SECTION(DataSHRAM,".DataSHRAM");
#pragma DATA_ALIGN(DataSHRAM, 8);
unsigned char DataSHRAM[Size];

#pragma DATA_SECTION(DataDDR2,".DataDDR2");
#pragma DATA_ALIGN(DataDDR2, 8);
unsigned char DataDDR2[Size];




使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

158

主题

1836

帖子

20

粉丝