Hello Embedded From Rust

本系列所有的源代码均可在stm32-rustup获得,如果这些对你有帮助,请给个star让我知道我在做的分享是有意义的。

Cargo Embed

cargo-embedprobe.rs为嵌入式开发提供的一套工具,包括了烧录、调试、实时终端等功能,完全可以替代openocdarm-none-eabi-gdb,使用更加方便,是carog的一个扩展功能。

Install cargo-embed

使用如下命令进行安装,如果遇到网络问题,可以参考 {% post_link ‘rustup’ %} 进行镜像配置。

cargo install cargo-embed

cargo-embedcargo的一个扩展功能,可以帮助我们进行烧录与调试,还可以打开一个实时终端显示信息。

所有的一切仅仅需要一个简单的配置文件

[default.general]
chip = "STM32F429IGTX"

[default.rtt]
enabled = true

use rtt as panic handler

use core::panic::PanicInfo;
use rtt_target::rprintln;

#[inline(never)]
#[panic_handler]
fn panic(info: &PanicInfo) -> ! {
    rprintln!("{}", info);
    loop {} // You might need a compiler fence in here.
}

Next

{% post_link blinky %}

Screenshot

hello_embedded_world

Code

Github

hello.rs

#![no_main]
#![no_std]

use cortex_m_rt::entry;
use rtt_target::{rtt_init_print, rprintln};

// 引入未使用依赖以允许编译
// panic handler
extern crate panic_halt;
// 内存布局
extern crate stm32f4xx_hal;

#[entry]
fn main() -> ! {
    rtt_init_print!();

    rprintln!("hello, world!!!!!!!!!");
    loop {}
}

最后修改日期: 2021年6月20日

作者

留言

撰写回覆或留言

发布留言必须填写的电子邮件地址不会公开。