Linux对main未定义引用,当对体量使用实时时,对main的未定义引用

我正在尝试为STM32F4Discovery编写一个多线程裸机应用程序,它使用的是面向大众的实时(RTFM)

crate

. 我从一个

example

this example

:

#![deny(unsafe_code)]

#![no_main]

#![no_std]

extern crate cortex_m;

extern crate cortex_m_rtfm as rtfm;

extern crate cortex_m_semihosting;

extern crate panic_semihosting;

extern crate stm32f4;

use stm32f4::stm32f407;

use rtfm::app;

app! {

device: stm32f407,

}

fn init(_p: init::Peripherals) {

}

fn idle() -> ! {

loop {

rtfm::wfi();

}

}

我可以让它编译,但与rust lld链接失败

= note: rust-lld: error: undefined symbol: main

我很困惑因为当我跑步的时候

cargo expand

我有一个主要功能:

fn main() {

#![allow(path_statements)]

let init: fn(init::Peripherals) = init;

rtfm::atomic(unsafe { &mut rtfm::Threshold::new(0) },

|_t|

unsafe {

let _late_resources =

init(init::Peripherals{core:

::stm32f407::CorePeripherals::steal(),

device:

::stm32f407::Peripherals::steal(),});

});

let idle: fn() -> ! = idle;

idle();

}

我刚接触Rust(事实上我希望通过这个项目来学习语言),不知道错误可能在哪里。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值