首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

microPython源码分析.1

我最近写了很多microPython的程序,越写越回不到写C的日子。你说在这个背后是如何实现这一切的?为什么在烧录一个几百kb的bin文件之后就会获得这些魔法效果?...我可不可以把这种魔法效果移植到别处呢?我找了很久,零零碎碎的,而且大多数文章都是适可而止,让我很难受。。。我想所有的一切都可以在源码中获得。...我们将会在这个过程中学到什么: 交叉编译技术 环境搭建技术 c模块编写 py接口编写 代码组织 内在原理 驱动移植 待续 ? 这里 mpy最早是在stm32上面实现的,后面是移植到各种的平台上面。...我这次的硬件想使用ESP32,说说一些我的取舍,首先是资料丰富,各种层次的资料都比较齐全,而且是官方是比较积极的在更新。...整个过程是阅读为主,所以需要一款文本阅读器。要求首先是要可以搜索,然后就是最好可以把里面的函数对象和宏定义的对象显示出来。我这里先使用VSCode来读,当不满足需求的时候来搭配其它的软件读取。 ?

1.5K51

Polaris - 静态代码分析

SAST - 一种对源代码分析或构建过程中去寻找安全漏洞的工具,是一种在软件开发的生命周期(SDLC)中确保安全的重要步骤。...如果你希望指定不同的配置文件名,你可以在 polaris 命令中使用 -c 选项。 在项目根目录运行 polaris setup 以生成通用的 polaris.yml 文件。...运行 polaris configure 以确认你的文件在语法上是正确的并且 polaris 没有任何问题。...Capture - 捕获 YAML 配置文件可以包含三种类型的 Capture: Build(构建) - 运行构建命令,然后分析结果 Filesystem(文件系统) - 对于解释型语言,提供项目类型和要分析的扩展列表...name: ${scm.git.commit} date: ${scm.git.commit.date} capture: build: buildCommands: # 如果构建过程很复杂

