完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
` 本文主要介绍一下,在Linux环境下编译micropython固件的方法和流程。 首先,我们先来看一下MicroPython的源码结构。 github地址:https://github.com/micropython/micropython 你会发现,micropython根据不同的MCU运行平台进行了分类,比如esp8266目录下就是esp8266-WIFI模块上的micropython的源码,stmhal是运行在STM32上的,还有cc3200等。
开始编译固件 本人的系统环境:ubuntu15.0464位系统 Ubuntu官网:http://cn.ubuntu.com/?_ga=2.264511627.56850772.1502953593-1795108721.1502953593 1、安装arm-none-eabi-gcc交叉编译工具和gcc编译器 打开终端执行命令
2、下载micropython的源码包 我放在了/opt目录下
等待git完毕,进入stmhal/boards/目录下,里面又根据不同型号的芯片进行了分类。 3、开始编译 切换到stmhal目录
执行编译命令,等待编译完成。
BOARD参数为stmhal/boards/目录下相应的开发板名称。 本次教程用的是TPYBoardv102(蓝色)开发板,兼容PYBV10,所以选择PYBV10开发板继续编译。 若是TPYBoardv102(绿色)基础板,同样选择PYBV10。 若是TPYBoardv102(黑色)开发板,需选择PYBV11。 编译成功。生成的固件文件stmhal/build-PYBV10/firmware.dfu和firmware.hex。 4、烧写固件 请参考教程:http://tpyboard.com/support/reference11/302.html 增加自定义类库 使用过micropython的小伙伴都知道,里面有一个重要的模块pyb。下面我们就尝试在micropython源码中新建一个名为tpyboard的pyb子类,里面添加一个简单的函数display,输出一句”HelloTPYBoard”。 5、首先大体来看一下stmhal目录下的各种.c和.h文件。基本上根据他们的名称就能判断出功能来。 6、先来参考一下led.c文件,了解一下大体的流程。 找到了led_obj_on函数,这就是我们平时用的pyb.LED(1).on()
声明注册一下on函数,MP_DEFINE_CONST_FUN_OBJ_1最后的数字跟参数的数量相对应。
再往下可以看到led_locals_dict_table,将上面声明的函数添加到led模块函数字典中。
建立micropython对象,遵循以下原则。
7、接下来我们在stmhal目录下新建一个tpyboard.c文件,内容如下:
8、新建tpyboard.h文件,内容如下:
找到modpyb.c文件,将tpybaord子模块添加到pyb的pyb_module_globals_table[]子类表中。
记得在modpyb.c中添加tpyboard.h的引用。
9、添加完毕后,将tpyboard.c文件添加到Makefile文件中,进行编译。我就直接放到了led.c下面。
10、执行命令开始编译,编译通过,重新将编译好的固件烧写到TPYBoard开发板上。 11、烧写完毕后,用putty连接TPYBoardv102,输入以下内容:
评分
|
||
相关推荐
|
||
364 浏览 0 评论
356 浏览 0 评论
嵌入式学习-搭建自己的ubuntu系统之ubuntu网络设置
526 浏览 0 评论
龙芯中科胡伟武:3B6600 八核桌面 CPU 性能将达到英特尔中高端酷睿 12~13 代水平
574 浏览 0 评论
树莓派Pico 2发布,搭载RP2350双核RISC-V和Arm Cortex-M33微控制器!
542 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
10692 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-8-16 11:54 , Processed in 0.702132 second(s), Total 66, Slave 50 queries .
Powered by 电子发烧友网
© 2015 www.ws-dc.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号