5529|4

73

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

cmd文件中各种存贮器大小改怎么确定? [复制链接]

请问:cmd中,.cinit,.const,.switch等一些伪指令的大小改怎么确定,进而,怎么确定相应的存贮器的大小?

最新回复

看项目文件里的*.map文件,里面有的。 起始空间,占多大。都一清二楚的。希望大家能看明白。 有了它,你就好改地址空间分配了。 看下面的map例子 ****************************************************************************** TMS320C1x/C2x/C2xx/C5x COFF Linker           Version 7.00                   ****************************************************************************** >> Linked Fri Feb 28 01:35:47 2003 OUTPUT FILE NAME:   <example_c.out> ENTRY POINT SYMBOL: \"_c_int0\"  address: 000080f5 MEMORY CONFIGURATION            name     origin    length      used    attributes    fill          --------  --------  ---------  --------  ----------  -------- PAGE 0: VECS      00000000  000000040  00000040     RWIX                FLASH     00000044  000007fbc  00000007     RWIX                SARAMPRO  00008000  000000800  0000016c     RWIX                EXTPROG   00008800  000008000  00000000     RWIX       PAGE 1: B2        00000060  000000020  00000000     RWIX                B0        00000200  000000100  00000026     RWIX                B1        00000300  000000100  00000000     RWIX                SARAMDAT  00000800  000000800  00000400     RWIX                EXTDATA   00008000  000008000  00000000     RWIX       SECTION ALLOCATION MAP output                                  attributes/ section   page    origin      length       input sections --------  ----  ----------  ----------   ---------------- .text      0    00008000    0000016c                        00008000    000000f5     example_c.obj (.text)                   000080f5    00000000     cvectors.obj (.text)                   000080f5    00000027     rts2xx.lib : boot.obj (.text)                   0000811c    00000050                : exit.obj (.text) .const     1    00000300    00000000     UNINITIALIZED .bss       1    00000200    00000026     UNINITIALIZED                   00000200    00000022     rts2xx.lib : exit.obj (.bss)                   00000222    00000000     cvectors.obj (.bss)                   00000222    00000000     rts2xx.lib : boot.obj (.bss)                   00000222    00000004     example_c.obj (.bss) .stack     1    00000800    00000400     UNINITIALIZED                   00000800    00000000     rts2xx.lib : boot.obj (.stack) .sysmem    1    00000200    00000000     UNINITIALIZED vectors    0    00000000    00000040                        00000000    00000040     cvectors.obj (vectors) .data      1    00000000    00000000     UNINITIALIZED                   00000000    00000000     example_c.obj (.data)                   00000000    00000000     rts2xx.lib : exit.obj (.data)                   00000000    00000000                : boot.obj (.data)                   00000000    00000000     cvectors.obj (.data) .cinit     0    00000044    00000007                        00000044    00000006     rts2xx.lib : exit.obj (.cinit)                   0000004a    00000001     --HOLE-- [fill = 0000] GLOBAL SYMBOLS address  name                             address  name -------- ----                             -------- ---- 00000200 .bss                             00000000 .data 00000000 .data                            00000000 edata 00008000 .text                            00000044 cinit 00008169 C$$EXIT                          00000200 .bss 00000400 __STACK_SIZE                     00000201 __cleanup_ptr 00000201 __cleanup_ptr                    00000222 _p_ram 00008169 _abort                           00000223 _a 00000223 _a                               00000224 _b 0000814a _atexit                          00000225 _d_ram 00000224 _b                               00000226 end 000080f5 _c_int0                          00000400 __STACK_SIZE 00000225 _d_ram                           00008000 _main 0000802c _data_ram_check                  00008000 .text 0000811c _exit                            0000802c _data_ram_check 00008000 _main                            0000809d _prog_ram_check 00000222 _p_ram                           000080f5 _c_int0 0000809d _prog_ram_check                  0000811c _exit 00000044 cinit                            0000814a _atexit 00000000 edata                            00008169 _abort 00000226 end                              00008169 C$$EXIT 0000816c etext                            0000816c etext ffffffff pinit                            ffffffff pinit [22 symbols]   详情 回复 发表于 2007-9-11 02:13
点赞 关注

回复
举报

59

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
我们在写cmd文件时,memery中各需要命名的存贮器,大小怎么确定?sectons中需要那些段名,他们的长度怎么定?
MEMORY
{
  PAGE 0:
    VECS:         origin=00h,    length=040h
    FLASH1:       origin=044h,  length=07000h
    FLASH2:       origin=7044h, length=0FBCh
  PAGE 1:
    B2:             origin=00060h,   length=00020h
    B0:             origin=00200h,   length=00100h
    B1:             origin=00300h,   length=00100h
    SARAM:          origin=00800h,   length=00800h
}
SECTIONS
{
       .text:  >   FLASH1      PAGE 0   /* initialized */
       .cinit:  >   FLASH1      PAGE 0   /* initialized */
       .const:  >   FLASH2      PAGE 0   /* initialized */
      .switch:  >   FLASH1      PAGE 0   /* initialized */
     .ext_bss:  >   B0         PAGE 1   /* uninitialized */
      .stack:  >   SARAM      PAGE 1   /* uninitialized */
     .sysmem:  >   B1         PAGE 1   /* uninitialized */
      .vectors:  >   VECS       PAGE 0   /* initialized */
                .bss:  >   SARAM      PAGE 1   
  .disp_const:  >   B1              PAGE 1
}
就是问上面memery中flash1,f\'lash2,他们的大小,命名的规则,sections中,.text,.cinit,.const的等类似的需要定义哪些?他们该放在什么位置?
 
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
可以参照相应的DSP内部的程序,数据以及IO空间的地址分配进行修改

