|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
一、cfg文件配置6 M4 @% E7 ]' ~3 J4 G2 v$ @# V8 g
' k% D3 ?) C+ ?- var tskMainThread = Task.create("&StartNetworkTask"); /*创建TCP进程*/
- tskMainThread.stackSize = 0x2000;
- tskMainThread.priority = 0x5;
- tskMainThread.instance.name = "StartNetworkTask";
" @ N# K" J9 Y; R " [7 z8 |7 b2 L6 s- J# y; X
创建TCP进程 用于从上位机发送和接收图像。将在下一节中介绍
4 P: s t5 k4 G2 B7 r
6 ], @ t, ?( s6 _/ F. x) P二、main函数9 f8 ^3 [' m ~6 j! M% X( ?
' d1 ~! a. \" V2 ?6 Y' \& ^ 2.1 网络初始化
( U7 v1 R d2 Y! H4 |5 F1 x+ C( I' R# G5 `5 R
- GbE_init();5 x- O- G8 r8 l: X0 _0 a& B8 l
' U/ M. `: p6 I
\6 ^( C" _% e1 q5 E
2.2 IPC开启) j( u1 f% q0 N
+ g; o! W1 P8 U3 a2 W: \# T5 f- status = Ipc_start();
- if (status < 0)
- {
- System_abort("Ipc_start failed\n");
- }
( u9 E& n7 b, o% p
) w2 ~! H" s4 S: x* {' T& o7 P A# v0 _) g$ s7 F9 X" }
2.3 创建heapBuf
^) B# v# J% p. w5 Z1 I( d
! _* `2 A& k3 A! I1 A) c: l/ X- HeapBufMP_Params_init(&heapBufParams);
- heapBufParams.regionId = 0;
- heapBufParams.name = IMAGE_PROCESSING_HEAP_NAME;//name用于open函数指定打开
- heapBufParams.numBlocks = number_of_cores;
- heapBufParams.blockSize = sizeof(process_message_t);
- heapHandle = HeapBufMP_create(&heapBufParams);
- if (heapHandle == NULL)
- {
- System_abort("HeapBufMP_create failed\n" );
- }
\, y' Q- q. z
" \4 p- [6 b- G* \9 S4 _0 \
+ {7 u& o/ h# K% W0 u Z3 C! E- /* Register this heap with MessageQ */
- status = MessageQ_registerHeap((IHeap_Handle)heapHandle, IMAGE_PROCESSING_HEAPID);
- if(status != MessageQ_S_SUCCESS)
- {
- System_abort("Main: MessageQ_registerHeap failed\n" );
- }
: o; d6 J8 s- a4 x% T % k1 Z4 G& G* f* I
System_abort("Main: MessageQ_registerHeap failed\n" );& u# x% F8 Q& `! ~* h+ v, ]% J* M
}' |) i' h! V5 L. l2 n
0 V, o# J+ c& O
" u/ }" `: Y5 n: w8 [. J
6 x3 R# s; y- a+ V; K0 x
2.4 初始化一些参数
n& ^+ v3 g% W$ a
7 {7 e' \+ T8 n: ?; u 1 给8个核的msg指针分配空间
: k4 `. F# o; i% ~ 2 给8个核MessageQ_alloc
R* g& \9 l3 T$ S0 m' k 3 初始化slave_queue_name- N/ N0 e; }. a
@# p8 Q5 E& u6 o1 V# X% \: z% I
! `6 W6 v7 l+ q |
|