st7100 st7101 st7109 memory map

来源:互联网 发布:软件结构图 编辑:程序博客网 时间:2024/04/26 14:45

题记:

整理电脑的时候,无意中发现了自己以前项目中写下的文档,也备份一下,毕竟每过一年,就老一年,记性也坏一年,呵呵!

ST710X MEMORY MAPV1.3


修订记录

l         2008/11/09     V1.0              XXX

初稿

l         2008/12/05    V1.1               XXX

增加cisco项目配置情况

l         2008/12/08    V1.2               XXX

修正上个版本问题

l         2008/12/11     V1.3              XXX

修正上个版本问题

 


一 注意事项

 

1          ST7101平台的MEM MAP大体相同,但根据具体应用,每个项目会有所改动。

 

2          ST7101使用2片内存

其中一片的起始地址为0X8400 0000,大小为128M。存我们的微码,主程序,AV MEM1

另外一片的起始地址为0XB000 0000,大小为64M。存AV MEM2, 为VIDEO使用。

 

3          当微码或AV MEM1的尺寸发生改变后,一定需要同时修改配置文件hmp_7109_board.mem (定义123块内存边界)和hmp_7109.h(定义第2块内存内部详细分配情况)

 

4          当主程序,Sysmem Nocache的尺寸发生改变,但第2块内存总大小保持不变,只需要修改配置文件hmp_7109.h

 

5          我们目前对内存的修改基本上都是基于内存0X8400 0000。到目前为止,我们没有更改过内存0XB000 0000
            
   DVT6010内存配置

 

参考版本:test7

 

内存0XB000 0000

起始地址

0xb0000000 - 0xb4000000

名称

          AV MEM2(VIDEO)

尺寸

              64M

 

内存0X8400 0000

1   系统的配置概况:(注:修改hmp_7109_board.mem)

起始

地址

0x84000000-

0x84500000

0x8450 0000 – 0x88f0 0000

0x88F0 0000-

0X8C00 0000

名称

微码

Elf文件的各个分段 + heap + Stack

AV MEM1

尺寸

  5M

           74M

     49M

 

2   系统的详细配置:(注:太小的section没有列出来)

开始地址     结束地址

   尺度大小

       用途名称

0x8400 0000 -  0x8450 0000

 

     5   M

 

音视频微码,ST默认为6M,为省空间,我们修改其为5M

0x8450 0000 – 0x84E1 34A0

     9.1 M

.text  

(可执行程序的代码段)

0x84E1 34A0 – 0x8569 DD00

     8.5 M

.rodata

(程序中的只读数据)

0x8569 DD00 – 0x85A2 0000

     3.5 M

.data  

(已初始化的静态和全局数据)

0x85A2 0000 – 0x885B 8DA0

     43.6M

.bss   

(未初始化的静态和全局数据)

0x885B 8DA0 – 0x88F0 0000

 

     9.3 M

.heap + .stack

(系统的堆和栈,堆向上增,栈向下减)

0x88F0 0000 – 0x8C00 0000

49  M

AV MEM1

 

     128 M

 

 

   

 

1   第三方已经使用的内存分析:

(1) .bss中,ST开辟了一个30M的数组。其中3M作为NoCacheMemory5MST驱动使用。

2   可供Digivision使用的内存分析:

(1) .bss,共有43.5-30=13.5M为我们使用;(全局或者静态数据)

(2) .bss,还有30-3-5 =22 M 为我们malloc使用;(注意:需要调用我们RTOS_Malloc分配函数)

(3) .heap.stack,共享9M。建议留2Mstack使用,所以我们最多可以malloc 7M。(直接通过malloc函数分配)


  DVT6020内存配置

参考版本:test36

内存0XB000 0000

起始地址

0xb0000000 - 0xb4000000

名称

          AV MEM2(VIDEO)

尺寸

              64M

 

内存0X8400 0000

1   系统的配置概况:(注:修改hmp_7109_board.mem)

起始

地址

0x84000000-

0x84500000

0x8450 0000 –

0x88d0 0000

0x88d0 0000-

0X88f0 0000

0x88f0 0000-

0X8c00 0000

 

名称

 

微码

Elf文件的各个分段

+ heap + Stack

 

