MCU嵌入式开发-硬件和开发语言选择

引入 RTOS的考虑因素

主要考虑以下方面来决定是否需要RTOS支持:

  • 需要实现高响应时的多任务处理能力
  • 需要实现实时性能要求高的任务
  • 需要完成多个复杂的并发任务

NanoFramework

具备满足工控系统实时性要求的各项功能特性。通过它提供的硬件库、线程支持、中断支持等,可以完全控制微控制器的各个外设,实现复杂的实时控制逻辑。当然,与传统的 C/C++ 开发相比,由于MANAGED代码的运行时开销,NanoFramework 的实时性表现可能略差。但对大多数工控应用来说,已经可以接受。但对于某些硬实时性要求极高的系统,Native C/C++ 开发仍可能更加合适。

NanoFramework 自身是一个运行时(Runtime),它不依赖任何RTOS。NanoFramework 本身不需要RTOS支持,但可以与主流RTOS集成,实现多任务支持, 对于需要RTOS支持的项目,NanoFramework 提供以下两种方式:

  • 使用NanoCLR,它集成了FreeRTOS,可以提供RTOS任务调度支持。
  • 使用外部RTOS,通过RTOS的HAL API与NanoFramework集成。NanoFramework支持与 FreeRTOS、MQX等主流RTOS集成。

主要考虑以下方面来决定是否需要RTOS支持:

  • 需要实现高响应时的多任务处理能力
  • 需要实现实时性能要求高的任务
  • 需要完成多个复杂的并发任务

NanoFramework 官方支持的固件镜像:

  • ChibiOS for STM32 targets,
  • FreeRTOS for NXP
  • TI-RTOS for TI targets

NanoFramework 支持的硬件包括:

  • STM32系列
  • ESP32
  • nRF51/52系列
  • Mbed NXP LPC
  • MCU的Arduino开发板等

NanoFramework 工具和教程:

https://www.cnblogs.com/MysticBoy/p/13159648.htmlhttps://www.cnblogs.com/MysticBoy/p/13153333.htmlhttps://github.com/nanoframework/nanoframework.github.io/blob/pages-source/content/architecture/index.mdhttps://www.cnblogs.com/hejiale010426/p/15798425.htmlhttps://www.cnblogs.com/hejiale010426/p/15848574.htmlhttps://blog.csdn.net/sD7O95O/article/details/128517317https://blog.csdn.net/sD7O95O/article/details/131179223https://blog.csdn.net/sD7O95O/article/details/125630690https://docs.nanoframework.net/content/building/build-stm32.htmlhttps://www.hackster.io/nanoframework

MicroPython

MicroPython 优点:

  • 通过 MicroPython 实现硬件底层的访问和控制,不需要了解底层寄存器、数据手册、厂家的库函数等,即可轻松控制硬件。
  • 外设与常用功能都有相应的模块,降低开发难度,使开发和移植变得容易和快速。
  • 通过 MicroPython 提供的库和函数,开发者可以快速控制 LED、液晶、舵机、多种传感器、SD、UART、I2C 等,实现各种功能,而不用再去研究底层硬件模块的使用方法,翻看寄存器手册。这样不但降低了开发难度,而且减少了重复开发工作,可以加快开发速度,提高开发效率。以前需要较高水平的嵌入式工程师花费数天甚至数周才能完成的功能,现在普通的嵌入式开发者用几个小时就能实现类似的功能。
  • MicroPython 代码更加简洁, 对于需要编写大量代码的项目有利。

MicroPython 适合场景:

MicroPython 比较适合工业过程控制, 使用它做工业控制系统可以降低初始和运行成本。
但对于运动控制这类精度要求较高和实时性要求较高的系统来讲, MicroPython 局限性比较明显.

  • 缺少对多线程的原生支持, 一般运动系统需要高效的多线程实现.
  • 无法实现很高的时钟频率, 而运动控制系统需要很高的测量和控制频率.
  • 运行效率较低, 而运动控制系统需要有高效的执行速度, 实时性要求较高.
  • 缺少专业的运动控制算法库.
  • 无法完全控制硬件, 而运动控制需要完全控制硬件实现PWM和ADC功能.

支持的固件

从 MicroPython 官网可以看到有非常多的板子支持,比较有名的有 stm32, esp8266, esp32, rp2040 等Https://micropython.org/download/
MicroPython兼容的类库可以在 pypi.org 官网搜索

