使用 rust 开发 stm32:前言
更多分享内容可访问我的个人博客
https://www.niuiic.top/
本系列教程全部置于stm32专栏。
本文为使用 rust 开发 stm32 系列教程前言。
Why Rust
- Rust 特性就不用多介绍了,有个编译器管着有时候比用C到处浪把自己整没了好。
- ST官方逐渐停止对C固件库的更新,使用MX感觉没自己写舒服。毕竟它也就生成个初始化代码,虽然看起来挺快,但是实际上自定义snippets可以比它快得多。可能对于不熟悉当前开发板的用户来说可以省去一点看参考手册的麻烦。不过老手可能无所谓。
- 尝鲜吧。
- 折腾吧(又是和编译器斗智斗勇的一天)。
内容
- 不会介绍单片机原理、各外设原理、数电、模电等。这些都可以找书搞定。
- 介绍如何搭建stm32的开发环境。
- 给出例程供参考使用。大部分例程参考
stm32fxxx-hal crate
(如stm32f1xx-hal
)官方例程,并在官方例程的基础上增加了一些注释,修正了一些错误。可以借鉴不同型号的stm32例程,毕竟固件库的核是一样的。 - 本教程定位在固件库的层面上。关于rust 嵌入式底层的玩法请参考Embedded Book。
- 所有案例使用的crate都已暴露在程序中,去
crates.io
搜索,按照给出的建议写入Cargo.toml
。主要注意的是各固件库发布的版本对案例程序而言可能较低,建议使用git
指定仓库,不使用version
。另外,部分外设,如can
,需要开启相应的feature才可使用。
建议
硬件
开发板建议选用stm32f3discovery
。不嫌贵的用stm32f4discovery
也可以,f7
就不要上了。因为这两款开发板被tock os
支持,可以在上面使用这款用rust编写的RTOS。
仿真器搞个JTAG接口的ARM仿真器就行,ST-LINK感觉不太稳定(也可能是买到了盗版)。
软件
系统的话强烈建议使用linux。
编辑器其实无所谓,vimer自然推荐vim,退一步选个vscode,IDE就算了。
使用openocd驱动仿真器。
使用gdb调试程序。
资源
- stm32的一堆参考手册
- Rust 论坛
- Tock os(一个产品级的RTOS)
- Discovery Book(for stm32f3discovery)
- Embedded Book
- stm32fxxx-hal(固件库)
- stm32fx(外设库,寄存器编程)
- RTIC(不清楚这是什么的可以想象成RTOS的管理调度层)
- stm32-rs
使用 rust 开发 stm32:前言相关推荐
- rust做嵌入式开发_Rust 嵌入式开发 STM32 amp; RISC-V
Rust 嵌入式开发 STM32 & RISC-V 发布于 2020-04-03 11:07:06 本帖最后由 wuhanstudio 于 2020-4-3 11:58 编辑 更新地址: [m ...
- 记录一下 开发STM32 USB HID踩过的坑
记录一下 开发STM32 USB HID踩过的坑 一.前言 二.代码配置 一.前言 MCU: STM32F103C8T6 CubeMX: STM32CubeMX 5.3.0 二.代码配置 引脚配置 时 ...
- python stm32-尝试一下使用Python来开发STM32
MicroPython是什么 微信图片_20200508183121.jpg (26.41 KB, 下载次数: 0) 2020-5-8 18:39 上传 程序猿中有句俗语: 人生苦短,我用Python ...
- [译]使用 Rust 开发一个简单的 Web 应用,第 4 部分 —— CLI 选项解析
原文地址:A Simple Web App in Rust, Part 4 -- CLI Option Parsing 原文作者:Joel's Journal 译文出自:掘金翻译计划 本文永久链接:g ...
- 百度安全 TrustZone SDK 正式成为 OP-TEE 官方推荐 Rust 开发环境
百度安全与 OP-TEE 社区共同合作,推进 Teacalve TrustZone SDK 正式成为 OP-TEE 官方推荐的 Rust 开发环境.OP-TEE 是当今广泛使用的开源 ARM Trus ...
- ARM Keil MDK开发STM32工程模板
使用Keil MDK开发STM32的工程模板 源代码工程 https://github.com/chenhaifeng2016/Band
- 使用EmBitz开发STM32项目开发环境配置
一.EmBitz软件获取与安装 1.EmBitz软件的获取 EmBitz原名Em::Blocks,是基于Code::Blocks开发的,面向嵌入式的C/C++集成开发环境.支持J-Link和ST ...
- rust开发环境_Rust 环境搭建
Rust 环境搭建 Rust 支持很多的集成开发环境(IDE)或开发专用的文本编辑器. 本教程将使用 Visual Studio Code 作为我们的开发环境(Eclipse 有专用于 Rust 开发 ...
- 开发指南专题一: JEECG微云快速开发平台前言
JEECG微云快速开发平台-前言 1. 前言 1.1. 技术背景 随着WEB UI 框架(EasyUI/Jquery UI/Ext/DWZ)等的逐渐成熟,系统界面逐渐实现统一化,代码生成器也可以生成统 ...
最新文章
- 全新WiFi技术问世 更适合智能家庭和物联网
- R语言使用str_replace函数和str_replace_all函数替换字符串中匹配到的模式:str_replace函数替换第一个匹配到的字符串、str_replace_all函数替换所有匹配到的
- ACM图灵奖获得者:想从大数据中获益,先解决集成问题!
- iphone用计算机显示器,苹果显示器接普通电脑怎么操作【详细介绍】
- Solartimes共识——View(20060502)和Form(20060501)
- 机器学习-k均值聚类算法-k_means原理14
- translateZ 带来的Z-index 问题
- java中npe问题,【Java 8】巧用Optional之优雅规避NPE问题
- ruby 覆盖率测试_Ruby方法覆盖
- Python__repr__()方法:显示属性
- intval0.57100 php_关于PHP浮点数之 intval((0.1+0.7)*10) 为什么是7
- 定时器 setTimeout setInterval
- java前后端分离使用token_前后端分离以及token的使用
- matlab gui 保存文件,Matlab GUI的文件打開和保存uigetfile uigetdir
- getchar函数详解看这一篇就够了-C语言(函数功能、使用、返回值)
- 网盘中html怎么转成视频,怎么将百度网盘保存的MKV转换MP4格式
- Java中开根号,你还记得吗
- BUUCTF笔记之Misc系列部分WriteUp(二)
- 20160119001 “饿了么”的艰难城市扩张之路
- 项目一 认识Linux操作系统