嵌入式开发者社区

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

作者: vtinf    时间: 2016-9-29 11:57
标题: 如何查看syslink 组件使用共享内存的情况
您好,        在使用OMAPL138 evm过程中,我使用了MessageQ和ringIO来传输数据。利用ipcs -l ,情况如下:
# P" x! ?1 ~' D/ s  \1 j% N  Uroot@tl:~# ipcs -l4 a/ K" C% K0 E, [' W
  c4 E, H9 _2 T; o! w9 M
------ Shared Memory Limits --------, ^" I. z$ R$ u; f  K" r/ w6 h6 J+ T
max number of segments = 4096
2 q: ^/ @6 r, p4 x8 umax seg size (kbytes) = 327687 ]" K7 Z( _  m" C
max total shared memory (kbytes) = 8388608* m: |8 E: l' B
min seg size (bytes) = 1
; W# d( ]0 ?& {1 l- V/ ^2 j0 ]6 r# G) T1 u7 ~
------ Semaphore Limits --------
' d& N# O5 X6 ^5 ~6 vmax number of arrays = 1281 s! v/ g9 B. x( L/ a
max semaphores per array = 250. _: M/ x( h/ j3 m* O
max semaphores system wide = 32000$ Q6 O" F- o& c; G
max ops per semop call = 32, L0 C, p0 s" H! z1 s# r
semaphore max value = 32767
% R# y# ?" l5 U1 ]) u" g. \1 \3 W0 H. W$ v' z+ t$ y/ n
------ Messages Limits --------% X+ I# E- i" c' r, P
max queues system wide = 178
* l6 T8 _! h1 B6 ?0 wmax size of message (bytes) = 8192
$ }2 ]) N6 c. c% P9 Z* [default max size of queue (bytes) = 16384( r. M9 ]1 H/ \; W, \+ X6 s# E1 N
8 M; i' C/ H7 {5 h& [
* R5 t! k' I( Y
但是,用ipcs -a
) r& M- \, Z% J/ _& a# d/ _& oroot@tl:~# ipcs -a7 ]/ H! ]8 x0 s* b! E4 F

4 m' ~! Z; O% |% X------ Shared Memory Segments --------6 ^; H# h' ?2 k; j) i  U- N
key        shmid      owner      perms      bytes      nattch     status      
8 T: ^8 _0 T6 L; R- Z: {% v0x00000000 0          root       600        1024       1          dest         # @( b, k- t& v. m. e. H
0x00000000 196609     root       600        1024       1          dest         $ s9 _  x) Y& ]8 ~  K0 h% `9 h" p

* q* S/ Y% l$ @( i2 \7 h------ Semaphore Arrays --------
" s+ d5 o& y5 M6 W0 v- S& Jkey        semid      owner      perms      nsems     # k- s& U8 V# _  E& N4 E' U
0x6411074d 0          root       600        1         
! w$ w3 @0 B2 O% h0x64110957 163841     root       600        1         $ K! _/ N6 z1 H8 o6 [% v& e: Z
0x641109a1 196610     root       600        1         # S5 |- ]0 V, s

8 w& x7 L6 b4 B) L------ Message Queues --------
1 t# L, @5 k1 e. m+ P% e; j) ekey        msqid      owner      perms      used-bytes   messages   
/ y, T" k! C& U8 N9 ?. |/ Q$ j' c% W: h, \+ ?5 {' ^* g3 T
; @9 q4 _2 X! E
请问,我的共享内存使用大小为 (float *)ring_buffer_acquired(ad->buffer, 2320 * sizeof(float)*18);  远大于1024BYTE ,请问为什么?5 P, z4 k; K5 {+ b3 M+ [, K+ D* v
( k( h# j. P; Y, j( Y

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