福田商城网站建设,网站开发微信端,门户网站开发方案,合肥建设工程信息网站u-boot分析#xff08;八#xff09; 上篇博文我们按照210的启动流程#xff0c;分析到了内存初始化#xff0c;今天我们继续按照u-boot的启动流程对串口的初始化进行分析。 今天我们会用到的文档#xff1a; 1. 2440芯片手册#xff1a;http://download.csdn.net…u-boot分析八 上篇博文我们按照210的启动流程分析到了内存初始化今天我们继续按照u-boot的启动流程对串口的初始化进行分析。 今天我们会用到的文档 1. 2440芯片手册http://download.csdn.net/detail/wrjvszq/8358949 2. 6410芯片手册http://download.csdn.net/detail/wrjvszq/8358965 3. 210芯片手册S5PV210_UM_REV1.1我的不知道为什么传不上去大家去百度搜吧 串口的初始化比较简单我们今天会通过以下几点对串口的初始化进行介绍 1. 串口通信协议分析 2. 编程分析 l 串口通信协议分析 相信搞过单片机的对串口并不陌生我下面仅仅是复习一下串口通信协议。 1. RS232接口 我们常见的串口是九帧的串口如下图 注上面为公头下面为母头 其接口定义如下 1. DCD 载波检测 2. RXD 接收数据 3. TXD 发送数据 4. DTR 数据终端准备 5. GND 信号地 6. DSR 数据设备准备好 7. RTS 请求发送 8. CTS 清除发送 9. RI 振铃指示 注红色标注的三个管脚最为重要 2. 异步串口通信协议 下图是其工作模式 其各个位的意义如下 l 起始位先发出一个逻辑”0”的信号表示传输字符的开始。 l 数据位有效数据。 l 奇偶校验位来校验资料传送的正确性。 l 停止位它是一帧数据的传输结束。 l 空闲位处于逻辑“1”状态表示当前线路上没有资料传送。 l 波特率表示每秒钟传送的二进制位数。 3. 数据发送接收过程 l 发送过程 把数据发送到fifo中fifo把数据发送到移位寄存器然后在时钟脉冲的作用下往串口线上发送一位bit数据。 l 接收过程 接收移位寄存器接收到数据后将数据放到fifo中接受fifo事先设置好触发门限当fifo中数据超过这个门限时就触发一个中断然后调用驱动中的中断服务函数把数据写到flip_buf中。 l 编程分析 1. 初始化流程 按照以往的经验去手册找其的初始化流程但是没有找到可以通过在网上查找资料或者对照u-boot我们可以总结出通用的串口初始化流程 1) 设置引脚工作模式 2) 设置数据格式 3) 设置工作模式DMA轮询中断 4) 设置波特率 2. 代码分析 通过上面的流程我们就不难理解u-boot的代码大家可以自己分析 1 /*2 * uart_asm_init: Initialize UART in asm mode, 115200bps fixed.3 * void uart_asm_init(void)4 */5 uart_asm_init:6 7 /* set GPIO(GPA) to enable UART */8 GPIO setting for UART9 ldr r0, ELFIN_GPIO_BASE
10 ldr r1, 0x22222222
11 str r1, [r0, #GPA0CON_OFFSET]
12
13 ldr r1, 0x2222
14 str r1, [r0, #GPA1CON_OFFSET]
15
16 // HP V210 use. SMDK not use.
17 #if defined(CONFIG_VOGUES)
18 ldr r1, 0x100
19 str r1, [r0, #GPC0CON_OFFSET]
20
21 ldr r1, 0x4
22 str r1, [r0, #GPC0DAT_OFFSET]
23 #endif
24
25 ldr r0, ELFIN_UART_CONSOLE_BASE 0xEC000000
26 mov r1, #0x0
27 str r1, [r0, #UFCON_OFFSET]
28 str r1, [r0, #UMCON_OFFSET]
29
30 mov r1, #0x3
31 str r1, [r0, #ULCON_OFFSET]
32
33 ldr r1, 0x3c5
34 str r1, [r0, #UCON_OFFSET]
35
36 ldr r1, UART_UBRDIV_VAL
37 str r1, [r0, #UBRDIV_OFFSET]
38
39 ldr r1, UART_UDIVSLOT_VAL
40 str r1, [r0, #UDIVSLOT_OFFSET]
41
42 ldr r1, 0x4f4f4f4f
43 str r1, [r0, #UTXH_OFFSET] O
44
45 mov pc, lr 转载于:https://www.cnblogs.com/wrjvszq/p/4237498.html