韦东山Linux嵌入式课程社区
直播中

张青梅

7年用户 177经验值
私信 关注

请问u-boot移植黑屏且串口无任何输出该怎么办?

注意:如果点击空白处无法输入,则点击字会有输入提示符 | 则可以使用键盘进行输入!
此板块为 [uboot开发]

  • 问题所在章节: u-boot
  • 发生问题的运行环境: u-boot.1.1.6
  • 问题发生描述: 移植u-boot,如果nor启动,直接在start.S中 增加relocate代码,可以通过mobaXterm看到串口信息, 但显示的是乱码。 如果按照视频,添加boot_init.c 文件,并在start.S中调用CopyCode2Ram,进行代码重定位,则无论是nor启动,还是nand启动,串口均无任何信息。请老师帮忙看看是什么问题?


      附:
1) Nor 启动的情况下,Start.S 中的relocate代码 , 该情况串口显示乱码。


relocate:                                /* relocate U-Boot to RAM            */
        adr        r0, _start                /* r0 <- current position of code   */
        ldr        r1, _TEXT_BASE                /* test if we run from flash or RAM */
        cmp     r0, r1                  /* don't reloc during debug         */
        beq     stack_setup

        ldr        r2, _ARMboot_start
        ldr        r3, _bss_start
        sub        r2, r3, r2                /* r2 <- size of armboot            */
        add        r2, r0, r2                /* r2 <- source end address         */

copy_loop:
        ldmia        r0!, {r3-r10}                /* copy from source address [r0]    */
        stmia        r1!, {r3-r10}                /* copy to   target address [r1]    */
        cmp        r0, r2                        /* until source end addreee [r2]    */
        ble        copy_loop



2) 通过boot_init.c (从补丁文件中获得的) 实现relocate, 该情况串口无任何输出。

relocate:                                /* relocate U-Boot to RAM            */
        adr        r0, _start                /* r0 <- current position of code   */
        ldr        r1, _TEXT_BASE                /* test if we run from flash or RAM */
        cmp     r0, r1                  /* don't reloc during debug         */
        beq     stack_setup

        ldr        r2, _armboot_start
        ldr        r3, _bss_start
        sub        r2, r3, r2                /* r2 <- size of armboot            */

        bl        CopyCode2Ram



  • 输出的错误信息:

回帖(5)

王秀荣

2019-10-9 08:54:39
受到警告
提示: 作者被禁止或删除 内容自动屏蔽
举报

黄颖

2019-10-9 09:12:36
先调试nor启动,乱码很有可能是时钟配置的问题,仔细看视频,按照视频一步一步操作不会出错
细心仔细
举报

何兰兰

2019-10-9 09:17:51
老师,
我在Start.S中添加如下代码,
        /*  CPU set as asynchronous mode */
        mrc p15,0,r0,c1,c0,0
        orr r0,r0, #R1_nF:OR:R1_iA
        mcr p15,0,r0,c1,c0,0

在make的时候不能通过,反馈的错误信息: start.S:167: Error: garbage following instruction -- `orr r0,r0,#R1_nF:OR:R1_iA'

详细错误信息如下, 能否帮忙看看该问题一般是什么原因造成的。

u-boot_1.1.6.2440/u-boot-1.1.6/include -fno-builtin -ffreestanding -nostdinc -isystem /usr/lib/gcc-cross/arm-linux-gnueabi/5/include -pipe  -DCONFIG_ARM -D__ARM__ -march=armv4 -mabi=apcs-gnu -mno-thumb-interwork  -c -o start.o start.S
start.S: Assembler messages:
start.S:167: Error: garbage following instruction -- `orr r0,r0,#R1_nF:OR:R1_iA'
/home/book/Downloads/systems/u-boot_1.1.6.2440/u-boot-1.1.6/config.mk:232: recipe for target 'start.o' failed
make[1]: *** [start.o] Error 1
make[1]: Leaving directory '/home/book/Downloads/systems/u-boot_1.1.6.2440/u-boot-1.1.6/cpu/arm920t'
Makefile:271: recipe for target 'cpu/arm920t/start.o' failed
make: *** [cpu/arm920t/start.o] Error 2
举报

李亮

2019-10-9 09:37:14
建议参考补丁:u-boot-1.1.6_jz2440.patch

还是建议你 按照毕业班视频学习移植2012视频配套教程。

走过一遍之后 还想移植1.1.6 则结合1.1.6uboot补丁
举报

更多回帖

发帖
×
20
完善资料,
赚取积分