pac 제작을 위해 svd 변환 프로그램을 설치

$ cargo install svd2rust

라이브러리 패키지를 생성하고 svd를 다운로드

$ cargo new --lib nrf52833-pac
$ cd nrf52833-pac
$ wget https://github.com/NordicSemiconductor/nrfx/raw/master/mdk/nrf52833.svd

svd2rust로 변환시 인식할수 없는 부분이 있어 오류가 발생

$ svd2rust -i nrf52833.svd
[INFO  svd2rust] Parsing device from SVD file
[ERROR svd2rust] Error parsing SVD XML file

    Caused by:
        0: In device `nrf52833`
        1: In peripheral `APPROTECT`
        2: In register `FORCEPROTECT`
        3: Parsing unknown access at 1132:11
        4: unknown access variant 'read-writeonce' found

‘read-writeonce’를 ‘read-writeOnce’로 변경 후 svd2rust로 변환

$ sed -i 's/read-writeonce/read-writeOnce/g' nrf52833.svd
$ svd2rust -i nrf52833.svd
[INFO  svd2rust] Parsing device from SVD file
[INFO  svd2rust] Rendering device
$ mv lib.rs src/
$ cargo fmt

Cargo.toml에 의존 패키지 추가

[dependencies]
cortex-m = "0.7"
vcell = "0.1"

[dependencies.cortex-m-rt]
optional = true
version = "0.7"

[features]
rt = ["cortex-m-rt/device"]

참고