嵌入式开发者社区

标题: mcsdk dsp端程序怎么打印调试信息 [打印本页]

作者: silent123    时间: 2015-4-13 23:32
标题: mcsdk dsp端程序怎么打印调试信息
Int main(Int argc, Char* argv[])
/ A7 z) y* o3 _! p/ \% k{/ G" x) z- R: B, l6 S. ^
    EDMA3_DRV_Result edmaResult = EDMA3_DRV_SOK;# j  S. p7 r0 F6 Q1 \1 p
         
" Y6 T8 H( a- E8 B& U, F    Error_Block     eb;
) R! }7 `$ u  d$ z4 r! x2 j0 s    Task_Params     taskParams;
) a5 D6 P0 q5 j
; k! W$ s4 C) x3 C/ y- |+ r8 M    Log_print0(Diags_ENTRY, "--> main:");
( d, U8 S' J6 N6 K( M+ f& N6 V9 f9 q
8 }2 {4 t( b. P. Z    /* must initialize the error block before using it */% ~8 ]2 [$ H. h2 R/ q1 j* C& s5 q; ]
    Error_init(&eb);
. m1 @- }7 `/ ^" z! |
! ]4 v, k* Z- C0 J& _# D; Q    /* create main thread (interrupts not enabled in main on BIOS) */
( l6 I- U( |7 r, g; K& A& q    Task_Params_init(&taskParams);: O) r1 l. I) @) p. t2 B, W1 t% A
    taskParams.instance->name = "smain";& ]1 W% f) j: j/ l' R9 C6 ]  R
    taskParams.arg0 = (UArg)argc;& x: \! d* l4 ~: O- ^- d) K% T
    taskParams.arg1 = (UArg)argv;
, x  V* d' B7 M# |. ~+ G    taskParams.stackSize = 0x1000;/ v1 Q" i! C5 i& X: a' d, D
    Task_create(smain, &taskParams, &eb);
! W% j- l5 Y8 A9 j" ^- ?- W- g% A5 Y1 J/ V! }5 @7 o
    if (Error_check(&eb)) {5 C, V' X: I# F$ i+ B
        System_abort("main: failed to create application startup thread");
2 I  c" a' y  a2 e    }; ?2 L+ [% O+ g
        # _4 i3 O' d( {1 O/ D
    /* start scheduler, this never returns */, r$ D1 m5 s$ d1 s, f' s
    BIOS_start();" W2 j. K0 C! i2 v5 ]- K6 |
: W6 n/ G6 N* h  D( l- ^6 W9 K
    /* should never get here */2 f! w/ F! A8 {
    Log_print0(Diags_EXIT, "<-- main:");! m8 D! X( a- c! U  T2 Y
    return (0);$ b& \: u2 K" I+ b- S
}. \8 b0 {3 y+ t* R7 _! I
这是创龙helloword的main函数,其中的 Log_print0(Diags_ENTRY, "--> main:")信息没有通过串口打印出来,请问大家该dsp上运行的程序要怎么打印调试信息?我用的是软件套件是mcsdk,硬件是omapl138。请大家帮忙啊,谢谢。
0 l8 W/ J3 }/ G6 b
! I8 ?& u1 M$ l3 J0 g
作者: tenny    时间: 2015-4-14 15:44
可以参考创龙的双核例程里面的 DSP 子程序 log 模块,是通过串口1查看 dsp 程序的输出。
5 d# Q/ e8 V2 y你贴出来的程序里面Log_print0是要接 jtag,在 ccs 下面才能看到调试信息的,同时BIOS_start();是一个死循环,它之后的代码都不会被执行的
作者: silent123    时间: 2015-4-14 23:20
tenny 发表于 2015-4-14 15:442 X9 n) Z! `+ ]
可以参考创龙的双核例程里面的 DSP 子程序 log 模块,是通过串口1查看 dsp 程序的输出。
! j% ^+ Z( n1 r" E你贴出来的程序里 ...

" _2 q  Z* z8 k4 n  e就是说要接两个串口?我是用的omapl138,在arm下面使用slaveloader加载server.xe674到dsp核运行的,有办法和arm下执行的程序打印到同一个串口吗?这样比较方便啊。谢谢!
作者: tenny    时间: 2015-4-29 10:51
你改下 dsp 端 log 模块的初始化函数,改成是串口2输出就能做到了,但是两个核同时往同个串口写数据,你看到的log 输出会是混乱的
作者: silent123    时间: 2015-4-29 23:27
tenny 发表于 2015-4-29 10:514 j$ h. `6 }; M/ k; o! k
你改下 dsp 端 log 模块的初始化函数,改成是串口2输出就能做到了,但是两个核同时往同个串口写数据,你看 ...

% c9 p3 o7 B- A/ G( g5 \6 c- Q非常感谢您的回答,学习了!谢谢..




欢迎光临 嵌入式开发者社区 (https://www.51ele.net/) Powered by Discuz! X3.4