探索国产嵌入式Python解决方案的方法(开源)

      大家好,今天我们要介绍一款适用于单片机的嵌入式Python开源项目 -- PikaPython。

第一:嵌入式Python的发展趋势

      在嵌入式领域软硬件的发展趋势中,硬件的成本日益降低,性能逐渐提升。这种趋势使得Python在芯片上的运行难度已经大大减小。

     低价且高性能的蓝牙芯片和Wi-Fi芯片无疑加速了这一过程。随着硬件技术的提升,Python在嵌入式领域的应用将变得更加广泛。

图片

特别是在处理复杂的网络应用时,传统的C语言编程会遇到各种困难。例如,解析JSON数据和处理动态特性等需求对C语言的挑战很大,易导致内存泄漏等问题。面对这种情况,Python的优势就显现出来,它可以更高效地处理复杂需求。

图片

第二:PikaPython的介绍  

   在对嵌入式领域 Python 语言解决方案的探索和发展中,PikaPython 创始团队做出了卓越的贡献。

   他们完全重新实现了核心的Python解释器,使得PikaPython 相较于 MicroPython 有着跨越式的轻量和灵活优势。内存占用大大降低,减少了80%,并且脱离了GCC的约束,支持Keil、IAR等几乎所有的开发环境。

这种改进大大提高了Python在嵌入式领域的应用性能和可操作性,让开发者们有了更多的可能性和选择。

图片

值得一提的是,PikaPython 在开源社区也得到了广大开发者的认可和支持。

在GitHub上,PikaPython已经获得了1.1K的star,显示出其强大的吸引力和影响力。

同时,在Gitee的编程语言分区,PikaPython排名第二,表明了其在国内的受欢迎程度。

图片

另外,为了确保PikaPython的稳定性和可靠性,团队编写了近2万行的测试代码,并且PikaPython已经在量产项目中得到了应用。

这些实际的应用和测试进一步证明了PikaPython的优秀性能和广泛的适应性。

无论是从指标的提升,还是从开源社区的认可度来看,PikaPython 都在嵌入式领域中展现出了强大的竞争力。

第三:嵌入式领域的整合与模块化

PikaPython 的创始团队观察到,嵌入式领域的发展实际上需要经历标准PC的发展过程。

从最初的软件操作系统为 PC 平台设计,到后来整合了碎片化的生态系统,嵌入式领域同样需要经历这样的过程。

此前,嵌入式软件非常碎片化,每个厂商都有自己的解决方案,但随着硬件的发展,嵌入式领域将逐渐向模块化和高级化的方向发展。

PikaPython 的创始团队期待实现更多的统一和标准化,让所有人都使用统一的API,实现通用化和标准化。

图片

第四:开放平台和社区的价值 

     PikaPython 的创始团队致力于消除各个平台的差异,实现理想的编写一段代码,然后轻松地在新的芯片上运行的情况。这样,当有新的硬件发展时,开发者可以及时享受到这一福利,获得更好的性价比和性能。他们坚信Python语言层可以帮助大家抹平差异,使得他们能够在新的硬件上运行。

    PikaPython的创始团队深信,嵌入式领域的发展应采取更加社区化的模式。他们清楚地认识到,虽然先发优势(如MicroPython)的存在令迎头赶上变得相当困难,但这并不意味着嵌入式领域的Python应用只能依赖于MicroPython。

    他们指出,虽然MicroPython作为嵌入式Python的先驱,但在整合碎片化的生态系统以及降低移植的门槛上,其并未作出足够的努力。

    事实上,许多客户既可以使用 MicroPython,也可以选择 PikaPython。但他们仍然选择了 PikaPython, 他们可能选择 PikaPython 的原因,就在于 PikaPython 为用户提供了更优质的支持,其在整合碎片化生态,降低移植难度等方面做出了卓越的贡献。

    中国的硬件厂商,如沁恒和博流,以及其他Wi-Fi和蓝牙厂商对此极度感兴趣。国内硬件资源的丰富性使得 PikaPython 有机会在这个领域中占据优势,这无疑为整个嵌入式领域带来了非常好的机会。

图片

PikaPython 创始团队的目标是在嵌入式软件碎片化整合的窗口期内,完成一个整合后的开发平台,为大家提供更多的收益机会。

他们希望通过 PikaPython,大家能够获得额外的收益。他们提供开源方案、培训和技术支持等方式,帮助大家获得实实在在的收益,而不仅仅是一个简单的软件包。他们相信,只有这样,才能够帮助大家创造利润,从而实现他们的目标。

