嵌入式开发者社区
标题:
如何查看syslink 组件使用共享内存的情况
[打印本页]
作者:
vtinf
时间:
2016-9-29 11:57
标题:
如何查看syslink 组件使用共享内存的情况
您好, 在使用OMAPL138 evm过程中,我使用了MessageQ和ringIO来传输数据。利用ipcs -l ,情况如下:
6 Z7 ~( D+ j; v+ g9 e# O$ v
root@tl:~# ipcs -l
5 v% h* v H/ }3 k2 ^) x% Q
( I& u2 r- E* }# N) g- q
------ Shared Memory Limits --------
, N3 y# @+ w) Q/ Y/ Z) Z/ q
max number of segments = 4096
( ?1 Q/ S! u Q$ }9 ^3 k
max seg size (kbytes) = 32768
1 L8 D X* [3 D, H* B( C/ }
max total shared memory (kbytes) = 8388608
7 j7 u k4 f" n: d* q
min seg size (bytes) = 1
n) }# ^) s9 p5 s- \+ j9 {. r" z3 D
. q% {9 Z! T6 C" B# V8 d
------ Semaphore Limits --------
: _: s5 H/ _+ w
max number of arrays = 128
% h" D/ w" R* r! T# X. s
max semaphores per array = 250
8 a$ ~/ I: V. p7 q1 @2 Z
max semaphores system wide = 32000
5 V7 V3 k, r3 w9 F& v# A8 N; b! m
max ops per semop call = 32
# r+ [7 v7 H6 a; O- P% h
semaphore max value = 32767
' K: |. y; j) [: J
e5 y) F) \6 \8 J+ b# x: Z
------ Messages Limits --------
9 q1 [* R4 T: [- S, |3 J/ ]
max queues system wide = 178
* s! _& J. K: g2 B. j2 S6 N- w
max size of message (bytes) = 8192
5 K3 p& P3 F/ e; @9 w' G6 I) m
default max size of queue (bytes) = 16384
+ e" ]# r( z! G5 H% [4 X
9 L8 X8 d: g9 B& {2 z: l( n, k
- V- B* q/ E+ S" ^
但是,用ipcs -a
) P0 W+ }2 _0 ?
root@tl:~# ipcs -a
" C8 h' H2 N/ f9 M$ m0 V
8 R( b7 I* u) `! s; \0 F" X8 i" C" u
------ Shared Memory Segments --------
# c( S% a' u) s& X) l8 A
key shmid owner perms bytes nattch status
2 X* T, g4 x6 }% q( H x' e# S
0x00000000 0 root 600 1024 1 dest
; S8 g7 n# J- a; h7 |
0x00000000 196609 root 600 1024 1 dest
* j' ] i0 ?' a; n5 \1 T1 z
3 j/ t6 N7 X; P: G
------ Semaphore Arrays --------
A! B1 ~7 _( |
key semid owner perms nsems
$ v- v$ T+ n% n: w
0x6411074d 0 root 600 1
: q% S n7 X/ e' ~* R
0x64110957 163841 root 600 1
, R, ^7 F# v) A' F; d# [
0x641109a1 196610 root 600 1
( e0 V* S6 z# I, i
, w- M) e: S) s+ ]# |
------ Message Queues --------
# T5 h3 b) U5 l6 F: h8 S
key msqid owner perms used-bytes messages
. P# X) D2 l# E/ H
4 }' b! _; S) a* D
: M# q9 R4 d' T1 [5 d' a; R
请问,我的共享内存使用大小为 (float *)ring_buffer_acquired(ad->buffer, 2320 * sizeof(float)*18); 远大于1024BYTE ,请问为什么?
9 d' C* o" U8 ]6 X$ l4 e
' D( r/ a8 B# K
作者:
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