7个不稳定版本
0.4.1 | 2022年12月5日 |
---|---|
0.4.0 | 2022年9月11日 |
0.3.0 | 2022年1月26日 |
0.2.2 | 2020年4月23日 |
0.1.0 | 2017年7月22日 |
#717 in 嵌入式开发
每月499次下载
用于53个crate (20 直接)
16KB
185 行
msp430
对MSP430微控制器的低级访问
此crate基于Jorge Aparicio (@japaric)的cortex-m crate。
此crate由于使用了新的asm!
(0.3.0
及以上版本), llvm_asm!
(0.2.2
)或旧的asm!
(0.2.1
及以下版本)宏,因此需要nightly rust。以下表格包含已知可工作的编译器
msp430 版本 |
rustc 编译器 |
---|---|
0.3.0 |
nightly-2022-01-24 |
0.2.2 |
nightly-2020-04-22 |
0.2.1 |
nightly-2020-01-04 |
特性
critical-section-single-core
特性提供了一个基于禁用中断的临界区实现。
通过禁用中断来访问临界区是安全访问I/O和共享数据的有价值方法。然而,rustc/LLVM并不总是很好地优化临界区以节省空间。例如,有时rustc/LLVM会在退出包含分支的临界区时创建两个中断启用汇编代码副本——一个用于分支已执行/未执行。
此crate提供了三个特性,以向rustc/LLVM提供有关如何优化临界区以节省空间的提示。支持使用和未使用上述critical-section
特性的critical_section::with
和interrupt::free
临界区。
outline-cs-acq
:提示给rustc/LLVM,每个临界区入口应调用单个acquire
函数(禁用中断)。outline-cs-rel
:提示给rustc/LLVM,每个临界区退出应调用单个release
函数(如果不在嵌套的临界区中,则启用中断)。outline-cs
:同时启用上述两个功能的便利特性。
如果您的应用程序中节省空间是一个关注点,您应该尝试哪种功能可以提供最佳的大小节省,并权衡由于概述而产生的额外函数调用的执行开销。启用每个提示的执行开销约为每个临界区5 + 2个时钟周期 - 至少一个CALL
和RET
指令。
文档
许可证
许可方式:
- Apache License, Version 2.0 (LICENSE-APACHE 或 http://www.apache.org/licenses/LICENSE-2.0)
- MIT许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
任选其一。
贡献
除非您明确声明,否则您提交给包括在作品中并由Apache-2.0许可证定义的任何贡献,将按照上述方式双许可,无需任何附加条款或条件。
依赖
~32KB