打印

请大家给解释一下下面这个cmd文件的意义?

[复制链接]
3121|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
ccjchen|  楼主 | 2009-8-26 21:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
下面的cmd文件是 NDK 程序的一部分(开发板SEED-EVM642)
/* rtc_test.cmd                 */
-l Tcpip_loopbackcfg.cmd
-l lib\cslDM642.lib
-l lib\rts6400.lib
-l lib\seedvpm642bsl.lib
-l lib\scom.l64
-l lib\hal_eth_dm642.lib
-l lib\hal_eth_stub.lib
-l lib\hal_timer.lib
-l lib\hal_userled.lib
-l lib\hal_ser_stub.lib
-l lib\hal.lib
-l lib\os.lib
-l lib\stack.lib
-l lib\nettool.lib
-l lib\netctrl.lib
MEMORY
{
boot: o = 00000000h l = 000400h  /*all SRAM*/
}
SECTIONS
{
.boot_load    > boot                     
   PACKETMEM: {} >  SDRAM
    MMBUFFER:  {} >  SDRAM
    OBJMEM:    {} >  SDRAM
   
    .text:_CSL6400_LIB_  > SDRAM
    .text:_DAT_copy      > SDRAM  //DAT_copy还有下面这几个不是函数吗?
    .text:_DAT_copy2d    > SDRAM//为什么也要放在SDRAM里面去?真是不太明白!
    .text:_DAT_wait      > SDRAM   //还有前面的.text: 是什么意思?
    .text:_EDMA_intAlloc > SDRAM
    .text:_DAT_open      > SDRAM
    .text:_DAT_close     > SDRAM
         
    .user_data_ext       > SDRAM    //这又是什么意思?
}

相关帖子

沙发
玄德| | 2009-8-27 22:51 | 只看该作者
没有搞过642,以下意见供你参考
1、.text:_DAT_copy      > SDRAM
表示把函数DAT_copy转换成的二进制代码(属于程序代码),存储到SDRAM中。其他语句与此相同。该CMD文件一定是用在仿真阶段,所以才会把程序代码存储到易失型的存储器。text是编译环境默认的关键字,表示程序代码。
2、.user_data_ext       > SDRAM
表示把用户自己定义的数据存储在SDRAM中。user_data_ext也是关键字,但应当不是编译环境默认的关键字,需要开发人员在用户程序中另行定义或引用,编译器才会明白这,否则会报错。

使用特权

评论回复
板凳
ccjchen|  楼主 | 2009-8-28 10:33 | 只看该作者
本帖最后由 ccjchen 于 2009-8-28 11:06 编辑

非常感谢您!明白了一些!
#pragma DATA_SECTION(rxdata_stream,   ".user_data_ext")
#pragma DATA_ALIGN( rxdata_stream,   128)
unsigned char rxdata_stream[BUFLEN];
以上是我程序的一部分,看来是将rxdata_stream[BUFLEN]这个数组放在SDRAM的程序段".user_data_ext"中。
不过还有两点想问一下您,
1.我通常声明的一个数组比如:unsigned int axes[18];
这个数组是放在什么地方?L2 中吗?
2. PACKETMEM: {} >  SDRAM
    MMBUFFER:  {} >  SDRAM
    OBJMEM:    {} >  SDRAM
前面的PACKETMEM、MMBUFFER、OBJMEM是什么意思?我程序中没有声明这些

使用特权

评论回复
地板
玄德| | 2009-8-28 23:59 | 只看该作者
我没有搞过DAVINCI,两个问题都不好确切回答你。说点我熟悉的情况。
任何一个用户的C程序,都会有全局变量、局部变量(包括数组),编译器一般把它们作为默认的对象进行处理,自行定位,比如c2000系列的用户变量一般都定位在.bss段,“bss”是编译器默认的关键字,不需要用户在自己的程序中进行声明。但我不知道PACKETMEM、MMBUFFER、OBJMEM这几个关键字的意思。

使用特权

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

本版积分规则

175

主题

446

帖子

1

粉丝