RT Thread串列埠驅動分析 一

2021-07-25 09:13:54 字數 1045 閱讀 6464

筆記

2023年12月9日10:19:00

串列埠配置在drivers\rt_hw_uart.c->rt_hw_uart_init->rt_hw_serial_register()

這裡可以設定串列埠的工作模式,中斷接收還有dma傳送.

具體設定在rt_serial_init()函式裡

分析下串列埠初始化**是怎麼被呼叫的

首先main()->

->hardware_init()

->assert_init()

->rt_hw_uart_init() //硬體在這裡被初始化了,但未使能

->rt_hw_serial_register()

->rt_device_register();

->rt_object_init()

->rt_device_open(_console_device, rt_device_oflag_rdwr);

->if (!(dev->flag & rt_device_flag_activated))

->

result = dev->init(dev); //這個init在rt_hw_serial_register()裡繫結好了就是對應rt_serial_init

->rt_serial_init() //使能串列埠

分析下串列埠是怎麼把資料傳送出去的:

rt_kprintf()->

->rt_device_write(_console_device, 0, rt_log_buf, length);

->write = dev->write;

->if (write != rt_null)

->

這裡的wirte就是rt_serial_write

rt_serial_write()->

->/* polling mode */

->if (dev->flag & rt_device_flag_stream)

->

void usart_senddata(usart_typedef* usartx, uint16_t data)

RT Thread 串列埠裝置驅動

檔名 serial.c 驅動介面 1.註冊裝置 2.初始化裝置 3.開啟裝置 4.關閉裝置 5.讀操作 6.寫操作 1.註冊裝置 rt err t rt hw serial register rt device t device,const char name,rt uint32 t flag,st...

串列埠驅動流程分析

tty驅動程式架構 tty概念解析 tty架構分析 1.tty概念解析 在linux系統中,終端是一類字元型裝置,它包括多種型別,通常使用tty來簡稱各種型別的終端裝置。1.1串列埠終端 dev ttys 串列埠終端是使用計算機串列埠連線的終端裝置。linux把每個串列埠都看作是乙個字元裝置。這些序...

Linux串列埠驅動分析read

串列埠read函式分析 當應用程式呼叫read系統呼叫時,會呼叫tty fops中的tty read 接下來分析tty read函式 其中最重要的就是ld ops read tty,file,buf,count 也就是呼叫線路規程中read函式 static ssize t tty read str...