我試圖做的「Blinky」爲在STM32F1xx之防鏽。 我知道有它的庫,但我想我自己的「LIB」學習的目的。如何寫入Rust中的內存映射地址?
我可以通過這樣的地址在C訪問STM32的「寄存器」:
*(uint32_t*)(0x40021000 + 0x018) |= 0x10;
*(uint32_t*)(0x40011000 + 0x004) |= 0x33;
*(uint32_t*)(0x40011000 + 0x004) &= ~0xCC;
*(uint32_t*)(0x40011000 + 0x10) |= 0x300;
while(1) {}
這寫一些比特的RCC_APB2ENR
寄存器使能端PC的時鐘,配置引腳,使我發現的LED。
我需要重新寫這一點,在防鏽,使consts,FNS並開始編寫好的代碼生鏽。在沒有FFI調用C代碼的Rust中可能嗎?我可以通過asm!
宏實現嗎?
對於C和Rust,編譯器對非易失性指針的行爲是否相同? – fevgenym
是的,Rust編譯器可以執行相同的優化。這樣做的LLVM後端用於兩種語言。 – starblue