手把手教你用MCUXpresso开发Micropython工程(下)
来源:恩智浦MCU加油站发布时间:2023-03-164178浏览
询问 AI即使不玩Micropython,也可以参考本文,把Linux下基于Makefile的工程,导入MCUXpresso IDE,在Windows环境下进行开发。
书接上文。
六、下载安装Windows下的GCC
- 按照这个帖子下载安装Windows环境下的GCC:https://zhuanlan.zhihu.com/p/47935258
- 参照前一节的第3步骤,在project/properties/Environment的PATH中添加指向这个GCC的路径。
七、创建工程目标
完整的工程需要分别编译若干目标才能完成。
默认情况下,工程文件树中将不包含lib/tinyusb、lib/micropython-lib和lib/nxp_driver内的文件,如果是用git克隆整个工程,则需要创建一个子模块目标从github进行同步,本文假定读者是下载的zip文件解压得到文件树,因此暂时略过这部分。
建立板子的工程目标
1. 右键点击项目名称,Build Targets-->Create…
2. 建立编译目标:
3. 在github下载相应子模块,lib/tinyusb、lib/micropython-lib和lib/nxp_driver:


5. 同时也要参照2.5节的第2步骤,把这个util目录添加到PATH中。
注:上述touch.cmd中只是简单地调用touch.py:
@echo offpython C:\mpy\extra_files\util\touch.py %1那里是使用的绝对路径,如果你的路径和这个默认的设置不一样,则需要手动修改一下,指向你自己的目录。八、编译项目工程
在编译之前,你需要保证系统里有python3的编译运行环境,并且是通过python3调用的,如果你的系统中是使用python.exe,则需要自己生成一个Shortcut,命名为python3并指向python.exe。
到此为止,可以开始编译目标工程了。在Project Explorer中右键点击项目名称,然后Build Targets,点击Build…,就会看到下图对话框,点击下面的Build按钮,即可在提示窗口看到编译的信息跳跃。

当编译到sdcard.c文件时,可能会见到下面这个报错信息(如果没此信息,可以跳过这步):
此时需要打开sdcard.c文件,找到报错的第205行,把那个多余的分号删除。
修改完成并保存后,再次从本节开始的步骤执行。
如果没有意外的话,过一段时间,将会得到如下信息:
这时可以恭喜你,已经十分接近成功了,至少已经成功地在MCUXpresso下编译链接相关工程,得到可执行文件firmware.elf(图中虚线框显示部分)。九、拷贝内存配置信息
在下载可执行文件到板子上之前,还要设置好内存的配置信息。尝试从i.MX RT1020的SDK中,导入任意一个工程,例如Hello World工程,但是实际上不需要真正地导入这个工程,只是在导入中途,拷贝默认的内存配置信息表。在导入SDK例子工程时的最后一步,会出现如下画面:
此时点击“Export…”按钮,保存这个配置表到任意位置,随便起一个名字,例如RT1021mem.xml。
然后可以点击右下角的Cancel,中止导入工程。
接下来回到前面建立的工程,调出这个工程的配置页面,进到C/C++ Build/MCU settings页面,如下图:

首先在“SDK MCUs”栏中选中MIMXRT1021xxxxx,然后点击Import…导入刚才保存的那个描述文件RT1021mem.xml,同时因为目标板子没有SDRAM,需要删除与SDRAM相关的那两行描述,还要删除“Default LinkServer Flash Driver”框里的内容。
最后内存配置如下所示:

十、下载运行
到此为止,我们已经得到了elf可执行文件,也已经设置好了内存的配置信息,可以开始进行下载运行了。但是你很可能会出现以下画面,不必惊恐,只要在第2.7节的最后一步,正确地得到了firmware.elf,即可直接点击Proceed进行下载。

点击运行这个工程后,可以在Windows的设备管理器里看到新增了一个USB-COM端口,在这个端口上打开一个串口工具,例如我使用putty,即可得到micropython的REPL界面,进行各种操作了。下图中的黄线标出的那一行,就是从第四节拷贝进来的mpconfigboard.h中提取的信息,生成的显示内容。有了这一行,我们也可以清晰地知道编译的时间,以及相关工程和板子的对应关系了。
若要在电脑上阅读,可以进入恩智浦中文论坛查看本文。【全文完】
恩智浦MCU加油站
这是由恩智浦官方运营的公众号,着重为您推荐恩智浦MCU的产品信息、开发技巧、教程文档、培训课程等内容。

长按二维码,关注我们
END
更多恩智浦AI-IoT市场和产品信息,邀您同时关注“NXP客栈”微信公众号

NXP客栈
恩智浦致力于打造安全的连接和基础设施解决方案,为智慧生活保驾护航。
长按二维码,关注我们
新闻来源:恩智浦MCU加油站,文中所述为作者独立观点,不代表icspec立场。更多精彩资讯请下载icspec App。如对本稿件有异议,请联系微信客服specltkj。
