下面就涉及到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...