博客首页 注册 建议与交流 排行榜 加入友情链接
推荐 投诉 搜索: 帮助

CalmArrow

【打好基础】全力以赴,顺其自然【每天进步一点点】
  piaoxiang.cublog.cn

关于作者
姓名:CalmArrow(lqm)
职业:硕士在读
位置:山东济南
研究:嵌入式系统设计
联系:piaoxiangxinling@163.com

信仰:
    1、永远保持积极向上(积极的心态,积极的思考,积极的行动),享受生活给予的一切!
    2、做正确的事,正确的做事;用心去做,做到最好!
    3、如果你觉得不幸福,那么请你把幸福的门槛降低一些,不要把幸福拒之门外。。。

方向:
    在嵌入式系统设计中感兴趣的方向有:ARM、Linux、网络通信

目标:
    软硬结合,打好基础,提高学习能力,完善知识体系,建立核心优势。

方法:
    理论与实践相结合
    深度与广度相结合
    理解与记忆相结合

说明:
    本Blog仅供学习之用,转载文章如涉及版权,请通知。原创作品如转载,请注明出处。
|| << >> ||
我的分类


AT91RM9200开发笔记(8):serial port configuration

文章说明:calmarrow(lqm)原创
文章引自:http:
//piaoxiang.cublog.cn

 
    内核版本为Linux 2.6.20.修改9200的串口驱动,改arch/arm/mach-at91rm9200/board-dk.c。
 

/*
 * Serial port configuration.
 * 0 .. 3 = USART0 .. USART3
 * 4 = DBGU
 */

static struct at91_uart_config __initdata dk_uart_config = {
    .console_tty    = 0,                /* ttyS0 */
    .nr_tty        = 2,
    .tty_map    = { 4, 1, -1, -1, -1 }        /* ttyS0, ..., ttyS4 */
};

 
    理解各项的含义,需要弄清楚at91_uart_config结构体的细节。定义地址在include/asm-arm/arch-at91rm9200/board.h。
 

/* Serial */
struct at91_uart_config {
        unsigned short console_tty; /* tty number of serial console */
        unsigned short nr_tty; /* number of serial tty's */
        short tty_map[]; /* map UART to tty number */
};

 
    可见,这个结构体要实现SoC硬件设备与tty设备名之间的对应关系。at91rm9200的serial设备有DEGU,USART0,USART1,USART2,USART3.硬件设计上来说,DEGU作为调试通道,一般是有的。而串行口的设计上,可以设计为两个,也可以设计为四个,依定需求而确定。
 
    at91_uart_config的console_tty是调试终端对应的设备名,这里一般会选择ttyS0。这个与bootloader命令行参数设计中console=ttySAC0,115200似乎有点冲突,具体细节需要考虑。
 
    nr_tty是串口设备的数目,比如现在用的板子只有三个串口,那么就要设定为3.
 
    tty_map是映射对应函数。初始化的值是SoC设备代表的数字,其中DEGU为4,USART[0-3]分别为[0
-3]。
 

DEGU(4) ---> ttyS0
USART0(0) ---> ttyS1
USART1(1) ---> ttyS2
USART2(2) ---> ttyS3
USART3(3) ---> ttyS4

 
    如果设定为上述对应关系,那么.tty_map = { 4, 0, 1, 2, 3 }.

    如果串口小于5个,那么用-1表示不存在。比如,在现在这块开发板上面,对应关系如下:
 

DEGU(4) ---> ttyS0
USART0(0) ---> ttyS1
USART1(1) ---> ttyS2
(下面没有使用)
USART2(2) ttyS3
USART3(3) ttyS4


    所以.tty_map = { 4, 0, 1, -1, -1 }

    当然,自然对应关系最好,你也可以让DEGU对应ttyS3,不过相应的变化启动脚本要发生变化。

发表于: 2008-03-11,修改于: 2008-03-11 16:54,已浏览426次,有评论1条 推荐 投诉


网友评论
网友: piaoxiang 时间:2008-03-26 10:43:50 IP地址:122.4.33.★
对2.4.27来说,应该在include/asm-arm/arch-at91rm9200/at91rm9200dk.h修改,方法是一样的。不过可以从中看出,2.6.20在可读性上要好了很多。

 发表评论