这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » STM32 » 第三章之S5PV210串口初始化

共2条 1/1 1 跳转至

第三章之S5PV210串口初始化

高工
2018-04-14 09:30:56     打赏

1,在start.S中执行373行b lowlevel_init跳转到/board/samsung/goni/lowlevel.S中,此代码中初始化一样硬件。

找到241行,此行执行URAT初始化,如下图:

但此UART初始化与s5pv210的UART初始化不同,需要自己手动修改。

2,在lowlevel.S的463行下添加如UART初始化代码:

复制代码
      ldr r0,    =     ldr r1,    =      str r1,    [r0]         @ULCON0= indicates the number of data bits        ldr r1,    =      str r1,    [r0,#]    @UCON0=       ldr r1,    =      str r1,    [r0,#]    @UFCON0=      ldr r1,    =      str r1,    [r0,#]   @UMCON0=       ldr r1,    =      str r1,    [r0,#]    @UBRDIVn=  Baud Rate=      ldr r1,    =     str r1,    [r0,#]   @UDIVSLOTn=
复制代码

3,设置好之后,还要添加测试代码,看看是否串口能否打印出东西来,下面是测试代码,紧跟上一步初始化代码下面.

复制代码
 /***test uart***/
    ldr r0,    =0xE2900020

    ldr r1,    =0x55 
    str r1,    [r0]     @UTXH0='U'

    ldr r1,    =0x41
    str r1,    [r0]     @UTXH0='A'

    ldr r1,    =0x52
    str r1,    [r0]     @UTXH0='R' 

    ldr r1,    =0x55 
    str r1,    [r0]     @UTXH0='W'

    ldr r1,    =0xa
    str r1,    [r0]     @UTXH0='\r'

    ldr r1,    =0xd 
    str r1,    [r0]     @UTXH0='\n'
复制代码

4,好,连接好电脑和板子UART0,然后Make一下,生成u-boot,把u-boot.16k重新烧写到SD卡中。但是在串口终端上看不到任何输出信息。怎么回事?

让我看一下,make时生成的输出信息,如图:

lowlevel.S文件在board/samsung/goni/libgoni.o中,此文件在u-boot中最后编译进来,明显UART超出16K大小范围,串口终端看不到任何打印信息。

5,通过上一步知道了问题所在,那么我们可以调整Makefile文件,来调整board/samsung/goni/libgoni.o编译的先后。

#vim Makefile

屏蔽359行,添加360行.如图:

6,如此,再次make和烧写u-boot.16k,打开串口0,可以看到输出信息。




管理员
2018-04-14 14:02:56     打赏
2楼

谢谢楼主分享


共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]