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

news2024/11/26 8:21:30

      大家好,今天我们要介绍一款适用于单片机的嵌入式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.coloradmin.cn/o/844746.html

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

相关文章

学python的心得体会1000字,学python的心得体会2000字

这篇文章主要介绍了学python的心得体会2000字,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获,下面让小编带着大家一起了解一下。 1. 初学者应该从简单的练习开始,先掌握基本的语法和概念,…

Three.js光源

目录 Three.js入门 Three.js光源 本文我们将研究three.js中的灯光类型和JavaScript中的光源,探索不同的光源设置。我们的目标是全面理解光源设置和类型,比如环境光、半球光、矩形光、方向光、点光源和聚光灯。我们将逐个介绍它们的属性参数和使用方法…

深度相机常见技术:深度相机的相位求解

1.1 深度相机概述 深度相机是近几年兴起的新技术,相比较传统的相机,深度相机在功能上添加了一个深度测量,从而更方便准确的感知周围的环境及变化。深度相机有很多的应用场景,在我们日常生活中有很多深度相机的影子。那它可以用来…

在线对对联

对对联的起源可以追溯到中国古代,它与中国文化有着密切的关系。 1. 最早的对对联出现在汉朝,当时称为“对句”。它起源于民间,后来逐渐成为文人雅士的精神寄托。 2. 唐代时,对对联的格式更加规范,并被称为“春联”。它成为春节张贴的主要内容,寓意吉祥。 3. 宋代以后,对对联…

小程序商品如何开启返佣

​越来越多的商家开始意识到小程序平台的潜力和价值。开启分销返佣机制是一种有效的方式,可以吸引更多的用户和合作伙伴,提高销售额和品牌知名度。下面将介绍商城小程序商品如何开启返佣。 1. 开启系统分销设置。在管理员后台->营销设置 点击分销功能…

MYSQL --Austindatabases 历年文章合集

开头还是介绍一下群,如果感兴趣polardb ,mongodb ,mysql ,postgresql ,redis 等有问题,有需求都可以加群群内有各大数据库行业大咖,CTO,可以解决你的问题。加群请联系 liuaustin3 ,在新加的朋友会分到2群(共…

高速过孔同进同出后续来了!影响大不大由你们自己说

高速先生成员---黄刚 话说Chris在上篇文章的结尾留下的悬念,其实在上周的答题里,也有不少粉丝猜到了接下来要验证的内容。我们知道,任何两个结构如果距离变近了,容性就会增加,无论是孔和孔,线和线&#xf…

JMeter命令行执行+生成HTML报告

1、为什么用命令行模式 使用GUI方式启动jmeter,运行线程较多的测试时,会造成内存和CPU的大量消耗,导致客户机卡死; 所以一般采用的方式是在GUI模式下调整测试脚本,再用命令行模式执行; 命令行方式支持在…

MySQL(1)

MySQL创建数据库和创建数据表 创建数据库 1. 连接 MySQL mysql -u root -p 2. 查看当前的数据库 show databases; 3. 创建数据库 create database 数据库名; 创建数据库 4. 创建数据库时设置字符编码 create database 数据库名 character set utf8; 5. 查看和显示…

redis入门2-命令

Redis的基本数据类型 redis的基本数据类型(value): string,普通字符串 hash(哈希),适合存储对象 list(列表),按照插入顺序排序,可以由重复的元素 set(无序集合),没有重复的元素 sorted set(有序集合)&…

Spring Boot + Vue3前后端分离实战wiki知识库系统十一--文档管理功能开发三

文档内容的显示: 在上一次https://www.cnblogs.com/webor2006/p/17510360.html文档管理模块还差文档的显示木有完成,所以接下来先将这块模块给收尾了。 增加单独获取内容的接口: 概述: 在前端页面文档查询时,只查询了文…

【开源项目--稻草】Day05

【开源项目--稻草】Day05 1. 显示问题列表1.1 显示问题持续时间 2. 显示问题的标签列表2.1 实现过程 3.显示问题的图片4. 实现分页功能4.1 为什么需要分页(翻页)4.2 实现分页的sql语句4.3 PageHelper的使用控制器的调用和VUE代码的重构分页导航条的配置 1. 显示问题列表 上次课…

LISA:通过大语言模型进行推理分割

论文:https://arxiv.org/pdf/2308.00692 代码:GitHub - dvlab-research/LISA 摘要 尽管感知系统近年来取得了显著的进步,但在执行视觉识别任务之前,它们仍然依赖于明确的人类指令来识别目标物体或类别。这样的系统缺乏主动推理…

csdn崩溃了?每次都卡

反馈给了官方客服也没有响应,最近几周都是这样的高频率的转圈圈!这个入口不受重视?这个对于csdn用户来说,是最最基本的入口 如果CSDN(CSDN.net)崩溃了,可能会对以下方面产生影响: 开…

【perl】报错合集

perl报错合集 (注:可能会不定时更新) 1.Name “main::x” used only once: possible typo at … 1.Name "main::x" used only once: possible typo at ...给某个变量赋值但是从来没有用它,或者变量之只用一次但没有…

前沿分享-100 μAh 微型电池

这是SMD 组件形状的固态锂离子微型电池,容量高达 100Ah,在22年的慕尼黑电子展上出现过。 因为是可重复使用的,未来该产品甚至有机会取代容量更高(例如100 Ah 时)的不可充电硬币电池。 一般应用于超低功率的传感器&…

8.7 作业

1.思维导图 2.写一个函数&#xff0c;获取用户的uid和gid并使用变量接收 #!/bin/bash fun() {uid$(id -u)gid$(id -g) }fun echo $uid $gid 3.整理冒泡排序、选择排序和快速排序的代码 冒泡 #include <myhead.h> void fun(int l,int *arr) {for(int i0;i<l-1;i){f…

【面试题】 本地运行的前端代码,如何让他人访问?

前端面试题库 &#xff08;面试必备&#xff09; 推荐&#xff1a;★★★★★ 地址&#xff1a;前端面试题库 有时候&#xff0c;我前端写好了项目&#xff0c;想要给其他人看一下效果&#xff0c;可以选择将代码部署到test环境&#xff0c;也可以选择让外部通过i…

Linux/centos上如何配置管理samba服务器?

Linux/centos上如何配置管理samba服务器&#xff1f; 1 samba服务相关知识1.1 SMB协议1.2 samba工作原理1.2.1 相关进程1.2.2 samba工作流程1.2.3 samba功能 2 samba服务器安装2.1 利用光驱安装2.2 利用光盘映射文件 3 启动与停止samba服务4 配置samba服务器4.1 samba主配置文件…

睡眠助手/白噪音/助眠夜曲微信小程序源码下载 附教程

睡眠助手/白噪音/助眠夜曲微信小程序源码 附教程 支持分享海报 支持暗黑模式 包含了音频数据 最近很火的助眠小程序&#xff0c;前端vue&#xff0c;可以打包H5&#xff0c;APP&#xff0c;小程序 后台可以设置流量主广告&#xff0c;非常不错的源码 代码完整 完美运营 搭配无…