%3Ch1%3E%E5%B5%8C%E5%85%A5%E5%BC%8FRust%E6%B7%B1%E5%BA%A6%E5%AE%9E%E6%88%98%EF%BC%9Ano_std%E7%BC%96%E7%A8%8B%E3%80%81PAC/HAL%E6%8A%BD%E8%B1%A1%E4%B8%8ERTIC%E5%BC%82%E6%AD%A5%E6%A1%86%E6%9E%B6%3C/h1%3E%0A%0A%3Cp%3E%E5%B5%8C%E5%85%A5%E5%BC%8F%E7%B3%BB%E7%BB%9F%E6%AD%A3%E7%BB%8F%E5%8E%86%E4%B8%80%E5%9C%BA%E7%BC%96%E7%A8%8B%E8%8C%83%E5%BC%8F%E7%9A%84%E8%BD%AC%E5%8F%98%E3%80%82%E9%95%BF%E6%9C%9F%E4%BB%A5%E6%9D%A5%EF%BC%8CC%E8%AF%AD%E8%A8%80%E5%87%AD%E5%80%9F%E5%85%B6%E5%BA%95%E5%B1%82%E6%8E%A7%E5%88%B6%E8%83%BD%E5%8A%9B%E5%92%8C%E6%88%90%E7%86%9F%E7%9A%84%E5%B7%A5%E5%85%B7%E9%93%BE%E7%BB%9F%E6%B2%BB%E7%9D%80%E5%BE%AE%E6%8E%A7%E5%88%B6%E5%99%A8%E9%A2%86%E5%9F%9F%EF%BC%8C%E4%BD%86%E5%86%85%E5%AD%98%E5%AE%89%E5%85%A8%E9%97%AE%E9%A2%98%E3%80%81%E5%B9%B6%E5%8F%91%E7%BC%BA%E9%99%B7%E5%92%8C%E4%BB%A3%E7%A0%81%E5%A4%8D%E7%94%A8%E5%9B%B0%E9%9A%BE%E5%A7%8B%E7%BB%88%E6%98%AF%E6%82%AC%E5%9C%A8%E5%B5%8C%E5%85%A5%E5%BC%8F%E5%B7%A5%E7%A8%8B%E5%B8%88%E5%A4%B4%E9%A1%B6%E7%9A%84%E8%BE%BE%E6%91%A9%E5%85%8B%E5%88%A9%E6%96%AF%E4%B9%8B%E5%89%91%E3%80%82Rust%E7%9A%84%E5%87%BA%E7%8E%B0%E4%B8%BA%E5%B5%8C%E5%85%A5%E5%BC%8F%E5%BC%80%E5%8F%91%E5%B8%A6%E6%9D%A5%E4%BA%86%E6%96%B0%E7%9A%84%E5%8F%AF%E8%83%BD%EF%BC%9A%E5%9C%A8%E4%B8%8D%E7%89%BA%E7%89%B2%E6%80%A7%E8%83%BD%E7%9A%84%E5%89%8D%E6%8F%90%E4%B8%8B%EF%BC%8C%E9%80%9A%E8%BF%87%E6%89%80%E6%9C%89%E6%9D%83%E7%B3%BB%E7%BB%9F%E3%80%81%E7%B1%BB%E5%9E%8B%E7%8A%B6%E6%80%81%E5%92%8C%E9%9B%B6%E6%88%90%E6%9C%AC%E6%8A%BD%E8%B1%A1%EF%BC%8C%E5%B0%86%E5%A4%A7%E9%87%8Fbug%E6%B6%88%E7%81%AD%E5%9C%A8%E7%BC%96%E8%AF%91%E6%9C%9F%E3%80%82%E6%9C%AC%E6%96%87%E5%B0%86%E6%B7%B1%E5%85%A5%E5%89%96%E6%9E%90%E5%B5%8C%E5%85%A5%E5%BC%8FRust%E7%9A%84%E6%A0%B8%E5%BF%83%E6%8A%80%E6%9C%AF%E6%A0%88%EF%BC%8C%E5%B9%B6%E9%80%9A%E8%BF%87%E5%AE%9E%E6%88%98%E6%A1%88%E4%BE%8B%E5%B1%95%E7%A4%BA%E5%A6%82%E4%BD%95%E5%9C%A8Cortex-M%E5%BE%AE%E6%8E%A7%E5%88%B6%E5%99%A8%E4%B8%8A%E6%9E%84%E5%BB%BA%E5%8F%AF%E9%9D%A0%E7%9A%84%E5%9B%BA%E4%BB%B6%E7%B3%BB%E7%BB%9F%E3%80%82%3C/p%3E%0A%0A%3Ch2%3E1.%20no_std%EF%BC%9A%E8%A3%B8%E6%9C%BA%E4%B8%96%E7%95%8C%E7%9A%84Rust%E5%AD%90%E9%9B%86%3C/h2%3E%0A%0A%3Cp%3E%E5%B5%8C%E5%85%A5%E5%BC%8F%E7%8E%AF%E5%A2%83%E4%B8%AD%E9%80%9A%E5%B8%B8%E6%B2%A1%E6%9C%89%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F%E3%80%81%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F%E5%92%8C%E5%8A%A8%E6%80%81%E5%86%85%E5%AD%98%E5%88%86%E9%85%8D%E8%83%BD%E5%8A%9B%E3%80%82Rust%E9%80%9A%E8%BF%87%3Ccode%3E%23%21%5Bno_std%5D%3C/code%3E%E5%B1%9E%E6%80%A7%E6%8F%90%E4%BE%9B%E4%BA%86%E4%B8%80%E4%B8%AA%E6%A0%87%E5%87%86%E5%BA%93%E4%B9%8B%E5%A4%96%E7%9A%84%E8%BF%90%E8%A1%8C%E7%8E%AF%E5%A2%83%EF%BC%8C%E6%AD%A4%E6%97%B6%E5%8F%AA%E8%83%BD%E4%BD%BF%E7%94%A8%3Ccode%3Ecore%3C/code%3E%E5%BA%93%E2%80%94%E2%80%94%E5%AE%83%E4%B8%8D%E4%BE%9D%E8%B5%96%E5%A0%86%E5%88%86%E9%85%8D%E3%80%81%E7%BA%BF%E7%A8%8B%E3%80%81I/O%E6%88%96%E4%BB%BB%E4%BD%95%E5%B9%B3%E5%8F%B0%E7%89%B9%E6%80%A7%E3%80%82%3C/p%3E%0A%0A%3Cpre%3E%3Ccode%20class%3D%22language-rust%22%3E%23%21%5Bno_std%5D%0A%23%21%5Bno_main%5D%0A%0Ause%20cortex_m_rt%3A%3Aentry%3B%0Ause%20panic_halt%20as%20_%3B%20%20//%20%E6%9E%81%E7%AE%80panic%E5%A4%84%E7%90%86%E5%99%A8%0A%0A%23%5Bentry%5D%0Afn%20main%28%29%20-%26gt%3B%20%21%20%7B%0A%20%20%20%20//%20%E8%A3%B8%E6%9C%BA%E4%B8%96%E7%95%8C%E7%9A%84%E5%85%A5%E5%8F%A3%0A%20%20%20%20let%20peripherals%20%3D%20stm32f4xx_hal%3A%3Apac%3A%3APeripherals%3A%3Atake%28%29.unwrap%28%29%3B%0A%20%20%20%20loop%20%7B%0A%20%20%20%20%20%20%20%20//%20%E4%B8%BB%E5%BE%AA%E7%8E%AF%0A%20%20%20%20%7D%0A%7D%3C/code%3E%3C/pre%3E%0A%0A%3Cp%3E%E5%9C%A8%3Ccode%3E%23%21%5Bno_std%5D%3C/code%3E%E4%B8%8B%E5%8F%AF%E7%94%A8%E4%B8%8E%E4%B8%8D%E5%8F%AF%E7%94%A8%E7%9A%84%E8%BE%B9%E7%95%8C%E9%9C%80%E8%A6%81%E6%B8%85%E6%99%B0%E7%90%86%E8%A7%A3%EF%BC%9A%3C/p%3E%0A%0A%3Cul%3E%0A%3Cli%3E%3Cstrong%3E%E5%8F%AF%E7%94%A8%3C/strong%3E%EF%BC%9A%E5%9F%BA%E6%9C%AC%E7%B1%BB%E5%9E%8B%E3%80%81%E6%95%B0%E7%BB%84%E3%80%81%E5%88%87%E7%89%87%E3%80%81Option/Result%E3%80%81%E9%97%AD%E5%8C%85%E3%80%81trait%E5%AF%B9%E8%B1%A1%EF%BC%88%E9%9C%80alloc%EF%BC%89%E3%80%81core%E5%BA%93%E6%89%80%E6%9C%89%E6%A8%A1%E5%9D%97%3C/li%3E%0A%3Cli%3E%3Cstrong%3E%E4%B8%8D%E5%8F%AF%E7%94%A8%3C/strong%3E%EF%BC%9ABox%E3%80%81Vec%E3%80%81String%E3%80%81%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F%E3%80%81%E7%BA%BF%E7%A8%8B%E3%80%81%E7%BD%91%E7%BB%9C%EF%BC%88%E9%99%A4%E9%9D%9E%E5%BC%95%E5%85%A5%3Ccode%3Ealloc%3C/code%3E%E6%88%96%E8%87%AA%E5%AE%9A%E4%B9%89allocator%EF%BC%89%3C/li%3E%0A%3Cli%3E%3Cstrong%3E%E9%9C%80%E8%A6%81%E5%AE%9E%E7%8E%B0%3C/strong%3E%EF%BC%9A%3Ccode%3Epanic_handler%3C/code%3E%E3%80%81%3Ccode%3Eexception_handler%3C/code%3E%E3%80%81%E5%A0%86%E5%88%86%E9%85%8D%E5%99%A8%EF%BC%88%E5%A6%82%E4%BD%BF%E7%94%A8alloc%EF%BC%89%3C/li%3E%0A%3C/ul%3E%0A%0A%3Cp%3E%E5%AF%B9%E4%BA%8E%E9%9C%80%E8%A6%81%E5%8A%A8%E6%80%81%E5%86%85%E5%AD%98%E7%9A%84%E5%9C%BA%E6%99%AF%EF%BC%88%E5%A6%82%E7%BD%91%E7%BB%9C%E5%8D%8F%E8%AE%AE%E6%A0%88%E3%80%81%E9%9F%B3%E9%A2%91%E7%BC%93%E5%86%B2%E5%8C%BA%E7%AE%A1%E7%90%86%EF%BC%89%EF%BC%8C%E5%8F%AF%E4%BB%A5%E9%80%9A%E8%BF%87%3Ccode%3Eextern%20crate%20alloc%3B%3C/code%3E%E5%BC%95%E5%85%A5%E5%88%86%E9%85%8D%E5%99%A8%E6%8E%A5%E5%8F%A3%E3%80%82%E7%A4%BE%E5%8C%BA%E5%B8%B8%E7%94%A8%E7%9A%84%3Ccode%3Elinked_list_allocator%3C/code%3E%E6%88%96%3Ccode%3Eespalloc%3C/code%3E%E6%8F%90%E4%BE%9B%E4%BA%86%E7%AE%80%E6%B4%81%E7%9A%84%E5%A0%86%E5%AE%9E%E7%8E%B0%EF%BC%9A%3C/p%3E%0A%0A%3Cpre%3E%3Ccode%20class%3D%22language-rust%22%3Eextern%20crate%20alloc%3B%0Ause%20alloc%3A%3Avec%3A%3AVec%3B%0A%0A%23%5Bglobal_allocator%5D%0Astatic%20ALLOCATOR%3A%20linked_list_allocator%3A%3ALockedHeap%20%3D%20linked_list_allocator%3A%3AHeap%3A%3Aempty%28%29%3B%0A%0Apub%20fn%20init_heap%28start%3A%20usize%2C%20size%3A%20usize%29%20%7B%0A%20%20%20%20unsafe%20%7B%20ALLOCATOR.lock%28%29.init%28start%2C%20size%29%20%7D%0A%7D%3C/code%3E%3C/pre%3E%0A%0A%3Cp%3E%E8%BF%99%E7%A7%8D%E8%AE%BE%E8%AE%A1%E4%BD%BF%E5%BE%97Rust%E5%9C%A8%E8%B5%84%E6%BA%90%E5%8F%97%E9%99%90%E8%AE%BE%E5%A4%87%EF%BC%88%E5%A6%82%E4%BB%85%E6%9C%898KB%20SRAM%E7%9A%84Cortex-M0%2B%EF%BC%89%E4%B8%8A%E4%B9%9F%E5%8F%AF%E4%BB%A5%E7%B2%BE%E7%BB%86%E6%8E%A7%E5%88%B6%E5%86%85%E5%AD%98%E4%BD%BF%E7%94%A8%E2%80%94%E2%80%94%E4%BD%A0%E5%8F%AF%E4%BB%A5%E9%80%89%E6%8B%A9%E5%AE%8C%E5%85%A8%E4%B8%8D%E4%BD%BF%E7%94%A8%E5%A0%86%EF%BC%8C%E5%8D%B3%E4%BE%BF%E6%98%AF%E4%BD%BF%E7%94%A8%E5%A0%86%EF%BC%8C%E4%B9%9F%E8%83%BD%E9%80%9A%E8%BF%87%E7%BC%96%E8%AF%91%E6%9C%9F%E5%88%86%E6%9E%90%E9%81%BF%E5%85%8D%E5%86%85%E5%AD%98%E7%A2%8E%E7%89%87%E3%80%82%3C/p%3E%0A%0A%3Ch2%3E2.%20PAC%E5%B1%82%EF%BC%9A%E4%BB%8ESVD%E5%88%B0%E5%AE%89%E5%85%A8%E7%9A%84%E5%AF%84%E5%AD%98%E5%99%A8%E8%AE%BF%E9%97%AE%3C/h2%3E%0A%0A%3Cp%3E%E5%BE%AE%E6%8E%A7%E5%88%B6%E5%99%A8%E7%9A%84%E5%8A%9F%E8%83%BD%E9%80%9A%E8%BF%87%E5%86%85%E5%AD%98%E6%98%A0%E5%B0%84%E5%AF%84%E5%AD%98%E5%99%A8%E6%8E%A7%E5%88%B6%E3%80%82%E4%BC%A0%E7%BB%9F%E7%9A%84C%E5%BC%80%E5%8F%91%E4%B8%AD%EF%BC%8C%E5%AF%84%E5%AD%98%E5%99%A8%E6%93%8D%E4%BD%9C%E9%80%9A%E5%B8%B8%E9%80%9A%E8%BF%87%E5%AE%8F%E6%88%96%E7%BB%93%E6%9E%84%E4%BD%93%E6%8C%87%E9%92%88%E7%9B%B4%E6%8E%A5%E8%AF%BB%E5%86%99%EF%BC%8C%E5%AE%B9%E6%98%93%E5%8F%91%E7%94%9F%E4%BD%8D%E6%93%8D%E4%BD%9C%E9%94%99%E8%AF%AF%E3%80%82Rust%E9%80%9A%E8%BF%87PAC%EF%BC%88Peripheral%20Access%20Crate%EF%BC%89%E6%8F%90%E4%BE%9B%E4%BA%86%E7%B1%BB%E5%9E%8B%E5%AE%89%E5%85%A8%E7%9A%84%E5%AF%84%E5%AD%98%E5%99%A8%E6%8A%BD%E8%B1%A1%E3%80%82%3C/p%3E%0A%0A%3Cp%3EPAC%E7%94%B1svd2rust%E5%B7%A5%E5%85%B7%E4%BB%8E%E8%8A%AF%E7%89%87%E5%8E%82%E5%95%86%E6%8F%90%E4%BE%9B%E7%9A%84SVD%EF%BC%88System%20View%20Description%EF%BC%89XML%E6%96%87%E4%BB%B6%E8%87%AA%E5%8A%A8%E7%94%9F%E6%88%90%E3%80%82%E6%AF%8F%E4%B8%AA%E5%A4%96%E8%AE%BE%E5%AF%B9%E5%BA%94%E4%B8%80%E4%B8%AA%E7%BB%93%E6%9E%84%E4%BD%93%EF%BC%8C%E6%AF%8F%E4%B8%AA%E5%AF%84%E5%AD%98%E5%99%A8%E5%AF%B9%E5%BA%94%E7%BB%93%E6%9E%84%E4%BD%93%E7%9A%84%E4%B8%80%E4%B8%AA%E5%AD%97%E6%AE%B5%EF%BC%8C%E6%AF%8F%E4%B8%AA%E5%AD%97%E6%AE%B5%E4%BD%8D%E6%AE%B5%E9%83%BD%E6%9C%89%E5%AF%B9%E5%BA%94%E7%9A%84%E8%AF%BB%E5%86%99%E6%96%B9%E6%B3%95%E3%80%82%E4%BB%A5%E4%B8%8B%E6%98%AFSTM32%20GPIO%E7%9A%84PAC%E5%B1%82%E6%8A%BD%E8%B1%A1%E7%A4%BA%E4%BE%8B%EF%BC%9A%3C/p%3E%0A%0A%3Cpre%3E%3Ccode%20class%3D%22language-rust%22%3E//%20PAC%E5%B1%82%EF%BC%9A%E7%9B%B4%E6%8E%A5%E5%AF%84%E5%AD%98%E5%99%A8%E6%93%8D%E4%BD%9C%EF%BC%8C%E9%9B%B6%E6%88%90%E6%9C%AC%E6%8A%BD%E8%B1%A1%0Alet%20dp%20%3D%20stm32f4xx_hal%3A%3Apac%3A%3APeripherals%3A%3Atake%28%29.unwrap%28%29%3B%0A%0A//%20%E4%BD%BF%E8%83%BDGPIOA%E6%97%B6%E9%92%9F%EF%BC%88%E7%B1%BB%E5%9E%8B%E5%AE%89%E5%85%A8%E7%9A%84%E4%BD%8D%E6%93%8D%E4%BD%9C%EF%BC%89%0Adp.RCC.ahb1enr.modify%28%7Cr%2C%20w%7C%20w.pa5%28%29.set_bit%28%29%29%3B%0A%0A//%20%E9%85%8D%E7%BD%AEPA5%E4%B8%BA%E8%BE%93%E5%87%BA%E6%A8%A1%E5%BC%8F%EF%BC%88LED%E5%BC%95%E8%84%9A%EF%BC%89%0Adp.GPIOA.moder.modify%28%7Cr%2C%20w%7C%20w.moder5%28%29.output%28%29%29%3B%0Adp.GPIOA.odr.write%28%7Cw%7C%20w.od5%28%29.set_bit%28%29%29%3B%20%20//%20%E7%82%B9%E4%BA%AELED%3C/code%3E%3C/pre%3E%0A%0A%3Cp%3EPAC%E5%B1%82%E7%9A%84%E6%A0%B8%E5%BF%83%E5%AE%89%E5%85%A8%E4%BF%9D%E8%AF%81%EF%BC%9A%3C/p%3E%0A%0A%3Cul%3E%0A%3Cli%3E%3Cstrong%3E%E5%A4%96%E8%AE%BE%20singleton%3C/strong%3E%EF%BC%9A%3Ccode%3EPeripherals%3A%3Atake%28%29%3C/code%3E%E8%BF%94%E5%9B%9E%3Ccode%3EOption%26lt%3BPeripherals%26gt%3B%3C/code%3E%EF%BC%8C%E7%AC%AC%E4%BA%8C%E6%AC%A1%E8%B0%83%E7%94%A8%E8%BF%94%E5%9B%9E%3Ccode%3ENone%3C/code%3E%EF%BC%8C%E4%BB%8E%E7%B1%BB%E5%9E%8B%E7%B3%BB%E7%BB%9F%E5%B1%82%E9%9D%A2%E6%9D%9C%E7%BB%9D%E4%BA%86%E5%A4%9A%E9%A9%B1%E5%8A%A8%E4%BA%89%E7%94%A8%E5%90%8C%E4%B8%80%E5%A4%96%E8%AE%BE%E7%9A%84%E9%97%AE%E9%A2%98%E3%80%82%3C/li%3E%0A%3Cli%3E%3Cstrong%3E%E4%BD%8D%E6%93%8D%E4%BD%9C%E7%9A%84%E7%B1%BB%E5%9E%8B%E7%BA%A6%E6%9D%9F%3C/strong%3E%EF%BC%9A%E6%AF%8F%E4%B8%AA%E5%AF%84%E5%AD%98%E5%99%A8%E5%AD%97%E6%AE%B5%E9%83%BD%E6%9C%89%E6%98%8E%E7%A1%AE%E7%9A%84%E6%9E%9A%E4%B8%BE%E7%B1%BB%E5%9E%8B%EF%BC%8C%E4%B8%8D%E5%85%81%E8%AE%B8%E9%9D%9E%E6%B3%95%E5%80%BC%E5%86%99%E5%85%A5%EF%BC%88%E5%A6%82%E5%B0%863%E4%BD%8D%E5%AD%97%E6%AE%B5%E5%86%99%E5%85%A5%E5%80%BC8%EF%BC%89%E3%80%82%3C/li%3E%0A%3Cli%3E%3Cstrong%3E%E5%B9%B6%E5%8F%91%E5%AE%89%E5%85%A8%3C/strong%3E%EF%BC%9A%E5%AF%84%E5%AD%98%E5%99%A8%E8%AE%BF%E9%97%AE%E9%80%9A%E8%BF%87%3Ccode%3Ecortex_m%3A%3Ainterrupt%3A%3Afree%3C/code%3E%E4%B8%B4%E7%95%8C%E5%8C%BA%E4%BF%9D%E6%8A%A4%EF%BC%8C%E9%98%B2%E6%AD%A2%E4%B8%AD%E6%96%AD%E4%B8%8A%E4%B8%8B%E6%96%87%E4%B8%8E%E4%B8%BB%E5%BE%AA%E7%8E%AF%E7%9A%84%E7%AB%9E%E6%80%81%E3%80%82%3C/li%3E%0A%3C/ul%3E%0A%0A%3Cp%3E%E4%BD%86PAC%E5%B1%82%E7%9A%84%E6%8A%BD%E8%B1%A1%E4%BB%8D%E7%84%B6%E5%81%8F%E5%BA%95%E5%B1%82%E2%80%94%E2%80%94%E4%BD%A0%E9%9C%80%E8%A6%81%E6%9F%A5%E9%98%85%E8%8A%AF%E7%89%87%E6%89%8B%E5%86%8C%E7%A1%AE%E5%AE%9A%E5%85%B7%E4%BD%93%E5%AF%84%E5%AD%98%E5%99%A8%E4%BD%8D%EF%BC%8C%E8%B7%A8%E5%B9%B3%E5%8F%B0%E7%A7%BB%E6%A4%8D%E6%97%B6%E9%9C%80%E8%A6%81%E5%A4%A7%E9%87%8F%E4%BF%AE%E6%94%B9%E3%80%82%E8%BF%99%E5%B0%B1%E6%98%AFHAL%E5%B1%82%E5%AD%98%E5%9C%A8%E7%9A%84%E6%84%8F%E4%B9%89%E3%80%82%3C/p%3E%0A%0A%3Ch2%3E3.%20HAL%E5%B1%82%EF%BC%9A%E5%8F%AF%E7%A7%BB%E6%A4%8D%E7%9A%84%E7%A1%AC%E4%BB%B6%E6%8A%BD%E8%B1%A1%3C/h2%3E%0A%0A%3Cp%3EHAL%EF%BC%88Hardware%20Abstraction%20Layer%EF%BC%89%E5%9F%BA%E4%BA%8E%3Ccode%3Eembedded-hal%3C/code%3E%20trait%E4%BD%93%E7%B3%BB%EF%BC%8C%E5%AE%9A%E4%B9%89%E4%BA%86%E8%B7%A8MCU%E5%B9%B3%E5%8F%B0%E7%9A%84%E7%BB%9F%E4%B8%80%E6%8E%A5%E5%8F%A3%E3%80%82%3Ccode%3Eembedded-hal%3C/code%3E%E6%8F%90%E4%BE%9B%E4%BA%86GPIO%E3%80%81SPI%E3%80%81I2C%E3%80%81UART%E3%80%81Timer%E3%80%81ADC%E3%80%81DAC%E3%80%81CAN%E7%AD%89%E9%80%9A%E4%BF%A1%E4%B8%8E%E5%A4%96%E8%AE%BE%E7%9A%84%E6%A0%87%E5%87%86trait%EF%BC%9A%3C/p%3E%0A%0A%3Cpre%3E%3Ccode%20class%3D%22language-rust%22%3Euse%20embedded_hal%3A%3Adigital%3A%3Av2%3A%3AOutputPin%3B%0Ause%20embedded_hal%3A%3Aspi%3A%3AFullDuplex%3B%0A%0A//%20HAL%E5%B1%82%E5%AE%9E%E7%8E%B0%EF%BC%9A%E5%8F%AF%E7%A7%BB%E6%A4%8D%E7%9A%84SPI%E4%BC%A0%E8%BE%93%0Afn%20spi_transfer%26lt%3BSPI%2C%20CS%26gt%3B%28spi%3A%20%26amp%3Bmut%20SPI%2C%20cs%3A%20%26amp%3Bmut%20CS%2C%20data%3A%20%26amp%3B%5Bu8%5D%29%20-%26gt%3B%20Result%26lt%3B%28%29%2C%20SPI%3A%3AError%26gt%3B%0Awhere%0A%20%20%20%20SPI%3A%20FullDuplex%26lt%3Bu8%26gt%3B%2C%0A%20%20%20%20CS%3A%20OutputPin%2C%0A%7B%0A%20%20%20%20cs.set_low%28%29.ok%28%29%3B%0A%20%20%20%20for%20%26amp%3Bbyte%20in%20data%20%7B%0A%20%20%20%20%20%20%20%20block%21%28spi.send%28byte%29%29%3F%3B%0A%20%20%20%20%20%20%20%20let%20_%20%3D%20block%21%28spi.read%28%29%29%3F%3B%0A%20%20%20%20%7D%0A%20%20%20%20cs.set_high%28%29.ok%28%29%3B%0A%20%20%20%20Ok%28%28%29%29%0A%7D%3C/code%3E%3C/pre%3E%0A%0A%3Cp%3E%E4%B8%8A%E8%BF%B0%E4%BB%A3%E7%A0%81%E5%8F%AF%E4%BB%A5%E5%9C%A8STM32%E3%80%81nRF52%E3%80%81RP2040%E7%AD%89%E4%B8%8D%E5%90%8CMCU%E4%B8%8A%E5%A4%8D%E7%94%A8%E2%80%94%E2%80%94%E5%8F%AA%E9%9C%80%E5%88%87%E6%8D%A2HAL%E7%9A%84%E5%85%B7%E4%BD%93%E5%AE%9E%E7%8E%B0%E3%80%82%E8%BF%99%E7%A7%8D%E5%88%86%E5%B1%82%E6%9E%B6%E6%9E%84%E5%B8%A6%E6%9D%A5%E7%9A%84%E5%B7%A5%E7%A8%8B%E4%BB%B7%E5%80%BC%EF%BC%9A%3C/p%3E%0A%0A%3Cp%3E%3Cstrong%3E%E5%9B%BA%E4%BB%B6%E5%8F%AF%E7%A7%BB%E6%A4%8D%E6%80%A7%3C/strong%3E%EF%BC%9A%E7%A1%AC%E4%BB%B6%E7%9B%B8%E5%85%B3%E4%BB%A3%E7%A0%81%E9%9B%86%E4%B8%AD%E5%9C%A8%E5%A4%96%E8%AE%BE%E5%88%9D%E5%A7%8B%E5%8C%96%EF%BC%8C%E4%B8%9A%E5%8A%A1%E9%80%BB%E8%BE%91%E9%80%9A%E8%BF%87trait%E6%8E%A5%E5%8F%A3%E4%B8%8E%E7%A1%AC%E4%BB%B6%E8%A7%A3%E8%80%A6%E3%80%82%E5%BD%93%E8%8A%AF%E7%89%87%E7%BC%BA%E8%B4%A7%E6%88%96%E5%8D%87%E7%BA%A7%E6%8D%A2%E4%BB%A3%E6%97%B6%EF%BC%8C%E6%9B%B4%E6%8D%A2HAL%20crate%E5%8D%B3%E5%8F%AF%E8%BF%81%E7%A7%BB%E3%80%82%3C/p%3E%0A%0A%3Cp%3E%3Cstrong%3E%E6%B5%8B%E8%AF%95%E5%8F%8B%E5%A5%BD%3C/strong%3E%EF%BC%9A%E5%8F%AF%E4%BB%A5%E4%BD%BF%E7%94%A8mock%20HAL%E5%AE%9E%E7%8E%B0%EF%BC%88%E5%A6%82%3Ccode%3Eembedded-hal-mock%3C/code%3E%EF%BC%89%E5%9C%A8%E4%B8%BB%E6%9C%BA%E4%B8%8A%E8%BF%90%E8%A1%8C%E5%8D%95%E5%85%83%E6%B5%8B%E8%AF%95%EF%BC%8C%E6%97%A0%E9%9C%80%E7%89%A9%E7%90%86%E7%A1%AC%E4%BB%B6%E3%80%82%3C/p%3E%0A%0A%3Cp%3E%3Cstrong%3E%E7%94%9F%E6%80%81%E9%9B%86%E6%88%90%3C/strong%3E%EF%BC%9A%E5%A4%A7%E9%87%8F%E4%BC%A0%E6%84%9F%E5%99%A8%E9%A9%B1%E5%8A%A8%EF%BC%88%E5%A6%82%3Ccode%3Elis2dh%3C/code%3E%E5%8A%A0%E9%80%9F%E5%BA%A6%E8%AE%A1%E3%80%81%3Ccode%3Ebme280%3C/code%3E%E7%8E%AF%E5%A2%83%E4%BC%A0%E6%84%9F%E5%99%A8%EF%BC%89%E7%9B%B4%E6%8E%A5%E5%9F%BA%E4%BA%8E%3Ccode%3Eembedded-hal%3C/code%3E%20trait%E5%BC%80%E5%8F%91%EF%BC%8CHAL%E5%B1%82%E5%AE%9E%E7%8E%B0%E5%8F%AF%E4%BB%A5%E5%8D%B3%E6%8F%92%E5%8D%B3%E7%94%A8%E3%80%82%3C/p%3E%0A%0A%3Cp%3E%E5%AE%9E%E9%99%85%E5%B7%A5%E7%A8%8B%E4%B8%AD%E9%9C%80%E8%A6%81%E5%85%B3%E6%B3%A8%3Ccode%3Eembedded-hal%3C/code%3E%E7%89%88%E6%9C%AC%E7%9A%84%E5%85%BC%E5%AE%B9%E6%80%A7%E9%97%AE%E9%A2%98%E3%80%82%E5%BD%93%E5%89%8D%E4%B8%BB%E6%B5%81%E6%98%AF1.0%E7%89%88%E6%9C%AC%EF%BC%882023%E5%B9%B4%E7%A8%B3%E5%AE%9A%EF%BC%89%EF%BC%8C%E4%BD%86%E9%83%A8%E5%88%86crate%E4%BB%8D%E5%9C%A8%E4%BD%BF%E7%94%A80.2%E7%89%88%E6%9C%AC%E3%80%82%E4%B8%A4%E4%B8%AA%E7%89%88%E6%9C%AC%E4%B9%8B%E9%97%B4%E9%80%9A%E8%BF%87%3Ccode%3Eembedded-hal-compat%3C/code%3E%20shim%E5%B1%82%E6%A1%A5%E6%8E%A5%E3%80%82%3C/p%3E%0A%0A%3Ch2%3E4.%20RTIC%E6%A1%86%E6%9E%B6%EF%BC%9A%E6%97%A0RTOS%E7%9A%84%E7%8E%B0%E4%BB%A3%E5%B9%B6%E5%8F%91%E6%A8%A1%E5%9E%8B%3C/h2%3E%0A%0A%3Cp%3E%E5%9C%A8%E8%A3%B8%E6%9C%BA%E5%B5%8C%E5%85%A5%E5%BC%8F%E7%B3%BB%E7%BB%9F%E4%B8%AD%EF%BC%8C%E4%B8%AD%E6%96%AD%E6%9C%8D%E5%8A%A1%E4%BE%8B%E7%A8%8B%EF%BC%88ISR%EF%BC%89%E4%B8%8E%E4%B8%BB%E5%BE%AA%E7%8E%AF%E7%9A%84%E5%B9%B6%E5%8F%91%E6%98%AFbug%E7%9A%84%E9%AB%98%E5%8F%91%E5%8C%BA%E3%80%82%E4%BC%A0%E7%BB%9F%E6%96%B9%E6%A1%88%E6%98%AF%E5%BC%95%E5%85%A5FreeRTOS%E7%AD%89RTOS%EF%BC%8C%E4%BD%86%E5%B8%A6%E6%9D%A5%E5%86%85%E5%AD%98%E5%BC%80%E9%94%80%E5%92%8C%E4%B8%8A%E4%B8%8B%E6%96%87%E5%88%87%E6%8D%A2%E5%A4%8D%E6%9D%82%E5%BA%A6%E3%80%82RTIC%EF%BC%88Real-Time%20Interrupt-driven%20Concurrency%EF%BC%89%E6%8F%90%E4%BE%9B%E4%BA%86%E4%B8%80%E5%A5%97%E5%9F%BA%E4%BA%8ERust%E7%B1%BB%E5%9E%8B%E7%B3%BB%E7%BB%9F%E7%9A%84%E8%BD%BB%E9%87%8F%E6%9B%BF%E4%BB%A3%E6%96%B9%E6%A1%88%E3%80%82%3C/p%3E%0A%0A%3Cp%3ERTIC%E7%9A%84%E6%A0%B8%E5%BF%83%E6%80%9D%E6%83%B3%E6%98%AF%EF%BC%9A%E5%B0%86%E4%BB%BB%E5%8A%A1%E5%88%86%E4%B8%BA%E8%BD%AF%E4%BB%B6%E4%BB%BB%E5%8A%A1%EF%BC%88%E6%B6%88%E6%81%AF%E9%98%9F%E5%88%97%E8%B0%83%E5%BA%A6%EF%BC%89%E5%92%8C%E7%A1%AC%E4%BB%B6%E4%BB%BB%E5%8A%A1%EF%BC%88%E4%B8%AD%E6%96%AD%E8%A7%A6%E5%8F%91%EF%BC%89%EF%BC%8C%E8%B5%84%E6%BA%90%E5%85%B1%E4%BA%AB%E9%80%9A%E8%BF%87%E7%BC%96%E8%AF%91%E6%9C%9F%E7%94%9F%E6%88%90%E7%9A%84%E9%94%81%E6%9C%BA%E5%88%B6%E8%87%AA%E5%8A%A8%E7%AE%A1%E7%90%86%EF%BC%8C%E6%B6%88%E9%99%A4%E6%95%B0%E6%8D%AE%E7%AB%9E%E4%BA%89%E3%80%82%3C/p%3E%0A%0A%3Cpre%3E%3Ccode%20class%3D%22language-rust%22%3E%23%5Brtic%3A%3Aapp%28device%20%3D%20stm32f4xx_hal%3A%3Apac%29%5D%0Amod%20app%20%7B%0A%20%20%20%20use%20rtic%3A%3AMutex%3B%0A%0A%20%20%20%20//%20%E5%85%B1%E4%BA%AB%E8%B5%84%E6%BA%90%EF%BC%9A%E8%87%AA%E5%8A%A8%E9%80%9A%E8%BF%87%E4%BC%98%E5%85%88%E7%BA%A7%E5%A4%A9%E8%8A%B1%E6%9D%BF%E5%8D%8F%E8%AE%AE%E7%AE%A1%E7%90%86%E8%AE%BF%E9%97%AE%0A%20%20%20%20struct%20Resources%20%7B%0A%20%20%20%20%20%20%20%20counter%3A%20u32%2C%0A%20%20%20%20%20%20%20%20spi%3A%20SpiInterface%2C%0A%20%20%20%20%20%20%20%20sensor_data%3A%20%5Bf32%3B%203%5D%2C%0A%20%20%20%20%7D%0A%0A%20%20%20%20//%20%E7%A1%AC%E4%BB%B6%E4%BB%BB%E5%8A%A1%EF%BC%9A%E4%B8%AD%E6%96%AD%E7%9B%B4%E6%8E%A5%E8%A7%A6%E5%8F%91%EF%BC%8C%E7%8B%AC%E5%8D%A0%E6%9C%80%E9%AB%98%E4%BC%98%E5%85%88%E7%BA%A7%0A%20%20%20%20%23%5Btask%28binds%20%3D%20TIM2%2C%20priority%20%3D%203%2C%20resources%20%3D%20%5Bcounter%2C%20sensor_data%5D%29%5D%0A%20%20%20%20fn%20timer_isr%28c%3A%20timer_isr%3A%3AContext%29%20%7B%0A%20%20%20%20%20%20%20%20%2Ac.resources.counter%20%2B%3D%201%3B%0A%20%20%20%20%20%20%20%20//%20%E9%80%9A%E7%9F%A5%E8%BD%AF%E4%BB%B6%E4%BB%BB%E5%8A%A1%E5%A4%84%E7%90%86%E6%95%B0%E6%8D%AE%0A%20%20%20%20%20%20%20%20process_data%3A%3Aspawn%28c.resources.counter.read%28%29%20%25%203%29.ok%28%29%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20//%20%E8%BD%AF%E4%BB%B6%E4%BB%BB%E5%8A%A1%EF%BC%9A%E9%80%9A%E8%BF%87%E6%B6%88%E6%81%AF%E9%98%9F%E5%88%97%E8%B0%83%E5%BA%A6%EF%BC%8C%E6%94%AF%E6%8C%81%E5%BC%82%E6%AD%A5/%E7%AD%89%E5%BE%85%0A%20%20%20%20%23%5Btask%28priority%20%3D%202%2C%20resources%20%3D%20%5Bsensor_data%5D%29%5D%0A%20%20%20%20async%20fn%20process_data%28c%3A%20process_data%3A%3AContext%2C%20channel%3A%20u8%29%20%7B%0A%20%20%20%20%20%20%20%20let%20idx%20%3D%20channel%20as%20usize%3B%0A%20%20%20%20%20%20%20%20//%20%E5%BC%82%E6%AD%A5%E6%93%8D%E4%BD%9C%E4%B8%8D%E4%BC%9A%E9%98%BB%E5%A1%9E%E5%85%B6%E4%BB%96%E4%BB%BB%E5%8A%A1%0A%20%20%20%20%20%20%20%20let%20value%20%3D%20c.resources.sensor_data.lock%28%7Cdata%7C%20data%5Bidx%5D%29%3B%0A%20%20%20%20%20%20%20%20//%20%E9%80%9A%E8%BF%87UART%E8%BE%93%E5%87%BA%EF%BC%88%E7%AD%89%E5%BE%85%E5%AE%8C%E6%88%90%E4%BD%86%E4%B8%8D%E9%98%BB%E5%A1%9E%E7%B3%BB%E7%BB%9F%EF%BC%89%0A%20%20%20%20%20%20%20%20log_data%28value%29.await%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20//%20%E7%A9%BA%E9%97%B2%E4%BB%BB%E5%8A%A1%EF%BC%9A%E7%B3%BB%E7%BB%9F%E7%A9%BA%E9%97%B2%E6%97%B6%E8%BF%9B%E5%85%A5%E4%BD%8E%E5%8A%9F%E8%80%97%0A%20%20%20%20%23%5Bidle%5D%0A%20%20%20%20fn%20idle%28_%3A%20idle%3A%3AContext%29%20-%26gt%3B%20%21%20%7B%0A%20%20%20%20%20%20%20%20loop%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20cortex_m%3A%3Aasm%3A%3Awfi%28%29%3B%20%20//%20Wait%20For%20Interrupt%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%7D%3C/code%3E%3C/pre%3E%0A%0A%3Cp%3ERTIC%E7%9A%84%E5%B9%B6%E5%8F%91%E5%AE%89%E5%85%A8%E4%BF%9D%E9%9A%9C%E6%9C%BA%E5%88%B6%EF%BC%9A%3C/p%3E%0A%0A%3Cul%3E%0A%3Cli%3E%3Cstrong%3E%E4%BC%98%E5%85%88%E7%BA%A7%E5%A4%A9%E8%8A%B1%E6%9D%BF%E5%8D%8F%E8%AE%AE%3C/strong%3E%EF%BC%9A%E8%B5%84%E6%BA%90%E8%AE%BF%E9%97%AE%E4%BC%98%E5%85%88%E7%BA%A7%E8%87%AA%E5%8A%A8%E6%8F%90%E5%8D%87%E5%88%B0%E5%8F%AF%E8%83%BD%E8%AE%BF%E9%97%AE%E8%AF%A5%E8%B5%84%E6%BA%90%E7%9A%84%E6%9C%80%E9%AB%98%E4%BB%BB%E5%8A%A1%E4%BC%98%E5%85%88%E7%BA%A7%EF%BC%8C%E4%BB%8E%E6%95%B0%E5%AD%A6%E4%B8%8A%E8%AF%81%E6%98%8E%E4%B8%8D%E4%BC%9A%E5%8F%91%E7%94%9F%E4%BC%98%E5%85%88%E7%BA%A7%E5%8F%8D%E8%BD%AC%E3%80%82%3C/li%3E%0A%3Cli%3E%3Cstrong%3E%E9%94%81%E7%9A%84%E7%BC%96%E8%AF%91%E6%9C%9F%E7%94%9F%E6%88%90%3C/strong%3E%EF%BC%9A%E6%97%A0%E9%9C%80%E6%89%8B%E5%8A%A8%E5%8A%A0%E9%94%81%EF%BC%8CRTIC%E6%A0%B9%E6%8D%AE%E8%B5%84%E6%BA%90%E8%AE%BF%E9%97%AE%E5%88%86%E6%9E%90%E8%87%AA%E5%8A%A8%E7%94%9F%E6%88%90%E4%BF%9D%E6%8A%A4%E4%BB%A3%E7%A0%81%EF%BC%88ARM%E6%9E%B6%E6%9E%84%E4%B8%8A%E9%80%9A%E5%B8%B8%E5%8F%AA%E9%9C%80%E5%BC%80%E5%85%B3%E4%B8%AD%E6%96%AD%EF%BC%89%E3%80%82%3C/li%3E%0A%3Cli%3E%3Cstrong%3E%E6%97%A0%E5%A0%86%E5%88%86%E9%85%8D%E7%9A%84%E4%BB%BB%E5%8A%A1%E9%98%9F%E5%88%97%3C/strong%3E%EF%BC%9A%E6%B6%88%E6%81%AF%E9%98%9F%E5%88%97%E5%9C%A8%E7%BC%96%E8%AF%91%E6%9C%9F%E7%A1%AE%E5%AE%9A%E5%A4%A7%E5%B0%8F%E5%92%8C%E5%AD%98%E5%82%A8%E4%BD%8D%E7%BD%AE%EF%BC%8C%E9%81%BF%E5%85%8D%E5%8A%A8%E6%80%81%E5%88%86%E9%85%8D%E7%9A%84%E9%9D%9E%E7%A1%AE%E5%AE%9A%E6%80%A7%E5%BB%B6%E8%BF%9F%E3%80%82%3C/li%3E%0A%3C/ul%3E%0A%0A%3Cp%3E%E4%B8%8EFreeRTOS%E7%9B%B8%E6%AF%94%EF%BC%8CRTIC%E5%9C%A8Cortex-M4%E4%B8%8A%E7%9A%84%E5%85%B8%E5%9E%8B%E6%8C%87%E6%A0%87%EF%BC%9A%3C/p%3E%0A%0A%3Ctable%3E%0A%3Cthead%3E%0A%3Ctr%3E%3Cth%3E%E6%8C%87%E6%A0%87%3C/th%3E%3Cth%3EFreeRTOS%3C/th%3E%3Cth%3ERTIC%3C/th%3E%3C/tr%3E%0A%3C/thead%3E%0A%3Ctbody%3E%0A%3Ctr%3E%3Ctd%3E%E4%BB%A3%E7%A0%81%E4%BD%93%E7%A7%AF%3C/td%3E%3Ctd%3E~6-8KB%3C/td%3E%3Ctd%3E~2-3KB%3C/td%3E%3C/tr%3E%0A%3Ctr%3E%3Ctd%3ERAM%E5%BC%80%E9%94%80%3C/td%3E%3Ctd%3E~2KB%20%2B%20%E6%AF%8F%E4%BB%BB%E5%8A%A1512B%3C/td%3E%3Ctd%3E~64B%E5%85%A8%E5%B1%80%20%2B%20%E6%AF%8F%E4%BB%BB%E5%8A%A1%E5%B0%91%E9%87%8F%3C/td%3E%3C/tr%3E%0A%3Ctr%3E%3Ctd%3E%E4%B8%8A%E4%B8%8B%E6%96%87%E5%88%87%E6%8D%A2%3C/td%3E%3Ctd%3E~12%CE%BCs%3C/td%3E%3Ctd%3E~4%CE%BCs%3C/td%3E%3C/tr%3E%0A%3Ctr%3E%3Ctd%3E%E5%B9%B6%E5%8F%91%E5%AE%89%E5%85%A8%3C/td%3E%3Ctd%3E%E8%BF%90%E8%A1%8C%E6%97%B6%E6%A3%80%E6%9F%A5%3C/td%3E%3Ctd%3E%E7%BC%96%E8%AF%91%E6%9C%9F%E4%BF%9D%E8%AF%81%3C/td%3E%3C/tr%3E%0A%3Ctr%3E%3Ctd%3E%E5%AD%A6%E4%B9%A0%E6%9B%B2%E7%BA%BF%3C/td%3E%3Ctd%3E%E4%B8%AD%E7%AD%89%3C/td%3E%3Ctd%3E%E9%99%A1%E5%B3%AD%EF%BC%88%E7%90%86%E8%A7%A3%E6%89%80%E6%9C%89%E6%9D%83%EF%BC%89%3C/td%3E%3C/tr%3E%0A%3C/tbody%3E%0A%3C/table%3E%0A%0A%3Ch2%3E5.%20%E5%AE%9E%E6%88%98%EF%BC%9AnRF52%20BLE%E6%B8%A9%E5%BA%A6%E4%BC%A0%E6%84%9F%E5%99%A8%E8%8A%82%E7%82%B9%3C/h2%3E%0A%0A%3Cp%3E%E8%AE%A9%E6%88%91%E4%BB%AC%E9%80%9A%E8%BF%87%E4%B8%80%E4%B8%AA%E5%AE%8C%E6%95%B4%E7%9A%84%E6%A1%88%E4%BE%8B%E7%90%86%E8%A7%A3%E5%B5%8C%E5%85%A5%E5%BC%8FRust%E7%9A%84%E5%B7%A5%E7%A8%8B%E5%AE%9E%E8%B7%B5%EF%BC%9A%E5%9F%BA%E4%BA%8EnRF52840%E7%9A%84%E4%BD%8E%E5%8A%9F%E8%80%97BLE%E6%B8%A9%E5%BA%A6%E4%BC%A0%E6%84%9F%E5%99%A8%E8%8A%82%E7%82%B9%E3%80%82%E8%AF%A5%E8%8A%82%E7%82%B9%E8%AF%BB%E5%8F%96BME280%E4%BC%A0%E6%84%9F%E5%99%A8%E6%95%B0%E6%8D%AE%EF%BC%8C%E9%80%9A%E8%BF%87BLE%E9%80%9A%E7%9F%A5%E7%89%B9%E5%BE%81%E5%80%BC%EF%BC%8C%E6%B7%B1%E5%BA%A6%E7%9D%A1%E7%9C%A0%E4%B8%8B%E5%8A%9F%E8%80%97%E9%9C%80%E4%BD%8E%E4%BA%8E5%CE%BCA%E3%80%82%3C/p%3E%0A%0A%3Ch3%3E5.1%20%E7%A1%AC%E4%BB%B6%E6%8A%BD%E8%B1%A1%E4%B8%8E%E5%88%9D%E5%A7%8B%E5%8C%96%3C/h3%3E%0A%0A%3Cpre%3E%3Ccode%20class%3D%22language-rust%22%3E//%20%E5%9F%BA%E4%BA%8Enrf52840-hal%E7%9A%84%E7%A1%AC%E4%BB%B6%E5%88%9D%E5%A7%8B%E5%8C%96%0A%23%5Bentry%5D%0Afn%20main%28%29%20-%26gt%3B%20%21%20%7B%0A%20%20%20%20let%20p%20%3D%20nrf52840_hal%3A%3Apac%3A%3APeripherals%3A%3Atake%28%29.unwrap%28%29%3B%0A%20%20%20%20let%20cp%20%3D%20nrf52840_hal%3A%3Apac%3A%3ACorePeripherals%3A%3Atake%28%29.unwrap%28%29%3B%0A%0A%20%20%20%20//%20%E9%85%8D%E7%BD%AE%E6%97%B6%E9%92%9F%EF%BC%9A64MHz%20HFCLK%20%2B%2032.768kHz%20LFCLK%0A%20%20%20%20let%20clocks%20%3D%20Clocks%3A%3Anew%28p.CLOCK%29%0A%20%20%20%20%20%20%20%20.set_lfclk_src%28LfclkSrc%3A%3AXtal%29%0A%20%20%20%20%20%20%20%20.start_lfclk%28%29%3B%0A%20%20%20%20clocks.start_hfclk%28%29%3B%0A%0A%20%20%20%20//%20%E9%85%8D%E7%BD%AEGPIO%E4%B8%AD%E6%96%AD%EF%BC%88%E6%8C%89%E9%94%AE%E5%94%A4%E9%86%92%EF%BC%89%0A%20%20%20%20let%20gpiote%20%3D%20Gpiote%3A%3Anew%28p.GPIOTE%29%3B%0A%20%20%20%20let%20pin%20%3D%20p.P0_13.into_pullup_input%28%29%3B%0A%20%20%20%20gpiote.port%28%29.input_pin%28%26amp%3Bpin%29.low%28%29%3B%0A%20%20%20%20gpiote.port%28%29.enable_interrupt%28%29%3B%0A%0A%20%20%20%20//%20%E5%88%9D%E5%A7%8B%E5%8C%96TWI%EF%BC%88I2C%EF%BC%89%E6%80%BB%E7%BA%BF%E8%AE%BF%E9%97%AEBME280%0A%20%20%20%20let%20scl%20%3D%20p.P0_27.into_floating_input%28%29.degrade%28%29%3B%0A%20%20%20%20let%20sda%20%3D%20p.P0_26.into_floating_input%28%29.degrade%28%29%3B%0A%20%20%20%20let%20twi%20%3D%20Twi%3A%3Anew%28p.TWIM0%2C%20Pins%20%7B%20scl%2C%20sda%20%7D%2C%20Frequency%3A%3AK400%29%3B%0A%0A%20%20%20%20//%20BME280%E9%A9%B1%E5%8A%A8%E5%88%9D%E5%A7%8B%E5%8C%96%EF%BC%88%E5%9F%BA%E4%BA%8Eembedded-hal%20trait%EF%BC%89%0A%20%20%20%20let%20mut%20sensor%20%3D%20Bme280%3A%3Anew_secondary%28twi%2C%20Delay%29%3B%0A%20%20%20%20sensor.init%28%29.expect%28%22Sensor%20init%20failed%22%29%3B%0A%0A%20%20%20%20//%20%E9%85%8D%E7%BD%AERTC%E5%AE%9A%E6%97%B6%E5%94%A4%E9%86%92%0A%20%20%20%20let%20mut%20rtc%20%3D%20Rtc%3A%3Anew%28p.RTC1%2C%200%29.unwrap%28%29%3B%0A%20%20%20%20rtc.set_compare%28RtcCompareReg%3A%3ACompare0%2C%2032768%20%2A%2060%29%3B%20//%2060%E7%A7%92%0A%20%20%20%20rtc.enable_counter%28%29%3B%0A%20%20%20%20rtc.enable_interrupt%28RtcEvents%3A%3ACompare0%2C%20None%29%3B%0A%0A%20%20%20%20//%20%E8%BF%9B%E5%85%A5%E6%B7%B1%E5%BA%A6%E7%9D%A1%E7%9C%A0%0A%20%20%20%20loop%20%7B%0A%20%20%20%20%20%20%20%20sensor.measure%28%29.ok%28%29%3B%0A%20%20%20%20%20%20%20%20//%20BME280%E6%B5%8B%E9%87%8F%E7%BB%93%E6%9E%9C%E8%AF%BB%E5%8F%96...%0A%20%20%20%20%20%20%20%20cortex_m%3A%3Aasm%3A%3Awfi%28%29%3B%20%20//%20%E7%AD%89%E5%BE%85%E5%94%A4%E9%86%92%E4%BA%8B%E4%BB%B6%0A%20%20%20%20%7D%0A%7D%3C/code%3E%3C/pre%3E%0A%0A%3Ch3%3E5.2%20%E4%BD%8E%E5%8A%9F%E8%80%97%E5%B7%A5%E7%A8%8B%E7%AD%96%E7%95%A5%3C/h3%3E%0A%0A%3Cp%3E%E5%B5%8C%E5%85%A5%E5%BC%8F%E7%B3%BB%E7%BB%9F%E7%9A%84%E5%8A%9F%E8%80%97%E4%BC%98%E5%8C%96%E9%9C%80%E8%A6%81%E8%BD%AF%E7%A1%AC%E4%BB%B6%E5%8D%8F%E5%90%8C%E3%80%82Rust%E7%9A%84%E7%B1%BB%E5%9E%8B%E7%B3%BB%E7%BB%9F%E5%92%8C%E7%BC%96%E8%AF%91%E6%9C%9F%E8%83%BD%E5%8A%9B%E5%9C%A8%E6%AD%A4%E5%8F%91%E6%8C%A5%E7%8B%AC%E7%89%B9%E4%BD%9C%E7%94%A8%EF%BC%9A%3C/p%3E%0A%0A%3Cp%3E%3Cstrong%3E%E5%A4%96%E8%AE%BE%E8%87%AA%E5%8A%A8%E6%8E%89%E8%90%BD%3C/strong%3E%EF%BC%9A%E5%A4%96%E8%AE%BE%E5%AE%9E%E4%BE%8B%E4%BD%9C%E4%B8%BA%E6%89%80%E6%9C%89%E6%9D%83%E5%AF%B9%E8%B1%A1%EF%BC%8C%E7%A6%BB%E5%BC%80%E4%BD%9C%E7%94%A8%E5%9F%9F%E6%97%B6%E8%87%AA%E5%8A%A8%E8%B0%83%E7%94%A8%3Ccode%3EDrop%3C/code%3E%E5%9B%9E%E8%B0%83%E5%85%B3%E9%97%AD%E6%97%B6%E9%92%9F%E9%97%A8%E6%8E%A7%EF%BC%8C%E9%81%BF%E5%85%8D%E4%BC%A0%E7%BB%9FC%E4%B8%AD%E5%B8%B8%E8%A7%81%E7%9A%84%22%E5%BF%98%E8%AE%B0%E9%87%8A%E6%94%BE%E5%A4%96%E8%AE%BE%22%E5%AF%BC%E8%87%B4%E7%9A%84%E6%BC%8F%E7%94%B5%E9%97%AE%E9%A2%98%E3%80%82%3C/p%3E%0A%0A%3Cpre%3E%3Ccode%20class%3D%22language-rust%22%3Efn%20sensor_read%28spi%3A%20%26amp%3Bmut%20Spi%2C%20cs%3A%20%26amp%3Bmut%20Pin%29%20-%26gt%3B%20f32%20%7B%0A%20%20%20%20//%20spi%E5%92%8Ccs%E5%9C%A8%E6%AD%A4%E4%BD%9C%E7%94%A8%E5%9F%9F%E7%BB%93%E6%9D%9F%E5%90%8E%E8%87%AA%E5%8A%A8%E9%87%8A%E6%94%BE%0A%20%20%20%20//%20%E5%AF%B9%E5%BA%94%E7%9A%84SPI%E5%A4%96%E8%AE%BE%E6%97%B6%E9%92%9F%E4%BC%9A%E8%87%AA%E5%8A%A8%E5%85%B3%E9%97%AD%0A%20%20%20%20perform_read%28spi%2C%20cs%29%0A%7D%20//%20%E7%A6%BB%E5%BC%80%E4%BD%9C%E7%94%A8%E5%9F%9F%E6%97%B6%EF%BC%8C%E5%A4%96%E8%AE%BE%E5%AE%9E%E4%BE%8B%E8%A2%ABdrop%EF%BC%8C%E7%A1%AC%E4%BB%B6%E7%8A%B6%E6%80%81%E8%87%AA%E5%8A%A8%E6%B8%85%E7%90%86%0A%0Aconfigure_sleep%28%29%3B%20//%20%E5%AE%89%E5%85%A8%E5%9C%B0%E9%85%8D%E7%BD%AE%E6%B7%B1%E5%BA%A6%E7%9D%A1%E7%9C%A0%3C/code%3E%3C/pre%3E%0A%0A%3Cp%3E%3Cstrong%3E%E7%BC%96%E8%AF%91%E6%9C%9F%E5%8A%9F%E8%80%97%E6%96%AD%E8%A8%80%3C/strong%3E%EF%BC%9A%E5%88%A9%E7%94%A8Rust%E7%9A%84const%20generics%E5%92%8C%E7%B1%BB%E5%9E%8B%E7%8A%B6%E6%80%81%E6%A8%A1%E5%BC%8F%EF%BC%8C%E5%8F%AF%E4%BB%A5%E5%9C%A8%E7%BC%96%E8%AF%91%E6%9C%9F%E4%BF%9D%E8%AF%81%E5%8A%9F%E8%80%97%E7%BA%A6%E6%9D%9F%E3%80%82%E4%BE%8B%E5%A6%82%EF%BC%8C%E5%AE%9A%E4%B9%89%3Ccode%3EPowerState%26lt%3BActive%26gt%3B%3C/code%3E%E5%92%8C%3Ccode%3EPowerState%26lt%3BSleep%26gt%3B%3C/code%3E%E7%B1%BB%E5%9E%8B%EF%BC%8C%E5%8F%AA%E6%9C%89%3Ccode%3EActive%3C/code%3E%E7%8A%B6%E6%80%81%E5%85%81%E8%AE%B8%E8%AE%BF%E9%97%AE%E9%AB%98%E5%8A%9F%E8%80%97%E5%A4%96%E8%AE%BE%E3%80%82%3C/p%3E%0A%0A%3Cp%3E%3Cstrong%3E%E5%BC%82%E6%AD%A5%E5%94%A4%E9%86%92%E9%93%BE%3C/strong%3E%EF%BC%9ARTIC%E7%9A%84spawn%E6%9C%BA%E5%88%B6%E5%85%81%E8%AE%B8%E5%B0%86%E9%95%BF%E8%80%97%E6%97%B6%E6%93%8D%E4%BD%9C%EF%BC%88%E5%A6%82BLE%E6%95%B0%E6%8D%AE%E5%8F%91%E9%80%81%EF%BC%89%E6%8B%86%E5%88%86%E4%B8%BA%E5%A4%9A%E4%B8%AA%E5%BC%82%E6%AD%A5%E6%AD%A5%E9%AA%A4%EF%BC%8C%E7%B3%BB%E7%BB%9F%E5%8F%AF%E4%BB%A5%E5%9C%A8%E6%AF%8F%E4%B8%AA%3Ccode%3E.await%3C/code%3E%E7%82%B9%E6%A3%80%E6%9F%A5%E6%98%AF%E5%90%A6%E6%9C%89%E4%B8%AD%E6%96%AD%E4%BA%8B%E4%BB%B6%E9%9C%80%E8%A6%81%E5%A4%84%E7%90%86%EF%BC%8C%E8%80%8C%E9%9D%9E%E9%98%BB%E5%A1%9E%E7%AD%89%E5%BE%85%EF%BC%9A%3C/p%3E%0A%0A%3Cpre%3E%3Ccode%20class%3D%22language-rust%22%3E%23%5Btask%28priority%20%3D%201%2C%20resources%20%3D%20%5Bble_tx%2C%20sensor_data%5D%29%5D%0Aasync%20fn%20publish_data%28c%3A%20publish_data%3A%3AContext%29%20%7B%0A%20%20%20%20let%20data%20%3D%20c.resources.sensor_data.lock%28%7Cd%7C%20%2Ad%29%3B%0A%20%20%20%20//%20await%E7%82%B9%E5%85%81%E8%AE%B8RTIC%E5%9C%A8%E6%AD%A4%E9%97%B4%E9%9A%99%E8%B0%83%E5%BA%A6%E9%AB%98%E4%BC%98%E5%85%88%E7%BA%A7%E4%BB%BB%E5%8A%A1%0A%20%20%20%20c.resources.ble_tx.lock%28%7Ctx%7C%20%7B%0A%20%20%20%20%20%20%20%20tx.notify%28DATA_CHAR%2C%20%26amp%3Bdata.to_le_bytes%28%29%29.await%3B%0A%20%20%20%20%7D%29.unwrap%28%29%3B%0A%7D%3C/code%3E%3C/pre%3E%0A%0A%3Ch3%3E5.3%20%E5%AE%9E%E6%97%B6%E6%95%B0%E6%8D%AE%E6%B5%81%E4%B8%8EDMA%3C/h3%3E%0A%0A%3Cp%3E%E5%AF%B9%E4%BA%8E%E9%AB%98%E9%80%9F%E6%95%B0%E6%8D%AE%E6%B5%81%EF%BC%88%E5%A6%82%E9%9F%B3%E9%A2%91%E9%87%87%E6%A0%B7%E3%80%81ADC%E6%89%AB%E6%8F%8F%EF%BC%89%EF%BC%8CCPU%E9%80%90%E5%AD%97%E8%8A%82%E5%A4%84%E7%90%86%E4%BC%9A%E6%B5%AA%E8%B4%B9%E5%A4%A7%E9%87%8F%E5%91%A8%E6%9C%9F%E3%80%82%E5%B5%8C%E5%85%A5%E5%BC%8FRust%E9%80%9A%E8%BF%87DMA%E9%80%9A%E9%81%93%E4%B8%8E%E5%A4%96%E8%AE%BE%E9%85%8D%E5%90%88%EF%BC%8C%E5%AE%9E%E7%8E%B0%E9%9B%B6CPU%E4%BB%8B%E5%85%A5%E7%9A%84%E6%95%B0%E6%8D%AE%E4%BC%A0%E8%BE%93%EF%BC%9A%3C/p%3E%0A%0A%3Cpre%3E%3Ccode%20class%3D%22language-rust%22%3Euse%20embedded_dma%3A%3A%7BReadBuffer%2C%20WriteBuffer%7D%3B%0A%0A//%20DMA-based%20SPI%E4%BC%A0%E8%BE%93%EF%BC%9ACPU%E4%BB%85%E5%9C%A8%E4%BC%A0%E8%BE%93%E5%AE%8C%E6%88%90%E6%97%B6%E8%A2%AB%E4%B8%AD%E6%96%AD%0Aasync%20fn%20dma_transfer%28spi%3A%20%26amp%3Bmut%20Spi%2C%20tx_buf%3A%20%5Bu8%3B%20256%5D%2C%20rx_buf%3A%20%26amp%3Bmut%20%5Bu8%3B%20256%5D%29%20-%26gt%3B%20usize%20%7B%0A%20%20%20%20let%20tx_transfer%20%3D%20spi.dma_read_write%28%26amp%3Btx_buf%2C%20rx_buf%29%3B%0A%20%20%20%20%0A%20%20%20%20//%20%E6%B3%A8%E5%86%8CDMA%E5%AE%8C%E6%88%90%E4%B8%AD%E6%96%AD%0A%20%20%20%20tx_transfer.on_done%28%7Cstatus%7C%20%7B%0A%20%20%20%20%20%20%20%20if%20let%20Ok%28_%29%20%3D%20status%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20process_buffer%28rx_buf%29.spawn%28%29.ok%28%29%3B%20%20//%20%E4%BB%A5%E4%BB%BB%E5%8A%A1%E6%96%B9%E5%BC%8F%E5%A4%84%E7%90%86%E7%BB%93%E6%9E%9C%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%29.await%3B%0A%20%20%20%20%0A%20%20%20%20rx_buf.len%28%29%0A%7D%3C/code%3E%3C/pre%3E%0A%0A%3Cp%3EDMA%E4%B8%8ERTIC%E7%9A%84%E9%9B%86%E6%88%90%E9%9C%80%E8%A6%81%E7%89%B9%E5%88%AB%E6%B3%A8%E6%84%8F%E7%94%9F%E5%91%BD%E5%91%A8%E6%9C%9F%EF%BC%9ADMA%E7%BC%93%E5%86%B2%E5%8C%BA%E7%9A%84%E5%86%85%E5%AD%98%E5%BF%85%E9%A1%BB%E5%9C%A8%E4%BC%A0%E8%BE%93%E6%9C%9F%E9%97%B4%E4%BF%9D%E6%8C%81%E6%9C%89%E6%95%88%E3%80%82Rust%E7%9A%84%E5%80%9F%E7%94%A8%E6%A3%80%E6%9F%A5%E5%99%A8%E5%9C%A8%E6%AD%A4%E5%8F%91%E6%8C%A5%E5%85%B3%E9%94%AE%E4%BD%9C%E7%94%A8%E2%80%94%E2%80%94%3Ccode%3EReadBuffer%3C/code%3E%E5%92%8C%3Ccode%3EWriteBuffer%3C/code%3E%20trait%E7%9A%84unsafe%E5%AE%9E%E7%8E%B0%E8%A6%81%E6%B1%82%E8%B0%83%E7%94%A8%E8%80%85%E4%BF%9D%E8%AF%81%E7%BC%93%E5%86%B2%E5%8C%BA%E5%9C%A8DMA%E8%AE%BF%E9%97%AE%E6%9C%9F%E9%97%B4%E4%B8%8D%E8%A2%AB%E9%87%8A%E6%94%BE%E6%88%96%E7%A7%BB%E5%8A%A8%E3%80%82%3C/p%3E%0A%0A%3Ch2%3E6.%20%E5%B7%A5%E5%85%B7%E9%93%BE%E4%B8%8E%E8%B0%83%E8%AF%95%3C/h2%3E%0A%0A%3Cp%3E%E5%B5%8C%E5%85%A5%E5%BC%8FRust%E7%9A%84%E5%B7%A5%E5%85%B7%E9%93%BE%E8%BF%91%E5%B9%B4%E6%9D%A5%E8%B6%8B%E4%BA%8E%E6%88%90%E7%86%9F%EF%BC%9A%3C/p%3E%0A%0A%3Cp%3E%3Cstrong%3Eprobe-rs%3C/strong%3E%EF%BC%9A%E5%BC%80%E6%BA%90%E7%9A%84%E7%89%87%E4%B8%8A%E8%B0%83%E8%AF%95%E5%B7%A5%E5%85%B7%EF%BC%8C%E6%94%AF%E6%8C%81JTAG/SWD%E5%8D%8F%E8%AE%AE%EF%BC%8C%E5%8F%AF%E6%9B%BF%E4%BB%A3J-Link%E3%80%82%E5%AE%83%E6%8F%90%E4%BE%9B%3Ccode%3Ecargo-embed%3C/code%3E%E9%9B%86%E6%88%90%EF%BC%8C%E5%AE%9E%E7%8E%B0%E4%B8%80%E9%94%AE%E7%83%A7%E5%BD%95%E3%80%81GDB%E8%B0%83%E8%AF%95%E5%92%8CRTT%EF%BC%88Real-Time%20Transfer%EF%BC%89%E6%97%A5%E5%BF%97%E8%BE%93%E5%87%BA%E3%80%82%3C/p%3E%0A%0A%3Cp%3E%3Cstrong%3ERTT%E6%97%A5%E5%BF%97%3C/strong%3E%EF%BC%9A%E7%9B%B8%E6%AF%94%E4%BC%A0%E7%BB%9FUART%E6%97%A5%E5%BF%97%EF%BC%8CRTT%E9%80%9A%E8%BF%87%E8%B0%83%E8%AF%95%E5%99%A8%E7%9B%B4%E6%8E%A5%E8%AE%BF%E9%97%AE%E7%9B%AE%E6%A0%87%E5%86%85%E5%AD%98%EF%BC%8C%E6%97%A0%E9%9C%80%E9%A2%9D%E5%A4%96%E5%BC%95%E8%84%9A%EF%BC%8C%E5%B8%A6%E5%AE%BD%E5%8F%AF%E8%BE%BE%E6%95%B0Mbps%E3%80%82%E8%BF%99%E5%9C%A8%E6%97%B6%E5%BA%8F%E6%95%8F%E6%84%9F%E7%9A%84%E8%B0%83%E8%AF%95%E5%9C%BA%E6%99%AF%E4%B8%AD%E5%B0%A4%E4%B8%BA%E9%87%8D%E8%A6%81%E2%80%94%E2%80%94UART%E6%B3%A2%E7%89%B9%E7%8E%87%E5%8F%AF%E8%83%BD%E5%BD%B1%E5%93%8D%E4%B8%AD%E6%96%AD%E6%97%B6%E5%BA%8F%EF%BC%8C%E8%80%8CRTT%E5%AE%8C%E5%85%A8%E9%9D%9E%E4%BE%B5%E5%85%A5%E3%80%82%3C/p%3E%0A%0A%3Cp%3E%3Cstrong%3Edefmt%3C/strong%3E%EF%BC%9A%E4%B8%93%E4%B8%BA%E5%B5%8C%E5%85%A5%E5%BC%8F%E8%AE%BE%E8%AE%A1%E7%9A%84%E6%97%A5%E5%BF%97%E6%A1%86%E6%9E%B6%EF%BC%8C%E6%97%A5%E5%BF%97%E6%A0%BC%E5%BC%8F%E5%8C%96%E5%9C%A8%E4%B8%BB%E6%9C%BA%E7%AB%AF%E5%AE%8C%E6%88%90%EF%BC%8C%E7%9B%AE%E6%A0%87%E7%AB%AF%E5%8F%AA%E4%BC%A0%E8%BE%93%E5%8E%9F%E5%A7%8B%E6%95%B0%E6%8D%AE%E5%92%8C%E6%A0%BC%E5%BC%8F%E5%AD%97%E7%AC%A6%E4%B8%B2ID%E3%80%82%E7%9B%B8%E6%AF%94%3Ccode%3Efmt%3A%3ADebug%3C/code%3E%EF%BC%8Cdefmt%E5%9C%A8nRF52%E4%B8%8A%E5%8F%AF%E5%B0%86%E6%AF%8F%E6%9D%A1%E6%97%A5%E5%BF%97%E5%BC%80%E9%94%80%E4%BB%8E%E6%95%B0%E7%99%BE%E5%AD%97%E8%8A%82%E5%8E%8B%E7%BC%A9%E5%88%B08-16%E5%AD%97%E8%8A%82%E3%80%82%3C/p%3E%0A%0A%3Cp%3E%3Cstrong%3E%E5%B5%8C%E5%85%A5%E5%BC%8F%E8%B0%83%E8%AF%95%E6%8A%80%E5%B7%A7%3C/strong%3E%EF%BC%9A%3C/p%3E%0A%0A%3Cul%3E%0A%3Cli%3E%E5%88%A9%E7%94%A8%3Ccode%3Ecortex_m%3A%3Aperipheral%3A%3AITM%3C/code%3E%EF%BC%88Instrumentation%20Trace%20Macrocell%EF%BC%89%E8%BF%9B%E8%A1%8Cprintf%E5%BC%8F%E8%B0%83%E8%AF%95%EF%BC%8C%E4%B8%8D%E5%8D%A0%E7%94%A8%E4%BB%BB%E4%BD%95%E5%A4%96%E8%AE%BE%3C/li%3E%0A%3Cli%3E%3Ccode%3Epanic-probe%3C/code%3E%E6%8F%90%E4%BE%9B%E6%9C%80%E5%B0%8F%E5%8C%96%E7%9A%84panic%E4%BF%A1%E6%81%AF%E8%BE%93%E5%87%BA%3C/li%3E%0A%3Cli%3E%3Ccode%3Eembedded-test%3C/code%3E%EF%BC%88%E5%8E%9F%3Ccode%3Eknurling-traits%3C/code%3E%EF%BC%89%E6%94%AF%E6%8C%81%E5%9C%A8%E7%9B%AE%E6%A0%87%E7%A1%AC%E4%BB%B6%E4%B8%8A%E8%BF%90%E8%A1%8C%E7%B1%BB%E4%BC%BCstd%E7%9A%84%E5%8D%95%E5%85%83%E6%B5%8B%E8%AF%95%3C/li%3E%0A%3C/ul%3E%0A%0A%3Ch2%3E7.%20%E7%94%9F%E6%80%81%E6%88%90%E7%86%9F%E5%BA%A6%E8%AF%84%E4%BC%B0%E4%B8%8E%E7%94%9F%E4%BA%A7%E5%BB%BA%E8%AE%AE%3C/h2%3E%0A%0A%3Cp%3E%E5%B5%8C%E5%85%A5%E5%BC%8FRust%E5%9C%A82024-2026%E5%B9%B4%E9%97%B4%E5%8F%96%E5%BE%97%E4%BA%86%E6%98%BE%E8%91%97%E8%BF%9B%E6%AD%A5%EF%BC%8C%E4%BD%86%E7%94%9F%E4%BA%A7%E9%83%A8%E7%BD%B2%E4%BB%8D%E9%9C%80%E5%85%B3%E6%B3%A8%E4%BB%A5%E4%B8%8B%E5%9B%A0%E7%B4%A0%EF%BC%9A%3C/p%3E%0A%0A%3Cp%3E%3Cstrong%3E%E4%BC%98%E5%8A%BF%3C/strong%3E%EF%BC%9A%3C/p%3E%0A%0A%3Cul%3E%0A%3Cli%3E%3Cstrong%3E%E5%86%85%E5%AD%98%E5%AE%89%E5%85%A8%E4%BF%9D%E8%AF%81%3C/strong%3E%EF%BC%9A%E5%9C%A8%E5%8C%BB%E7%96%97%E8%AE%BE%E5%A4%87%E3%80%81%E6%B1%BD%E8%BD%A6%E7%94%B5%E5%AD%90%E7%AD%89%E5%AE%89%E5%85%A8%E5%85%B3%E9%94%AE%E9%A2%86%E5%9F%9F%EF%BC%8CRust%E7%9A%84%E6%89%80%E6%9C%89%E6%9D%83%E7%B3%BB%E7%BB%9F%E5%8F%AF%E6%9B%BF%E4%BB%A3%E9%83%A8%E5%88%86MISRA%20C%E8%A7%84%E8%8C%83%EF%BC%8C%E5%87%8F%E5%B0%91%E9%9D%99%E6%80%81%E5%88%86%E6%9E%90%E5%B7%A5%E5%85%B7%E7%9A%84%E8%AF%AF%E6%8A%A5%E7%8E%87%3C/li%3E%0A%3Cli%3E%3Cstrong%3E%E5%9B%A2%E9%98%9F%E7%94%9F%E4%BA%A7%E5%8A%9B%3C/strong%3E%EF%BC%9Acargo%E5%8C%85%E7%AE%A1%E7%90%86%E3%80%81docs.rs%E6%96%87%E6%A1%A3%E6%96%87%E5%8C%96%E3%80%81crates.io%E7%94%9F%E6%80%81%E4%BD%BF%E6%96%B0%E6%88%90%E5%91%98%E4%B8%8A%E6%89%8B%E9%80%9F%E5%BA%A6%E6%98%8E%E6%98%BE%E5%BF%AB%E4%BA%8E%E4%BC%A0%E7%BB%9F%E5%B5%8C%E5%85%A5%E5%BC%8FC%E9%A1%B9%E7%9B%AE%3C/li%3E%0A%3Cli%3E%3Cstrong%3E%E8%B7%A8%E9%A2%86%E5%9F%9F%E5%A4%8D%E7%94%A8%3C/strong%3E%EF%BC%9ARust%E7%9A%84%E9%80%9A%E7%94%A8%E7%BC%96%E7%A8%8B%E8%83%BD%E5%8A%9B%E5%85%81%E8%AE%B8%E7%B3%BB%E7%BB%9F%E5%9C%A8%E5%B5%8C%E5%85%A5%E5%BC%8F%E8%AE%BE%E5%A4%87%E4%B8%8E%E5%90%8E%E7%AB%AF%E6%9C%8D%E5%8A%A1%E4%B9%8B%E9%97%B4%E5%85%B1%E4%BA%AB%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84%E5%AE%9A%E4%B9%89%E5%92%8C%E5%BA%8F%E5%88%97%E5%8C%96%E9%80%BB%E8%BE%91%3C/li%3E%0A%3C/ul%3E%0A%0A%3Cp%3E%3Cstrong%3E%E6%8C%91%E6%88%98%3C/strong%3E%EF%BC%9A%3C/p%3E%0A%0A%3Cul%3E%0A%3Cli%3E%3Cstrong%3EMCU%E6%94%AF%E6%8C%81%E8%A6%86%E7%9B%96%3C/strong%3E%EF%BC%9ATI%20MSP430%E3%80%81Microchip%20PIC%E3%80%81Renesas%20RX%E7%AD%89%E5%B0%8F%E4%BC%97%E6%9E%B6%E6%9E%84%E4%BB%8D%E7%BC%BA%E4%B9%8F%E5%AE%98%E6%96%B9HAL%E6%94%AF%E6%8C%81%3C/li%3E%0A%3Cli%3E%3Cstrong%3E%E8%AE%A4%E8%AF%81%E5%90%88%E8%A7%84%3C/strong%3E%EF%BC%9AISO%2026262%E3%80%81IEC%2061508%E7%AD%89%E5%AE%89%E5%85%A8%E6%A0%87%E5%87%86%E5%AF%B9Rust%E7%BC%96%E8%AF%91%E5%99%A8%E7%9A%84%E8%AE%A4%E8%AF%81%E5%B0%9A%E5%9C%A8%E6%8E%A8%E8%BF%9B%E4%B8%AD%EF%BC%88Ferrocene%E9%A1%B9%E7%9B%AE%E5%B7%B2%E5%9C%A8ISO%2026262%E8%AE%A4%E8%AF%81%E6%96%B9%E9%9D%A2%E5%8F%96%E5%BE%97%E8%BF%9B%E5%B1%95%EF%BC%89%3C/li%3E%0A%3Cli%3E%3Cstrong%3E%E6%8B%9B%E8%81%98%E9%9A%BE%E5%BA%A6%3C/strong%3E%EF%BC%9A%E5%90%8C%E6%97%B6%E7%86%9F%E6%82%89%E5%B5%8C%E5%85%A5%E5%BC%8F%E7%A1%AC%E4%BB%B6%E5%92%8CRust%E7%9A%84%E5%B7%A5%E7%A8%8B%E5%B8%88%E7%A8%80%E7%BC%BA%EF%BC%8C%E5%9B%A2%E9%98%9F%E8%BD%AC%E5%9E%8B%E9%9C%80%E9%A2%84%E7%95%99%E5%AD%A6%E4%B9%A0%E6%97%B6%E9%97%B4%3C/li%3E%0A%3C/ul%3E%0A%0A%3Cp%3E%3Cstrong%3E%E7%94%9F%E4%BA%A7%E5%BB%BA%E8%AE%AE%3C/strong%3E%EF%BC%9A%E5%AF%B9%E4%BA%8E%E6%96%B0%E4%BA%A7%E5%93%81%E5%BC%80%E5%8F%91%EF%BC%8C%E5%BB%BA%E8%AE%AE%E4%BB%8ECortex-M4/M7%20%2B%20RTIC%20%2B%20defmt%E7%9A%84%E6%88%90%E7%86%9F%E7%BB%84%E5%90%88%E8%B5%B7%E6%AD%A5%E3%80%82%E5%AF%B9%E5%AE%89%E5%85%A8%E5%85%B3%E9%94%AE%E7%B3%BB%E7%BB%9F%EF%BC%8C%E5%8F%AF%E8%AF%84%E4%BC%B0Ferrocene%E5%B7%A5%E5%85%B7%E9%93%BE%E7%9A%84%E5%90%88%E8%A7%84%E6%80%A7%E7%AB%8B%E5%9C%BA%E6%8A%A5%E5%91%8A%E3%80%82%E5%9C%A8%E6%B7%B7%E5%90%88%E9%A1%B9%E7%9B%AE%E4%B8%AD%EF%BC%8CRust%E5%8F%AF%E9%80%9A%E8%BF%87FFI%E4%B8%8E%E9%81%97%E7%95%99C%E4%BB%A3%E7%A0%81%E5%8D%8F%E5%90%8C%E2%80%94%E2%80%94Rust%E7%9A%84%3Ccode%3E%23%5Bno_mangle%5D%20extern%20%22C%22%3C/code%3E%E6%8E%A5%E5%8F%A3%E7%94%9F%E6%88%90%E7%A1%AE%E5%88%87%E8%AF%AD%E4%B9%89%EF%BC%8CC%E4%BE%A7%E5%8F%AF%E5%AE%89%E5%85%A8%E8%B0%83%E7%94%A8%E3%80%82%3C/p%3E%0A%0A%3Ch2%3E%E7%BB%93%E8%AF%AD%3C/h2%3E%0A%0A%3Cp%3E%E5%B5%8C%E5%85%A5%E5%BC%8FRust%E4%B8%8D%E6%98%AF%E5%AF%B9C%E7%9A%84%E7%AE%80%E5%8D%95%E6%9B%BF%E4%BB%A3%EF%BC%8C%E8%80%8C%E6%98%AF%E5%AF%B9%E5%B5%8C%E5%85%A5%E5%BC%8F%E5%BC%80%E5%8F%91%E8%8C%83%E5%BC%8F%E7%9A%84%E9%87%8D%E6%96%B0%E6%80%9D%E8%80%83%EF%BC%9A%E5%B0%86%E5%B9%B6%E5%8F%91%E5%AE%89%E5%85%A8%E3%80%81%E5%86%85%E5%AD%98%E5%AE%89%E5%85%A8%E5%92%8C%E7%B1%BB%E5%9E%8B%E5%AE%89%E5%85%A8%E4%BB%8E%E4%BA%BA%E5%B7%A5%E8%A7%84%E8%8C%83%E8%BD%AC%E7%A7%BB%E5%88%B0%E7%BC%96%E8%AF%91%E5%99%A8%E9%AA%8C%E8%AF%81%E3%80%82PAC%E7%9A%84%E5%88%86%E5%B1%82%E6%8A%BD%E8%B1%A1%E8%AE%A9%E7%A1%AC%E4%BB%B6%E6%93%8D%E4%BD%9C%E6%97%A2%E4%BF%9D%E6%8C%81%E5%BA%95%E5%B1%82%E6%8E%A7%E5%88%B6%E5%8F%88%E4%B8%8D%E5%A4%B1%E7%B1%BB%E5%9E%8B%E5%AE%89%E5%85%A8%EF%BC%8CHAL%E7%9A%84trait%E4%BD%93%E7%B3%BB%E8%AE%A9%E8%B7%A8%E5%B9%B3%E5%8F%B0%E7%A7%BB%E6%A4%8D%E4%BB%8E%E7%90%86%E6%83%B3%E5%8F%98%E4%B8%BA%E7%8E%B0%E5%AE%9E%EF%BC%8CRTIC%E5%88%99%E8%AF%81%E6%98%8E%E4%BA%86%E5%9C%A8%E8%A3%B8%E6%9C%BA%E7%8E%AF%E5%A2%83%E4%B8%AD%E4%B9%9F%E5%8F%AF%E4%BB%A5%E5%AE%9E%E7%8E%B0%E7%BB%93%E6%9E%84%E5%8C%96%E5%B9%B6%E5%8F%91%E3%80%82%E5%AF%B9%E4%BA%8E%E8%BF%BD%E6%B1%82%E5%8F%AF%E9%9D%A0%E6%80%A7%E3%80%81%E5%8F%AF%E7%BB%B4%E6%8A%A4%E6%80%A7%E5%92%8C%E5%B7%A5%E7%A8%8B%E6%95%88%E7%8E%87%E7%9A%84%E5%B5%8C%E5%85%A5%E5%BC%8F%E5%9B%A2%E9%98%9F%EF%BC%8CRust%E5%B7%B2%E6%88%90%E4%B8%BA%E4%B8%8D%E5%8F%AF%E5%BF%BD%E8%A7%86%E7%9A%84%E9%80%89%E6%8B%A9%E2%80%94%E2%80%94%E5%B0%BD%E7%AE%A1%E5%AD%A6%E4%B9%A0%E6%9B%B2%E7%BA%BF%E9%99%A1%E5%B3%AD%EF%BC%8C%E4%BD%86%E7%A9%BF%E8%B6%8A%E8%BF%99%E7%89%87%E9%99%A1%E5%B3%AD%E4%B9%8B%E5%90%8E%EF%BC%8C%E6%98%AF%E6%9B%B4%E5%AE%89%E5%85%A8%E7%9A%84%E4%BB%A3%E7%A0%81%E3%80%81%E6%9B%B4%E5%BF%AB%E7%9A%84%E8%BF%AD%E4%BB%A3%E5%92%8C%E6%9B%B4%E5%B0%91%E7%9A%84%E9%80%9A%E5%AE%B5%E8%B0%83%E8%AF%95%E3%80%82%3C/p%3E%0A

发表评论 取消回复