0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Python在实时嵌入式系统开发中的主要应用

STM32嵌入式开发 来源:搜狐网 作者:搜狐网 2020-09-23 10:55 次阅读

由于Python有强大的社区支持,且是一款比容易入门的脚本语言,因此一些非IT领域的人都选它作为入门语言。但是它不能进行一些底层的操控,在硬件领域并不起眼。然而那都是若干年之前的事情了。随着硬件性能的不断提升,编程开发语言的优劣开始变得不那么明显。

如今在硬件圈同样非常关注Python

如下是树莓派的板子,树莓派能干啥?

在这部分内容开始之前,先带大家回顾一段《生活大爆炸》里的情节。在第一季开播时,这部剧里就有非常炫酷的一幕——几个室友凑在一起用电脑远程控制了家里的家居。提到的远程控制都是指自己控制自己的设备,而不是别人的,请注意千万不要非法操作。

树莓派和Arduino应用Python的的例子实在是多,比如,利用Raspberry Pi的硬件和Python语言来完成一个机器人制作。实际上如今,Python可以直接进行单片机的开发了!

用Python语言开发STM32单片机

MicroPython基于ANSI C,语法跟Pyton 3基本一致,可以通过Python脚本语言开发单片机程序。它拥有自家的解析器、编译器、虚拟机和类库等。我们熟悉的ARM处理器,像STM32F405、STM32f407等上面可以直接运行Python语言。用户完全可以实现硬件底层的访问和控制,LED流水灯、LCD显示、电压检测电机控制SD卡访问等都是轻松玩转。

Python应用在在实时嵌入式系统

众所周知,Python跑在Linux与Windows上都没问题,诸如Raspberry Pi等单板计算机也不在话下。这么牛?在实时嵌入式系统中是否也有Python的一席之地?答案是肯定的。

Python在实时嵌入式系统开发中的主要应用如下:

设备调试和控制

嵌入式软件开发过程中,开发人员常常需要分析总线通信量,如USB、SPI或I2C。有的分析仅仅是出于调试目的,但有时则需要控制总线分析仪并发送信息至嵌入式系统。许多总线分析仪和通信工具都有友好的用户接口,可以用来控制工具。他们通常还提供一种方法来开发脚本,也可以用来控制工具。Python是一种普遍支持的脚本语言,有时则是一些工具的接口,或是用来控制工具。

自动化测试

通过Python控制工具在嵌入式系统中发送和接收消息的能力,使得利用Python构建自动化测试(包括回归测试)成为可能。Python脚本可以设置嵌入式系统进入不同的状态,设置配置文件,并测试所有可能的干扰以及系统与外部环境的相互作用。使用Python开发自动化测试的好处是,回归测试可以开发持续测试并训练系统。任何的代码变动导致的bug或不合格的结果都将被实时的检测出来。

数据分析

通过Web简单地搜索Python库,你会发现,有许多免费强大的Python库都可以用来开发应用程序。Python可以用来接收非常重要的嵌入式系统数据,然后存储到数据库或是本地进行分析。开发者还可以使用Python开发实时可视化功能来展现临界参数,或是存储这些参数用于后续分析。使用Python进行数据分析的优点之一是当基础性工作完成之后,新功能的植入会显得比较简单。

实时软件

Python已经证实了自己的强大性和易使用性,甚至发现它是作为一门编程语言进入实时嵌入式系统。是的,嵌入式软件本身就是用Python写的而不是C/C++。用于实时软件最广泛的Python版本是MicroPython,大多是设计在ARM Cortex-M3/4微控制器上运行。MicroPython并不孤立。Synapse和OpenMV公司在嵌入式系统中既使用MicroPython也使用他们自己的Python port。对MicroPython感兴趣的读者可能对DesignNews(EDN的姐妹机构)的继续教育课程也感兴趣。

学习面向对象编程

Python是一门免费的编程语言,可以跨多个平台使用,对于学生和非编程人员而言比较简单。该语言与C语言不同,它也是现代式的,并且可以在自由形态的脚本类型中结构化,或是作为一个复杂的面向对象的体系结构。Python本身也很灵活。甚至还有这种情景:没有编程经验的电气工程师可以利用Python写出有用的测试脚本或用最少的时间实施电板检查。

Python的学习曲线并不陡峭,熟悉Python学习曲线的开发人员发现,当你有了其它语言的基础之后,学习Python比学习任意其他的编程语言都要简单。出于这些原因,当开发人员看到Python扮演着编程孵化器角色,并吸收其它缺乏经验的工程师对宜早不宜迟的设计周期做出贡献时,不应该感到惊讶。

Python+FPGA

据说是有人用Digilent的PYNQ-Z1板卡实现了超强的加速性能。

FPGA的开发都是基于硬件描述语言,从开始的VHDL到现在更为流行的Verilog,软件应用也从由最开始的汇编语言发展到现在的C/C++实现,这些都是目前为大多数FPGA开发者所熟悉的FPGA发展路程。

