小编Fer*_*ogh的帖子

我该如何使用这种格式!在no_std环境中的宏?

如何在不使用std的情况下实现以下示例?

let text = format!("example {:.1} test {:x} words {}", num1, num2, num3);
Run Code Online (Sandbox Code Playgroud)

text具有类型&strnum1,num2num3具有任何数字类型.

我已经尝试使用numtoaitoa/dtoa显示数字,但numtoa不支持浮动,itoa不支持no_std.我觉得在字符串中显示一个数字是相当普遍的,我可能会遗漏一些明显的东西.

embedded macros formatting text rust

6
推荐指数
2
解决办法
1021
查看次数

将 Rust staticlib 与嵌入式 C 程序链接时出现“`memcmp 的多重定义”错误

我有一个 Rust 函数,我想从在 STM32F412 MCU 上运行的C 项目调用,但是我收到了一系列“多重定义”链接器错误。

这是我的 lib.rs:

#![crate_type = "staticlib"]
#![feature(lang_items)]
#![no_std]
#![no_builtins]

#[no_mangle]
pub extern "C" fn hello_world(a: i32, b: i32) -> i32 {
    a + b
}

#[lang = "eh_personality"] extern fn eh_personality() {}
#[lang = "panic_fmt"] fn panic_fmt() -> ! { loop {} }
Run Code Online (Sandbox Code Playgroud)

Building withcargo build --release --target=thumbv7em-none-eabihf会生成一个librust.a我作为对象添加到 C Makefile 的对象。

可以在此处找到链接器错误的完整列表。nm将所有冲突函数显示为全局文本符号 (T),此处为完整输出

C 项目没有普通的标准 C 库,而是使用自定义 libc,这是一个特定于设备的实现,涵盖了标准的一小部分。我可以告诉 Rust 库使用这些函数吗?

通读 Rust …

c embedded linker ffi rust

5
推荐指数
1
解决办法
1149
查看次数

标签 统计

embedded ×2

rust ×2

c ×1

ffi ×1

formatting ×1

linker ×1

macros ×1

text ×1