嵌入式开发者社区

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

作者: vtinf    时间: 2016-9-29 11:57
标题: 如何查看syslink 组件使用共享内存的情况
您好,        在使用OMAPL138 evm过程中,我使用了MessageQ和ringIO来传输数据。利用ipcs -l ,情况如下:
6 Z7 ~( D+ j; v+ g9 e# O$ vroot@tl:~# ipcs -l5 v% h* v  H/ }3 k2 ^) x% Q
( I& u2 r- E* }# N) g- q
------ Shared Memory Limits --------
, N3 y# @+ w) Q/ Y/ Z) Z/ qmax number of segments = 4096( ?1 Q/ S! u  Q$ }9 ^3 k
max seg size (kbytes) = 327681 L8 D  X* [3 D, H* B( C/ }
max total shared memory (kbytes) = 8388608
7 j7 u  k4 f" n: d* qmin seg size (bytes) = 1
  n) }# ^) s9 p5 s- \+ j9 {. r" z3 D
. q% {9 Z! T6 C" B# V8 d------ Semaphore Limits --------
: _: s5 H/ _+ wmax number of arrays = 128% h" D/ w" R* r! T# X. s
max semaphores per array = 2508 a$ ~/ I: V. p7 q1 @2 Z
max semaphores system wide = 320005 V7 V3 k, r3 w9 F& v# A8 N; b! m
max ops per semop call = 32
# r+ [7 v7 H6 a; O- P% hsemaphore max value = 32767
' K: |. y; j) [: J  e5 y) F) \6 \8 J+ b# x: Z
------ Messages Limits --------
9 q1 [* R4 T: [- S, |3 J/ ]max queues system wide = 178* s! _& J. K: g2 B. j2 S6 N- w
max size of message (bytes) = 8192
5 K3 p& P3 F/ e; @9 w' G6 I) mdefault max size of queue (bytes) = 16384+ e" ]# r( z! G5 H% [4 X
9 L8 X8 d: g9 B& {2 z: l( n, k

- V- B* q/ E+ S" ^但是,用ipcs -a
) P0 W+ }2 _0 ?root@tl:~# ipcs -a" C8 h' H2 N/ f9 M$ m0 V
8 R( b7 I* u) `! s; \0 F" X8 i" C" u
------ Shared Memory Segments --------# c( S% a' u) s& X) l8 A
key        shmid      owner      perms      bytes      nattch     status      2 X* T, g4 x6 }% q( H  x' e# S
0x00000000 0          root       600        1024       1          dest         
; S8 g7 n# J- a; h7 |0x00000000 196609     root       600        1024       1          dest         * j' ]  i0 ?' a; n5 \1 T1 z

3 j/ t6 N7 X; P: G------ Semaphore Arrays --------
  A! B1 ~7 _( |key        semid      owner      perms      nsems     
$ v- v$ T+ n% n: w0x6411074d 0          root       600        1         : q% S  n7 X/ e' ~* R
0x64110957 163841     root       600        1         
, R, ^7 F# v) A' F; d# [0x641109a1 196610     root       600        1         ( e0 V* S6 z# I, i
, w- M) e: S) s+ ]# |
------ Message Queues --------# T5 h3 b) U5 l6 F: h8 S
key        msqid      owner      perms      used-bytes   messages   
. P# X) D2 l# E/ H
4 }' b! _; S) a* D: M# q9 R4 d' T1 [5 d' a; R
请问,我的共享内存使用大小为 (float *)ring_buffer_acquired(ad->buffer, 2320 * sizeof(float)*18);  远大于1024BYTE ,请问为什么?9 d' C* o" U8 ]6 X$ l4 e

' D( r/ a8 B# K
作者: 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