/** linux/arch/arm/kernel/debug.S** Copyright (C) 1994-1999 Russell King** This program is free software; you can redistribute it and/or modify* it under the terms of the GNU General Public License version 2 as* published by the Free Software Foundation.** 32-bit debugging code*/#include <linux/linkage.h>#include <asm/assembler.h>.text/** Some debugging routines (useful if you've got MM problems and* printk isn't working). For DEBUGGING ONLY!!! Do not leave* references to these in a production kernel!*/#if !defined(CONFIG_DEBUG_SEMIHOSTING)#include CONFIG_DEBUG_LL_INCLUDE#endif#ifdef CONFIG_MMU.macro addruart_current, rx, tmp1, tmp2addruart \tmp1, \tmp2, \rxmrc p15, 0, \rx, c1, c0tst \rx, #1moveq \rx, \tmp1movne \rx, \tmp2.endm#else /* !CONFIG_MMU */.macro addruart_current, rx, tmp1, tmp2addruart \rx, \tmp1.endm#endif /* CONFIG_MMU *//** Useful debugging routines*/ENTRY(printhex8)mov r1, #8b printhexENDPROC(printhex8)ENTRY(printhex4)mov r1, #4b printhexENDPROC(printhex4)ENTRY(printhex2)mov r1, #2printhex: adr r2, hexbufadd r3, r2, r1mov r1, #0strb r1, [r3]1: and r1, r0, #15mov r0, r0, lsr #4cmp r1, #10addlt r1, r1, #'0'addge r1, r1, #'a' - 10strb r1, [r3, #-1]!teq r3, r2bne 1bmov r0, r2b printasciiENDPROC(printhex2)hexbuf: .space 16.ltorg#ifndef CONFIG_DEBUG_SEMIHOSTINGENTRY(printascii)addruart_current r3, r1, r2b 2f1: waituart r2, r3senduart r1, r3busyuart r2, r3teq r1, #'\n'moveq r1, #'\r'beq 1b2: teq r0, #0ldrneb r1, [r0], #1teqne r1, #0bne 1bret lrENDPROC(printascii)ENTRY(printch)addruart_current r3, r1, r2mov r1, r0mov r0, #0b 1bENDPROC(printch)#ifdef CONFIG_MMUENTRY(debug_ll_addr)addruart r2, r3, ipstr r2, [r0]str r3, [r1]ret lrENDPROC(debug_ll_addr)#endif#elseENTRY(printascii)mov r1, r0mov r0, #0x04 @ SYS_WRITE0ARM( svc #0x123456 )THUMB( svc #0xab )ret lrENDPROC(printascii)ENTRY(printch)adr r1, hexbufstrb r0, [r1]mov r0, #0x03 @ SYS_WRITECARM( svc #0x123456 )THUMB( svc #0xab )ret lrENDPROC(printch)ENTRY(debug_ll_addr)mov r2, #0str r2, [r0]str r2, [r1]ret lrENDPROC(debug_ll_addr)#endif
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。