Raspberry Pico 工具

套件购买: https://i-item.jd.com/10051366266823.html#crumb-wrap , https://i-item.jd.com/10051366266821.html#crumb-wrap
微雪有Raspberry Pico 专用的插线板
软件模拟器: https://wokwi.com/projects/new/pi-pico
微雪网站的快速入门教程: https://www.waveshare.net/wiki/Raspberry_Pi_Pico
目前全网最详细的树莓派 Pico入门指南! https://zhuanlan.zhihu.com/p/359823300

MicroPython 教程:

https://docs.micropython.org/en/latest/esp32/tutorial/pwm.htmlhttps://randomnerdtutorials.com/getting-started-thonny-micropython-python-ide-esp32-esp8266/https://randomnerdtutorials.com/projects-esp32-esp8266-micropython/https://randomnerdtutorials.com/getting-started-thonny-micropython-python-ide-esp32-esp8266/

结论

作为一个爱好者, 没有时间和精力完成太底层的系统学习, 只能选用支持快速上手的技术, 所以, 我选择Raspberry Pico+MicroPython.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/518.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

40.RocketMQ之高频面试题大全

消息中间件如何选型 RabbitMQ erlang开发,对消息堆积的支持并不好,当大量消息积压的时候,会导致 RabbitMQ 的性能急剧下降。每秒钟可以处理几万到十几万条消息。 RocketMQ java开发,面向互联网集群化功能丰富,对在线业…

行业追踪,2023-07-10,汽车零部件如期调整,需要耐心等待第二波

自动复盘 2023-07-10 成交额超过 100 亿 排名靠前,macd柱由绿转红 成交量要大于均线 有必要给每个行业加一个上级的归类,这样更能体现主流方向 rps 有时候比较滞后,但不少是欲杨先抑, 应该持续跟踪,等 macd 反转时参与…

input输入日期时间,自动格式化组件/工具

input输入日期时间,自动格式化组件/工具 组件/工具使用说明 只能输入日期时间,不能选择日期时间格式 yyyy-MM-dd HH:mm:ss基于VUE框架输入效果见下图 组件/工具解决的痛点 组件库日期时间组件,选日期时间很花时间 例如想快速得到 2021-1…

网络知识点之-RIP协议

RIP协议,指路由信息协议(Routing Information Protocol),是基于距离矢量算法的路由协议,利用跳数来作为计量标准。 中文名:路由信息协议外文名:Routing Information Protocol特点:利…

golang关于成员变量使用:=

错误 错误原因 结构体成员变量不能与:一起用,这是一个语法错误。

C#(五十八)之C#List

前几天&#xff0c;看同事写的代码中有list相关的字眼&#xff0c;百度了一下&#xff0c;原来是C#中list泛型集合。 了解一下。 List&#xff1a;泛型集合&#xff0c;List<T>类是 ArrayList 类的泛型等效类。该类使用大小可按需动态增加的数组实现 IList<T> 泛型…

arcgis拓扑检查

不能有悬挂点 不能有伪结点***路网处理很重要&#xff0c;看研究吧。 一直默认到最后。 导入要素类&#xff0c;单个 toupu2右键新建拓扑&#xff08;T&#xff09; 一般选不能有悬挂点&#xff0c;不能重叠。 一路默认 是 拉进图层可视化 线要素的话记得添加字段length&#…

OSPF和VLAN综合实验

目录 题目 1.IP地址的规划设计 2.搭建拓扑并进行基础IP配置 3.配置虚拟局域网 1&#xff09;按子网划分要求配置PC1和PC2 检测&#xff1a;输入[SW1]display vlan进行检查 配置路由器R3 检测&#xff1a;用PC1去访问PC2 2&#xff09;配置拓扑中其余路由器的网关以及回…

使用RabbitMQ

使用RabbitMQ 1 Docker安装RabbitMQ 1.1 安装RabbitMQ # 下载含有管理页面的镜像 docker pull rabbitmq:3.8.8-management# 创建容器 # 5672&#xff1a;应用访问端口&#xff1b;15672&#xff1a;控制台Web端口号&#xff1b; docker run -itd \ --namemy-rabbitmq \ --re…

OpenCV 优化和改进图像处理应用功能的方法与实践