第五:PikaPython的产品特性 

模块化  

   PikaPython 在设计上注重模块化,希望通过Python作为模块进行开发,C语言作为底层模块。他们的目标是建立一个统一的包管理器,让开发者可以灵活选择每个模块的版本。

标准化  

​  同时,他们也重视标准化,希望通过一致的API标准,让所有硬件都能够统一形态和接口。他们通过在C语言中实现高级别的API层来统一硬件的形态和接口。

灵活性  

PikaPython资源占用低,移植简单,对于功能需求不多的项目,PikaPython提供了一种轻量级的解决方案。他们开发了一个类似romfs的只读文件系统,让在没有文件系统的环境下也可以运行Python。

拓展性 

PikaPython 具有良好的扩展性,为需要绑定自己编写的 C 语言模块的用户提供了方便。用户可以在 PikaPython 中编写声明,在C语言中编写实现,通过自动连接声明和实现的机制,实现非常简单的扩展。

小巧而强大,PikaPython致力于为嵌入式领域提供一个灵活、轻量、易扩展的解决方案,它将对嵌入式领域的发展产生深远影响。

第七:获取PikaPython  

pikapython官网 (复制到浏览器打开):

https://pikapython.com

github仓库地址为(复制到浏览器打开):

https://gitee.com/lyon1998/pikapython

gitee仓库地址为(复制到浏览器打开):

https://gitee.com/lyon1998/pikapython

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【雕爷学编程】MicroPython动手做(28)——物联网之Yeelight 4

知识点:什么是掌控板? 掌控板是一块普及STEAM创客教育、人工智能教育、机器人编程教育的开源智能硬件。它集成ESP-32高性能双核芯片,支持WiFi和蓝牙双模通信,可作为物联网节点,实现物联网应用。同时掌控板上集成了OLED…

物联网平台使用笔记

阿里云的IOT平台限制了50个设备。排除 移动云的限制较少,这里试用下。 创建完产品,接入设备后。使用MQTT客户端测试 其中client id 为设备id, username 为产品id, password 可以使用设备调试那里生成的。或使用官方token.exe 生成…

7.1.tensorRT高级(2)-使用openvino进行onnx的模型推理过程

目录 前言1. openvino2. 补充知识总结 前言 杜老师推出的 tensorRT从零起步高性能部署 课程,之前有看过一遍,但是没有做笔记,很多东西也忘了。这次重新撸一遍,顺便记记笔记。 本次课程学习 tensorRT 高级-使用 openvino 进行 onnx…

ChatGPT3.5——AI人工智能是个什么玩意?

ChatGPT3.5——AI人工智能 AI人工智能什么是AI?AI有什么过人之处AI有什么缺点 AI的发展AI的发展史中国是如何发展AI的 AI六大要素感知理解推理学习交互 ChatCPT-3.5GPT-3.5的优势在哪里GPT-3.5的风险GPT-4骗人事件 AI人工智能 AI,就像是一位超级聪明的机…

地级市经济增长质量指数及原始数据(2006-2018年)

二十大报告强调,高质量发展是全面建设社会主义现代化国家的首要任务。研究表明,知识产权示范城市建设显著提高了城市经济增长质量,且这种促进作用具有持续性,地方政府财政支出偏向的改变以及知识产权司法保护和行政保护力度的提升…

关系型数据库的设计

范式 关系 注意:根据阿里开发规范,不再设置数据库的外键,在应用层保证外键逻辑即可 数据库设计 1:1 1:n 设想学生-班级案例,若在班级中保存所有学生的主键,则表长不好预测,表的数据亢余。 所以是在多的…

Maven设置阿里云路径(防止加载过慢)

<?xml version"1.0" encoding"UTF-8"?><!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding …

【雕爷学编程】Arduino动手做(184)---快餐盒盖,极低成本搭建机器人实验平台3

吃完快餐粥&#xff0c;除了粥的味道不错之外&#xff0c;我对个快餐盒的圆盖子产生了兴趣&#xff0c;能否做个极低成本的简易机器人呢&#xff1f;也许只需要二十元左右 知识点&#xff1a;轮子&#xff08;wheel&#xff09; 中国词语。是用不同材料制成的圆形滚动物体。简…

外卖多门店小程序开源版开发

外卖多门店小程序开源版开发 外卖多门店小程序开源版的开发可以按照以下步骤进行&#xff1a; 确定需求&#xff1a;明确外卖多门店小程序的功能和特点&#xff0c;包括用户注册登录、浏览菜单、下单支付、订单管理等。技术选型&#xff1a;选择适合开发小程序的技术框架&…

