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

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

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

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

 /****add S5PV210 UART Initialize by xu***/
ldr r0, =0xE2900000
ldr r1, =0x3
str r1, [r0] @ULCON0=0x3 indicates the number of data bits is ldr r1, =0x305
str r1, [r0,#0x4] @UCON0=0x305 ldr r1, =0x1
str r1, [r0,#0x8] @UFCON0=0x1 FIFO Enable ldr r1, =0x0
str r1, [r0,#0x0C] @UMCON0=0x0 ldr r1, =
str r1, [r0,#0x28] @UBRDIVn= Baud Rate= ldr r1, =0xDFDD
str r1, [r0,#0x2C] @UDIVSLOTn=0xDFDD '1

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,可以看到输出信息。

第三章之S5PV210串口初始化的更多相关文章

  1. 第四章之S5PV210内存初始化

    1,既然UART可以打印出信息来,那我们可以打印内存中的值.在506行添加如下代码: /***UART transmit function by xu ***/ display_addr_dat: l ...

  2. nginx&http 第三章 ngx 事件http 初始化1

    在 http 配置块中,我们配置了 http 连接相关的信息,HTTP 框架也正是从这里启动的 在 nginx 初始化的过程中,执行了 ngx_init_cycle 函数,其中进行了配置文件解析,调用 ...

  3. [uboot] (第三章)uboot流程——uboot-spl代码流程

    http://blog.csdn.net/ooonebook/article/details/52957395 以下例子都以project X项目tiny210(s5pv210平台,armv7架构)为 ...

  4. 三星S5-PV210内存初始化

    一.S5PV210时钟系统 时钟:一定频率的电信号.   时钟系统:基于CMOS工艺的高性能处理器时钟系统,集成PLL可以从内部触发,比从外部触发更快且更准确,能有效地避免一些与信号完整性相关的问题. ...

  5. [uboot] (第三章)uboot流程——uboot-spl代码流程(转)

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/ooonebook/article/det ...

  6. S5PV210 串口配置与实验(轮询方式)

    S5PV210 UART 相关说明 通用异步收发器简称 UART, 即 UNIVERSAL ASYNCHRONOUS RECEIVER AND TRANSMITTER,它用来传输串行数据.发送数据时, ...

  7. CentOS 7.4 初次手记:第三章 CentOS基础了解

    第三章 CentOS基础了解... 36 第一节 语言编码.终端... 36 I 查看语言编码... 36 II Tty?.pts/?. 36 第二节 bash/sh command. 38 I 查找 ...

  8. 3-Spark高级数据分析-第三章 音乐推荐和Audioscrobbler数据集

    偏好是无法度量的. 相比其他的机器学习算法,推荐引擎的输出更直观,更容易理解. 接下来三章主要讲述Spark中主要的机器学习算法.其中一章围绕推荐引擎展开,主要介绍音乐推荐.在随后的章节中我们先介绍S ...

  9. 第三章 Git的入门 - 读书笔记

    Android驱动月考3 第三章 Git的入门 - 读书笔记 对于Github,这是全世界最大的开源平台,你可以把你做的项目在这里开源,把你发现的一些新技术在这里开源,向全世界的开发者们分享,大家都彼 ...

随机推荐

  1. sublimeText3使用记录

    sublime确实是神器,最近学习了一下,做个记录 1.下载 http://www.sublimetext.com/3 选择对应的版本安装即可(我的是win10 64位机) 2.个人配置 2.1.默认 ...

  2. unity描边效果

    这里总结了几种在unity实现描边效果的方法,首先准备一个模型导入在unity中,使用默认shader,上传一张原始图,以便后面实现功能效果的对比 一.边缘光,这里参照官方的一个SurfaceShad ...

  3. GDAL库调试(包括跨语言调试)

    很多时候都需要调试GDAL库,尤其是像学习GDAL库中的某些算法是如何实现的时候,调试就必不可少了. 首先说明用C++的调试.以VS2008为例进行说明. 编译DEBUG版本的GDAL库,这个可以参考 ...

  4. spring揭秘 读书笔记 一 IoC初探

    本文是王福强所著<<spring揭秘>>一书的读书笔记 ioc的基本概念 一个例子 我们看下面这个类,getAndPersistNews方法干了四件事 1 通过newsList ...

  5. Leetcode_141_Linked List Cycle

    本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/42833739 Given a linked list, d ...

  6. Java集合之Vector

    Vector是矢量队列,它继承了AbstractList,实现了List. RandomAccess, Cloneable, java.io.Serializable接口. Vector接口依赖图: ...

  7. 2014新年福利,居然有人将Ext JS 4.1的文档翻译了

    原文:http://damoqiongqiu.iteye.com/blog/1998022

  8. 粒子系统属性Life,发射速率和总数的关系

    提示,粒子系统的life,发射速率以及总粒子数是相互影响的. 如果你要发射器射出粒子流然后停顿一会,你将简单的必须确保lifetime和发射速率相匹配以至于在发射出的粒子达到粒子总数之前一些粒子是活跃 ...

  9. Ubuntu ROS Arduino Gazebo学习镜像iso说明(indigo版)

    ROS机器人程序设计(原书第2版)学习镜像分享及使用说明 新版已经发布,请参考: http://blog.csdn.net/zhangrelay/article/details/53324759 Ub ...

  10. OpenCV——PS 图层混合算法 (三)

    具体的算法原理可以参考 PS图层混合算法之三(滤色, 叠加, 柔光, 强光) // PS_Algorithm.h #ifndef PS_ALGORITHM_H_INCLUDED #define PS_ ...