am335x 更改调试串口

/*********************************************************************
 *                  am335x 更改调试串口
 *
 *  am335x的调试串口是uart0,uart硬件连接上与其他功能出现了冲突。
 *  打算将其更改为uart1。本文并没有全部更改成功。
 *  记录其过程,方便以后继续尝试。
 *
 *                              Tony Liu, 2016-4-47, Shenzhen
 *********************************************************************/
本文主要内容:
        1. kernel调试串口更改
        2. rootfs调试串口更改
        3. uboot调试串口更改
参考链接:
        http://bbs.ednchina.com/BLOG_ARTICLE_3003157.HTM
        http://www.cnblogs.com/zym0805/archive/2011/07/17/2108573.html

1. kernel
1.1 更改kernel调试串口
    通过uboot传参数,更改内核的uart端口,默认是ttyO0,更改为ttyO1
    uboot/include/configs/ok335x.h
#define CON         "console=ttyO1,115200n8\0"     "optargs=\0"     "mmcroot=/dev/mmcblk0p2 ro\0"     "mmcrootfstype=ext3 rootwait\0"     "nandroot=ubi0:rootfs rw ubi.mtd=7,2048\0"     "nandrootfstype=ubifs rootwait=1\0"
#endif
1.2 关闭kernel的调试串口
    include/configs/ok335x.h
    通过uboot传参数,更改内核的uart端口,默认是ttyO0,更改为ttynull
#define CON         "console=ttynull,115200n8\0"     "optargs=\0"     "mmcroot=/dev/mmcblk0p2 ro\0"     "mmcrootfstype=ext3 rootwait\0"     "nandroot=ubi0:rootfs rw ubi.mtd=7,2048\0"     "nandrootfstype=ubifs rootwait=1\0"
#endif

2. rootfs
2.1  更改文件系统的调试端口
    更改为ttyO1, getty命令用于设置uart的参数
    /etc/inittab
    0:2345:respawn:/sbin/getty 115200 ttyO1 

2.2 关闭rootfs调试串口
    将对应的行注释即可
    /etc/inittab
    #0:2345:respawn:/sbin/getty 115200 ttyO0 

3. uboot
    uboot中更改没有成功,但也把过程记录,方便之后查看。
    uboot/include/configs/ok335x.h

    更改下面的宏,注释的时候使用"/* */"进行注释,用“//”注释,编译会出现问题。
/* tony */
/*#define CONFIG_SERIAL2            1
#define CONFIG_CONS_INDEX        2
*/
#define CONFIG_SERIAL1            1
#define CONFIG_CONS_INDEX        1    

//并添加下面两个宏, 定义UART1,UART2的寄存器地址
/* tony */
#define CONFIG_SYS_NS16550_COM2        0x48022000    /* UART1 */
#define CONFIG_SYS_NS16550_COM3        0x48024000    /* UART2 */
/*******/

board/forlinx/ok335x/pll.c
添加使能uart1
static void per_clocks_enable(void)
{
    ......
    /* UART0 */
    __raw_writel(PRCM_MOD_EN, CM_WKUP_UART0_CLKCTRL);
    while (__raw_readl(CM_WKUP_UART0_CLKCTRL) != PRCM_MOD_EN);

    /* UART1, add by Tony */
    __raw_writel(PRCM_MOD_EN, CM_PER_UART1_CLKCTRL);
    while (__raw_readl(CM_PER_UART1_CLKCTRL) != PRCM_MOD_EN);

    /* UART3 */
    __raw_writel(PRCM_MOD_EN, CM_PER_UART3_CLKCTRL);
    while (__raw_readl(CM_PER_UART3_CLKCTRL) != PRCM_MOD_EN);
    ......
}

//添加uart1的时能
board/forlinx/ok335x/mux.c
void enable_uart1_pin_mux(void)
{
    configure_module_pin_mux(uart1_pin_mux);
}

添加调用
board/forlinx/ok335x/evm.c
void s_init(void)
{
    ......
    enable_uart0_pin_mux();
    enable_uart1_pin_mux();
    ......
}
时间: 2024-10-26 02:36:03

am335x 更改调试串口的相关文章

调试串口作为一个普通的使用(仅用于调试、测试)

调试串口作为一个普通的使用 2014年12月10日本 导航,制导与控制实验室 转载请注明:http://blog.csdn.net/wang_zheng_kai 出现的问题:um220模块须要串口,然开发板无空余port的使用. 问题分析: mensa开发板共4个UART,其功能例如以下: UART0:为蓝牙预留的port,若想使用,须要将wifi模块摘除: UART1.UART2:管脚的复用,作为网口的管脚.使用须要摘除DM9000: UART3:作为调试串口.能够作为普通port使用: 解决

