如何查看syslink 组件使用共享内存的情况 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 5734|回复: 2
打印 上一主题 下一主题

[已解决] 如何查看syslink 组件使用共享内存的情况

[复制链接]

32

主题

54

帖子

1263

积分

金牌会员

Rank: 6Rank: 6

积分
1263
跳转到指定楼层
楼主
发表于 2016-9-29 11:57:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
您好,        在使用OMAPL138 evm过程中,我使用了MessageQ和ringIO来传输数据。利用ipcs -l ,情况如下:+ ?% ?+ s5 Q8 x  a' k
root@tl:~# ipcs -l) d9 X0 F4 W5 S5 x  Y
' L) X- a4 X# w" c; V  ]6 A$ X+ f
------ Shared Memory Limits --------
$ R* D# R# o! x9 m- D5 a" pmax number of segments = 40960 ]! D8 M) g& _* n# A- |8 X" t  F
max seg size (kbytes) = 32768
. R/ @8 m  R3 J7 Ymax total shared memory (kbytes) = 8388608
% a( o, g- K% w& k8 Hmin seg size (bytes) = 1
5 {1 {1 B: J+ j; H. W( r6 ?5 Z& O6 S3 j7 u" v1 t* G# F
------ Semaphore Limits --------0 Y* n" R8 U9 \) G7 A5 R; ^
max number of arrays = 128
+ f7 D& T2 i+ h+ y4 c" c# Emax semaphores per array = 250
. a0 t" ^- z  h) C  @( g- b# Qmax semaphores system wide = 320002 c$ o) H9 h4 r
max ops per semop call = 32- u; h/ S& Y5 a
semaphore max value = 32767
6 D# G2 |+ y1 J4 e+ e3 }4 n+ E; p. k8 D" k) |; y* P, U
------ Messages Limits --------
0 p5 f$ {4 e. G5 F0 Cmax queues system wide = 178
, l) @+ N  M% N. |( ?4 _max size of message (bytes) = 8192
& t9 u, ^. m: u+ V+ udefault max size of queue (bytes) = 16384( K9 g& ]7 b5 k  K! V/ c7 h+ G

$ k8 c6 k, k8 o6 |6 U- }  H, f7 F4 y& \0 ?
但是,用ipcs -a
) k0 i; P3 I9 a8 z0 broot@tl:~# ipcs -a2 ^' d  h2 N6 D* C" `5 P
* i+ l6 d2 l$ m# h
------ Shared Memory Segments --------
1 \; c8 B& s; x. ikey        shmid      owner      perms      bytes      nattch     status      
+ T7 J; ]5 a  F, |  \  J8 j+ O0x00000000 0          root       600        1024       1          dest         
. o3 I& \( {% a/ ^: K; A0x00000000 196609     root       600        1024       1          dest         
! B, `& d* _. x+ l' p& ?( S7 |
  \2 }- j/ {/ F: p* J------ Semaphore Arrays --------
; T9 [) A- }5 U+ X) h6 rkey        semid      owner      perms      nsems     $ t/ r0 A$ K6 J" Y' f0 O
0x6411074d 0          root       600        1         
: e! l% {( N2 h6 r8 `# Y0x64110957 163841     root       600        1           ~: H; U/ i, u9 L
0x641109a1 196610     root       600        1         ' @: c( E. x  _. R4 ^" _

$ e8 n% M8 x6 Y) Y3 U------ Message Queues --------
. W. D  H' q" Y* J! gkey        msqid      owner      perms      used-bytes   messages   * u/ P9 o, O, F- M; t

+ X4 U' l1 Z2 V: z8 @) t4 z) A: g9 n) z, Q9 j
请问,我的共享内存使用大小为 (float *)ring_buffer_acquired(ad->buffer, 2320 * sizeof(float)*18);  远大于1024BYTE ,请问为什么?& W" B* `$ N. H) D9 Z! N6 e, A9 ~

" K6 ^1 |/ y; d& V4 n2 b; G" H4 L
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

0

主题

113

帖子

2100

积分

创龙

Rank: 8Rank: 8

积分
2100
沙发
发表于 2016-9-30 09:27:35 | 只看该作者
ipcs 查看的是 Linux 进程间通信的 ipc 资源,而 syslink 所使用的共享内存,并不属于 linux 的,它是 arm 和 dsp 之间的共享内存,通过 syslink 组件访问。或者 linux  下 mmap 也可以。但是 ipcs 无法查询。
回复 支持 反对

使用道具 举报

0

主题

113

帖子

2100

积分

创龙

Rank: 8Rank: 8

积分
2100
板凳
发表于 2016-9-30 09:43:43 | 只看该作者
如果是在 8148 上,可以使用 sys_top 命令来查看多核之间的共享内存情况,但 138 不支持。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|嵌入式开发者社区 ( 粤ICP备15055271号

GMT+8, 2025-8-3 12:00 , Processed in 0.035452 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

快速回复 返回顶部 返回列表