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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

32

主题

54

帖子

1263

积分

金牌会员

Rank: 6Rank: 6

积分
1263
跳转到指定楼层
楼主
发表于 2016-9-29 11:57:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
您好,        在使用OMAPL138 evm过程中,我使用了MessageQ和ringIO来传输数据。利用ipcs -l ,情况如下:
/ @+ k9 s/ C+ w8 J1 w* @root@tl:~# ipcs -l7 n" H3 o' s1 i$ L5 G2 @$ c& W# Z

. n: |( D; l  ^4 R. W" R% F------ Shared Memory Limits --------
9 z; `0 `3 A! omax number of segments = 4096+ X0 {- i- ?8 U* ~
max seg size (kbytes) = 32768. ~" Q" t& ]* b6 W% A; M
max total shared memory (kbytes) = 8388608* ^, _  p& A: y0 n4 b" ~( a" ^) M
min seg size (bytes) = 1! s) `$ ]1 L% v4 `
3 z& L/ f; n5 r( C2 C7 X
------ Semaphore Limits --------
4 G1 j+ p" Y  W; a$ |( `$ r) Dmax number of arrays = 128# r1 O" Z8 P4 x9 J. J0 ?- r
max semaphores per array = 250
% x3 G" M+ t( W$ @- e7 l8 P9 w' L' Omax semaphores system wide = 32000
4 }2 ]( ?( [/ I3 f+ Nmax ops per semop call = 32# Z0 n) y0 F5 m; z7 B
semaphore max value = 32767! l8 x+ `1 ]: ]8 h  S
1 r2 [8 K8 h( |' E& N
------ Messages Limits --------' ^) y  U2 z, S* s' h6 A3 F/ m
max queues system wide = 1780 X+ R6 c6 d, U( V, Y
max size of message (bytes) = 8192
. \5 f) M) @/ a& Sdefault max size of queue (bytes) = 16384# c/ a4 V  U& F1 \
7 H: F1 U' S8 f7 U! z# p! H5 H
0 q# @" U9 k& z/ O$ v8 I
但是,用ipcs -a
! ~- G1 I. P1 }' w, }root@tl:~# ipcs -a$ y9 K7 j" v8 o: s

4 f8 d4 {$ t9 y4 ^0 W+ f6 F------ Shared Memory Segments --------# o6 s0 j3 A' D" v: @% L1 I9 f
key        shmid      owner      perms      bytes      nattch     status      
! h2 n) N3 w/ G# t/ [' y( q+ B0x00000000 0          root       600        1024       1          dest         
0 |$ @+ W; n8 F& k8 y! a0x00000000 196609     root       600        1024       1          dest         
4 O! G/ [& ~" c4 G$ Y5 m. X# H! s, @8 u: Z2 x
------ Semaphore Arrays --------
8 {. c% T8 q! N: X8 ?key        semid      owner      perms      nsems     
- I+ F" w9 L: d0x6411074d 0          root       600        1         
1 ?% a7 e# {- _! F: |0x64110957 163841     root       600        1         
9 t' y/ O# D4 ~) Z! ]+ d+ K0x641109a1 196610     root       600        1         
1 e" L1 H2 Q- D/ u* R8 K  X; o( |0 ^( g3 U  v
------ Message Queues --------) e# F6 T5 b9 B* v4 ]6 S
key        msqid      owner      perms      used-bytes   messages   6 F, d8 M" E5 c9 ?& J( }

6 u; x  }  o( s" y4 Q& M2 r0 u* h& |+ y8 F
请问,我的共享内存使用大小为 (float *)ring_buffer_acquired(ad->buffer, 2320 * sizeof(float)*18);  远大于1024BYTE ,请问为什么?
+ Y! h2 V" P' C# \/ }1 q0 f  g5 Y% I+ d3 L7 t  `
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

0

主题

113

帖子

2121

积分

创龙

Rank: 8Rank: 8

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

使用道具 举报

0

主题

113

帖子

2121

积分

创龙

Rank: 8Rank: 8

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-10-16 14:40 , Processed in 0.035130 second(s), 23 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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