找到sdk的内核文件
l路径为 Hi3536_SDK_V2.0.4.0/osdrv/opensource/kernel/linux-3.10.y/arch/arm/mach-hi353
打开core.c 找到
HIL_AMBA_DEVICE(uart0, "uart:0", UART0, NULL);
HIL_AMBA_DEVICE(uart1, "uart:1", UART1, NULL);
+ HIL_AMBA_DEVICE(uart2, "uart:2", UART2, NULL);
{
/* UART0 */
.dev_id = "uart:0",
.clk = &uart_clk,
},
{
/* UART1 */
.dev_id = "uart:1",
.clk = &uart_clk,
},
{
/* UART1 */
.dev_id = "uart:2",
.clk = &uart_clk,
},
然后转到 include/mach文件下找到platform.h
#define REG_BASE_UART1 0x12090000
#define REG_BASE_UART2 0x120a0000
#define REG_BASE_UART3 0x120b0000
添加串口的基地址,具体的地址可以在海思的文档中找到
进行过以上操作之后 内核中可以开启UART2了
不过在使用之前还需要开启端口复用
uart 1
himm 0x120F0130 0x01
himm 0x120F0134 0x01
himm 0x120F0138 0x01
himm 0x120F013C 0x01
URT2:
himm 0x120F0140 0x01
himm 0x120F0144 0x01
添加好串口复用之后就可以愉快的使用啦,复用的地址在手册中都可以找到,我也是找了很久。