|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
一、cfg文件配置
& P/ ]) O3 B, ^& J0 ^1 V# ^$ r
5 O2 G5 b4 C* E# {( p- var tskMainThread = Task.create("&StartNetworkTask"); /*创建TCP进程*/
- tskMainThread.stackSize = 0x2000;
- tskMainThread.priority = 0x5;
- tskMainThread.instance.name = "StartNetworkTask";, q; |; L7 E! ~
: `4 l; I% z2 f8 G6 a- A创建TCP进程 用于从上位机发送和接收图像。将在下一节中介绍
: f3 G) b& s- N8 `$ Y1 Z( q b) l% z7 Y, N/ H
二、main函数
) {: {3 F) t7 V' \6 }
9 x2 t+ V/ b% Q; l 2.1 网络初始化# C3 w7 v4 L1 Z. ~2 o
# x' m; ^6 q$ G# f6 N+ H- GbE_init();
6 A4 W# K S8 n3 c ' ~& Z8 k* B4 g! }# g7 G, l* T
( _/ Y W5 x4 ]) Z
2.2 IPC开启7 J# s" m+ X/ G
% e* r: c/ p" d( v2 m1 {
- status = Ipc_start();
- if (status < 0)
- {
- System_abort("Ipc_start failed\n");
- }( L1 J' B. K. n" k; W3 G
; I) ~: P+ S8 p( h8 {8 n
8 S* W& u; l: L* x* Y 2.3 创建heapBuf
2 K" y- w$ S6 ?( J. w" r
& F% V; d }' J1 c% ?! |! ?6 |- 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" );
- } w, H9 ^9 b$ S Y4 I1 m0 |
; H# ?. m( |* I" E4 d Y
% Y- N5 S, a# W, z8 T: f7 q( b) D2 `
- /* 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" );
- }
0 B3 i; o. U1 O* e$ j
X* J3 t O. p f! J7 c System_abort("Main: MessageQ_registerHeap failed\n" );- g* S+ x3 f/ F* Q8 d- C
}$ t- _. Z# H5 r9 T% I$ O* I
G0 ^7 B4 m* @, |5 @) u4 n! z0 n# ~
7 {6 T/ L) T" U5 d
2.4 初始化一些参数/ s! ~) X; p4 j/ ~4 u5 g
% C, M" |/ N5 T( F% U! e; o
1 给8个核的msg指针分配空间
3 ^# w& Q% I2 @4 [1 D" ]# ] 2 给8个核MessageQ_alloc
, d; L! R z! i5 q6 O5 ]( S" E9 p4 ~ 3 初始化slave_queue_name% a0 ?+ E; y( W4 w
. z6 t8 C1 ]( r+ Q* Q! r% d
% [' I. J Y6 B- r) [ |
|