์ตœ์†Œํ•œ์˜ no_std ํ”„๋กœ๊ทธ๋žจ

#![no_main]
#![no_std]

use core::panic::PanicInfo;

#[panic_handler]
fn panic(_panic: &PanicInfo) -> ! {
    loop {}
}
  • ์ด ์ฝ”๋“œ๋Š” ๋นˆ ๋ฐ”์ด๋„ˆ๋ฆฌ๋กœ ์ปดํŒŒ์ผ๋ฉ๋‹ˆ๋‹ค.
  • std๋Š” ํŒจ๋‹‰ ํ•ธ๋“ค๋Ÿฌ๋ฅผ ์ œ๊ณตํ•˜์ง€๋งŒ, ์šฐ๋ฆฌ๋Š” ์ž์ฒด์ ์œผ๋กœ ํ•ธ๋“ค๋Ÿฌ๋ฅผ ๋งŒ๋“ค์–ด์•ผํ•ฉ๋‹ˆ๋‹ค.
  • ํŒจ๋‹‰ ํ•ธ๋“ค๋Ÿฌ๋Š” panic-halt์™€ ๊ฐ™์€ ํฌ๋ ˆ์ดํŠธ๋ฅผ ํ†ตํ•ด์„œ ๋งŒ๋“ค์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ํƒ€๊ฒŸ์— ๋”ฐ๋ผ panic = "abort"๋กœ ์ปดํŒŒ์ผํ•ด์•ผ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” eh_personality์— ๊ด€ํ•œ ์˜ค๋ฅ˜๋ฅผ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•จ์ž…๋‹ˆ๋‹ค.
  • main ๊ณผ ๊ฐ™์€ ํ”„๋กœ๊ทธ๋žจ ์ง„์ž…์ ์ด ์—†์Šต๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ์ž๊ฐ€ ์ž์ฒด์ ์œผ๋กœ ์ง„์ž…์ ์„ ์ •์˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ง„์ž…์ ์„ ์ •์˜ํ•˜๋Š” ์ž‘์—…์€, ์ผ๋ฐ˜์ ์œผ๋กœ ๋ง์ปค ์Šคํฌ๋ฆฝํŠธ์™€ ์–ด์…ˆ๋ธ”๋ฆฌ ์ฝ”๋“œ๋ฅผ ํ•„์š”๋กœ ํ•ฉ๋‹ˆ๋‹ค.