嵌入式开发者社区

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

作者: vtinf    时间: 2016-9-29 11:57
标题: 如何查看syslink 组件使用共享内存的情况
您好,        在使用OMAPL138 evm过程中,我使用了MessageQ和ringIO来传输数据。利用ipcs -l ,情况如下:
9 d0 L3 F  ~; y% r- P; q( droot@tl:~# ipcs -l1 @$ `0 [" S& [  }9 J1 S0 I

0 `1 t. b+ S( _" x+ N( B" @------ Shared Memory Limits --------4 Z, [. Y  x( v1 `& N( y8 A9 Y
max number of segments = 4096
$ E" I+ i( T7 Kmax seg size (kbytes) = 32768
2 @0 i( P' k8 h4 D7 A! M. Q/ tmax total shared memory (kbytes) = 83886088 d# ]/ s6 Y# o$ `6 x$ g4 \
min seg size (bytes) = 1, f4 Q' B! ^  e% m# ]; E

) h- F0 Y  ?2 A( |4 m( m------ Semaphore Limits --------
1 C' M( C4 _8 M- O) e! gmax number of arrays = 1289 s; b- r) y, ^; y- F4 l& s
max semaphores per array = 250
; r3 H$ |8 Q  r% Y! z) t; C8 A5 tmax semaphores system wide = 320006 G! y5 |# P) Y) O, t0 u+ |, |
max ops per semop call = 32
* M0 Z3 Y* d& A  r! S$ lsemaphore max value = 32767
( |5 l, Y$ T! }6 w9 c$ |; d# d
; D6 H! z$ @/ r5 C------ Messages Limits --------6 `- Y6 n/ z. F0 a
max queues system wide = 178
" A6 {. {) T. H/ S9 Mmax size of message (bytes) = 8192
* E5 U2 ?( M" M9 F- tdefault max size of queue (bytes) = 16384! s4 l9 a& ?1 |& }% `
+ c( ?, O6 @1 W9 _* W
& H* b4 x' s/ @1 G
但是,用ipcs -a
' }9 g- d7 c& a  j  Aroot@tl:~# ipcs -a: g: a) Q# E+ J; ]# M, o' R2 E. j

3 h8 Z4 h% _8 S------ Shared Memory Segments --------1 U5 [. K5 N5 K+ m  H) }/ {' G
key        shmid      owner      perms      bytes      nattch     status      " P% P8 p# P, c( {+ |2 x4 l8 a
0x00000000 0          root       600        1024       1          dest         & }/ i+ }# T1 E; N* D5 Y
0x00000000 196609     root       600        1024       1          dest         
* u' P' _3 e9 Z/ Z7 L, n5 X* R4 s, L) E1 ^3 C+ {) E
------ Semaphore Arrays --------( Y+ z- C! C4 A. H5 O4 h* Q
key        semid      owner      perms      nsems     
  v+ b# ?- w& x8 u' A& ?/ |0x6411074d 0          root       600        1         : e5 M/ @/ w6 N+ @; B1 A
0x64110957 163841     root       600        1         
# p( N8 A8 z3 M8 Z% J9 K0x641109a1 196610     root       600        1         
. S8 B1 b8 x; O6 A) J1 d
/ \5 N' L. i& P------ Message Queues --------
; Z* l. C0 R0 ]" p  Ikey        msqid      owner      perms      used-bytes   messages   
2 h2 z3 C# h6 R! P
5 N  j- q2 l6 Q2 `3 L: i: L' b8 G: X! L8 m+ u! d4 j, {
请问,我的共享内存使用大小为 (float *)ring_buffer_acquired(ad->buffer, 2320 * sizeof(float)*18);  远大于1024BYTE ,请问为什么?
+ f( t0 m2 t* h- X- j
. B3 n$ \1 S9 m& C5 M
作者: 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