3138|6

1万

帖子

25

TA的资源

版主

楼主
 

在 ESP32 上运行 C 解释器 [复制链接]

 

网上看到的一篇文章,介绍了在ESP32上运行C解释器的方法,可以不用反复编译和下载程序,解释执行发送的脚本代码,对调试程序有一定的帮助。

 

内容有点长,大家先看原文吧。

 

https://www.codeproject.com/Articles/5061494/Run-a-C-Language-Interpreter-on-Your-ESP32

最新回复

好东西 谢谢分享!   详情 回复 发表于 2020-4-14 11:10
点赞 关注
 
 

回复
举报

661

帖子

18

TA的资源

纯净的硅(初级)

沙发
 

纯英文的,老板!

点评

等有空在翻译了  详情 回复 发表于 2020-4-13 15:45
 
 
 

回复

1万

帖子

25

TA的资源

版主

板凳
 
兰博 发表于 2020-4-13 14:43 纯英文的,老板!

等有空在翻译了

 
 
 

回复

1万

帖子

2853

TA的资源

管理员

4
 
赞!!这个很不错,谢谢分享
加EE小助手好友,
入技术交流群
EE服务号
精彩活动e手掌握
EE订阅号
热门资讯e网打尽
聚焦汽车电子软硬件开发
认真关注技术本身
 
 
 

回复

661

帖子

18

TA的资源

纯净的硅(初级)

5
 

我用有道翻译给大家翻一段:

 

介绍

我在Arduino IDE中花了相当多的时间等待草图的编译和上传,结果发现草图的行为与我预期的不一致,然后我考虑在哪里添加串行。printx语句的草图,再次等待编译和上传,并失去头发试图得到我想要的结果。还有什么比输入一个if (j==3 && k>11) Debug()更好的呢?当变量满足条件要求时,能够从程序中获得调试信息?

所以…我为基于ESP32的委员会准备了一个C语言解释器,它允许我使用他们的内置文件系统进行持久的程序存储,在一个浏览器页面中编辑和解释我的程序,而不需要编译和上传周期。更好的是,我还内置了对常用I/O Arduino功能的支持,如模拟写、数字读/写等,并提供了高精度的伺服定位功能。但是,最好的部分可能是我添加了一个调试器到解释器中,它支持条件调试跟踪,并在程序执行时报告变量值的条件监视函数。本文感谢那些为我的解释器构建工具的人,并解释了如何在ESP32上使用它。

 

背景

关于解释代码和编译代码以及每种方法的优缺点的讨论还在继续。可以这样说,解释后的代码运行起来要比编译后的代码慢,而且许多解释器提供的错误描述也不够出色。但是解释器以其作为原型工具的价值而闻名,并提供了快速的代码环境。另一个有用的解释器特性是,它可以很容易地向新手介绍如何创建有用的程序。

Zik Saleeba创建了picoc解释器,其源代码可以从https://gitlab.com/zsaleeba/picoc获得。这是一个C语言解释器的坚实基础,我对他的创造表示敬意。

大部分的web界面都是受Michael Molinari的esp8266 Basic的启发,并大量复制他的工作成果,可从https://github.com/esp8266/Basic获得。

 

使用的代码

本文顶部的参考资料是编译和将解释器上传到ESP32所需要的文件。当你在Arduino IDE中使用它的时候,你首先会注意到的是,我敢打赌,你从来没有见过Arduino草图上有这么多的标签。这在很大程度上是由于在Arduino IDE中保留了picoc解释器的文件结构,并简化了C和c++代码部分的隔离。好消息是,网络服务器的草图提供了一个非常全面的锻炼Arduino对象,一个完全透明的译员,演示了如何使用C语言代码在Arduino IDE,并可以提供无数个小时的代码浏览看看这是如何工作的。

但是,我希望您不是来这里了解C解释器的内部原理的。我认为您阅读本文是因为您想了解如何在ESP32上运行C解释器。口译员的使用记录在以下各段。如果您想了解更多的细节,您可以查询esp32_picoc_c_language_interpretation .pdf。

在将草图上传到ESP32板之前,使用Tools/ESP32草图数据上传菜单项将草图文件夹中的数据目录的内容放到ESP32板上。您还需要编辑ESP32Program/data/data/WIFIname.dat和WIFIpass.dat文件,然后才能上传,以匹配您的WiFi环境。当您将ESP2Program sketch上传至ESP32板时,它将以500,000波特的速度在串口上运行。在板子复位后,咨询串行监视器将给你板子正在使用的IP地址。ESP32Program。zip文件中包含的ino文件在开头有几个重要的#define语句。

 

普通的C代码我觉得就不用翻译了。一般的文字,结合着原文,差不多能看明白了。

点评

机器翻译效果还可以,基本都说清楚了。  详情 回复 发表于 2020-4-14 10:13
 
 
 

回复

1万

帖子

25

TA的资源

版主

6
 
兰博 发表于 2020-4-14 09:45 我用有道翻译给大家翻一段:   介绍 我在Arduino IDE中花了相当多的时间等待草图的编译和 ...

机器翻译效果还可以,基本都说清楚了。

 
 
 

回复

6105

帖子

4

TA的资源

版主

7
 

好东西 谢谢分享!

 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表