Rust setup

Nitroblue 1·2025년 8월 19일

Dependency management

  • Rust 프로젝트는 crates.io에 레지스트리를 갖고 있다.

  • 여기서 모든 라이브러리들을 내 프로젝트로 import할 수 있으며, 깃헙에 오픈소스 형태로 많이 있다.

  • 우리가 짠 코드가 어떻게 microcontroller memory map에 위치하게 되는 지 살펴보자.
    cortex mrt crate에 addressed, which includes a Linker script that'll work with any arm cortex mbased devices.

Panic handler

  • Rust에서는 복구 가능한 일반적인 에러 : result type를 에러 타입으로 반환할 때.
  • 따라서 Panic error는 심각한 문제임을 의미한다.
    intractable issues like failing an assertion -> program die

그래서 Arm Cortex랑 STM32f103의 관계는?

arm cortex는 프로세서, stm32f103은 그 구현물중 하나인가

LLVM-IR target triple

"LLVM 은 크게 세 부분으로 나눌 수 있습니다. 특정 언어를 처리하는 Front-end, 최적화 단계인 Middle-end, 코드를 기계어로 번역하는 Back-end.
Front-end는 특정 언어를 LLVM-중간표현(Intermediate Representation, IR)으로 바꾸고
Middle-End는 IR를 최적화하며
Back-End는 IR을 기계어로 번역합니다.
정확히는 Middle-end + Back-end를 LLVM이라고 부릅니다. Clang은 LLVM기반 Front-end중 하나예요.

Target-Triple은 아키텍쳐, 운영체제 등의 정보를 나타내는데, 이 정보를 토대로 Middle-End에서 최적화 Pass를 추가하거나 제거하고, Back-End에서 기계어로 번역하게 됩니다."

0개의 댓글