嵌入式开发者社区

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

作者: vtinf    时间: 2016-9-29 11:57
标题: 如何查看syslink 组件使用共享内存的情况
您好,        在使用OMAPL138 evm过程中,我使用了MessageQ和ringIO来传输数据。利用ipcs -l ,情况如下:
: X/ f2 g2 w, i/ R6 [5 ^$ mroot@tl:~# ipcs -l7 {# s# u$ ?' \3 _1 }
* |3 w+ I' V6 i7 @# C3 P
------ Shared Memory Limits --------5 S( j+ c1 B/ q$ ^9 m
max number of segments = 40969 v4 ~8 C- A  P/ P! W" ^$ ~0 [
max seg size (kbytes) = 32768; i* N! t4 R3 Y4 G
max total shared memory (kbytes) = 83886084 W' l7 O% q% r( V2 T- Z. b
min seg size (bytes) = 19 V* `+ ^* ]9 {* q& {8 \9 x$ A8 W
. M1 t1 o& p6 m! v( P
------ Semaphore Limits --------! P2 T+ t8 ]5 v$ k
max number of arrays = 128
0 ^; @! v9 G7 j& v) C6 jmax semaphores per array = 250' j) M0 I" s" q/ H
max semaphores system wide = 32000
6 B, h6 C! x4 H3 F! y4 Emax ops per semop call = 32, s) D% W/ s! v3 Z  m0 n. K  q; {& _
semaphore max value = 32767) E  e+ b0 n4 n- V: N

3 N9 _- w8 K7 ]3 r: v* ]5 [* q) \------ Messages Limits --------# M- H5 G; p- \$ c" g! L. _
max queues system wide = 178
. e" `% Q' r6 qmax size of message (bytes) = 8192
; e7 l; U4 W2 I- A2 [: mdefault max size of queue (bytes) = 16384
5 q. p. \0 ]* X! ]* ^' e3 o( s" `8 I& R- E2 K; B

2 A: N  l' U: ~但是,用ipcs -a & z9 R- O2 a# `+ t( `: _& F) P$ `9 P
root@tl:~# ipcs -a8 k" t, f2 |. e* r8 `! o
' N8 \) |$ k- B' G; ~
------ Shared Memory Segments --------
; ^2 F* M9 W8 ?0 f1 X6 b; S6 c& {key        shmid      owner      perms      bytes      nattch     status      ; B5 O# Y: u2 y2 h0 p% |9 O
0x00000000 0          root       600        1024       1          dest         9 e( T/ G/ ?. T
0x00000000 196609     root       600        1024       1          dest         
4 r/ c5 n: P. m' X/ a5 u% b9 r- ]% M+ b# O, h7 m8 B3 y& {
------ Semaphore Arrays --------
( s2 x' M3 m: W# g3 }( `/ @! fkey        semid      owner      perms      nsems     
( y! |* s. w/ ?; V, Q0x6411074d 0          root       600        1         5 [5 t" B! @# G* L' m. p5 Z& e+ a
0x64110957 163841     root       600        1         
. r) I* `" L3 f0x641109a1 196610     root       600        1         # n' l3 @5 K5 _1 p8 w% m+ j+ @
5 d3 R  W4 U, L: Y& H3 W
------ Message Queues --------
4 V/ w1 s% f( j" skey        msqid      owner      perms      used-bytes   messages   
  w5 B" Z4 Q7 L% v) k$ v* k$ j# M& v& F; _: \
' u& j- g/ m) ]
请问,我的共享内存使用大小为 (float *)ring_buffer_acquired(ad->buffer, 2320 * sizeof(float)*18);  远大于1024BYTE ,请问为什么?
7 H, O! D- |  N" u
4 {7 h8 i% \( G) n
作者: 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://51dsp.net/) Powered by Discuz! X3.4