【行空板K10】怎么编译Arduino工程文件

目录

引言

工作原理

例子演示

结语


 

引言

前面已经介绍过Mind+的原理就是将Scratch的积木生成C++代码在行空板K10上运行。它整个平台是基于Ardunino的。今天再来详细说说。

工作原理

Mind+实际上是将Stretch转化为Arduino工程,再使用arduino-builder进行编译。

在执行arduino-builder之前,需要先执行:

cmd /c if not exist "C:\Users\haili_10137664\AppData\Local\DFScratch\build\partitions.csv" COPY "D:\Mind+20241220\Arduino\hardware\dfrobot\esp32s3\tools\partitions\large_spiffs_16MB.csv" "C:\Users\haili_10137664\AppData\Local\DFScratch\build\partitions.csv"

arduino-builder命令行如下:

arduino-builder.exe -logger=machine -hardware D:\Mind+20241220\Arduino\hardware -tools D:\Mind+20241220\Arduino\arduino-builder -tools D:\Mind+20241220\Arduino\hardware\tools\avr -libraries C:\Users\haili_10137664\AppData\Local\DFScratch\extensions\yuntian-json-thirdex\arduinoC\libraries -built-in-libraries D:\Mind+20241220\Arduino\libraries -fqbn=dfrobot:esp32s3:esp32s3bit:JTAGAdapter=default,PSRAM=opi,FlashMode=qio,FlashSize=16M,LoopCore=1,EventsCore=1,USBMode=hwcdc,CDCOnBoot=cdc,MSCOnBoot=default,DFUOnBoot=default,UploadMode=default,PartitionScheme=app3M_fat9M_16MB,CPUFreq=240,UploadSpeed=921600,DebugLevel=none,EraseFlash=none,Model=None -vid-pid=303A_1001 -ide-version=10808 -build-path C:\Users\haili_10137664\AppData\Local\DFScratch\build -warnings=none -build-cache C:\Users\haili_10137664\AppData\Local\DFScratch\cache -prefs=build.warn_data_percentage=75 -verbose C:\Users\haili_10137664\AppData\Local\DFScratch\dfrobot\dfrobot.ino

该命令是用于Arduino IDE的构建工具 arduino-builder 的命令行参数,用于预处理Arduino代码。以下是该命令中各个参数的解释:

  • -logger=machine:指定日志记录器的类型为“machine”,通常用于机器可读的输出格式,便于自动化工具解析。

  • -hardware D:\Mind+20241220\Arduino\hardware:指定硬件相关的文件夹路径。Arduino IDE会在这个路径下查找板卡定义文件(boards.txt)和相关的库文件。

  • -tools D:\Mind+20241220\Arduino\arduino-builder:指定构建工具的路径。arduino-builder 本身就是一个构建工具,这里指定其路径。

  • -tools D:\Mind+20241220\Arduino\hardware\tools\avr:指定额外的工具路径,这里指定了AVR工具链的路径,用于编译AVR芯片的代码。

  • -libraries C:\Users\haili_10137664\AppData\Local\DFScratch\extensions\yuntian-json-thirdex\arduinoC\libraries:指定用户库文件夹的路径。Arduino IDE会在这个路径下查找用户自定义的库文件。

  • -built-in-libraries D:\Mind+20241220\Arduino\libraries:指定内置库文件夹的路径。Arduino IDE会在这个路径下查找Arduino IDE自带的库文件。

  • -fqbn=dfrobot:esp32s3:esp32s3bit:JTAGAdapter=default,PSRAM=opi,FlashMode=qio,FlashSize=16M,LoopCore=1,EventsCore=1,USBMode=hwcdc,CDCOnBoot=cdc,MSCOnBoot=default,DFUOnBoot=default,UploadMode=default,PartitionScheme=app3M_fat9M_16MB,CPUFreq=240,UploadSpeed=921600,DebugLevel=none,EraseFlash=none,Model=None:指定完整的板卡名称(FQBN,Fully Qualified Board Name),用于确定编译的板卡类型和配置。这里指定了DFRobot的ESP32-S3板卡,并且定义了多种配置选项,如PSRAM类型、Flash模式、大小、CPU频率等。

  • -vid-pid=303A_1001:指定USB设备的制造商ID(VID)和产品ID(PID)。这用于识别连接到计算机的Arduino板卡。

  • -ide-version=10808:指定Arduino IDE的版本号。这通常用于确保构建过程与特定版本的IDE兼容。

  • -build-path C:\Users\haili_10137664\AppData\Local\DFScratch\build:指定构建过程中的临时文件存放路径。

  • -warnings=none:指定警告级别的设置,这里是“none”,表示不显示任何警告信息。

  • -build-cache C:\Users\haili_10137664\AppData\Local\DFScratch\cache:指定构建缓存的路径。构建缓存用于存储中间编译结果,以加快后续构建速度。

  • -prefs=build.warn_data_percentage=75:设置构建偏好,这里指定了数据使用百分比的警告阈值为75%。

  • -verbose:开启详细输出模式,会显示更多的构建过程信息,便于调试和查看构建细节。

  • C:\Users\haili_10137664\AppData\Local\DFScratch\dfrobot\dfrobot.ino:指定要预处理的Arduino源文件路径。这个文件是Arduino程序的主文件,通常包含 setup()loop() 函数。

Mind+编译的时候,第一步先加了-preprocess参数。-preprocess:指示 arduino-builder 进行预处理操作。预处理通常包括展开宏定义、包含头文件等操作,生成一个预处理后的代码文件,通常是 .cpp 文件。第二步才会进行编译。而且Mind+在编译后会删除所有中间文件,只保留build目录中的三个文件。

当然也可以不用那么麻烦,直接把ino文件的内容复制到Mind+手工代码窗口也行。

例子演示

Mind+所带的库代码中有很多不错的例子,都是用Arduino写的,比如\Mind+20241220\Arduino\hardware\dfrobot\esp32s3\libraries\unihiker_k10\examples目录下的就有很多。

比如下面就是unihiker_k10\examples\lcd\canvas\canvas.ino的运行结果。

5ef473c087934b43a56f624d97dcb241.jpeg

结语

直接写Arduino的代码有方便的地方,特别是对于熟悉C++的开发者而言。不过这显然不是官方所支持的方式。行空板K10是面向中小学的开发板,对于大多数学生来说,积木式的开发仍然是最好选择。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

神一样的老师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值