使用printascii与printhex输出log到串口

转载请标注原文地址:http://blog.csdn.net/uranus_wm/article/details/11176877

 

当串口控制台suspend时,内核c语言函数printk无法输出log

在linux2.3.0版本,arm架构下有两个汇编函数printascii和printhex,可以用于log调试

由于是用arm汇编指令写的,仅支持arm架构平台

文件位置:/arch/arm/kernel/debug.S

ENTRY(printascii)
		addruart_current r3, r1, r2
		b	2f
1:		waituart r2, r3
		senduart r1, r3
		busyuart r2, r3
		teq	r1, #'\n'
		moveq	r1, #'\r'
		beq	1b
2:		teq	r0, #0
		ldrneb	r1, [r0], #1
		teqne	r1, #0
		bne	1b
		mov	pc, lr
ENDPROC(printascii)

 

这个函数需要在menuconfig中打开宏定义:CONFIG_DEBUG_LL

打开这个宏之后log会很多,所以建议是直接编辑:/arch/arm/kernel/Makefile

在obj-y 后面增加一项:debug.o

这样就可使直接调用这两个函数
汇编文件中可以这样使用:


                
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值