嵌入式开发者社区

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

作者: vtinf    时间: 2016-9-29 11:57
标题: 如何查看syslink 组件使用共享内存的情况
您好,        在使用OMAPL138 evm过程中,我使用了MessageQ和ringIO来传输数据。利用ipcs -l ,情况如下:
$ L/ R4 R. i4 q0 [* Y0 D; croot@tl:~# ipcs -l+ i! f6 Z$ C, c" Z: x
" f* [9 B7 G, z8 T) Q0 V
------ Shared Memory Limits --------
8 ~6 I' K9 E! N/ G7 J2 Cmax number of segments = 4096
0 I' l2 V' {. R  Emax seg size (kbytes) = 32768! g$ b4 X& t+ G" C$ U7 R1 o
max total shared memory (kbytes) = 8388608
5 S$ q% f' @6 t% C) {! ~$ l' }# imin seg size (bytes) = 1
: `0 x! B! h1 @5 ~8 i
! S! L" z4 t" j6 o5 w. P; p------ Semaphore Limits --------6 G  L/ h: X# E3 G
max number of arrays = 1285 B) @' u0 I! h, ]
max semaphores per array = 250- @* v% _+ O2 U
max semaphores system wide = 32000
1 _% q$ p+ b& S, Nmax ops per semop call = 329 \: w( p/ G  ]" ]! }, |4 f! i
semaphore max value = 327676 d% P/ a8 k8 p5 p% t/ E

# W2 {1 S: n' K( g/ ~4 R------ Messages Limits --------2 w7 u$ n, N+ n( g" b+ ~5 n5 ?! F- l
max queues system wide = 178
3 v2 Q3 D+ k, @! r1 O- J) J/ \max size of message (bytes) = 8192
- T8 m* q) U9 [+ X( Rdefault max size of queue (bytes) = 16384* z) Y2 n& l" P" Q) _6 z& G
" |6 e8 |4 N+ o2 q7 ~& X
% W3 m$ L0 u) s4 o
但是,用ipcs -a
2 `1 K( \2 ?. J) yroot@tl:~# ipcs -a8 G' S* M! [9 e5 Y

# a- ~5 \# r! Z, S% v) ^------ Shared Memory Segments --------8 c5 S- M: Y0 m* d1 `
key        shmid      owner      perms      bytes      nattch     status      & i' g% ^* g4 C# |
0x00000000 0          root       600        1024       1          dest         3 p- w, M* i8 @% p! s9 N; i8 P
0x00000000 196609     root       600        1024       1          dest         - H) v7 P; J! S) C% f6 p* Q! ^
& Z9 @1 Q6 k/ W- G( [5 `. {/ w0 ?; A; b
------ Semaphore Arrays --------6 Z& I, \1 B/ L
key        semid      owner      perms      nsems     * T! ~! }  `% i* q4 m1 Z
0x6411074d 0          root       600        1         ! Q- r+ N: X1 I4 y( C6 t
0x64110957 163841     root       600        1         # B' c8 p" b+ Y
0x641109a1 196610     root       600        1         $ C) i, X- @5 f0 @) W# @9 i& D2 r
5 e* T* A2 u& T; T
------ Message Queues --------8 ~' M& h1 B3 ^* W+ d/ d6 m3 X
key        msqid      owner      perms      used-bytes   messages   ) L5 S, w  I1 B* e& g: |* V) y
, |0 L9 }6 k9 s+ }. h
7 C1 U/ c7 t7 S/ V" P: k" b" I
请问,我的共享内存使用大小为 (float *)ring_buffer_acquired(ad->buffer, 2320 * sizeof(float)*18);  远大于1024BYTE ,请问为什么?
) A7 X4 z# j7 I6 O/ N) \" i# v- {, R7 ~; C, w2 B4 r3 d

作者: 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