linux移植串口,linux 系统移植有关串口控制平台的有关问题

当前位置:我的异常网» 驱动开发 » linux 系统移植有关串口控制平台的有关问题

linux 系统移植有关串口控制平台的有关问题

www.myexceptions.net  网友分享于:2013-09-10  浏览:56次

linux 系统移植有关串口控制平台的问题

将linux2.6.38.2移植到s3c6410上

有两个问题

1.在哪里初始化控制平台 在start_kernel刚开始时加了打印没打出来

2.这个问题该如何解决

系统起来以后

打印

Load Kernel...

Uncompressing Linux... done, booting the kernel.

00962610:000009D8:0045507D

502719DC-507370DC>50008000

507370FC

50008000: E321F0D3 EE109F10 EB00861E E1B0A005 0A00862D EB000099 E1B08005 0A0000

55

50008020: EB0000A6 EB000004 E59FD008 E28FE000 E28AF010 EA00003E C0008300 E59F40

D4

50008040: E1A00004 E3A03000 E2806901 E4803004 E4803004 E4803004 E4803004 E13000

06

50008060: 1AFFFFF9 E59A7008 E28F00B8 E8900068 E0400003 E0855000 E0866000 E1A05A

25

50008080: E1A06A26 E1873A05 E7843105 E1350006 12855001 1AFFFFFA E1A0300F E1A03A

23

500080A0: E1873A03 E2840A03 E5A03000 E59F6068 E2800004 E0846926 E1500006 E28336

01

500080C0: 94803004 9AFFFFFB E2840A03 E3876205 E5806000 E59F7044 E59F3044 E1A03A

23

500080E0: E1A03103 E0840003 E2633901 E3530B02 83A03B02 E0806003 E1A03A27 E59A70

0C

s3c24xx_serial_initconsole

info Samsung S3C6400 UART

s3c24xx_serial_init_ports: initialising ports...

s3c24xx_serial_init_port: port=c04bc89c, platdev=c04cdda8

s3c24xx_serial_init_port: c04bc89c (hw 0)...

resource c04a8a78 (7f005000..7f005100)

port: map=7f005000, mem=f7005000, irq=16 (16,18), clock=1

s3c6400_serial_resetport: port=c04bc89c (7f005000), cfg=c04cd9d4

s3c24xx_serial_init_port: port=c04bc968, platdev=c04aa410

s3c24xx_serial_init_port: c04bc968 (hw 1)...

resource c04a8ae8 (7f005400..7f005500)

port: map=7f005400, mem=f7005400, irq=20 (20,22), clock=1

s3c6400_serial_resetport: port=c04bc968 (7f005400), cfg=c04cd9f4

s3c24xx_serial_init_port: port=c04bca34, platdev=c04aa550

s3c24xx_serial_init_port: c04bca34 (hw 2)...

resource c04a8b58 (7f005800..7f005900)

port: map=7f005800, mem=f7005800, irq=24 (24,26), clock=1

s3c6400_serial_resetport: port=c04bca34 (7f005800), cfg=c04cda14

s3c24xx_serial_init_port: port=c04bcb00, platdev=c04aa690

s3c24xx_serial_init_port: c04bcb00 (hw 3)...

resource c04a8bc8 (7f005c00..7f005d00)

port: map=7f005c00, mem=f7005c00, irq=28 (28,30), clock=1

s3c6400_serial_resetport: port=c04bcb00 (7f005c00), cfg=c04cda34

s3c24xx_serial_console_setup: co=c04bcbb8 (0), 115200

s3c24xx_serial_console_setup: port=c04bc89c (0)

s3c24xx_serial_console_setup: baud 115200

termios = 1002

selecting clock c04a9770

udivslot = 0000 (div 0)

config: 8bits/char

setting ulcon to 00000003, brddiv to 17, udivslot 00000000

baud 115200

setting ulcon to 00000003, brddiv to 17, udivslot 00000000

setting ulcon to 00000003, brddiv to 17, udivslot 00000000

static void s3c24xx_serial_set_termios(struct uart_port *port,

struct ktermios *termios,

struct ktermios *old)

{

struct s3c2410_uartcfg *cfg = s3c24xx_port_to_cfg(port);

struct s3c24xx_uart_port *ourport = to_ourport(port);

struct s3c24xx_uart_clksrc *clksrc = NULL;

struct clk *clk = NULL;

unsigned long flags;

unsigned int baud, quot;

unsigned int ulcon;

unsigned int umcon;

unsigned int udivslot = 0;

/*

* We don't support modem control lines.

*/

termios->c_cflag &= ~(HUPCL | CMSPAR);

termios->c_cflag |= CLOCAL;

dbg("termios = %04x\n", termios->c_cflag & CBAUD);

/*

* Ask the core to calculate the divisor for us.

*/

baud = uart_get_baud_rate(port, termios, old, 0, 115200*8);

if (baud == 38400 && (port->flags & UPF_SPD_MASK) == UPF_SPD_CUST)

quot = port->custom_divisor;

else

quot = s3c24xx_serial_getclk(port, &clksrc, &clk, baud);

/* check to see if we need to change clock source */

if (ourport->clksrc != clksrc || ourport->baudclk != clk) {

dbg("selecting clock %p\n", clk);

文章评论

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值