프로젝트 설정
프로젝트 설정
Rust Embedded WG 준비cortex-m-quickstart를 바탕으로 프로젝트 설정
stm32l4xx-hal HAL 등을 제공하는 프로젝트를 기반으로 할 수도 있습니다.
프로젝트 업데이트
contex-m-quickstart의 초기 상태에서 Nucleo-L476RG에 적합하지 않은 부분이 있기 때문에 프로젝트를 업데이트해야 합니다.구체적으로 말하면 다음과 같은 설정을 갱신한다
프로젝트 초기 설정
코텍스-m-quickstart를 복제한 상태
Cargo.toml
에서 구축할 수 있는 상태가 아니기 때문에 업데이트를 진행합니다.[package]
authors = ["{{authors}}"]
edition = "2018"
readme = "README.md"
name = "{{project-name}}"
version = "0.1.0"
[dependencies]
cortex-m = "0.6.0"
cortex-m-rt = "0.6.10"
cortex-m-semihosting = "0.3.3"
panic-halt = "0.2.0"
# Uncomment for the panic example.
# panic-itm = "0.4.1"
# Uncomment for the allocator example.
# alloc-cortex-m = "0.3.5"
# Uncomment for the device example.
# Update `memory.x`, set target to `thumbv7em-none-eabihf` in `.cargo/config`,
# and then use `cargo build --examples device` to build it.
# [dependencies.stm32f3]
# features = ["stm32f303", "rt"]
# version = "0.7.1"
# this lets you use `cargo fix`!
[[bin]]
name = "{{project-name}}"
test = false
bench = false
[profile.release]
codegen-units = 1 # better optimizations
debug = true # symbols are nice and they don't increase the size on Flash
lto = true # better optimizations
세부 수정 최소 이하{{authors}}
의 섹션을 자신의 이름으로 변경{{project-name}}
의 섹션을 적절한 프로젝트 이름으로 변경(2곳)[dependencies.stm32f3]
의 일부분을 목표판에 맞추기뒷부분을 기재하다
[dependencies.stm32l4]
version = "0.11.0"
features = ["stm32l4x6", "rt"]
[dependencies.stm32l4xx-hal]
# path = "../stm32l4xx-hal"
version = "0.5.0"
features = ["stm32l4x6", "rt"]
stm32l4x-hal은 Version0입니다.5.0이면 기본적으로 Nucleo-L476RG의 I2C를 사용할 수 없습니다.최신crate를 사용하기 위해서 최신 항목을 복제할 필요가 있습니다.그래서 path가 적힌 곳이 있어요.메모리 설정
Nucleo-L476RG의 데이터 테이블을 확인하고 스토리지 구성을 업데이트합니다.스토리지 구성은
memory.x
를 통해 설정됩니다.업데이트된 값은 다음과 같습니다.MEMORY
{
/* NOTE 1 K = 1 KiBi = 1024 bytes */
/* TODO Adjust these memory regions to match your device memory layout */
/* These values correspond to the LM3S6965, one of the few devices QEMU can emulate */
FLASH : ORIGIN = 0x08000000, LENGTH = 1024K
RAM : ORIGIN = 0x20000000, LENGTH = 96K
}
컴파일러 설정
Nucleo-L476RG용 바이너리를 만들기 위해 컴파일러를 설정합니다.
cortex-m-quickstart/.cargo/config
에 설정을 기재합니다.관련 부분을 기재하다.
Nucleo-L476RG용 QUEM에는 적합한 것이 없기 때문에 여기에 기재하지 않습니다.GNU ARM Eclipse QEMU의 STM32F411 RE를 타겟으로 할 때 메모리가 가장 가깝다.
[target.'cfg(all(target_arch = "arm", target_os = "none"))']
# デフォルトでOpenOCDでデバッグする
runner = "gdb-multiarch -q -x openocd.gdb"
[build]
target = "thumbv7em-none-eabi" # Cortex-M4 and Cortex-M7 (no FPU)
OpenOCD 설정
타겟 보드를 기반으로 OpenOCD 설정 파일 업데이트
openocd.gdb
이번에는 WSL2+Docker를 사용하여 환경을 구축합니다.WSL2는 현재 USB를 설치할 수 없기 때문에 OpenOCD는 PowerShell 등 윈도 측의 설정을 고려하여 업데이트할 필요가 없음openocd.cfg
이번에 Docker에서 운행하기 위해서는 컨테이너에서 호스트 쪽에서 시작하는 OPEN OCD에 연결해야 한다.따라서 IP 주소를 지정해야 합니다.구체적으로 말하면 첫 번째 문장은 다음과 같다.target extended-remote host.docker.internal:3333
Reference
이 문제에 관하여(프로젝트 설정), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/acky/articles/c549937c01cb0c97116d텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)