当前位置: 首页 > news >正文

英文网站模板 查看wordpress关闭搜索

英文网站模板 查看,wordpress关闭搜索,上海软件开发培训,国家企业信息公示系统官网官目录介绍 FreeRTOS-rust ├── .cargo # 对 cargo 本身的配置 │ └── config.toml ├── Cargo.toml # 对当前工作空间的配置 ├── freertos-cargo-build # 负责对 freertos 源码进行编译 │ ├── Cargo.toml # 对当前 package 进行配置 │ └…目录介绍 FreeRTOS-rust ├── .cargo # 对 cargo 本身的配置 │ └── config.toml ├── Cargo.toml # 对当前工作空间的配置 ├── freertos-cargo-build # 负责对 freertos 源码进行编译 │ ├── Cargo.toml # 对当前 package 进行配置 │ └── src │ └── lib.rs ├── freertos-rust # 负责编译 freertos 的 rust 接口层 │ ├── Cargo.toml # 对当前 package 进行配置 │ ├── build.rs # package 编译前自动调用的脚本 │ └── src # 适配层源码 │ ├── allocator.rs │ ├── base.rs │ ├── critical.rs │ ├── delays.rs │ ├── event_group.rs │ ├── freertos # freertos C 接口适配层和实现的钩子函数 │ │ ├── ports │ │ │ └── arm │ │ │ └── hooks.c │ │ └── shim.c │ ├── hooks.rs │ ├── isr.rs │ ├── lib.rs │ ├── mutex.rs │ ├── patterns │ │ ├── compute_task.rs │ │ ├── mod.rs │ │ ├── processor.rs │ │ └── pub_sub.rs │ ├── portmacro.h │ ├── prelude │ │ ├── mod.rs │ │ └── no_std.rs │ ├── queue.rs │ ├── semaphore.rs │ ├── shim.rs │ ├── task.rs │ ├── timers.rs │ ├── units.rs │ └── utils.rs ├── freertos-rust-examples # freertos 应用示例 │ ├── Cargo.toml # 对当前 package 进行配置 │ ├── FreeRTOS-Kernel # freertos 内核C源码 | ├── freertos-addons # freertos 扩展库C源码(无需关注) │ ├── build.rs # package 编译前自动调用的脚本 │ └── examples # 各平台的rust freertos 应用开发示例 │ ├── linux │ ├── nrf9160 │ ├── stm32-cortex-m3 │ ├── stm32-cortex-m4-blackpill │ └── win └── publish-all.sh框架介绍 FreeRTOS-rust 的整体框架分为三大块 freertos-cargo-build、freertos-rust、freertos-rust-examples。   freertos-cargo-build 负责对项目中所有 C语言代码的编译包括 FreeRTOS-Kernel 内核源码freertos C 适配层接口以及 freertos 各种钩子函数实现内部利用cc crate以及build.rs文件中提供的信息将C语言代码打包为静态库。   freertos-rust 中包括了 freertos 的C适配层接口和钩子函数实现以及转换为 rust 语言的对外接口应用开发使用的 rust freertos 接口均来自这里。   freertos-rust-examples 中包括了 freertos 的C语言内核源码以及各平台的 rust 应用示例。 编译体系 FreeRTOS-rust 项目中 C语言部分和各 rust package 的编译都是通过 cargo 工具完成主要参与的文件有 cargo 配置文件(config.toml)项目 workspace 和各个 package 配置文件(Cargo.toml)以及编译依赖脚本(build.rs 和 lib.rs)。 cargo 配置文件 目录./FreeRTOS-rust/.cargo/config.toml   config.toml 中的配置是对 cargo 工具本身的配置只会对当前项目生效可以对项目配置一些默认的行为例如此处设置了目标架构为 arm目标 os 为 none那么就可以在项目中使用 CARGO_CFG_TARGET_ARCH 和 CARGO_CFG_TARGET_OS 环境变量来进行条件判断。 # 配置 CARGO_CFG_TARGET_ARCH 宏为arm, CARGO_CFG_TARGET_OS 宏为none [target.cfg(all(target_arch arm, target_os none))]# 配置传递给 rust 编译器传递额外的编译参数 rustflags [# LLD (shipped with the Rust toolchain) is used as the default linker-C, link-arg-Tlink.x,# if you run into problems with LLD switch to the GNU linker by commenting out# this line# -C, linkerarm-none-eabi-ld,# if you need to link to pre-compiled C libraries provided by a C toolchain# use GCC as the linker by commenting out both lines above and then# uncommenting the three lines below# -C, linkerarm-none-eabi-gcc,# -C, link-arg-Wl,-Tlink.x,# -C, link-arg-nostartfiles, ]# 配置默认工具链版本 [rustup] toolchain nightly# 设置编译的目标平台也可以通过 cargo build --target name 传递设置到 TARGET 环境变量 [build] # Pick a target or use --target name # target x86_64-pc-windows-gnu # Windows GNU Toolchain # target x86_64-pc-windows-msvc # Windows MSVC Toolchain (no debugging) # target thumbv7m-none-eabi # Cortex-M3 # target thumbv7em-none-eabihf # Cortex-M4workspace 配置文件 目录./FreeRTOS-rust/ Cargo.toml   一个工作空间是由多个 package 组成的集合共享同一个 Cargo.lock 文件、输出目录 target 和一些设置(例如 profiles : 编译器设置和优化)。工作空间由项目最外层的带有 [workspace] 项的 Cargo.toml 文件标识。   此处设置了工作空间成员的名称每个成员下面必须要有自己的 Cargo.toml并设置了整个工作空间在release 编译模式下的优化情况。 # 虚拟清单工作空间 [workspace]# 工作空间成员 members [freertos-rust,freertos-cargo-build,freertos-rust-examples ]# 设置工作空间release时的优化情况 [profile.release] codegen-units 1 # better optimizations # debug true # symbols are nice and they dont increase the size on Flash lto true # better optimizations # opt_level3package 配置文件 freertos-cargo-build 配置文件 这里的配置文件主要是设置当前 package 打包成静态库静态库的默认名称为 freertos-cargo-build.rlib 以便被其他 rust 代码调用进行 C代码编译。 并且配置C代码编译器依赖包 cc 和 walkdir。 [package] name freertos-cargo-build description Utility lib for building using FreeRTOS in rust projects inside the build.rs.version 0.1.1 authors [Tobias Kaupat tklobaro.de] edition 2018 license MIT readme README.md repository https://github.com/lobaro/FreeRTOS-rust# 默认需要打包成 freertos-cargo-build.rlib 静态库 [lib]# 配置package依赖的包 [dependencies] cc 1.0.52 walkdir 2.3.1freertos-cargo-build/src/lib.rs 的作用是收集项目中所有的 C文件和头文件目录并实现 pub fn compile(self) - Result(), Error 函数在函数中调用 cc::Build::new().try_compile(“freertos”) 进行 C语言静态库的生成这样在其他 rust 文件中就可以调用 compile 来完成C语言文件的编译了。 freertos-rust 配置文件 这个配置文件中设置了 package 编译为库后的名称为 freertos_rust编译入口文件在 src/lib.rs 中并在编译入口文件中根据 [features] 的配置决定需要启用哪些模块。这里编译产生的库将会被 rust 应用所使用以便使用 FreeRTOS 的功能。 [package] name freertos-rust version 0.1.2 authors [Tobias Kaupat tklobaro.de] edition 2018 description Create to use FreeRTOS in rust projects. The freertos-cargo-build crate can be used to build and link FreeRTOS from source inside build.rs.keywords [FreeRTOS, embedded, demo, library] license MIT readme README.md repository https://github.com/lobaro/FreeRTOS-rust links freertos# 设置静态库的名称为 freertos_rust.rlib, 编译入口文件在 src/lib.rs 中 [lib] name freertos_rust path src/lib.rs# 配置启用的特性也就是配置哪些模块生效 [features] default [allocator, sync, time, hooks, interrupt, delete_task] allocator [] sync [interrupt] time [interrupt] hooks [] interrupt [] cpu_clock [] delete_task []freertos-rust-examples 配置文件 此配置需要先设置编译依赖的源文件路径所以在工作成员中 freertos-cargo-build 优先被编译生成C编译器用于后期 C代码的编译。然后设置一般依赖的源文件路径所以 FreeRTOS 的 rust 适配层 freertos-rust 也被优先编译作为静态库被后期的应用代码使用。其次就是设置对应平台的硬件依赖库。 [package] name freertos-rust-examples version 0.1.1 authors [Tobias Kaupat tklobaro.de] edition 2018 description Create to use FreeRTOS in rust projects. It contains binaries for demos on some architecutres.keywords [FreeRTOS, embedded, demo, examples] repository https://github.com/lobaro/FreeRTOS-rust# 配置普通依赖的源码路径所以freertos-rust也需要被优先编译 [dependencies] freertos-rust {path ../freertos-rust}# 根据 config.toml 配置设置依赖包 [target.cfg(target_arch arm).dependencies] cortex-m {version 0.7.7, features [critical-section-single-core]} cortex-m-rt 0.7.3# 根据config.toml 配置或 --target triple 的配置设置依赖包 # Example: stm32-cortex-m3, [target.triple.dependencies] triple form cargo build --target thumbv7m-none-eabi # or form .cargo/config.toml [build] target thumbv7m-none-eabi [target.thumbv7m-none-eabi.dependencies] nb 0.1.2 embedded-hal 0.2.3 panic-halt 0.2.0 stm32f1xx-hal {version 0.10.0, features [rt, stm32f103], default-features false}# 配置编译依赖的源码路径所以在工作成员中 freertos-cargo-build 优先被编译 [build-dependencies] freertos-cargo-build {path ../freertos-cargo-build}路西法的个人博客拥有更多美文等你来读。
http://www.hkea.cn/news/14391288/

