使用 rust 开发 stm32:前言

2023-05-16

更多分享内容可访问我的个人博客

https://www.niuiic.top/

本系列教程全部置于stm32专栏。

本文为使用 rust 开发 stm32 系列教程前言。

Why Rust

  1. Rust 特性就不用多介绍了,有个编译器管着有时候比用C到处浪把自己整没了好。
  2. ST官方逐渐停止对C固件库的更新,使用MX感觉没自己写舒服。毕竟它也就生成个初始化代码,虽然看起来挺快,但是实际上自定义snippets可以比它快得多。可能对于不熟悉当前开发板的用户来说可以省去一点看参考手册的麻烦。不过老手可能无所谓。
  3. 尝鲜吧。
  4. 折腾吧(又是和编译器斗智斗勇的一天)。

内容

  1. 不会介绍单片机原理、各外设原理、数电、模电等。这些都可以找书搞定。
  2. 介绍如何搭建stm32的开发环境。
  3. 给出例程供参考使用。大部分例程参考stm32fxxx-hal crate(如stm32f1xx-hal)官方例程,并在官方例程的基础上增加了一些注释,修正了一些错误。可以借鉴不同型号的stm32例程,毕竟固件库的核是一样的。
  4. 本教程定位在固件库的层面上。关于rust 嵌入式底层的玩法请参考Embedded Book。
  5. 所有案例使用的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调试程序。

资源

  1. stm32的一堆参考手册
  2. Rust 论坛
  3. Tock os(一个产品级的RTOS)
  4. Discovery Book(for stm32f3discovery)
  5. Embedded Book
  6. stm32fxxx-hal(固件库)
  7. stm32fx(外设库,寄存器编程)
  8. RTIC(不清楚这是什么的可以想象成RTOS的管理调度层)
  9. stm32-rs
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 rust 开发 stm32:前言 的相关文章

随机推荐

  • docker内使用nvidia-gpu运行rviz和gazebo

    1 本机装好docker后 xff0c 从阿里云拉取自己的image 由于本机有nvidia的显卡 xff0c 导致不能在docker内部运行rviz和gazebo可视化软件 之前的image是在cpu环境下制作的 xff0c 所以现在需要
  • 解决加载diff_drive_controller/DiffDriveController的问题

    1 出现的现象 xff1a Robot description couldn 39 t be retrieved from param server Failed to initialize the controller 2 参考资料 xf
  • 不同的docker主机,网线直连,ros分布式通讯设置

    1 参考跨宿主机 如何实现 Docker 容器的通讯 xff1f xff08 Docker Swarm xff09 大鹏的世界的博客 CSDN博客 docker swarm 跨主机容器通信 感谢大佬 2 两台主机能够相互ping 通 3 在
  • ros 已经发布topic 但是却echo不出来

    因为是用的docker镜像 xff0c 采用多机通信的方式 xff0c 一台电脑跑仿真 xff0c 一台电脑跑算法 当进入docker的时候 xff0c docker进入了一个莫名其妙的host也就是root 64 jszn arm pla
  • 英文词组

    bonehead 笨蛋 buddy 密友 blow over 经历 i give up you won off duty 下班 20080506 每天一起练口语 健康话题 Health I 39 m going to the hospita
  • openrave 生成ikfast 第一步遇到的问题

    1 rosrun collada urdf urdf to collada jszn robot description with sensor gazebo xacro jszn robot description with sensor
  • 单视图测量 (2D变换、影消点线、单视图重构)

    写在前面 xff1a 本篇Blog仅作为学习笔记 xff0c 学习内容来自于北邮CV XUEBA团队的三维重建 精简版 xff0c 鲁鹏 课程 回顾经典2D变换 等距变换 旋转矩阵 Rotate Matrix 的性质分析 证明 xff1a
  • libpng warning: iCCP: known incorrect sRGB profile 报错

    libpng warning iCCP known incorrect sRGB profile 警告 xff0c 问题解决 目录 libpng warning iCCP known incorrect sRGB profile 警告 xf
  • 卷积神经网络核心概念再复习+Pytorch一维卷积的实现

    蓝色 紫色 红色 深度学习之卷积神经网络 基本的图像分类模型架构 卷积层 xff1a 用来提取图像的底层特征 池化层 xff1a 防止过拟合 xff0c 减小数据维度 全连接层 xff1a 汇总卷积层和池化层得到的底层特征和信息 xff0c
  • Ubuntu20.04安装过程 【磁盘分区】

    前言 首先 要了解你的电脑配置 xff08 我实验室的如下 xff09 xff1a 整个安装Ubuntu系统的过程大致如下 xff1a 华硕主板按F2 F8 xff0c 这个可以百度 也可以重新启动 xff0c 在你的第一个界面上能看到 按
  • KLT光流跟踪特征点对

    前言 本篇所述为KLT光流跟踪两个视频中匹配特征点对的具体实现 61 gt 源码见Github openCV版本 xff1a 4 5 5 函数详解 1 特征提取 1 SIFT特征提取调用方式 sift span class token op
  • Ubuntu 20.04桌面文件夹图标消失及文件系统无法打开

    前言 之前遇到过服务器上桌面图标突然消失的情况 在更换系统语言之后 xff0c 桌面出现过一次这种情况 xff0c 经过重启之后就恢复了 再后来又莫名其妙出现了这么个问题 xff0c 最开始搜索的解决方案是 让你打开任务管理器 gnome
  • 【论文笔记】Deblur-NeRF == HKU ==CVPR‘2022

    蓝色 紫色 红色 Deblur NeRF Neural Radiance Fields from Blurry Images Author From Abstract 神经辐射场 xff08 NeRF xff09 由于其显著的合成质量 xf
  • Linux安装 metashape

    1 下载软件 3D三维建模软件 Agisoft Metashape Pro 2 安装 span class token comment 进入root模式 xff0c 如果之前没有设置过密码 span span class token fun
  • Information Collection

    港澳新地区 香港理工大学 杨波 助理教授 vLAR实验室 欧洲 ETH Z rich Marc Pollefeys Computer Vision and Geometry Group TU Delft 3D geoinformation
  • 804半导体物理 中科院半导体所考研经验

    本人2021考研 xff0c 半导体研究所 xff0c 物理电子学 xff0c 数一英语一 xff0c 专业课804半导体 自己之前在备考的时候就感觉专业课的资料和备考经验比较少 xff0c 现在就写一些自己总结的经验 xff0c 放一些资
  • 一些cmake error fixed

    建完虚拟环境后 运行 pip install 出现报错 xff0c 显示svox2安装出错 xff0c 然后开始进入到svox2中进行手动编译和安装 1 cmake svox2 csrc pybind11找不到 conda span cla
  • metashape-pro python scripts render specified viewpoint

    官方python脚本使用文档 主函数 xff1a render 61 chunk model renderImage 1 实现特定视角的渲染需要通过脚本方式进行 xff0c 原本的metashape pro中是没有这个功能的 首先在meta
  • 【mega-nerf】调包失败&pip install失败解决方案

    Problem 1 调包失败 在这样的层级架构里调包 xff0c 输出无法找到 mega nerf 直接用 sys path append 没有作用 span class token comment import sys span span
  • 使用 rust 开发 stm32:前言

    更多分享内容可访问我的个人博客 https www niuiic top 本系列教程全部置于stm32专栏 本文为使用 rust 开发 stm32 系列教程前言 Why Rust Rust 特性就不用多介绍了 xff0c 有个编译器管着有时