将调试串口作为普通串口使用(仅限于调试、测试)

将调试串口作为普通串口使用 2014年12月10日 导航制导与控制实验室 转载请注明:http://blog.csdn.net/wang_zheng_kai 出现的问题:um220模块需要串口,然开发板无空余端口的使用. 问题分析: mensa开发板共4个UART,其功能如下: UART0:为蓝牙预留的端口,若想使用,需要将wifi模块摘除: UART1.UART2:管脚的复用,作为网口的管脚,使用需要摘除DM9000: UART3:作为调试串口,可以作为普通端口使用: 解决方案: Bootlo

将JZ2440的调试串口换成com2

众所周知JZ2440 V3很小巧,精致.今天单就JZ2440的串口来讨论一些问题.我们在用串口进行调试的时候,需要用JZ2440自带的一根USB线连接电脑USB口和开发板的USB-com1口.先来看一下JZ2440的串口大致连接图: 从S3C2440芯片上引出TXD0和RXD0到芯片PL2303,大家都知道PL2303是干嘛用的.在单片机开发板上一般都用这个芯片,它的作用就是USB转RS232电平,经过PL2303的转换之后,电脑和开发板即可通信,设置好参数后也就能够显示出开发板的打印信息了.J

ubuntu下codeblocks编译器更改调试终端

最近用ubuntu下的codeblocks敲代码,发现不顺的是调试终端弹出的黑框不能进行复制粘贴操作~,试各种方法不管用~囧~~ 最后百度一下,果然找到答案: 转载自网络: ubuntu下的codeblocks看起来果然是比windows下的稍微高档一点 建立控制台程序生成完毕后,发现自带的调试终端xterm不能进行复制粘贴操作(反正我是没弄出来,不知道有没有其他方法),在网上找了找,找到了个更换调试终端的方法,就是把ubuntu下的gnome-terminal  用作调试终端,修改后就行了.

开发板调试串口

1.查看串口设备 ls /dev/tty* 其中ttyAMA1是我们要调试我串口. 2.使用ttyAMA1 通过stty -F  /dev/ttyAMA1 -a查看串口属性 可以查看波特率是9600 从ttyAMA1中读取数据: cat /dev/ttyAMA1 //读取串口中的数据 cat /dev/ttyAMA1 > file.txt //读取到的数据保存到txt文本文件中 向ttyAMA1中写数据: echo "1" > /dev/ttyAMA1 3.串口配置 待补

STM8S和STM8L调试串口中断的注意点

1. STM8L串口中断注意点 在调试PM2.5传感器GP2Y1051的时候,发现在仿真的时候开始能够进行数据的接受,但是如果暂停之后就不能接受数据,其实只是接收了一次完整的数据. 问题程序 解决方法 if(USART_GetITStatus(USART1, USART_IT_RXNE)) { RecevieData = USART_ReceiveData8(USART1); switch(state_machine) 2. STM8S串口中断注意点 征对STM8S003F3或者103系列等单片

使用python来调试串口

串口模块的波特率比较特别,找了几个串口工具都不支持...所以,干脆用python自己来写了,其实已经好奇好久了,别人的工具各种不顺手. 需要pyserial的支持,兼容各种平台,不需要新编译二进制文件. 先贴一个定时发送的代码: import serial import time ser = serial.Serial('/dev/ttyUSB0', 250000, timeout=1) print ser.isOpen() words='\x72\x02\x02\x52\x02\x12\x02

十二、u-boot 调试--串口修改

uboot 烧写进 norflash 进行调试 12.1 烧写后 串口不使能 内存不能使能 遍历代码,可以发现,在SDRAM 初始化之前,我们并没有设置时钟,但是SDRAM初始化后,我们已经开始用内存控制器了,这是不合理的,操作器件之前,我们必须把时钟给初始化. 在源代码中,内存控制器初始化之前,并没有进行时钟的设置.加上时钟的设置. 内存控制器的时钟 为MPLL,我们要把 MPLL 的初始化放入到 start.S 中进行初始化,取消board_init_f 执行的链表 init_sequenc

Delphi 使用 SPcomm 调试串口程序出现总是在程序断开的时候,才发送指令的问题。

问题如上, 在与嵌入式程序串口程序通讯的时候, 总是出现如上问题, 造成的原因把下面的True改成false就可以了. 下图Spcomm的属性页,几个True全改成False再试试