probe-rs, cargo-embed

probe-rs๋Š” ์ž„๋ฒ ๋””๋“œ ์‹œ์Šคํ…œ์„ ์œ„ํ•œ ๋„๊ตฌ ๋ชจ์ž„์ž…๋‹ˆ๋‹ค. OpenOCD์™€ ๋น„์Šทํ•˜์ง€๋งŒ, Rust์— ๋” ์ž˜ ํ†ตํ•ฉ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

  • SWD๋ฐ JTAG(CMSIS-DAP, ST-Link, J-Link ํ”„๋กœ๋ธŒ๋ฅผ ํ†ตํ•จ)
  • GDB ์Šคํ… ๋ฐ Microsoft DAP์„œ๋ฒ„
  • Cargo์— ํ†ตํ•ฉ๋จcargo-embed

๋Š” cargo์˜ ์„œ๋ธŒ ์ปค๋งจํŠธ๋กœ์จ, ๋ฐ”์ด๋„ˆ๋ฆฌ๋ฅผ ๋นŒ๋“œํ•˜๊ณ  ํ”Œ๋ž˜์‹œํ•˜๋ฉฐ, RTT์ถœ๋ ฅ์„ ๊ธฐ๋กํ•˜๊ณ , GDB๋ฅผ ์—ฐ๊ฒฐํ•ด ์ค๋‹ˆ๋‹ค. ์ด ๋ช…๋ น์–ด์˜ ์„ธ๋ถ€ ๋™์ž‘์€ ํ”„๋กœ์ ํŠธ ๋””๋ ‰ํ„ฐ๋ฆฌ์˜ Embed.toml ํŒŒ์ผ์„ ํ†ตํ•ด ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

  • CMSIS-DAP๋Š” Arm์—์„œ ์ •์˜ํ•œ ํ”„๋กœํ† ์ฝœ๋กœ, USB๋ฅผ ํ†ตํ•ด Arm Cortex ํ”„๋กœ์„ธ์„œ์˜ CoreSight ๋””๋ฒ„๊ทธ ์•ก์„ธ์Šค ํฌํŠธ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด ์ค๋‹ˆ๋‹ค. BBC micro:bit์— ์žˆ๋Š” ์˜จ๋ณด๋“œ ๋””๋ฒ„๊ฑฐ๋„ ์ด ํ”„๋กœํ† ์ฝœ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
  • ST-Link๋Š” ST Microelectronics์‚ฌ์—์„œ ๋งŒ๋“  in-circuit ๋””๋ฒ„๊ฑฐ๋“ค์ด๋ฉฐ, J-Link๋Š” SEGGER์‚ฌ์˜ in-circuit ๋””๋ฒ„๊ฑฐ๋“ค์ž…๋‹ˆ๋‹ค.
  • ๋””๋ฒ„๊ทธ ์•ก์„ธ์Šค ํฌํŠธ์˜ ๋ฌผ๋ฆฌ์ ์ธ ๊ตฌ์„ฑ์€ ์ผ๋ฐ˜์ ์œผ๋กœ 5ํ•€ JTAG ์ธํ„ฐํŽ˜์ด์Šค ํ˜น์€, 2ํ•€ Serial Wire Debug ์ธํ„ฐํŽ˜์ด์Šค ์ž…๋‹ˆ๋‹ค.
  • probe-rs๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ ๊ตฌํ˜„๋˜์–ด ์žˆ์–ด์„œ, ๋‹ค๋ฅธ ๋„๊ตฌ๋“ค์— ํ†ตํ•ฉ๋˜๊ธฐ๊ฐ€ ์‰ฝ์Šต๋‹ˆ๋‹ค.
  • Microsoft ๋””๋ฒ„๊ทธ ์–ด๋Œ‘ํ„ฐ ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•˜๋ฉด VSCode๋‚˜ ๋‹ค๋ฅธ IDE ์ƒ์—์„œ ๋งˆ์ดํฌ๋กœ์ปจํŠธ๋กค๋Ÿฌ์—์„œ ์ˆ˜ํ–‰์ค‘์ธ ์ฝ”๋“œ๋ฅผ ๋””๋ฒ„๊น… ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • cargo-embed๋Š” probe-rs ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋นŒ๋“œ๋œ ๋ฐ”์ด๋„ˆ๋ฆฌ์ž…๋‹ˆ๋‹ค.
  • RTT(Real Time Transfers)๋Š” ์—ฌ๋Ÿฌ ๋ง ๋ฒ„ํผ๋ฅผ ํ†ตํ•ด ๋””๋ฒ„๊ทธ ํ˜ธ์ŠคํŠธ์™€ ํƒ€๊ฒŸ ๊ฐ„์— ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•˜๋Š” ๋ฉ”์ปค๋‹ˆ์ฆ˜์ž…๋‹ˆ๋‹ค.