由于gps需要用到uart2串口,但是看了下dev目录下没有看到,只有
ttyAMA0
hi_rtc ram3 tty27 ttyAMA1
hi_tde ram4 tty28
没有 ttyAMA2
根据网上别人的做法,到内核这个文件下修改
--- a/arch/arm/mach-hi3516a/core.c
+++ b/arch/arm/mach-hi3516a/core.c
@@ -131,9 +131,13 @@ static struct amba_device HIL_AMBADEV_NAME(name) = \
HIL_AMBA_DEVICE(uart0, "uart:0", UART0, NULL);
HIL_AMBA_DEVICE(uart1, "uart:1", UART1, NULL);
+HIL_AMBA_DEVICE(uart2, "uart:2", UART2, NULL);
+
+
static struct amba_device *amba_devs[] __initdata = {
&HIL_AMBADEV_NAME(uart0),
&HIL_AMBADEV_NAME(uart1),
+ &HIL_AMBADEV_NAME(uart2),
};
/*
@@ -155,6 +159,9 @@ static struct clk_lookup lookups[] = {
}, { /* UART1 */
.dev_id = "uart:1",
.clk = &uart_clk,
+ }, { /* UART2 */
+ .dev_id = "uart:2",
+ .clk = &uart_clk,
}, { /* SP804 timers */
.dev_id = "sp804",
.clk = &sp804_clk,
diff --git a/drivers/tty/tty_io.c b/drivers/tty/tty_io.c
index d939bd70..b41ef175 100644
然后编译,运行发现 ttyAMA2出现了,cat一下
~ # cat /dev/ttyAMA2
5) $GPRMC,073910.00,V,,,,,,,050917,,,N*7B
$GPVTG,,,,,,,,,N*30
$GPGGA,073910.00,,,,,0,00,99.99,,,,,,*6A
$GPGSA,A,1,,,,,,,,,,,,,99.99,99.99,99.99*30
$GPGSV,4,1,13,02,70,023,,05,59,298,,06,39,097,,07,10,076,*75
$GPGSV,4,2,13,09,10,039,,12,11,239,,13,34,187,,15,08,210,*70
$GPGSV,4,3,13,19,18,158,,20,20,265,,25,09,273,,29,23,318,21*7B
$GPGSV,4,4,13,30,11,109,*40
$GPGLL,,,,,073910.00,V,N*46
出现了gps的数据