然而最近IEEE收录了一篇关于使用Python开发FPGA应用的论文。

各位教授就基于Python的开发结果与已经存在的基于C语言的开发及手动开发结果进行了比较分析。在论文中,各位教授还对PYNQ开发环境的优缺点进行了阐述:

首先来说,PYNQ应用开发框架是一个开源的开发环境,提供了标准的可以约束芯片I/O引脚的“Overlay”比特流,同时,开发人员可以在此开发环境中,利用Python对FPGA进行快速编程开发。

通过C/C++实现这项研究的一般图像处理管道性能,以及定制的硬件加速器和Python实现的性能结果,帮助我们更好地理解了Python + FPGA开发环境的性能和能。结果,通过PYNQ实现较c实现速度提高了30倍之多,当Python实现时有更加有效的可用库时,比如OpenCV,其性能可以增长更多。

Python软件实现和FPGA性能潜力的结合是一个非常有意义的工作,将会开创出一个类似于树莓派和Arduino的广大的开发者社区。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式系统
    +关注

    关注

    40

    文章

    3397

    浏览量

    128185
  • python
    +关注

    关注

    51

    文章

    4667

    浏览量

    83441

原文标题:Python用于硬件开发?文末扫码送课程

文章出处:【微信号:c-stm32,微信公众号:STM32嵌入式开发】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    浅谈嵌入式系统开发流程

    在一起。嵌入式软件对代码大小、运行效率、可靠性、可维护性、实时性,以及与整个系统的衔接、协调、同步方面都有着自身特殊的限制和要求。嵌入式系统开发
    发表于 12-08 10:12

    Linux嵌入式实时操作系统开发与设计

    Linux嵌入式实时操作系统开发与设计
    发表于 08-04 10:10

    嵌入式视频教程之嵌入式系统开发对人才的技能要求

    ;这些都是对嵌入式系统研发人员的最高要求。  2、编程能力  对嵌入式系统开发人员的基本要求是掌握汇编语言、C或C++语言和Java语言。要和硬件打交道,汇编语言和C语言是必须掌握的。
    发表于 06-15 13:10

    嵌入式视频教程之嵌入式系统开发对人才的技能要求

    都是对嵌入式系统研发人员的最高要求。  2、编程能力  对嵌入式系统开发人员的基本要求是掌握汇编语言、C或C++语言和Java语言。要和硬件打交道,汇编语言和C语言是必须掌握的。
    发表于 06-23 10:44

    Python开发实时嵌入式系统的作用

    Raspberry Pi等单板计算机上被采用。随着这种广泛且不断增长的采用,人们可能想知道实时嵌入式系统是否存在
    发表于 01-11 18:22

    如今Python嵌入式系统起到了怎样的作用

    单板计算机。不过,随着Python的日益普及,人们可能会问,实时嵌入式系统是否也有
    发表于 03-26 08:30

    嵌入式系统实时系统开发的关键工艺

    实时系统的关键特性,并探讨选择或开发硬件和软件组件的基础上开发高效嵌入式
    发表于 07-11 07:53

    嵌入式系统实时系统开发的关键工艺是什么?

    实时系统的关键特性,并探讨选择或开发硬件和软件组件的基础上开发高效嵌入式
    发表于 08-23 06:45

    实时仿真和嵌入式系统开发有什么方法?

    日益激烈的竞争系统开发周期显得尤为重要,但开发时间与系统安全性、可靠性又有一定冲突,如果
    发表于 03-06 07:20

    Python实时嵌入式系统中有什么作用?

    如何用Python语言去控制单片机?Python实时嵌入式系统中有什么作用?
    发表于 07-14 06:33

    嵌入式Linux系统开发产品分类

    由于Linux所具备的开源、稳定、高效、易裁剪、硬件支持广泛等优点,使得它在嵌入式系统领域最近十几年内迅速崛起。目前嵌入式Linux系统开发已经开辟了很大的市场,同时也
    发表于 11-04 06:37

    嵌入式系统开发环境主要包括什么

    嵌入式系统开发环境主要包括:集成开发工具交叉编译器批处理文件makefileLink Script调试工具下载工具其它工具(Offline Tools)模拟器版本控制工具接下来分别讲解
    发表于 11-08 06:09

    Python实时嵌入式系统开发中有何作用

    如何用Python语言去控制单片机呢?Python实时嵌入式系统开发中有何作用?
    发表于 11-10 06:42

    Python开发实时嵌入式系统的作用是什么

    Raspberry Pi等单板计算机上被采用。随着这种广泛且不断增长的采用,人们可能想知道实时嵌入式系统是否存在
    发表于 12-14 06:41

    实时嵌入式系统是否存在Python的位置

    Raspberry Pi等单板计算机上被采用。随着这种广泛且不断增长的采用,人们可能想知道实时嵌入式系统是否存在
    发表于 12-22 06:25