probe函数中的内容
- 设置进程调度参数。sched_param = { .sched_priority = MAX_RT_PRIO / 2 }
- 设置spi_device:通信字长、SPI_MODE_0(WK2124只支持模式0)、设置SPI通信速率,spi_setup()初始化spi_device。
- 申请WK2124要用的GPIO引脚cs、irq、rst。
- 测试WK2124。
- 初始化kthread_worker、kthread_work、设置task_struct进程调度参数。
- uart_register_driver()
- 初始化uart_port:uart_ops、clk、fifo大小。
- uart_add_one_port()
- 申请中断(收发流程主要通过中断进行)。
实现uart_ops
- 设置串口波特率 wk2xxx_termios
- 用户空间open串口节点 wk2xxx_setup
- 用户空间close串口节点 wk2xxx_shutdown
- write()->wk2xxx_start_tx()(将work添加到work)->wk2xxx_start_tx_proc(SIER寄存器写产生中断)->wk2xxx_irq()(添加irq_work进worker)->wk2xxx_ist()->wk2xxx_port_irq()