海思HI3518核心中開啟UART2的方法

2021-07-10 01:15:21 字數 1207 閱讀 2053

**:

海思hi3518 soc提供 了3個uart(universalasynchronous receiver transmitter非同步序列通訊介面)單元,主要功能是將來自外圍裝置的資料進行串並轉換之後傳入內部匯流排,以及將資料進行並串轉換之後輸出到外部裝置。uart的主要功能是和外部晶元的uart進行對接,從而實現兩晶元間的通訊。

海思提供的sdk中的核心預設開啟了uart0和uart1,uart0預設用於除錯使用,對應於裝置單板中的/dev/ttyama0。uart1可用作通訊介面與外設進行資料接收和傳送,對應於單板中的/dev/ttyama1。然而要想使用uart2來作為序列通訊口,還需要修改核心,修改說明如下:

1、修改核心arch/arm/mach-hi3518/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);

static struct amba_device *amba_devs__initdata =

2、lookups結構體中增加:

static struct clk_lookup lookups = ,}

3、修改arm/mach-hi3518/include/mach/irqs.h

#define uart0_irq

#define uart1_irq

#define uart2_irq

4、應用**中需要設定一下 uart_rxd(gpio7_6)、uart2_txd(gpio7_7)gpio

復用功能

himm 0x200f0108 0x1 //uart2_rxd

himm 0x200f010c 0x1 //uart2_txd

5、單板的/etc/init.d/s00devs檔案中,新增以下內容:

mknod /dev/ttyama2 c 204 66

補充:

按照以上設定之後,在應用程式中,只需要根據實際需要,開啟uart2在單板上字元裝置結點,設定波特率,然後select監聽對應檔案描述符,read接收其它晶元發出的資料即可。 

疑惑:



16 海思Hi3518的OSD學習

使用者通過建立乙個區域,通過hi mpi rgn attachtochn 區域型別 區域層次 區域層次表示區域的疊加級別,層次值越大,表示區域的顯示級別越高。當發生重疊時,層次值大的將會覆蓋層次值小的。如果是同一級別,則根據區域疊加的先後順序,後疊加的將顯示在上層。將多個區域疊加到 vpss 的同一...

海思Hi3518EV200(2)開發環境

1.linux開發環境 2.linux開發環境描述 3.搭建linux開發環境 1 安裝linux伺服器 這裡使用ubuntu 10.04 lts 2 安裝交叉編譯工具 海思sdk包中提供專門的編譯工具鏈 arm hisiv300 linux和arm hisiv400 linux。3 安裝sdk 將...

海思Hi3518EV200(2)開發環境

1.linux開發環境 2.linux開發環境描述 3.搭建linux開發環境 1 安裝linux伺服器 這裡使用ubuntu 10.04 lts 2 安裝交叉編譯工具 海思sdk包中提供專門的編譯工具鏈 arm hisiv300 linux和arm hisiv400 linux。3 安裝sdk 將...