NDS 专用

 

AV MEM1

尺寸

5M

72M

    2M

    49M

2   系统的详细配置:(注:太小的section没有列出来)

开始地址    结束地址

   尺度大小

       用途名称

0x8400 0000 -  0x8450 0000

 

     5   M

 

音视频微码,ST默认为6M,为省空间,我们修改其为5M

0x8450 0000 – 0x84EA B500

     9.6 M

.text

0x84EA B500 – 0x856B 7FA0

     8   M

.rodata

0x856B 7FA0 – 0x85A1 F18C

     3.4 M

.data

0x85A1 F18C – 0x86D7 ECD8

     19.5M

.bss

0x86D7 ECD8 – 0x88CF FFFC

 

     31.5M

.heap + .stack

0x88CF FFFC – 0x88F0 0000

     2   M

NDS专用的一段固定地址空间

0x88F0 0000 – 0x8C00 0000

     49  M

AV MEM1

 

 

     128 M

 内存大体上分3部分来管理

1   第三方已经使用的内存分析:

(1) AV MEM1中,NDS分配了2M,并且此内存空间地址固定。

(2) .bss中,NDS申请了一个6.5M的未初始化的数组。SecMemory[1024*1025*5.5]SecNCacheMemory[1024*1024], 并分别用指针*sec_partition_stfae, *sec_ncache_partition_stfae指向。

(3) .heap中,ST malloc28M内存(*system_partition_stfae指向),ST malloc3M内存(* ncache_partition_stfae指向)。其中根据ST统计:在system_partition_stfae中有5M ST驱动已经使用。

2   可供Digivision使用的内存分析:

(1) .bss, 现在大小为19.5M,但其中NDS申请了两个数组,共计6.5M.(注意:.bss段的大小不需要我们人为指定,它是根据程序实际使用的数组大小而计算出来的)

(2) .heap.stack,现在共享31.5M内存,其中已经申请了28M,故剩余的 3.5M为我们malloc.stack共同享有。(注意:直接通过malloc函数分配)

(3) RTOS_Malloc使用的内存都是从system_partition_stfae 28M中分配出来。


二   8488内存配置

 

参考版本:test0

 

内存0XB000 0000

起始地址

0xb0000000 - 0xb4000000

名称

          AV MEM2(VIDEO)

尺寸

              64M

 

内存0X8400 0000

1   系统的配置概况:(注:修改hmp_7109_board.mem)

起始

地址

0x84000000-

0x84600000

0x8460 0000 – 0x88f0 0000

0x88F0 0000-

0X8C00 0000

名称

微码+ CISCO

Elf文件的各个分段 + heap + Stack

AV MEM1

尺寸

 5M + 1M

           73M

     49M

 

2   系统的详细配置:(注:太小的section没有列出来)

开始地址     结束地址

   尺度大小

       用途名称

0x8400 0000 -  0x8460 0000

 

     6 M

 

音视频微码,ST默认为6M,为省空间,我们修改其为5M + 1M

0x8450 0000 – 0x84E1 34A0

     9   M

.text  

(可执行程序的代码段)

0x84E1 34A0 – 0x8569 DD00

     8   M

.rodata

(程序中的只读数据)

0x8569 DD00 – 0x85A2 0000

     6.0 M

.data  

(已初始化的静态和全局数据)

0x85A2 0000 – 0x885B 8DA0

     42  M

.bss   

(未初始化的静态和全局数据)

0x885B 8DA0 – 0x88F0 0000

 

     8  M

.heap + .stack

(系统的堆和栈,堆向上增,栈向下减)

0x88F0 0000 – 0x8C00 0000

49  M

AV MEM1

 

     128 M

 

 

   

 

1   第三方已经使用的内存分析:

(1) .bss中,ST开辟了一个30M的数组。其中3M作为NoCacheMemory5MST驱动使用。

2   可供Digivision使用的内存分析:

(1) .bss,共有43.5-30=13.5M为我们使用;(全局或者静态数据)

(2) .bss,共有30-3-5 =22 M 为我们使用;(注意:需要调用我们RTOS_Malloc分配)

(3) .heap.stack,共享8M。建议留2Mstack使用,所以我们最多可以malloc 6M。(通过malloc函数分配)