Chinaunix首页 | 论坛 | 博客
  • 博客访问: 127607
  • 博文数量: 35
  • 博客积分: 2085
  • 博客等级: 大尉
  • 技术积分: 395
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-03 10:42
文章分类

全部博文(35)

文章存档

2012年(1)

2011年(3)

2010年(15)

2009年(8)

2008年(8)

我的朋友

分类: LINUX

2010-07-28 17:48:40

printhex8和printascii用法示例:

__error_p:
#ifdef CONFIG_DEBUG_LL
        adr r0, str_p1
        bl printascii
        mov r0, r9
        bl printhex8
        adr r0, str_p2
        bl printascii
        b __error
str_p1: .asciz "\nError: unrecognized/unsupported processor variant (0x"
str_p2: .asciz ").\n"
        .align
#endif
ENDPROC(__error_p)


CONFIG_DEBUG_LL的实现:
arch/arm/kernel/head.S

#ifdef CONFIG_DEBUG_LL
        ldr r7, [r10, #PROCINFO_IO_MMUFLAGS] @ io_mmuflags
        /*
         * Map in IO space for serial debugging.
         * This allows debug messages to be output
         * via a serial console before paging_init.
         */
        ldr r3, [r8, #MACHINFO_PGOFFIO]
        add r0, r4, r3
        rsb r3, r3, #0x4000 @ PTRS_PER_PGD*sizeof(long)
        cmp r3, #0x0800 @ limit to 512MB
        movhi r3, #0x0800
        add r6, r0, r3
        ldr r3, [r8, #MACHINFO_PHYSIO]
        mov r3, r3, lsr #20 @ 1MB-aligned address
        mov r3, r3, lsl #20
        orr r3, r3, r7
1: str r3, [r0], #4
        add r3, r3, #1 << 20
        teq r0, r6
        bne 1b
#endif


阅读(810) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~