嵌入式开发者社区

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

作者: silent123    时间: 2015-4-13 23:32
标题: mcsdk dsp端程序怎么打印调试信息
Int main(Int argc, Char* argv[])  N! s$ C7 W- k1 T$ L0 [6 V! H- C
{
6 x" \' S6 C& q+ h& h/ Y    EDMA3_DRV_Result edmaResult = EDMA3_DRV_SOK;
! v1 s( E# f7 r$ c9 j         ; W" v# N4 R% l6 ]2 Y! k; y
    Error_Block     eb;
& d, M" G7 x0 d$ ~1 C: O    Task_Params     taskParams;# v( M0 x% I# X$ V0 A6 p2 }1 d' T

0 X* F& \+ \, L5 I; h8 i/ f0 M    Log_print0(Diags_ENTRY, "--> main:");
0 j* ]/ V7 U4 G! p$ N4 v* U- X: Z$ d4 m" V+ q/ ~
    /* must initialize the error block before using it */
) f! [5 v' \7 ^* B8 d    Error_init(&eb);
9 j9 W6 d8 [  U0 J( v- D* [! s6 j: o  C! d
    /* create main thread (interrupts not enabled in main on BIOS) */8 _+ n1 q( h' [6 b" I8 z# g
    Task_Params_init(&taskParams);
/ f* c5 Q$ x. F+ {0 |0 w. O8 Q, r    taskParams.instance->name = "smain";
- l) d( N; i2 N8 K/ B& ~    taskParams.arg0 = (UArg)argc;7 c' V3 U: Q1 m8 F, t6 e; E
    taskParams.arg1 = (UArg)argv;
# _3 M  G" t$ [/ P5 G    taskParams.stackSize = 0x1000;
1 [+ K! E* z; {9 s- C& H    Task_create(smain, &taskParams, &eb);
5 o$ Q  l% L1 I/ b5 [$ ?; Q/ u
8 W: X/ @* s, b2 P7 k    if (Error_check(&eb)) {
2 z! _( r* @& [8 l        System_abort("main: failed to create application startup thread");
6 @# N) M6 q4 ^! M$ ^    }: R- W$ Z9 T! B" m5 `
       
1 v; m, Y4 F  N. j8 H    /* start scheduler, this never returns */
& C- @" N( T$ A8 f, y) i) X    BIOS_start();; s8 _7 D/ E6 ~: h& g

+ w/ a( n+ \8 V4 _- e. ~    /* should never get here */
% _- Q5 ?1 w8 |  T2 o8 Z- x5 K    Log_print0(Diags_EXIT, "<-- main:");: A8 r% U! U3 o% s' K$ M
    return (0);
( d% {9 ?9 p, M  J9 J( l}
6 Q* p( f8 G" F% |这是创龙helloword的main函数,其中的 Log_print0(Diags_ENTRY, "--> main:")信息没有通过串口打印出来,请问大家该dsp上运行的程序要怎么打印调试信息?我用的是软件套件是mcsdk,硬件是omapl138。请大家帮忙啊,谢谢。
- W* y+ U  s! G1 J9 T# G/ d$ E. {1 e0 F5 @

作者: tenny    时间: 2015-4-14 15:44
可以参考创龙的双核例程里面的 DSP 子程序 log 模块,是通过串口1查看 dsp 程序的输出。+ n6 L' A! Y5 l- O. F4 O6 s
你贴出来的程序里面Log_print0是要接 jtag,在 ccs 下面才能看到调试信息的,同时BIOS_start();是一个死循环,它之后的代码都不会被执行的
作者: silent123    时间: 2015-4-14 23:20
tenny 发表于 2015-4-14 15:44' L4 h1 q, Y/ k2 W  M, e: @
可以参考创龙的双核例程里面的 DSP 子程序 log 模块,是通过串口1查看 dsp 程序的输出。3 z" j: Q: T8 l  a' J8 k, Q
你贴出来的程序里 ...
' o) o2 n" A4 \6 ?8 s
就是说要接两个串口?我是用的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:51
" d6 A, v, {- F2 V你改下 dsp 端 log 模块的初始化函数,改成是串口2输出就能做到了,但是两个核同时往同个串口写数据,你看 ...
, q# ]& m6 `( ^9 y) A
非常感谢您的回答,学习了!谢谢..




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