嵌入式开发者社区

标题: 如何查看syslink 组件使用共享内存的情况 [打印本页]

作者: vtinf    时间: 2016-9-29 11:57
标题: 如何查看syslink 组件使用共享内存的情况
您好,        在使用OMAPL138 evm过程中,我使用了MessageQ和ringIO来传输数据。利用ipcs -l ,情况如下:
6 u2 ^7 f, J8 }7 X9 Croot@tl:~# ipcs -l
4 v5 g9 c" j( Y( D6 u  s( D
4 G) h- [  n9 r* k* U6 r0 w------ Shared Memory Limits --------7 _' U9 K1 B8 ], }7 K
max number of segments = 4096
- Q8 B7 j! h  ^6 A. l! `" j# smax seg size (kbytes) = 327681 f7 J  Q$ p( X' s
max total shared memory (kbytes) = 83886080 X! b( H* o7 Z- D6 Q
min seg size (bytes) = 1
3 X+ T8 g1 i" K% i2 w
9 U2 ?5 L8 J9 |6 q4 G) C' M------ Semaphore Limits --------( Z/ P) _' m0 _! R) h% {7 J0 j/ C- e2 V$ _! a
max number of arrays = 128; y0 A9 m* P! x5 ?8 w! J% S
max semaphores per array = 2509 r* c2 {) _/ B7 p& g
max semaphores system wide = 320004 Q' d" R" p/ u6 d" t8 e
max ops per semop call = 323 q' u+ h; a) U, W2 B( P
semaphore max value = 327676 T9 [, X" ^1 U; }" D& g
- `, F0 M) f$ ?
------ Messages Limits --------- ^" I' y$ }( y8 {8 P1 k
max queues system wide = 178
' `! p  k, M( f$ i( u9 W6 amax size of message (bytes) = 8192
6 T  X* q" i: g# Gdefault max size of queue (bytes) = 16384
& F( R( b/ i3 n* ?+ T( @* d5 w- w1 {: G! u  `* Y
2 x: f. y$ F& P4 ^, |) d
但是,用ipcs -a
8 j5 X6 \4 b7 l+ [root@tl:~# ipcs -a
6 u9 }' u& f: U8 P8 P  A4 Z
' d8 c2 F) O; J/ B% n& O7 ?9 M1 V------ Shared Memory Segments --------8 m2 d' [4 t9 K, ?# _7 E8 _" @
key        shmid      owner      perms      bytes      nattch     status      8 E# [# Q3 W3 R2 M) }6 x
0x00000000 0          root       600        1024       1          dest         : s. [# p- A2 h! F
0x00000000 196609     root       600        1024       1          dest         ( {9 w0 e7 i: S$ C4 _
  ]0 S+ D6 `& A4 e) o
------ Semaphore Arrays --------
$ W* z/ N% e# S' Nkey        semid      owner      perms      nsems     : t+ |: j' v/ g8 W( I! \
0x6411074d 0          root       600        1         ( _) C7 M7 p3 }' K4 G
0x64110957 163841     root       600        1         3 X( {* v- x1 T$ k! X: t. J
0x641109a1 196610     root       600        1         
2 b# d4 ^; w/ f7 d7 x' V& `+ Z( ]3 D. u# y( B2 c7 T: z0 J0 P7 y+ f
------ Message Queues --------
& n; n( C, E4 _; L: P1 K$ {key        msqid      owner      perms      used-bytes   messages   4 a& c" d. E& \$ Q

9 j; i& t7 m: G) g, R8 v! C0 ^- P6 h5 p0 U+ X3 c
请问,我的共享内存使用大小为 (float *)ring_buffer_acquired(ad->buffer, 2320 * sizeof(float)*18);  远大于1024BYTE ,请问为什么?
/ y1 ?; a9 s# {: ?4 Z3 m5 k/ a4 Q% U9 A$ a

作者: Jackindata    时间: 2016-9-30 09:27
ipcs 查看的是 Linux 进程间通信的 ipc 资源,而 syslink 所使用的共享内存,并不属于 linux 的,它是 arm 和 dsp 之间的共享内存,通过 syslink 组件访问。或者 linux  下 mmap 也可以。但是 ipcs 无法查询。
作者: Jackindata    时间: 2016-9-30 09:43
如果是在 8148 上,可以使用 sys_top 命令来查看多核之间的共享内存情况,但 138 不支持。




欢迎光临 嵌入式开发者社区 (https://www.51ele.net/) Powered by Discuz! X3.4