OpenCV 优化和改进图像处理应用功能的方法与实践 导语一、性能优化二、算法改进三、用户体验改进四、应用实践示例&#xff1a;实时图像滤波总结 导语 图像处理应用是计算机视觉和图像处理领域的关键应用之一&#xff0c;通过对图像进行处理和分析&#xff0c;可以提取有用的信…

创建一门简单的解释性编程语言并实现它的解释器

背景 最近刷到大佬的教程&#xff0c;跟着学一下 效果 开始时 输入姓名和年龄后 代码 自创编程语言SimpleScript: 自创一门简易脚本支持中文编程 (gitee.com) 解析 1.词法分析 将程序的每个字符串精准划分出来&#xff0c;形成多个单词Token 2.语法分析 将各段Token再…

Android 查看ANR和Crash日志(adb bugreport)

今天测试那儿出了个ANR&#xff0c;我自己手机没问题&#xff0c;很烦&#xff0c;定位不了位置。 于是还是得用ADB连接来看一下&#xff0c;之前用&#xff0c;但是老是会忘记&#xff0c;今天总结一下。 ADB命令查看应用包名_adb查看包名命令_&岁月不待人&的博客-C…

TeeChart for.NET Crack

TeeChart for.NET Crack TeeChart for.NET为各种图表需求提供了图表控件&#xff0c;包括金融、科学和统计等重要的垂直领域。它可以处理您的数据&#xff0c;在各种平台上无缝创建信息丰富、引人入胜的图表&#xff0c;包括Windows窗体、WPF、带有HTML5/Javascript渲染的ASP.N…

【C++】string类模拟

文章目录 成员变量和查看接口迭代器&#xff08;读和读写&#xff09;operator[]&#xff08;读和读写&#xff09;c_str()size() 构造函数用字符串构造用对象构造&#xff08;两种方法&#xff09;析构 赋值运算符重载扩容和调整reserve()resize()clear() 增删查改push_back()…

产业大模型刚开卷,京东跑进“最后半公里”

点击关注 文&#xff5c;姚 悦 编&#xff5c;王一粟 “京东一直在探索哪些产品、技术、场景可以真正把大模型用起来&#xff0c;在我们内部的场景中反复验证后&#xff0c;才决定在7月份对外发布&#xff0c;现在我们在零售、健康、物流、金融等业务场景里已经积累了一些经…

记一次阿里云被挖矿处理记录

摘要 莫名其妙的服务器就被攻击了&#xff0c;又被薅了羊毛&#xff0c;当做免费的挖矿劳动力了。 一、起因 上班&#xff08;摸鱼&#xff09;好好的&#xff0c;突然收到一条阿里云的推送短信&#xff0c;不看不知道&#xff0c;两台服务器被拉去作为苦力&#xff0c;挖矿去…

迭代读取文件

使用 torch.utils.data.dataset.Dataset 收集数据信息&#xff0c;创建数据集。 使用 import torch.utils.data.dataloader 创建一个可以批量迭代的数据载入器&#xff0c;并通过 for 循环批量读取所有文件的数据。 import torch.utils.data.dataset as dataset import torch…

光伏并网逆变器低电压穿越MATLAB仿真模型

使用MATLAB 2017b搭建 光伏逆变器低电压穿越仿真模型&#xff0c;boost加NPC拓扑结构&#xff0c;基于MATLAB/Simulink建模仿真。具备中点平衡SVPWM控制&#xff0c;正负序分离控制&#xff0c;pll&#xff0c;可进行低电压穿越仿真。 控制结构完整&#xff0c;波形完美&…

java学习路程之篇二、知识点、配置JAVA_HOME、跨平台、JVM、JRE、JDK

文章目录 1、Java背景介绍2、Java跨平台性3、JDK的下载和安装4、第一个Java程序5、HelloWorld案例详解6、JVM、JRE和JDK7、配置JAVA_HOME 1、Java背景介绍 2、Java跨平台性 3、JDK的下载和安装 4、第一个Java程序 5、HelloWorld案例详解 6、JVM、JRE和JDK 7、配置JAVA_HOME

[USACO23OPEN] Field Day S

题目描述 Each of Farmer John’s N N N barns has selected a team of C C C cows to participate in field day. The breed of every cow is either a Guernsey or a Holstein. The difference between two teams is defined to be the number of positions i i i ( 1 ≤…