RTEMS BBB(九) UART擴充套件 程式設計

2021-07-06 03:10:37 字數 1612 閱讀 1278

下面就涉及到rtems的語法和以c語言為主的驅動程式設計

rki的shell介面之前已經提過,現在增加_cmd檔案測試

完成暫存器的位址對映

#include

#include

#include

#define control_module_registers1 (*(volatile uint32_t *)(0x44e10000+0x984))

#define uart1_thr    (*(volatile uint32_t *)(beagle_base_uart_2+0x00))

#define uart1_rhr    (*(volatile uint32_t *)(beagle_base_uart_2+0x00))

#define uart1_ier    (*(volatile uint32_t *)(beagle_base_uart_2+0x04))

#define uart1_dll    (*(volatile uint32_t *)(beagle_base_uart_2+0x00))

#define uart1_dlm    (*(volatile uint32_t *)(beagle_base_uart_2+0x04))

#define uart1_lcr    (*(volatile uint32_t *)(beagle_base_uart_2+0x0c))

#define uart1_lsr    (*(volatile uint32_t *)(beagle_base_uart_2+0x14))

#define uart1_mdr1    (*(volatile uint32_t *)(beagle_base_uart_2+0x20))

#define uart1_sysc    (*(volatile uint32_t *)(beagle_base_uart_2+0x54))

#define uart1_syss    (*(volatile uint32_t *)(beagle_base_uart_2+0x58))

#define tx_fifo_e (1<<5)

#define rx_fifo_e (1<<0)

傳送函式:

int uart_send_command(rtems_task_argument ignored)

}return 0;

}設定uart1_txd對應cmr的值為0x00,軟體重置後,當lcr首位是否為1時設定其他暫存器,把char c的值傳遞給thr。將uart1連線到putty上,進入shell頁面後執行測試程式。

接收函式

int uart_receive_command(rtems_task_argument ignored)

}            

}在5s內,rhr接收串列埠發來的資料,並且列印出來

結合之間的led程式,寫在一起

int led_command(rtems_task_argument ignored) 

}}            

}將串列埠模組換成rm04模組測試,連線test-wifi

開啟tcp測試工具

連線192.168.11.254的8080埠

啟動led程式,手機傳送0,控制亮led0,回環a到z

RTEMS BBB(八) UART擴充套件 準備

硬體準備 uart的介紹 通用非同步收發傳輸器 universal asynchronous receiver transmitter 通常稱作uart,是一種非同步收發傳輸器,將資料進行串並轉換。具體來說,就是將cpu發來的並行資料轉成序列資料發出去,將串列埠接收到的串列埠資料轉成並行資料發給cp...

(九)kotlin擴充套件

kotlin 可以對乙個類的屬性和方法進行擴充套件,且不需要繼承或使用 decorator 模式。擴充套件是一種靜態行為,對被擴充套件的類 本身不會造成任何影響。擴充套件函式可以在已有類中新增新的方法,不會對原類做修改,擴充套件函式定義形式 fun receivertype functionname...

Hive擴充套件功能 九

linux系統 centos6.7 hadoop版本 2.6.5 zookeeper版本 3.4.8 一共m1,m2,m3這三部機,每部主機的使用者名稱都為centos192.168.179.201 m1 192.168.179.202 m2 192.168.179.203 m3 m1 zookee...