XWOS-RUST
文章平均质量分 55
XWOS的Rust环境
隐星魂
这个作者很懒,什么都没留下…
展开
-
[XWOS-RUST]3.建立Rust开发环境
安装LSPLSP(Language Server Protocol,语言服务协议)是新一代查看源码的神器。Rust语言的LSP推荐使用rust-analyzer。git clone https://github.com/rust-analyzer/rust-analyzer.gitcd rust-analyzercargo xtask installVScode如果使用VSCode,需要在安装完成VSCode之后再安装rust-analyzer。安装完成后,VSCode是开箱即用的。ST原创 2022-04-13 16:40:23 · 438 阅读 · 0 评论 -
[XWOS-RUST]4.支持多个单元包
问题开发XWRUST的过程中,需要将库与应用的代码分离在不同的crate中,在实践过程中,发现RUST有如下局限:不能将两个crate都编译成staticlib,staticlib的crate不可列举在[dependencies],说明staticlib是用来给C/C++调用的;只有rlib的crate列举在[dependencies],编译staticlib时,所有[dependencies]内的crates都会打包在staticlib内;与C/C++代码链接时,不可存在两个以上的stat原创 2022-03-22 02:35:46 · 252 阅读 · 0 评论 -
[XWOS-RUST]2.Bringup
RUST的std库RUST的标准库包括:在嵌入式中,比较有用的就是core与alloc。编译在.cargo/config.toml增加对alloc编译:[unstable]build-std = ["core", "alloc"]global_allocator可用来实现自己的内存分配函数的属性,可参考文档std::alloc。在lib.rs上可以搜索到newlib-alloc,可直接用。在Cargo.toml中增加[dependencies]libc = "0.2"newli原创 2022-03-18 01:18:18 · 382 阅读 · 0 评论 -
[XWOS-RUST]1.集成与编译
思路通过cargo编译staticlib,再与XWOS进行链接;由于XWOS支持ARM/PowerPC/RISC-V,因此需要通过--target=选项来进行多平台的交叉编译。方案XWOS启动一个独立线程,调用RUST的主函数,由此进入RUST的世界;RUST的主函数与中间件是一个独立编译的玄武模块;由于RUST的编译依赖工具cargo,可设计一个新的玄武模块编译规则调用cargo build;RUST玄武模块以staticlib形式进行编译,最终与XWOS进行静态链接;因为会使用一些原创 2022-03-18 01:11:30 · 557 阅读 · 0 评论