基于jlink-v8的一些调试打印技巧

通常调试代码通过jlink在线调试是比较好的方法,只在程序开发的初级阶段能有比较高的调试效率,可以随时观察到程序的运行状况及查看相应的变量,但如果在程序的整体调试及后面的现场调试就不那么好用了。介绍2个我平时使用2个比较好的调试方案,打印调试及命令行调试。
打印调试就是通过将程序的运行状态以字符形式打印到串口终端上,但今天通过jlink 的 RTT功能并不需要占用串口资源,只需占用1K多点的内存空间用于存放打印字符即可。

#undef SLAVE_POLL_DEBUG

#ifdef SLAVE_POLL_DEBUG
    #define slave_poll_log(...) do{if(DEBUG(DEBUG_PROTOCAL)){DBG_LOG("[SLAVE POLL](%ld) ",__LINE__);DBG_LOG(__VA_ARGS__);}}while(0)
    #define slave_poll_usr(...) do{if(DEBUG(DEBUG_PROTOCAL)){DBG_LOG("[SLAVE POLL] ");DBG_USR(__VA_ARGS__);}}while(0)
    #define slave_poll_err(...) do{if(DEBUG(DEBUG_PROTOCAL)){DBG_LOG("[SLAVE POLL] ");DBG_ERR(__VA_ARGS__);}}while(0)
    #define slave_poll_dump(...) if(DEBUG(DEBUG_PROTOCAL)){DBG_DUMP(__VA_ARGS__);}
#else
    #define slave_poll_log(...)
    #define slave_poll_usr(...)
    #define slave_poll_err(...)
    #define slave_poll_dump(...)
#endif

slave_poll_err(“heap size %d is can not malloc slave working\r\n”,xPortGetFreeHeapSize());
打开jlink-RTT viewer即可查看到打印数据,很方便,不使用时串口都不会浪费,对于查看程序的工作过程很有效果。
另外一种调试方案是通过控制台增加调试命令,直接在串口终端打印需要的程序、变量信息,对于运行过程查错调试很有效。

static BaseType_t console_user_led_test_execute( char *pcWriteBuffer, size_t xWriteBufferLen, const char *pcCommandString ){
	
	( void ) pcCommandString;
	( void ) xWriteBufferLen;
	configASSERT( pcWriteBuffer );
	
	if( login_flag==0 ){
		
		strcpy(pcWriteBuffer,"请先登录\r\n");
		return pdFALSE;
	}
	
	master_working.production_test.opeation |= PT_TEST_MODE;
	
	extio_led_blink_cnt(LED1,100,10);
	extio_led_blink_cnt(LED2,100,10);
	extio_led_blink_cnt(LED3,100,10);
	extio_led_blink_cnt(LED4,100,10);
	extio_led_blink_cnt(LED5,100,10);
	extio_led_blink_cnt(LED6,100,10);
	
	vTaskDelay( 2000 );
	
	extio_led_blink(LED1,500);
	
	master_working.production_test.opeation &= ~PT_TEST_MODE;
	
	sprintf(pcWriteBuffer,"LED测试完成\r\n");
	
	return pdFALSE;
}

static const CLI_Command_Definition_t console_user_led_test ={
	
	"ledtest",
	"\r\nledtest:	ledtest ---- LED测试",
	console_user_led_test_execute,
	0
};

这是一段调试控制LED输入的例程,也可以用于出厂的设备检测。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

纵向深耕

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值