MCU串口使用说明.txt 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. 1. uboot中使用串口和MCU进行通讯需要make menuconfig进行配置
  2. cd linux-arkmicro/output/board/$(BOARD_TYPE)/u-boot
  3. source ../../../../env.source
  4. make menuconfig
  5. 之后可以设置下面选项,mcu serial port表示mcu使用的串口号,mcu serial baud rate为通信波特率
  6. ARM architecture --->
  7. (2) mcu serial port
  8. (115200) mcu serial baud rate
  9. 配置完成后
  10. make savedefconfig
  11. cp defconfig ../../../../u-boot/configs/xxx_defconfig
  12. 其中xxx_defconfig文件为linux-arkmicro/build/$(BOARD_TYPE).config文件内UBOOT_CONFIG_FILE变量的值。
  13. 2. uboot中使用MCU串口通信接口
  14. 包含头文件
  15. #include <asm/arch/ark-common.h>
  16. 相关接口
  17. int mcu_serial_init(void);
  18. void mcu_serial_putc(const char c);
  19. void mcu_serial_puts(const char *s);
  20. int mcu_serial_getc(void);
  21. void mcu_serial_send(const unsigned char *buf, int len);
  22. int mcu_serial_read(unsigned char *buf);
  23. 接收数据前一定要调用mcu_serial_init进行初始化。
  24. 3. kernel中使用串口和MCU进行通讯需要修改设备树文件
  25. 如果linux-arkmicro/build/$(BOARD_TYPE).config文件内DTB_FILE_NAME变量的值为xxx.dtb文件,
  26. 则需要修改linux-arkmicro/linux/arch/arm/boot/dts/xxx.dts文件。例如,如果使用串口2作为
  27. MCU通讯串口的话可以参考下面修改
  28. / {
  29. ...
  30. mcu_serial: mcu-serial@0 {
  31. compatible = "arkmicro,ark-mcu-serial";
  32. };
  33. };
  34. &uart2 {
  35. use-in-kernel;
  36. use-for-mcu;
  37. };
  38. 4. kernel中使用串口和MCU进行通讯可以查看linux-arkmicro/linux/drivers/tty/serial/ark_mcu_serial.c文件
  39. 数据接收在mcu_serial_rx_task中处理,数据发送调用mcu_serial_send接口。