嵌入式开发者社区
标题:
Syslink中共享内存区的堆管理的疑问??
[打印本页]
作者:
小石
时间:
2017-5-18 18:35
标题:
Syslink中共享内存区的堆管理的疑问??
请教下创龙的兄弟们,我有一个疑问,就是在syslink视频教程 06 ImageRotation中有讲过,
, r% k- B4 [' _3 V+ K& b/ q1 t
"对共享内存区的管理都是通过Heap模块来管理的,每个SharedRegion在建立的时候,都可以指定是否在建立SharedRegion的时候,
K7 T+ l/ Y. Y! ~9 v' u h
直接将这个堆句柄进行建立,就可以通过SharedRegion_getHeap函数取回这个堆管理的句柄"
1 S9 e7 @+ |9 W" B1 q+ \& S9 j8 `- S
直接在应用中调用SharedRegion_getHeap函数能够获取 句柄,说明这个共享内存应该就有了堆管理了
# l$ Z% ]6 r$ Y
在cfg文件中设置SharedRegion条目的属性的时候可以通过
createHeap 来指定是否为该区域创建堆的布尔值。案例代码中没有设置,
- z, W$ q& s/ W" a5 [3 }- a
视频中有讲过说是默认是
创建堆。
v x U" m# j
不知道大家有看过TI官方案例 ex02_messageq和ex05_heapbufmp
8 R t) M, d, T6 u
在这两个案例当中都有在程序当中创建
HeapBufMP堆,按理说在 SharedRegion #1当中应该都是创建了
HeapMemMP堆,
( Q) w e( F! R! v- }' W U, x$ t, i" @
这样在
SharedRegion #1共享内存中就有两个堆了。
6 u' a1 V: s3 b
我的疑问就是:
! O, j* t& i. @% p
1, 在同一个共享内存区当中是否可以有两个Heap?
2 r8 x/ E4 M; L9 P
2,如果有的话,在同一个共享内存区当中是如何管理的? 是SharedRegion管理的吗?
" ^, ]' Q$ J8 Y; n
# H1 e5 R! W4 q. x
7 f9 \: _7 P8 n! I) I. d
谢谢!
q; U% h6 Q: J( N% j/ I* ^% Y
' w% \2 U5 C, G7 S$ G8 l L& q
作者:
tenny
时间:
2017-5-19 09:03
1、同一个共享内存区可以有 n 个 heap
& e5 N5 S4 @& r! G
2、heap 在构建的时候指定分配的内存是在哪个区域,能分配成功,由 heap 所属 sharedregion管理和决定
欢迎光临 嵌入式开发者社区 (https://www.51ele.net/)
Powered by Discuz! X3.4