1.7K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    microPython中的字节技术

    或者,某些或所有模块可实现为冻结字节码:在大多数平台上,这样可以节省更多的RAM,因为字节码直接从闪存运行而没有存储在RAM中的。...垃圾回收”(GC)的进程回收该内存,并将其返回到空闲堆。这个过程自动进行,但可通过发出 gc.collect() 来直接调用。...Micropython技术是依赖Byte Code的执行,在编译阶段就将py文件先转换成mpy文件,在通过mpy-tool.py生成Byte Code,Byte Code在执行时会依赖Virtual...MicroPython通过哈希值和长度进行字符串比较从而尽可能地保证性能。 qstrdefs.generated.h主要在qstr.h和qstr.c中被include。...ports/esp8266/——运行在Espressif的esp8266 SoC上的MicroPython版本。 ——在32个微端口上运行的python/Espressif版本。

    1.5K30

    嵌入式 Python:在 BBC micro:bit 上构建游戏

    在本教程中,您将学习: 什么是嵌入式开发以及为什么要使用 Python 来完成它 在嵌入式系统上运行 Python 的硬件和软件选项是什么 当Python的是一个非常适合嵌入式系统时,它的不 如何使用MicroPython...如果他们在指令前加上“西蒙说”,那么小组就必须这样做。如果他们在没有先说“西蒙说”的情况下给出指令,则该小组必须忽略该指令。为了让我们的游戏更简单,我们将只专注于提供指令的部分。...MicroPython 文档:micro:bit 上 Python 的高度可读文档 在 BBC micro:bit 上构建贪吃蛇游戏:更复杂游戏的教程,带您慢慢完成整个过程 Micro:bit 教育基金会最近发布了...标记为 MicroPython 的 Hackaday 项目:该站点提供了人们构建的项目的文章,可以给您一些灵感!...在本教程中,您学习了: 什么是嵌入式开发以及为什么要使用 Python 来完成它 嵌入式系统编程和通用计算机有什么区别 哪些选项可用于为嵌入式系统编写Python代码 如何使用MicroPython在

    1.6K30

    MicroPython 标准微库解读.1

    help('modules') 你可以使用help查看模块的帮助 在正式的说库之前,需要插一下下面这个东西: https://github.com/micropython/micropython-lib...这个库里面放着这些东西 MicroPython 特定的库 ============================== 这些是专门为在 MicroPython 上使用而编写的库。...在某些情况下,这些库的灵感来自或基于等效的 CPython 标准库,但兼容性各不相同。这些库通常以“u”前缀命名。 其他库是专门为 MicroPython 用例编写的。...但是看完再ffi的unix目录里面,这个结果不稀奇 因为unix哲学就是万物皆文件 这是时间库,我其实觉得这个源码可能不是我看的 因为文档里面的方法在这里面都没有体现 https://github.com...编码过程将 24 位的输入位组表示为输出4 个编码字符的字符串。从左到右,a24 位输入组由 3 个 8 位输入组串联而成。

    94220

    新手必看:GPT4o 详解 ESP32 接 IIC OLED 1306 屏幕,大大提高学习效率,GPT4o真牛!

    开发环境搭建 我本身是一名java程序员,对于面向对象编程是信手拈来,所以针对ESP32编程,我选择的是MicroPython。...安装ESP32驱动,驱动会在文末提供 安装Thonny IDE MicroPython 固件烧录到 ESP32 单片机 编写代码运行程序 过程还是比较简单的,初期建议大家跟着教程做就是了,不要问为什么,...安装 ssd1306 模块: 在 REPL 中执行以下命令下载并安装 ssd1306 模块: import upip upip.install('micropython-ssd1306') 使用此命令需要...安装 ssd1306 模块: 在 REPL 中执行以下命令下载并安装 ssd1306 模块: python复制代码import upip upip.install('micropython-ssd1306...我也是刚刚接触物联网开发,文中有不正确的地方欢迎指正。 请关注我的公众号,回复ESP32获取本文中提到的所有代码和工具。期待你的留言与互动! 最后祝大家端午安康。

    88510

    使用Makefile构建Docker

    使用Makefile构建Docker 刚开始学习docker命令的时候,很喜欢一个字一个字敲,因为这样会记住命令。后来熟悉了之后,每次想要做一些操作的时候就不得不 重复的输入以前的命令。...GNU(GNU's Not Unix)是一个类Unix系统, 目标是创建一套完全自由的操作系统。在Linux出现之前,GNU已经完成了除了内核之外大部分的软件。...防止target和文件名一样 当我们设置的target和当前目录下的文件名一样的话,target会被忽略,所以,通常,我们把target都用做phony target。...Docker构建用的指令 我常用的Makefile如下 NAME = ryan/airflow VERSION = 1.10.4 .PHONY: build start push build: build-version...make build 构建完毕,运行一下镜像,看看内容是否正确 make start 最后推送到docker仓库 make push 参考 Make命令教程 GNU、Linux和GNU/Linux之间的关系

    3.8K30

    linux下,Makefile是啥??

    为什么要学习Makefile? Linux环境下的程序员如果不会使用GNU make来构建和管理自己的工程,应该不能算是一个合格的专业程序员,至少不能称得上是Unix程序员。...在Linux(unix)环境下使用GNU的make工具能够比较容易的构建一个属于你自己的工程,整个工程的编译只需要一个命令就可以完成编译、连接以至于最后的执行。...最好不要用“GNUmakefile”,是GNU的make识别的。...(这有点像一个堆栈的过程) 当然,你的C文件和H文件是存在的啦,于是make会生成.o文件,然后再用.o文件生 成make的终极任务,也就是执行文件main了。...在执行过程中,如果出现错误,比如被依赖的文件找不到,那么make就会直接退出,并报错,而对于所 定义的命令的错误,或是编译不成功,make根本不理。make只管文件的依赖性。

    1.2K20

    【ST开发板评测】使用Python来开发STM32F411

    板子申请了也有一段时间了,也快到评测截止时间了,想着做点有意思的东西,正好前一段时间看到过可以在MCU上移植MicroPython的示例,就自己尝试一下,记录移植过程。...MicroPython是什么 ? 程序猿中有句俗语: 人生苦短,我用Python。 Python的强大和易用性让它不仅可以写网站,编程序,在嵌入式领域也有一席之地。...正好MicroPython支持本次申请的Nucleo-F411RE开发板,就试着把刷成MicroPython的固件,尝试一下使用Python来开发STM32,具体移植过程。...打开DfuSeDemo软件,选择已经下载的固件:NUCLEO_F411RE-20190604-v1.11-25-gce8262a16.dfu ? 点击Upgrade升级,在弹出的界面,点击“是”。...,会在电脑上显示一个PYBFLASH的盘符,但是我这次移植并没有出现,不知道是什么问题。

    2.3K20

    i.MX RT助您跨界AI ——5. 从穿糖葫芦到织深度神经网络

    不急不急,看到后面就明白啦:) 为什么是深度神经网络 深度学习的基础是构建多层神经网络(NN)。 神经网络作为深度学习的基础技术,模型表达能力强,尤其是善于处理非结构化的多媒体数据。...而且,主角在MCU上也都是跑得动的。构建块从运算结构上看,大多是主运算搭配后加工的方式。 主运算和后加工的常见种类都屈指可数: ? 是不是很有一种三板斧打天下的感觉?.../tree/mfn_demo 等等,谁看到了一个似曾相识的字眼——micropython!...没错,这个demo就是构建在micropython和OpenMV的软件基础上,借助了OpenMV-RT项目中的图像提取与人脸检测功能,并使用python编写的demo业务逻辑。...过程很简单,先站在镜头前面摆好pose,openmv软件会在100ms内迅速地检测出你的可爱小脸蛋,然后切成64x64点再送给MobileFaceNet过一遍,得出128个数存进数据库。

    64220

    ESP8266上的MicroPython入门(1)

    上节简单得介绍了一下开发板,这节开始说一下为什么要用python开发,以及别的开发模式. ?...我以自己现在得学识其实是说不出个所以然得.如果非要说,我觉得就是wifi这种连接方式在很多指标是取得了一种平衡.比如传输速率,容量,开发得门槛.以及一些高层应用,快速组网等.当然也不能吹得过头,总之就是还得看自己得需求来选择...轻量级 Lua语言的官方版本只包括一个精简的核心和最基本的库。这使得Lua体积小、启动速度快,从而适合嵌入在别的程序里。...(我也有些看不懂...高级特性俺还用不到)......看看热闹就行 用NodeMCU的好处是入手容易Lua与MicroPython相对于Arduino C来说要简单很多,所以学习其编程是非常快的...----------我是迷人得分割线------------------------------------------------ 我终于要开始吹MicroPython了!!!!!!!..

    1.3K30

    基于micropython的数字滤波器

    ,考试前我特意巩固的离散系统没怎么考,拉普拉斯没怎么考,上场前画了个信号流熟悉了熟悉梅森公式热热身也没考,滤波器也没按正常套路考。。。。。...首先向这位前辈大师表示敬重,最近一直在找相关的资料,在micropython社区发现了这位大师,他有很多基于micropython好玩有趣的开源代码,mark一下。...主要是基于micropython开发板的快速数字滤波器实现,开发板如图所示,板载STM32F405 数据采集过程中采集到数据往往不直接使用,而是经过一定的过滤以后才使用,原因是因为这些信号中包含了各种噪声...主要实现了上述两种滤波器.计算对象是32位有符号整形,在micropython开发板中,滑动平均需要8微秒,FIR需要15微秒来获得一组典型系数。...第一个asm.py是一个演示文件,演示了汇编语言在micropython中的使用 第二个avg.py和第三个avgtest.py是滑动平均滤波的代码实现以及实例代码 后面全是fir滤波器的代码实现以及多个实例代码

    1.6K60

    尝尝MicroPython控制单片机

    也可以自己到官网下载,我已经下好,大家可以找我索取当前最新板micropython-1.13 http://www.micropython.org/download/ ?...编译mpy-cross, mpy-cross是一个micropython的辅助工具,在编译过程中会用到,在micropython的源码根目录中输入命令make -C mpy-cross ? ?...至此修改完毕,可以编译,在micropython根目录下输入命令 make -C ports/stm32 BOARD=BODEBOARD ? 等待编译完成。 ?...编译好的固件怎么样复制到windows主机呢,当然你可以直接去生成的目录底下拷贝,在win10 的linux子系统中默认已经将windows分区挂载好了,我们可以在/mnt目录下看到 ?...至此就可以用python编写很多好玩的东西在单片机上跑了。 6. 参考文档 序号 文献 1 www.micropython.org

    1.6K20

    FlowShutter-硬件原理即&代码解读

    当你看到这个,hhhh 后面有两组串口可以连接除SBUS以外的RC接收机,至于为什么不支持,我觉得是因为反相器的问题,至少是支持IBUS的。...uasyncio 往往是构建 IO 密集型和高层级 结构化 网络代码的最佳选择。 Sony的串口设置,用的串口2。 具体是什么编程思想?...目的是设计驱动程序,使应用程序在驱动程序等待硬件响应时继续运行。应用程序仍然响应诸如用户交互之类的事件。在等待机器回复的时间内,再做一些别的事情,比如更新一下UI。...接地触发,施密特3V3触发,在这个文件里面实现 支持比较遗憾的是设置这部分我没有写,使用的是json文件,很有新意的方式 https://pypi.org/project/micropython-uasyncio...://docs.micropython.org/en/latest/library/uasyncio.html https://github.com/peterhinch/micropython-async

    44110

    PP-数据建模:明明删除了重复项,为什么还是说有重复值?

    最近,有朋友在用Power Pivot构建表间关系的时候,出现了一个问题:明明我已经删除了重复项,但构建表间关系的时候,还是说我两个表都有重复的数据!...如下图所示,以姓名列为基础进行删除重复项: 结果没有找到重复值: 为什么呢?表中的第2/3,4/5,6/7,8/9看起来不是一样的吗?...那到底是为什么呢? 我们先通过非重复计数函数来算一下,到底有没有重复的数据: 好嘛!表中明明有9行数据,非重复计数的结果却是5!...啰啰嗦嗦写了这么鬼长,其实就一个核心知识点:文本后面的空格在Power Pivot中被忽略(删除)了!大家还可以尝试用更多的方法去验证它。...不过,这个找到问题原因的过程,希望对大家有点儿启发。 ——感谢您的耐心阅读!

    3.7K20

    pyMagic:用python控制的Geek入门神器

    0x01 缘起 大家都知道,如果要对一个MCU进行控制的话,一般方法是需要写基于c或者asm语言的代码,再经过专业的编译器编译后,再通过工具下载到芯片中,才能够完成整个开发过程,当然还免不了有多次调试。...这个过程肯定有很多g点,触之则痛。记得,我刚开始学51单片机的时候,安装到下载进去第一个程序花费了几天的时间,才点亮了第一个LED灯。...后期看到了micropython在Kickstarter上进行筹款,正好满足我这方面的想法,所以就一直在跟。...由于micropython官方出品的硬件-pyBoard在价格较高,而且micropython遵照MIT协议的。...0x03 人生苦短快用python 比如说,我现在要点亮一个板子上面的一颗led灯珠,那么在pyMagic上面只要做这么几步: 第一步:插入U盘,不,插入pyMagic,然后电脑上面会弹出来一个名称为PYBFLASH

    1.4K50
    领券