嵌入式开发者社区

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

作者: vtinf    时间: 2016-9-29 11:57
标题: 如何查看syslink 组件使用共享内存的情况
您好,        在使用OMAPL138 evm过程中,我使用了MessageQ和ringIO来传输数据。利用ipcs -l ,情况如下:  k9 x5 i0 \" h+ ~. o  [
root@tl:~# ipcs -l) _1 u- {+ l3 n

$ D+ Q9 z  O4 x: f  p------ Shared Memory Limits --------
  R2 E- ^3 L/ M$ O. P& k1 vmax number of segments = 40963 o+ V& w' n' M$ z3 c* m( j
max seg size (kbytes) = 32768
; }: a7 A! h( umax total shared memory (kbytes) = 8388608" t: m# T  D: k7 b) W! ~3 j3 J/ I
min seg size (bytes) = 1
% U. F3 k5 i) ]* l1 d; y7 P6 k& N3 |0 x) H4 v& o. ~, P
------ Semaphore Limits --------
- a" ^! s: c* e% G+ Z* Dmax number of arrays = 128
# n4 j' H  r$ H$ H3 Vmax semaphores per array = 250
9 u& k, F$ L) V) ]; I4 fmax semaphores system wide = 32000& Q# H. V( K, u
max ops per semop call = 32' U1 d6 W1 f) e  p9 t
semaphore max value = 32767( k& g% g, u  N8 W

+ t4 j. G* v3 Y/ z1 f------ Messages Limits --------- c2 n4 t6 f3 x! M! E( [( n! y- w: u
max queues system wide = 178' H7 p& j- s3 u
max size of message (bytes) = 8192  m% v" H3 _0 k. M& }
default max size of queue (bytes) = 16384, x" {* E" f5 u/ z1 c7 j
0 W- i8 |5 B. j) L
) E9 i0 \7 j# M7 ?
但是,用ipcs -a " |0 y' s1 n% c
root@tl:~# ipcs -a! c4 a% z5 n# N, l. _9 f

( d. [' x% F/ Q! g) }------ Shared Memory Segments --------3 f3 J( _1 a( A" k/ c* n
key        shmid      owner      perms      bytes      nattch     status      
6 w% j2 |/ v% F. R) `/ [, J0x00000000 0          root       600        1024       1          dest         
7 c+ Y: ^0 R  m7 h2 p0x00000000 196609     root       600        1024       1          dest         , g$ k/ J, U: c9 |* c7 n, E" v
, T! B+ C+ W3 w) n# W1 a6 v' e- \
------ Semaphore Arrays --------# Y+ q' R( ^% I; p( v
key        semid      owner      perms      nsems     0 W* V3 i( n, W- F* N# s1 ^
0x6411074d 0          root       600        1         - O1 g$ k6 b3 }  F" x5 P
0x64110957 163841     root       600        1         
% P, B# t* j+ T, {0x641109a1 196610     root       600        1         
8 T5 O" j* D* b6 A2 q& E* Y2 T1 L3 W/ P9 q9 _0 {" l( w" q
------ Message Queues --------
' ]9 }  e/ x' \8 A" J/ ykey        msqid      owner      perms      used-bytes   messages   , d1 t. G2 n  h) r% l# X

3 g+ W3 p+ p* Q! t
" Q/ @0 I5 h# d请问,我的共享内存使用大小为 (float *)ring_buffer_acquired(ad->buffer, 2320 * sizeof(float)*18);  远大于1024BYTE ,请问为什么?
" ]; O1 r4 @" o( D5 h0 P/ C$ z1 Q* a: ~) b( P2 n6 G

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