在线时间2 小时
UID3078728
注册时间2014-11-28
NXP金币0
该用户从未签到
新手上路

- 积分
- 15
- 最后登录
- 2014-12-17
|
本帖最后由 stefan_weids 于 2014-12-8 14:09 编辑
大家好,现在我正在调试imx6q_sabresd平台,是android4.3,bsp为3.0.35,分支为[url=]jb4.3_1.1.0-ga[/url],系统默认配置了uart1和uart3两个串口,现在我想把其他三个串口也增加进来,我按照uart1的配置,修改了以下文件,发现现在/dev/下能创建ttymxc0,ttymxc1,ttymxc2,ttymxc3和ttymxc4共五个节点,然后使用测试程序测试,其中只有uart1是可以正常收发数据,其他四个串口都不行,使用示波器也测量不到波形。然后我使用memtool工具来配置寄存器,其中只有uart1和uart3可以正常读出和写入寄存器,而uart2,uart4和uart5都提示说bus error。
其中最让我感觉到奇怪的是默认配置好的uart3也不能正常工作。
其中iomux我都反复检查了,相关引脚没有配置成其他功能,电路图也检查过了。
是不是我少配置了一些文件?请指正。我们硬件硬件应该是没有什么问题的,不可能所有四个串口都坏掉了把。
谢谢大家。
下面是我修改的文件:
1.board-mx6q_sabresd.h
/*UART2*/
MX6Q_PAD_EIM_D26_UART2_TXD,
MX6Q_PAD_EIM_D27_UART2_RXD,
/*UART4*/
MX6Q_PAD_KEY_COL0_UART4_RXD,
MX6Q_PAD_KEY_ROW0_UART4_TXD,
/*UART5 */
MX6Q_PAD_KEY_COL0_UART5_RXD,
MX6Q_PAD_KEY_ROW_UART5_TXD,
2.board-mx6q_sabresd.c
static inline void mx6q_sabresd_init_uart(void)
{
imx6q_add_imx_uart(0,NULL);
imx6q_add_imx_uart(1,NULL);
imx6q_add_imx_uart(2,NULL);
imx6q_add_imx_uart(3,NULL);
imx6q_add_imx_uart(4,NULL);
}
3.platform-imx-uart.c
#define imx6q_imx_uart_data_entry(_id, _hwid)
imx_imx_uart_lirq_data_entry(MX6Q, _id, _hwid, SZ_4K)
imx6q_imx_uart_data_entry(0,1),
imx6q_imx_uart_data_entry(1,2),
imx6q_imx_uart_data_entry(2,3),
imx6q_imx_uart_data_entry(3,4),
imx6q_imx_uart_data_entry(4,5),
};
4.clock.c
_REGISTER_CLOCK("imx_uart.0", NULL, uart_clk[0]),
_REGISTER_CLOCK("imx_uart.1", NULL, uart_clk[0]),
_REGISTER_CLOCK("imx_uart.2", NULL, uart_clk[0]),
_REGISTER_CLOCK("imx_uart.3", NULL, uart_clk[0]),
_REGISTER_CLOCK("imx_uart.4", NULL, uart_clk[0]),
5.mx6.h
#define MX6Q_UART1_BASE_ADDR UART1_BASE_ADDR
#define MX6Q_UART2_BASE_ADDR UART2_BASE_ADDR
#define MX6Q_UART3_BASE_ADDR UART3_BASE_ADDR
#define MX6Q_UART4_BASE_ADDR UART4_BASE_ADDR
#define MX6Q_UART5_BASE_ADDR UART5_BASE_ADDR
#define MX6Q_INT_UART1 MXC_INT_UART1_ANDED
#define MX6Q_INT_UART2 MXC_INT_UART2_ANDED
#define MX6Q_INT_UART3 MXC_INT_UART3_ANDED
#define MX6Q_INT_UART4 MXC_INT_UART4_ANDED
#define MX6Q_INT_UART5 MXC_INT_UART5_ANDED
|
|