嵌入式开发者社区
标题:
如何查看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 v
max number of segments = 4096
3 o+ V& w' n' M$ z3 c* m( j
max seg size (kbytes) = 32768
; }: a7 A! h( u
max 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* D
max number of arrays = 128
# n4 j' H r$ H$ H3 V
max semaphores per array = 250
9 u& k, F$ L) V) ]; I4 f
max 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) `/ [, J
0x00000000 0 root 600 1024 1 dest
7 c+ Y: ^0 R m7 h2 p
0x00000000 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 L
3 W/ P9 q9 _0 {" l( w" q
------ Message Queues --------
' ]9 } e/ x' \8 A" J/ y
key 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