完善资料让更多小伙伴认识你,还能领取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,输入以下内容:
评分
|
||
相关推荐
|
||
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-LCD显示图片编程示例之介绍mmap
180 浏览 0 评论
《DNESP32S3使用指南-IDF版_V1.6》第二章 常用的C语言知识点
587 浏览 0 评论
【RA-Eco-RA2E1-48PIN-V1.0开发板试用】(第三篇)ADC采集+PWM输出
549 浏览 0 评论
《DNK210使用指南 -CanMV版 V1.0》第四十五章 人脸识别实验
548 浏览 0 评论
1051 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11763 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 17:05 , Processed in 0.541882 second(s), Total 74, Slave 52 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号