Skip to main content
UART๏ผˆ้€š็”จๅผ‚ๆญฅๆ”ถๅ‘ไผ ่พ“ๅ™จ๏ผ‰ไฝฟ็”จ่ตทๅง‹ไฝๅ’Œๅœๆญขไฝ่€Œ้žๆ—ถ้’Ÿไฟกๅทๆฅๅผ‚ๆญฅไผ ่พ“ๆ•ฐๆฎใ€‚ๆŽฅๆ”ถ็ซฏ UART ไปฅ็งฐไธบๆณข็‰น็އ็š„็‰นๅฎš้ข‘็އ่ฏปๅ–ๆ•ฐๆฎไฝใ€‚

ๅ…ณ้”ฎๅ‚ๆ•ฐ

  • ๆณข็‰น็އ โ€” ้€šไฟก้€Ÿๅบฆ๏ผˆๆฏ็ง’ๆฏ”็‰นๆ•ฐ๏ผ‰
  • ่ตทๅง‹/ๅœๆญขไฝ โ€” ๅธงๅฎš็•Œ็ฌฆ
  • ๅฅ‡ๅถๆ ก้ชŒไฝ โ€” ๅฏ้€‰็š„้”™่ฏฏๆฃ€ๆŸฅ
  • ๆ•ฐๆฎไฝ โ€” ๆฏๅธง 5โ€“9 ไฝ
  • ๆตๆŽงๅˆถ โ€” ้€š่ฟ‡ CTS/RTS ่ฟ›่กŒ็กฌไปถๆกๆ‰‹

ๅ„ๅญ็ณป็ปŸ็š„ไผ ่พ“ๆจกๅผ

ๆŽฅๅฃ็ป„ไปถ

่ฎพๅค‡ๆ ‘ๆบๆ–‡ไปถ

API

่ฝฏไปถ้…็ฝฎ

Linux ่ฎพๅค‡ๆ ‘็คบไพ‹

4 ็บฟ UART๏ผˆๅธฆๆตๆŽงๅˆถ๏ผ‰๏ผš
GPIO pinctrl๏ผš
QUPAC ่ฎฟ้—ฎๆŽงๅˆถ๏ผš

ๅ†…ๆ ธ้…็ฝฎ

็ผ–่พ‘ kernel_platform/kernel/arch/arm64/configs/qcom_defconfig๏ผš
ๅœจ่ฎพๅค‡ๆ ‘ไธญๅฏ็”จ UART ่Š‚็‚น๏ผš

้ชŒ่ฏ

1

้ชŒ่ฏ UART ่ฎพๅค‡ๆณจๅ†Œ

2

้…็ฝฎ UART ่ฎพ็ฝฎ

3

่ฟ่กŒๅ›ž็Žฏๆต‹่ฏ•

ๆ‰“ๅผ€ไธคไธช SSH ็ปˆ็ซฏใ€‚็ปˆ็ซฏ 1๏ผˆๅ†™ๅ…ฅ๏ผ‰๏ผš
็ปˆ็ซฏ 2๏ผˆ่ฏปๅ–๏ผ‰๏ผš
้ข„ๆœŸ่พ“ๅ‡บ๏ผšHello UART

่ฐƒ่ฏ•

ๅฏ็”จ่ฐƒ่ฏ•ๆ—ฅๅฟ—

ๆ•…้šœๆŽ’้™ค

  • ้ชŒ่ฏ่ฎพๅค‡ๆ ‘ status ไธบ "ok"
  • ็กฎ่ฎคๅ†…ๆ ธ้…็ฝฎไธญๅŒ…ๅซ CONFIG_SERIAL_QCOM_GENI=y
  • ๆฃ€ๆŸฅ GPIO ๅผ•่„š้…็ฝฎๅ’Œ QUPAC ่ฎฟ้—ฎๆŽงๅˆถ่ฎพ็ฝฎ
  • ้ชŒ่ฏไธค็ซฏ็š„ๆณข็‰น็އไธ€่‡ด
  • ๆฃ€ๆŸฅๆตๆŽงๅˆถ้…็ฝฎ๏ผˆCTS/RTS๏ผ‰
  • ๅ…ˆไฝฟ็”จๅ›ž็Žฏๆจกๅผ่ฟ›่กŒๆต‹่ฏ•
  • ๅฏนไบŽ้ซ˜้€Ÿไผ ่พ“๏ผŒไปŽ FIFO ๆจกๅผๅˆ‡ๆขๅˆฐ DMA ๆจกๅผ
  • ๆฃ€ๆŸฅไธญๆ–ญ็ปŸ่ฎกไฟกๆฏ๏ผšcat /proc/interrupts | grep uart
  • ๆฃ€ๆŸฅ็”ตๆบ็ฎก็†๏ผšcat /sys/kernel/debug/pm_genpd/pm_genpd_summary

่ฐƒ่ฏ•ๆฃ€ๆŸฅๆธ…ๅ•

  • ๅ†…ๆ ธ้…็ฝฎๅŒ…ๅซ CONFIG_SERIAL_QCOM_GENI=y
  • UART ่Š‚็‚น็š„่ฎพๅค‡ๆ ‘ status ่ฎพ็ฝฎไธบ "ok"
  • GPIO ๅผ•่„šๅทฒๆญฃ็กฎ้…็ฝฎๅ’Œๆ˜ ๅฐ„
  • QUPAC ่ฎฟ้—ฎๆŽงๅˆถๅทฒๆญฃ็กฎ้…็ฝฎ
  • ไธค็ซฏ็š„ๆณข็‰น็އไธ€่‡ด
  • ๆตๆŽงๅˆถ่ฎพ็ฝฎไธ€่‡ด
  • ่ฎพๅค‡ๆ–‡ไปถๆƒ้™ๆญฃ็กฎ

่ต„ๆบ