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

谭怡宁

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

为什么Uboot启动串口没有任何输出?

我用的是TQ2440,移植的是2012.04.01版本的Uboot

我的步骤:(基本上是跟着视频的操作)
1、建立单板目录
        cp board/samsung/smdk2410/ board/samsung/smdk2440/ -rf
2、建立配置文件
        cp include/configs/smdk2410.h include/configs/smdk2440.h
3、添加单板支持
        修改boards.cfg

4、修改时钟
        1)把 board_early_init_f 里的时钟配置注释掉
        2)start.S
        /* 2. 设置时钟 */
        ldr r0, =0x4c000014
        //        mov r1, #0x03;                          // FCLK:HCLK:PCLK=1:2:4, HDIVN=1,PDIVN=1
        mov r1, #0x05;                          // FCLK:HCLK:PCLK=1:4:8
        str r1, [r0]

        /* 如果HDIVN非0,CPU的总线模式应该从“fast bus mode”变为“asynchronous bus mode” */
        mrc        p15, 0, r1, c1, c0, 0                /* 读出控制寄存器 */
        orr        r1, r1, #0xc0000000                        /* 设置为“asynchronous bus mode” */
        mcr        p15, 0, r1, c1, c0, 0                /* 写入控制寄存器 */

        #define S3C2440_MPLL_400MHZ     ((0x5c<<12)|(0x01<<4)|(0x01))

        /* MPLLCON = S3C2440_MPLL_200MHZ */
        ldr r0, =0x4c000004
        ldr r1, =S3C2440_MPLL_400MHZ
        str r1, [r0]

        /* 启动ICACHE */
        mrc p15, 0, r0, c1, c0, 0        @ read control reg
        orr r0, r0, #(1<<12)
        mcr        p15, 0, r0, c1, c0, 0   @ write it back
5、修改内存 lowlevel_init.S
        .long 0x22011110         //BWSCON
        .long 0x00000700         //BANKCON0
        .long 0x00000700         //BANKCON1
        .long 0x00000700         //BANKCON2
        .long 0x00000700         //BANKCON3  
        .long 0x00000700         //BANKCON4
        .long 0x00000700         //BANKCON5
        .long 0x00018005         //BANKCON6
        .long 0x00018005         //BANKCON7
        .long 0x008C04F4         // REFRESH
        .long 0x000000B1         //BANKSIZE
        .long 0x00000030         //MRSRB6
        .long 0x00000030         //MRSRB7

6、配置,编译,拷贝到 tftp 服务器目录
7、到这里为止,下面是我在开发板原有的 Uboot 上的操作:
    1)tftp 30000000 u-boot.bin ---- 把u-boot.bin 下载到内存
    2)protect off all ---- 这条命令是把 nor flash 的写保护去掉
    3)erase 0 7ffff ---- 擦除 nor 的前 512 字节
    4)cp.b 30000000 0 80000 ---- 把 Uboot 烧写到 nor
8、重启开发板
9、secureCRT没有任何输出,正常的话,串口没有完全正确初始化,也会有输出(视频上演示,输出的是乱码),但是我这里啥都没有,是什么原因??
10、天啊,心好累啊!

回帖(4)

徐慧

2019-8-5 09:15:53
没有输出是串口代码没初始化好
举报

连伴叙

2019-8-5 09:35:07
但是我 做了串口初始化了,还是啥都没有,奇怪!怎么办?
举报

赵晨

2019-8-5 09:49:02
你能帮我发现问题吗?
举报

李飞

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

更多回帖

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