Pytest学习教程_测试报告生成pytest-html(三)

前言 pytest-html 是一个用于生成漂亮的 HTML 测试报告的 pytest 插件。它可以方便地将 pytest 运行的测试结果转换为易于阅读和理解的 HTML 报告&#xff0c;提供了丰富的测试结果展示功能和交互性。 一、安装 # 版本查看命令 pytest版本&#xff1a; pytest --version pyte…

Kubernetes 整体架构介绍

架构图 Kubernetes 主要由以下几个核心组件组成&#xff1a; etcd 保存了整个集群的状态&#xff1b;kube-apiserver 提供了资源操作的唯一入口&#xff0c;并提供认证、授权、访问控制、API 注册和发现等机制&#xff1b;kube-controller-manager 负责维护集群的状态&#xf…

SpringBoot 升级内嵌Tomcat

SpringBoot 更新 Tomcat 最近公司的一个老项目需要升级下Tomcat&#xff0c;由于这个项目我完全没有参与&#xff0c;所以一开始我以为是一个老的Tomcat项目&#xff0c;升级它的Tomcat依赖或者是Tomcat容器镜像&#xff0c;后面发现是一个SpringBoot项目&#xff0c;升级的是…

Rpc异步日志模块

Rpc异步日志模块作用 在一个大型分布式系统中&#xff0c;任何部署的分布式节点都可能发生崩溃&#xff0c;试想如果用普通的办法&#xff0c;即先排查哪个节点down掉了&#xff0c;找到down掉的节点后采取调试工具gdb调试该节点&#xff0c;进而排查宕机的原因。这中排查方法…

考研408 | 【计算机网络】物理层

导图&#xff1a; 一、通信基础 基本概念&#xff1a; 物理层接口特性&#xff1a;物理层解决如何在连接各种计算机的传输媒体上传输数据比特流&#xff0c;而不是指具体的传输媒体。 物理层主要任务&#xff1a;确定与传输媒体接口有关的一些特性 典型的数据通信模型 数据通…

PLL 的 verilog 实现

锁相环&#xff08;PLL&#xff09;是一种常用的频率、相位追踪算法&#xff0c;在信号解调、交流并网等领域有着广泛的应用。本文对全数字锁相环的原理进行介绍&#xff0c;随后给出 verilog 实现及仿真。 PLL 锁相原理 锁相环结构如下图所示&#xff0c;主要由鉴相器、环路滤…

4.DNS和负载均衡

文章目录 coreDNS概念部署croeDNS测试 kubernetes多master集群结构master节点部署 负载均衡配置部署nginx做四层反向代理安装高可用 keepalivednginx监控脚本修改k8s中组件的配置文件 coreDNS 概念 coreDNS是kubernetes的默认DNS实现。可以为集群中的service资源创建一个资源名…

【Unity3D】消融特效

1 前言 选中物体消融特效中基于 Shader 实现了消融特效&#xff0c;本文将基于 Shader Graph 实现消融特效&#xff0c;两者原理一样&#xff0c;只是表达方式不同&#xff0c;另外&#xff0c;选中物体消融特效中通过 discard 丢弃片元&#xff0c;本文通过 alpha 测试丢弃片元…

idea 2023 新版ui中git的相关操作

前两个月换了新电脑&#xff0c;下了最新版的idea发现可以切换一套新的ui了 切换新ui肯定不太习惯&#xff0c;很多操作都得重新摸索一下 在这里记录几个git相关的操作 忽略我下面截图中当前项目是js的后端项目…… 切换ui 首先说一下怎么切换新旧版ui&#xff0c;我这里就…

Spring很常用的@Conditional注解的使用场景和源码解析

介绍 今天要分享的是Spring的注解Conditional&#xff0c;Conditional是一个条件注解&#xff0c;它的作用是判断Bean是否满足条件&#xff0c;如果满足条件&#xff0c;则将Bean注册进IOC中&#xff0c;如果不满足条件&#xff0c;则不进行注册&#xff0c;这个注解在SpringB…

Three.js给场景添加背景颜色,背景图,全景图

1.相关API的使用&#xff1a; 1 THREE.Color &#xff08;用于创建和表示颜色&#xff09; 2. THREE.TextureLoader&#xff08;用于加载和处理图片纹理&#xff09; 3. THREE.SphereGeometry&#xff08;用于创建一个球体的几何体&#xff09; 4. THREE.Mesh&#xff08;用…
最新文章