arch\u printf不工作。arch_printf_process();未调用

2个职位/0个新职位
最后一篇文章
齐亚诺
离线
最后一次见到:2周4天前
已加入:2014-10-03 08:13
arch\u printf不工作。arch_printf_process();未调用

嗨,对话,

我在下面的GPIO上为arch\u printf设置了UART2
#ifdef CFG\u PRINTF\u UART2格式
#定义GPIO\U UART2\U TX\U端口GPIO\U端口\U 0
#定义GPIO\U UART2\U TX\U引脚GPIO\U引脚6

#定义GPIO\U UART2\U RX\U端口GPIO\U端口\U 0
#定义GPIO\U UART2\U RX\U引脚GPIO\U引脚7
#结束

我定义了
#定义CFG\u PRINTF

但是,在移动函数“schedule_while_ble_on(void)”中的“arch_printf_process();”之前,我没有得到任何打印,现在看起来是这样的
启用时静态内联void调度(void)
{
//可编程时钟已启用
while(ble\u通电()){

//已设置BLE事件结束。可以运行条件射频校准。
uint8\ u t ble\ u evt\ u end\ u set=ke\ u event\ u get(ke\ u event\ u ble\ u evt\ u end);

//执行消息和事件
rwip_schedule();

//
如果(ble\ evt\ U end\ U set)
{
uint32\u t sleep\u duration=0;
rcx20读取频率();

//如果你有足够的时间对收音机进行温度校准
if(lld\u sleep\u check(&sleep\u duration,4))//6个插槽->3.750毫秒
//检查运行无线电校准的时间和温度。
有条件地运行无线电卡();
}

//我的移动过程()
arch_printf_process();

//将控制权授予应用程序,尝试进入睡眠状态
//如果应用程序返回,请转到睡眠
如果(!应用程序\u异步\u trm())
中断;

//SDK改进需要测试!!我们可以添加以下条件并移动
//这是不可能的
//我们可以考虑把它放在应用程序异步运行之前
//if(GetBits16(CLK\u CTRL\u REG,RUNNING\u AT \u XTAL16M))

//执行printf进程
//上移arch_printf_process();

}
}

有了这个修改,archèu printf就可以工作了。
信息:我的用户应用程序主循环_系统上的callbacks.app\u为空,因此在返回时调度\u,而在到达arch\u printf\u process()的原始位置之前启用\u;

这是SDK中的一个bug(在函数“schedule_while_ble_on(void)”中错误地放置了“arch_printf_process();”),还是我做错了什么?
如果我做错了,那我该怎么做?

先谢谢你。
致以最诚挚的问候,
西亚诺霜
丹麦。

设备:
MT\u对话框
离线
最后一次见到:4天2小时前
工作人员
已加入:2015-06-08 11:34
你好,齐亚诺,

你好,齐亚诺,

是的,这是SDK上的一个错误,正如您注意到的,是arch\u printf\u process()的错误位置,请检查此帖子:

http://support.dialog-semiconductor.com/sdk-5-uart

谢谢你的对话