一般中断向量放在开始

要执行的程序放在FLASH中就可以

其它用不到的空间不设置也行
 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

4
 
我也是这个问题,就是一段程序占多大的空间怎么计算?
 
 
 

回复

98

帖子

0

TA的资源

一粒金砂(初级)

5
 
看项目文件里的*.map文件,里面有的。
起始空间,占多大。都一清二楚的。希望大家能看明白。
有了它,你就好改地址空间分配了。


看下面的map例子
******************************************************************************
TMS320C1x/C2x/C2xx/C5x COFF Linker           Version 7.00                  
******************************************************************************
>> Linked Fri Feb 28 01:35:47 2003

OUTPUT FILE NAME:   <example_c.out>
ENTRY POINT SYMBOL: \"_c_int0\"  address: 000080f5


MEMORY CONFIGURATION

           name     origin    length      used    attributes    fill
         --------  --------  ---------  --------  ----------  --------
PAGE 0: VECS      00000000  000000040  00000040     RWIX      
         FLASH     00000044  000007fbc  00000007     RWIX      
         SARAMPRO  00008000  000000800  0000016c     RWIX      
         EXTPROG   00008800  000008000  00000000     RWIX      

PAGE 1: B2        00000060  000000020  00000000     RWIX      
         B0        00000200  000000100  00000026     RWIX      
         B1        00000300  000000100  00000000     RWIX      
         SARAMDAT  00000800  000000800  00000400     RWIX      
         EXTDATA   00008000  000008000  00000000     RWIX      


SECTION ALLOCATION MAP

output                                  attributes/
section   page    origin      length       input sections
--------  ----  ----------  ----------   ----------------
.text      0    00008000    0000016c     
                  00008000    000000f5     example_c.obj (.text)
                  000080f5    00000000     cvectors.obj (.text)
                  000080f5    00000027     rts2xx.lib : boot.obj (.text)
                  0000811c    00000050                : exit.obj (.text)

.const     1    00000300    00000000     UNINITIALIZED

.bss       1    00000200    00000026     UNINITIALIZED
                  00000200    00000022     rts2xx.lib : exit.obj (.bss)
                  00000222    00000000     cvectors.obj (.bss)
                  00000222    00000000     rts2xx.lib : boot.obj (.bss)
                  00000222    00000004     example_c.obj (.bss)

.stack     1    00000800    00000400     UNINITIALIZED
                  00000800    00000000     rts2xx.lib : boot.obj (.stack)

.sysmem    1    00000200    00000000     UNINITIALIZED

vectors    0    00000000    00000040     
                  00000000    00000040     cvectors.obj (vectors)

.data      1    00000000    00000000     UNINITIALIZED
                  00000000    00000000     example_c.obj (.data)
                  00000000    00000000     rts2xx.lib : exit.obj (.data)
                  00000000    00000000                : boot.obj (.data)
                  00000000    00000000     cvectors.obj (.data)

.cinit     0    00000044    00000007     
                  00000044    00000006     rts2xx.lib : exit.obj (.cinit)
                  0000004a    00000001     --HOLE-- [fill = 0000]


GLOBAL SYMBOLS

address  name                             address  name
-------- ----                             -------- ----
00000200 .bss                             00000000 .data
00000000 .data                            00000000 edata
00008000 .text                            00000044 cinit
00008169 C$$EXIT                          00000200 .bss
00000400 __STACK_SIZE                     00000201 __cleanup_ptr
00000201 __cleanup_ptr                    00000222 _p_ram
00008169 _abort                           00000223 _a
00000223 _a                               00000224 _b
0000814a _atexit                          00000225 _d_ram
00000224 _b                               00000226 end
000080f5 _c_int0                          00000400 __STACK_SIZE
00000225 _d_ram                           00008000 _main
0000802c _data_ram_check                  00008000 .text
0000811c _exit                            0000802c _data_ram_check
00008000 _main                            0000809d _prog_ram_check
00000222 _p_ram                           000080f5 _c_int0
0000809d _prog_ram_check                  0000811c _exit
00000044 cinit                            0000814a _atexit
00000000 edata                            00008169 _abort
00000226 end                              00008169 C$$EXIT
0000816c etext                            0000816c etext
ffffffff pinit                            ffffffff pinit

[22 symbols]


 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表