相关文章:

  • 网站内部seowordpress 改模板
  • 长春建站公司网站化妆品网站建设报告
  • 表白网站制作平台wordpress浏览历史
  • 域名大全免费网站泰安网络公司电话
  • 手把手做网站页面wordpress获取菜单栏
  • 网站安全认证多少钱做维修广告在哪个网站
  • 找做网站appwordpress主题压缩包
  • 保定网站优化公司云南抖音推广
  • 网站怎么做动效河北人社app二维码图片
  • 计算机网站建设与维护公益网站建设
  • 中国建设银行官网站电话影楼免费网站建设
  • 怎么做北京赛车网站网站加载速度慢的原因
  • 郫县城乡规划建设管理局网站江苏镇江十大外贸公司
  • 爱站关键词挖掘软件中小网站 架构
  • 网站的ftp怎样制作公司的网页
  • 广州专业做外贸网站建设腾讯云的wordpress安装目录
  • 佛山模板建站哪家好seo技能培训课程
  • 凡科网站开发一般通过饼干
  • 10个网站用户体验优化的研究结果减粘装置设备设计要点
  • 闵行区网站开发临沂哪家做网站最好
  • 做玉的网站西安公司网站费用
  • 本地做网站网络广告推广员
  • 网站建设用户调查问卷做网站实名认证总是失败怎么回事
  • 岫岩洋河网站建设wordpress那个版本好
  • 家装网站模板下载wordpress 中文数据库
  • 购买营销型网站网络程序
  • 网站后台添加关键词3模网站建设
  • 西安网站工作室做网站台式还是笔记本
  • 余姚网站制作新浪短网址在线生成
  • 网站显示图片标记个人养老金制度具体内容