首页 > 其他分享 >MCU嵌入式开发-硬件和开发语言选择

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

时间:2023-07-02 12:33:06浏览次数:51  
标签:MicroPython RTOS 嵌入式 html https 语言选择 MCU NanoFramework com

引入 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.html
https://www.cnblogs.com/MysticBoy/p/13153333.html
https://github.com/nanoframework/nanoframework.github.io/blob/pages-source/content/architecture/index.md
https://www.cnblogs.com/hejiale010426/p/15798425.html
https://www.cnblogs.com/hejiale010426/p/15848574.html
https://blog.csdn.net/sD7O95O/article/details/128517317
https://blog.csdn.net/sD7O95O/article/details/131179223
https://blog.csdn.net/sD7O95O/article/details/125630690
https://docs.nanoframework.net/content/building/build-stm32.html
https://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.html
https://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.

标签:MicroPython,RTOS,嵌入式,html,https,语言选择,MCU,NanoFramework,com
From: https://www.cnblogs.com/harrychinese/p/17520647.html

相关文章

  • 嵌入式linux开发 | u-boot启动logo修改
    原文:https://zhuanlan.zhihu.com/p/582316377一、导读使用嵌入式linux作为设备的操作系统,当在设备上电启动后,希望显示开机logo。一般会经历以下几个流程:(1)运行芯片内部引导程序(2)运行引导加载程序(u-boot较为常用)(3)运行linux内核(4)运行用户根文件系统,在这个阶段,就会根据项目......
  • 国产MCU-CW32F030开发学习-OLED模块
    国产MCU-CW32F030开发学习-OLED模块硬件平台CW32_48F大学计划板CW32_IOT_EVA物联网开发评估套件0.96IIColed模块软件平台KeilMDK5.31IAR串口调试助手IIC总线处理器和芯片间的通信可以形象的比喻成两个人讲话:1、你说的别人得能听懂:双方约定信号的协议。2、你......
  • 国产MCU-CW32F030开发学习-ST7735 LCD模块
    国产MCU-CW32F030开发学习-ST7735LCD模块硬件平台CW32_48F大学计划板CW32_IOT_EVA物联网开发评估套件0.96IIColed模块ST7735LCD模块硬件接口使用的2.54mm间距的排针接口,这使用杜邦线进行连接.ST7735参数供电电压3.3~5.5V驱动ICST7735分辨率12......
  • 《痞子衡嵌入式半月刊》 第 78 期
    痞子衡嵌入式半月刊:第78期这里分享嵌入式领域有用有趣的项目/工具以及一些热点新闻,农历年分二十四节气,希望在每个交节之日准时发布一期。本期刊是开源项目(GitHub:JayHeng/pzh-mcu-bi-weekly),欢迎提交issue,投稿或推荐你知道的嵌入式那些事儿。上期回顾:《痞子衡嵌入式半月......
  • 嵌入式-Qt开发环境搭建
    1.什么是QTSDK,QT,QTCreator(1)QTSDK包括QT库,QTCreator(IDE),QT工具(qmake等,qmake用于生产Makefile)(2)QT是基于C++的跨平台的应用程序框架,可以认为是一个库文件(3)QTCreator一款IDE2.搭建嵌入式-QT开发环境需要什么(1)QTCreator 一般在虚拟机的Li......
  • Linux-嵌入式设备启动运行的原理
    嵌入式设备上电运行的内部启动机制Centos主机连接嵌入式开发板串口的工具有:minicom、screenminicom使用方法:1.#minicom-s进去设置端口和波特率后,重新输入#minicom进去即可。screen的使用方法:1.#screen/dev/ttyUSB0115200第一步:启动目标板。由U-BOOT启动加载引导程序,......
  • 【嵌入式通信】嵌入式通信的底层逻辑
    本文主要是对B站视频【蛋饼嵌入式】嵌入式通信的底层逻辑 的总结,视频内容帮我进一步认识了几个问题:同步通信和异步通信的区别、DDR、NRZ编码的意义等。0、计算机网络通信框架ISO国际标准化组织在上世界70年代末,把计算机网络通信的整个框架描述成了一个七层的模型,称之为OSI......
  • [ARM 汇编]高级部分—ARM汇编编程实战—3.3.2 嵌入式开发环境搭建
    搭建一个嵌入式开发环境主要包括以下几个部分:安装交叉编译器配置集成开发环境(IDE)安装调试工具下载和烧录程序接下来,我们将详细介绍每个部分,并提供相应的实例。安装交叉编译器交叉编译器是用于将您编写的ARM汇编代码编译成可执行文件的工具。在本教程中,我们将使用GNUAR......
  • [ARM 汇编]高级部分—ARM汇编编程实战—3.3.3 嵌入式应用程序设计实例
    在本章节中,我们将学习如何使用ARM汇编编写一个简单的嵌入式应用程序。我们将以STM32F103微控制器为例,编写一个程序,实现按下按钮时点亮LED的功能。硬件连接首先,我们需要将STM32F103微控制器的一个GPIO引脚连接到LED(通过一个合适的电阻),另一个GPIO引脚连接到按钮。假设我们使用以......
  • 烧写文件系统——韦东山嵌入式Linux学习笔记11
    原文:https://blog.csdn.net/longintchar/article/details/71319513本文实验环境:1.windows7(64bit)2.JZ2440(V2)使用u-boot烧写文件系统,一般有两种方法。1.通过USB下载功能2.通过TFTP功能通过USB下载功能烧写文件系统这种方法比较简单。操作步骤:(1)连接板子和PC(串口+USB)(2)进入u-......