搜索
bottom↓
回复: 175

分享ESP8266开发环境设置和开源Web,wifi串口,网络升级示范...

  [复制链接]

出0入0汤圆

发表于 2016-8-3 03:19:35 | 显示全部楼层 |阅读模式
用 ESP8266 比较久了。
介绍一下如何在 Linux, 具体来说 Fedora 设置开发环境。
Windows 下面可以用 VM 或者下载对应的编译器。其他linux
包的名字略有不同。

首先要装 esp open sdk 需要的包:

sudo dnf install make unrar autoconf automake libtool gcc gcc-c++ \
             gperf flex bison texinfo gawk ncurses-devel expat-devel \
             pyserial patch help2man

然后就是esp open sdk 这个项目, git clone 下来,地址在
https://github.com/pfalcon/esp-open-sdk

基本上就是进去打 make 就会下载其他的包编译出一个可以用
的 esp8266 开发环境。从 gcc 源码编译的。可能需要翻墙下载
某些包。

然后推荐一个我喜欢的,而且有贡献的 esp8266 开源项目:
https://github.com/jeelabs/esp-link
研究这个项目你可以学习到:
扫描 wifi ssid 和 AP 的配置,自动转换。
httpd Web 和 Java script 交互
httpd 嵌入的 CGI 如何写
如何把目录压缩成一个代码段被其他代码当文件访问(espfs)
wifi 到串口 bridge
OTA update,就是通过 wifi 来刷 ESP8266, 超级有用。
MQTT,syslog

然后贴一些浏览器用这个 esp-link 的图。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出0入12汤圆

发表于 2016-8-3 06:40:54 | 显示全部楼层
收藏了,呵呵。

出0入0汤圆

发表于 2016-8-3 06:42:56 | 显示全部楼层
好牛逼,收藏了

出200入0汤圆

发表于 2016-8-3 07:23:30 来自手机 | 显示全部楼层
好东东,感谢分享

出0入0汤圆

发表于 2016-8-3 08:08:17 来自手机 | 显示全部楼层
这个高级

出0入0汤圆

发表于 2016-8-3 08:12:37 | 显示全部楼层
收藏,回头研究研究~~

出0入4汤圆

发表于 2016-8-3 08:15:07 | 显示全部楼层
界面很漂亮,功能也比较简洁。

出0入0汤圆

发表于 2016-8-3 08:16:30 | 显示全部楼层
谢谢分享, 学习下

出0入17汤圆

发表于 2016-8-3 08:18:33 | 显示全部楼层
好东东,谢谢分享啊

出0入0汤圆

发表于 2016-8-3 08:26:02 | 显示全部楼层
非常感谢, 前期折腾了下linux的开发环境没成功, 最后用安信可的IDE. 但是安信可的IDE又不支持最新的SDK, 然后又是折腾了几天, IDE支持SDK1.4.0

出0入0汤圆

发表于 2016-8-3 08:41:47 | 显示全部楼层
最近一直搞WIFI的SOC,这个资源收藏先。谢啦!

出0入0汤圆

 楼主| 发表于 2016-8-3 11:55:07 | 显示全部楼层
qiushui_007 发表于 2016-8-3 08:26
非常感谢, 前期折腾了下linux的开发环境没成功, 最后用安信可的IDE. 但是安信可的IDE又不支持最新的SDK, 然 ...

你要是 Linux 开发环境碰到什么问题可以贴上来,我尽量回答。
我平时都是用 Linux 的,windows 开发不太会用。

最新的 esp open sdk 编译失败的常见原因就是两个,
一个就是有些需要的包没有安装。这个我前面给出的
包安装命令应该可以解决。验证最新的 sdk 在Fedora 24
上可以通过。

第二个就是在编译过程,有些源代码包被墙了,无法下载。
用合适的翻墙软件解决。

这两个问题解决了一般 sdk 编译问题都不大。

出0入228汤圆

发表于 2016-8-3 11:57:56 | 显示全部楼层
用arduino 开发吧,没有更好的了。


有关arduino与8266的关系
ESP8266简介,乐鑫的单芯片wifi 控制器
目前市面上有3种开发方式:
1:使用乐鑫AT 固件,使用时,单片机通过串口用AT指令来实现wifi连接、网络通迅
2:使用乐鑫SDK开发包,直接用C 编程
3:使用NODEMCU固件,这是国内大能 在SDK基础上,加入了LUA语言
现在,出现了第4种开发方式,arduino直接编程,原理还是在SDK基础上开发,不过已经封装为我们熟的ARDUINO语言了。注意已经不需要ARDUINO硬件了,而是利用arduino软件平台来编译8266的源码。

出0入0汤圆

 楼主| 发表于 2016-8-3 12:01:08 | 显示全部楼层
本帖最后由 helislayer 于 2016-8-3 12:15 编辑
wxws 发表于 2016-8-3 11:57
用arduino 开发吧,没有更好的了。

你如果要比较好的运行效率,还是用 C 在 ESP8266 开
发才有可能。例如串口 到 wifi 460800 的波特率不丢数据,
这个几乎一定要用 C。

重新看了一下 arduino 那个开发方式,貌似已经是跑 C
程序了,但是通过比较弱的串口来刷的。

esp-link 可以通过 wifi 来刷 firmware,这个技术上先进
和方便太多了,而且 wifi 速度比串口快很多。不需要额外
连个串口线。

我不是很喜欢这种 IDE 的开发环境,我是比较老顽固一点。
IDE 比较容易绑架开发者,换个开发平台没有 IDE 就不知
道如何开发了。反而 make vim 这种什么平台都可以开发。


出0入228汤圆

发表于 2016-8-3 12:11:08 | 显示全部楼层
"这个 esp-link 就是配合 arduino 开发用的 firmware 啊。"

这个固件,能将 8266当成一个透传串口.并能在这基础上,增加一个rest 信号给arduino,用来wifi下载程序。
同理,能当一些其他芯片的下载器。但本质还是一个wifi透传。

我说的arduino开发。是指给8266写程序的开发方式。不是指工具本身。
另:这个esp-link还是非常不错的,没有贬低的意思。

出0入0汤圆

 楼主| 发表于 2016-8-3 12:19:47 | 显示全部楼层
wxws 发表于 2016-8-3 12:11
"这个 esp-link 就是配合 arduino 开发用的 firmware 啊。"

这个固件,能将 8266当成一个透传串口.并能在 ...

你说的对,我自己去查了一下发现我开始理解错了,不好意思。
所以我回去修改帖子了。
然后你已经指出了。

那个 IDE 开发环境如果能帮助你最好。
我个人不是很喜欢用 IDE,感觉 IDE 有点绑架。
当然那是我比较老顽固一点。

出0入0汤圆

发表于 2016-8-3 12:51:46 来自手机 | 显示全部楼层
这个源码没有UDP模式的透传,比较遗憾,我自己写了个简单的

出0入0汤圆

 楼主| 发表于 2016-8-3 12:55:55 | 显示全部楼层
qq302011 发表于 2016-8-3 12:51
这个源码没有UDP模式的透传,比较遗憾,我自己写了个简单的

UDP 我自己实验了一下,似乎 ESP8266 内部有限制一次只能发 3 个 UDP 包,
有包的速率限制。结果传输效率还不如 TCP。
你的 UDP 可以传满 230600 波特率不丢包吗?

出0入228汤圆

发表于 2016-8-3 13:03:39 | 显示全部楼层
helislayer 发表于 2016-8-3 12:19
你说的对,我自己去查了一下发现我开始理解错了,不好意思。
所以我回去修改帖子了。
然后你已经指出了。 ...

确实,那个破ide,我也是从不用的

我一般用sublime,用arduino,是用它的框架与库。

出0入0汤圆

 楼主| 发表于 2016-8-3 13:13:20 | 显示全部楼层
wxws 发表于 2016-8-3 13:03
确实,那个破ide,我也是从不用的 。

我一般用sublime,用arduino,是用它的框架与库。 ...

我从来就没有用过 arduino 的 IDE。
avr 玩过一阵字,现在还有没有开光过的 stk600 呢。
不是很理解现在谁还为什么玩 arduino avr。
用个  stm32 最小开发板加上 cubemx 基本上
就可以很快搞出点什么了。

出0入0汤圆

发表于 2016-8-3 13:23:11 | 显示全部楼层
准备用WiFi, Mark

出0入228汤圆

发表于 2016-8-3 13:49:18 | 显示全部楼层
本帖最后由 wxws 于 2016-8-3 13:50 编辑
helislayer 发表于 2016-8-3 13:13
我从来就没有用过 arduino 的 IDE。
avr 玩过一阵字,现在还有没有开光过的 stk600 呢。
不是很理解现在 ...


生态圈!生态圈!
提供了nnn种库。

现在的arduino,已经不是单指avr了。

应该讲,是跟具体的芯片无关。
现在能跑好多芯片了。

相同的语句,简单用用就在8位机上。
复杂点就用stm32之类。
一句话都不用改。

出0入0汤圆

发表于 2016-8-3 14:05:30 | 显示全部楼层
本帖最后由 ljt80158015 于 2016-8-3 14:19 编辑

wifi 性能如何?


html文件夹中的界面怎么和  图片上不一样 嘛


出0入0汤圆

发表于 2016-8-3 14:21:32 | 显示全部楼层
不明觉厉

出0入0汤圆

 楼主| 发表于 2016-8-3 14:25:50 | 显示全部楼层
本帖最后由 helislayer 于 2016-8-3 14:27 编辑


传个 200K byte 每秒是可以的。

ajax, 有些内容是 java script 动态加载的。
你去读读 javascript 那部分。

出0入0汤圆

发表于 2016-8-3 14:36:58 | 显示全部楼层
helislayer 发表于 2016-8-3 14:25
传个 200K byte 每秒是可以的。

ajax, 有些内容是 java script 动态加载的。



我看界面都不一样   框架都不一样?


出0入0汤圆

 楼主| 发表于 2016-8-3 14:38:20 | 显示全部楼层
wxws 发表于 2016-8-3 13:49
生态圈!生态圈!
提供了nnn种库。

那些库如何适应不同的芯片不同的硬件访问方式呢?

例如 AVR 和 STM32 的 SPI 访问是不一样的,如果我
想要通过 STM32 硬件 DMA 访问 SPI, 那库代码会不
一样把。难道 arduino 搞出了类似 HAL 这样跨不同芯
片的通用界面?

出0入0汤圆

 楼主| 发表于 2016-8-3 14:40:32 | 显示全部楼层
ljt80158015 发表于 2016-8-3 14:36
我看界面都不一样   框架都不一样?

不太理解你说的框架不一样,截个图看看?
这个是比较规范的 html 写法,用到 CSS 什么的。
是不是你自己查看的时候没有看到 CSS 那些。

出100入101汤圆

发表于 2016-8-3 15:13:25 | 显示全部楼层
这个片子稳定么?

出0入0汤圆

发表于 2016-8-3 15:40:03 | 显示全部楼层
helislayer 发表于 2016-8-3 14:40
不太理解你说的框架不一样,截个图看看?
这个是比较规范的 html 写法,用到 CSS 什么的。
是不是你自己 ...

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2016-8-3 15:41:29 来自手机 | 显示全部楼层
现在arduino支持很多芯片的  不只是支持AVR系列了

出0入0汤圆

发表于 2016-8-3 15:45:49 | 显示全部楼层
mark一下

出0入0汤圆

 楼主| 发表于 2016-8-3 18:08:59 | 显示全部楼层
fengyunyu 发表于 2016-8-3 15:13
这个片子稳定么?

供电电流够大,程序严谨正确的情况下我
发现还算稳定。我有些机器长期24 小时
挂在家里路由器上。打印调试的 TCP 连接
几天都没有断。差不多一秒一行数据吧。

当然程序如果不严谨有内存泄漏什么的,
40K 内寸很容易就挂了。

还有有些淘宝的店的货比其他的差些。
找信誉好点的店。

出0入0汤圆

 楼主| 发表于 2016-8-3 18:12:20 | 显示全部楼层

那当然。
你用浏览器直接看只能看到静态的 html。
Javascript 有很多动态内容是要在 esp-link CGI 程序
动态返回的。你用目录方式当然看不到那些 cgi 的动态
内容啦,那些结果是 esp-link 程序运行返回的。

出0入0汤圆

发表于 2016-8-3 18:21:33 | 显示全部楼层
helislayer 发表于 2016-8-3 18:12
那当然。
你用浏览器直接看只能看到静态的 html。
Javascript 有很多动态内容是要在 esp-link CGI 程序



不是吧   我感觉区别很大    肯定不是一个程序出来的界面


出0入0汤圆

 楼主| 发表于 2016-8-3 18:24:06 | 显示全部楼层
本帖最后由 helislayer 于 2016-8-3 18:25 编辑
ljt80158015 发表于 2016-8-3 18:21
不是吧   我感觉区别很大    肯定不是一个程序出来的界面


就是一个程序的。你的 CGI 装载不成功那个 CSS 没有开始生效。
你感觉区别很大的是由 CSS 控制的。
如果 esp-link 启动意外断网也会出你那样的很丑的页面。

出0入0汤圆

发表于 2016-8-3 20:08:41 来自手机 | 显示全部楼层
听说好久8266了,都没亲手玩过

出20入0汤圆

发表于 2016-8-3 20:37:46 | 显示全部楼层
谢谢分享

出0入0汤圆

发表于 2016-8-3 20:55:26 | 显示全部楼层
谢谢分享,收藏了。

出0入0汤圆

发表于 2016-8-3 23:54:41 来自手机 | 显示全部楼层
IDE也可以编译最新版本固件的,我也折腾了好久,跟makefile包含的有些文件有关系

出0入0汤圆

发表于 2016-8-4 08:58:04 | 显示全部楼层
我之前一直在andlinux下工作的, 已经成功编译openwrt . 但搭建这个ESP8266的环境当时没成功.

刚才突发奇想, 在树莓派上编译如何?
之前曾经在树莓派上成功编译过openwrt的CC, 用了近17个小时.

出0入0汤圆

发表于 2016-8-4 10:17:18 | 显示全部楼层
我现在就使用乐鑫SDK开发包,直接用C 编程的。
已经有产品了。很稳定。

出0入0汤圆

发表于 2016-8-4 10:32:52 | 显示全部楼层
谢谢分享

出0入0汤圆

 楼主| 发表于 2016-8-4 12:04:13 | 显示全部楼层
qiushui_007 发表于 2016-8-4 08:58
我之前一直在andlinux下工作的, 已经成功编译openwrt . 但搭建这个ESP8266的环境当时没成功.

刚才突发奇想 ...

理论上用 esp open sdk 编译开发环境是不依赖具体 Linux  CPU 类型的,
都是从源码编译的。你碰到的问题很可能就是我说的那两个之一,
有些包没有装,和编译用到的源程序包下不下来。

所以RPi 理论上是可以的,但是何必费这个力气折腾呢。RPi CPU 和内存
都有点弱,直接找个老点的 PC 装 Linux 或者 VM 都可以。

出0入0汤圆

 楼主| 发表于 2016-8-4 18:00:40 | 显示全部楼层
Shaopus 发表于 2016-8-4 10:17
我现在就使用乐鑫SDK开发包,直接用C 编程的。
已经有产品了。很稳定。

多谢分享这些产品使用的信息。

出0入0汤圆

发表于 2016-8-5 11:51:34 | 显示全部楼层
ghost后, linux和VM又的重装.

出0入0汤圆

发表于 2016-8-7 17:30:41 | 显示全部楼层
楼主能上个bin么,没时间折腾虚拟机,想先体验一下

出0入4汤圆

发表于 2016-8-7 18:20:40 | 显示全部楼层
ESP8266开发环境设置和开源Web,wifi串口,网络升级

出0入0汤圆

发表于 2016-8-7 21:42:53 来自手机 | 显示全部楼层
多谢楼主无私分享

出0入0汤圆

 楼主| 发表于 2016-8-8 01:34:58 | 显示全部楼层
gzwirelesss 发表于 2016-8-7 17:30
楼主能上个bin么,没时间折腾虚拟机,想先体验一下

上传了一个预先编译好的 v2.2.3 的版本。
这个在 github直接有啊。
如果你用 windows 带 gui 的工具,用下面命令行提到的三个地址和 bin 文件。

如果你是用 esp01 这种 1M 的 flash,使用
esptool.py --port /dev/ttyUSB0 --baud 460800 write_flash -fs 4m -ff 40m \
    0x00000 boot_v1.5.bin 0x1000 user1.bin 0x7E000 blank.bin

如果你是 esp12f 这种 4M 的 flash,
esptool.py --port /dev/ttyUSB0 --baud 460800 write_flash -fs 32m -ff 80m \
    0x00000 boot_v1.5.bin 0x1000 user1.bin 0x3FE000 blank.bin

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2016-8-8 10:49:40 | 显示全部楼层
正需要,谢谢楼主

出0入0汤圆

发表于 2016-8-8 11:45:35 | 显示全部楼层
感谢分享,收藏了。

出0入0汤圆

发表于 2016-8-8 16:50:43 | 显示全部楼层
长时间esp8266的过程中会出现不稳定的现象,不知道楼主有没有出现过。
现在觉得esp8266用起来不稳定,不敢用在产品中。

出0入0汤圆

 楼主| 发表于 2016-8-8 17:16:37 | 显示全部楼层
光轮 发表于 2016-8-8 16:50
长时间esp8266的过程中会出现不稳定的现象,不知道楼主有没有出现过。
现在觉得esp8266用起来不稳定,不敢 ...

我是碰到有不稳定的时候。但是最后都能够确定不是芯片的问题。
不稳定主要有两个原因,一个是给的电源供电不够好。ESP8266 短暂的峰值
电流可以到 200ma 这种范围。如果用USB TTL 串口供电是几乎都要出问题的。
找个稳定有住够余量的电源。

然后注意有没有电压不匹配的情况。例如 ESP8266 是不是发烫到不能摸。
正常 ESP8266 是会发烫的,但是不应该到不能忍受那么热。如果是不能忍受,
多数是有电平问题。例如 TTL 输出 5V 到 ESP8266 这种。例如某宝上
USB 到 ESP8266 的转换插头就有 5V 不匹配的问题,特别坑。

还有一个是 memory leak。 ESP8266 需要有大概 10K 左右的空余内存供
网络使用。你可以密切监视你的内存还有多少可以剩余。太少例如剩下 4K
种就比较容易出问题。

另外就是比较推荐的连接方式是 STA 模式。 AP 模式不如 STA 稳定。主要是
那个 AP 是假 AP, 如果试图通过 ESP8266 来访问 Internet 就会对 ESP8266
有一定干扰。扫描 SSID 失败后 reset wifi 对 wifi 服务有干扰。

注意这些问题。在电源稳定,程序正确的情况下我发现这个芯片还算稳定。
我现在开发板是长期有 TCP 连接挂在上面打引调试记录,一秒一行。这个连
接可以挂几天到一个星期都没有问题,我一般是程序原因需要 flash ESP8266
才重起 esp8266 断开 TCP 连接. 注意我这个调试是长连接,24 小时不断的。

前面也有朋友分享 ESP8266 已经产品用上了,没有稳定性问题。以前有发现
不稳定 corrupt flash 的情况,后来都定位到自己的程序特别是内存访问越界
的问题。bug 都改好了以后就一直稳定。

中断没有处理好也会有稳定的问题,例如那个 uart frame error。我后来发现是
我用的格式不对。 STM32 bootloader 用 8E1, 我当 8N1 来用就频繁 frame
error 把 ESP8266 拖死了。

出0入0汤圆

 楼主| 发表于 2016-8-8 17:23:05 | 显示全部楼层
光轮 发表于 2016-8-8 16:50
长时间esp8266的过程中会出现不稳定的现象,不知道楼主有没有出现过。
现在觉得esp8266用起来不稳定,不敢 ...

多问一个,你的不稳定是什么表现?
ESP8266 自动重起还是 TCP 连接自动断开?
WIFI 自动断网需要重新连接 wifi?

再提一个比较容易出问题的,就是 ESP8266 有看门狗。
所以如果回调函数长期不返回就回被看门狗 reset。
你处理回调理想情况 20ms 左右应该返回。最长可以到 500ms
左右。再长到 1 秒钟左右就会被狗啃了。

出0入0汤圆

发表于 2016-8-9 08:05:59 | 显示全部楼层
helislayer 发表于 2016-8-8 17:23
多问一个,你的不稳定是什么表现?
ESP8266 自动重起还是 TCP 连接自动断开?
WIFI 自动断网需要重新连接 ...

我是在网络不稳定的条件下使用8266。用过修改源码烧写固件的方式也用过使用网络提供的AT指令的固件方式。
我的编程思路是一旦长时间接收不到心跳包或链接断开就重启8266,实际使用时发现8266会死机在一个状态。

出0入0汤圆

 楼主| 发表于 2016-8-9 14:33:30 | 显示全部楼层
光轮 发表于 2016-8-9 08:05
我是在网络不稳定的条件下使用8266。用过修改源码烧写固件的方式也用过使用网络提供的AT指令的固件方式。 ...

我感觉你这个是用个定时重起来掩盖代码可能有的其他
错误。例如你的内存有 corruption,特别是 stack 里面有
坏的数据,重起是有可能不可靠的。

着道理来说 DWT 是可以可靠重起 ESP8266 的。你描述
的问题比较像是程序有 bug。

出0入0汤圆

发表于 2016-8-10 08:25:18 | 显示全部楼层
一个是给的电源供电不够好。ESP8266 短暂的峰值电流可以到 200ma 这种范围。如果用USB TTL 串口供电是几乎都要出问题的。找个稳定有住够余量的电源。

我这里有2个都是USB-TTL串口供电, 一个是CP2102, 经常能把电脑搞成蓝屏, 目前再也不敢用了
另外一个是CH340, 目前应用还稳定.

出0入0汤圆

发表于 2016-8-10 21:44:39 | 显示全部楼层
收藏了,呵呵。

出0入0汤圆

 楼主| 发表于 2016-8-11 02:05:25 | 显示全部楼层
qiushui_007 发表于 2016-8-10 08:25
一个是给的电源供电不够好。ESP8266 短暂的峰值电流可以到 200ma 这种范围。如果用USB TTL 串口供电是几乎 ...

cp2102 片内自带的 3.3v 是肯定不够驱动 esp8226 的。
CH340 不带 3.3 ldo,需要外部的 3.3v ldo 还好些。

我自己体验也是 cp2102 比较容易出问题。我用 Linux
还不会蓝屏,但是可以看到核心驱动抱怨出错等等。
跑着跑着整个 usb 设备消失了,那个地址没有响应,
然后就是 disconnect

CH340 没有碰到同样的问题。当然只是我个人的体验。
早期 CH340 Linux 驱动有问题不能设置波特率,后来改
好了。 Windows 下面可能会不一样。

出0入0汤圆

发表于 2016-8-11 08:22:47 | 显示全部楼层
收藏了。谢谢。

出0入0汤圆

发表于 2016-8-11 11:18:04 | 显示全部楼层
感谢分享,收藏

出0入0汤圆

发表于 2016-8-11 11:30:50 | 显示全部楼层
不错的,收藏了

出0入0汤圆

发表于 2016-8-11 14:33:17 | 显示全部楼层
大体看了下代码, 咨询下, LZ是在哪个版本的SDK下编译成功的?

出0入0汤圆

 楼主| 发表于 2016-8-11 14:46:45 | 显示全部楼层
qiushui_007 发表于 2016-8-11 14:33
大体看了下代码, 咨询下, LZ是在哪个版本的SDK下编译成功的?

最新版本 SDK 啊。esp-link 那个 Makefile 是指定版本的。

出0入0汤圆

发表于 2016-8-15 14:33:25 | 显示全部楼层
esp8266官方提供的模板,git clone之后,自带的examples的gen_misc.sh文件运行后,出现:
start...

../../Makefile:103: warning: overriding commands for target `clean'
../Makefile:300: warning: ignoring old commands for target `clean'
../../Makefile:180: warning: overriding commands for target `ESP8266_NONOS_SDK_V1.5.4_16_05_20/.dir'
../../Makefile:169: warning: ignoring old commands for target `ESP8266_NONOS_SDK_V1.5.4_16_05_20/.dir'
You cloned without --recursive, fetching submodules for you.
git submodule update --init --recursive
make -C crosstool-NG -f ../Makefile _ct-ng
make: *** crosstool-NG: No such file or directory.  Stop.
make: *** [crosstool-NG/ct-ng] Error 2

大侠指导一下怎么回事??(之后又使用--recursive重新安装过,还是这个问题,exter****-gcc编译工具已经安装好了)

出0入4汤圆

发表于 2016-8-15 15:11:09 | 显示全部楼层
正好有个项目要用到!先MARK!

出0入0汤圆

 楼主| 发表于 2016-8-16 14:42:21 | 显示全部楼层
gushuailove 发表于 2016-8-15 14:33
esp8266官方提供的模板,git clone之后,自带的examples的gen_misc.sh文件运行后,出现:
start...

我很乐意帮你,不过我现在都不清楚你要编译哪个目标,esp-link 还是 esp-open-sdk.
你是用那个 Linux distribution,Fedora 还是其他的什么。版本多少。

我的猜测你是想编译 ESP8266_NONOS_SDK 里面的 examples 目录下的东西,  例如
IoT_Demo。但是很不幸运的是,那个 Makefile 是假定你用 pre compiled sdk.

请仔细读以下这个文档,
https://github.com/esp8266/esp8266-wiki/wiki/Toolchain

特别是下面这一句
The IoT_Demo Makefile assumes it's one directory up (for libraries and linker script).

反正稿那个 IoT_Demo  用原来的 Makefile 比较麻烦,要改不少地方。

如果你是编译 esp-open-sdk/examples/blinky 这个示范的话就很容易。
$ cd esp-open-sdk/examples/blinky/
$ make
xtensa-lx106-elf-gcc -I. -mlongcalls   -c -o blinky.o blinky.c
xtensa-lx106-elf-gcc -Teagle.app.v6.ld  blinky.o  -nostdlib -Wl,--start-group -lmain -lnet80211 -lwpa -llwip -lpp -lphy -Wl,--end-group -lgcc -o blinky
esptool.py elf2image blinky
esptool.py v1.2-dev
$

这就编译好了。
我建议你自己把 IoT_Demo 那个文件用 blinky 的 Makefile 框架移植过去。

出0入0汤圆

发表于 2016-8-16 15:16:12 | 显示全部楼层
helislayer 发表于 2016-8-16 14:42
我很乐意帮你,不过我现在都不清楚你要编译哪个目标,esp-link 还是 esp-open-sdk.
你是用那个 Linux dis ...

我以为这个开源里面的例程是可以直接用的,那请问您一般是怎么开发esp上面的c程序的?

出0入0汤圆

 楼主| 发表于 2016-8-16 15:36:16 | 显示全部楼层
gushuailove 发表于 2016-8-16 15:16
我以为这个开源里面的例程是可以直接用的,那请问您一般是怎么开发esp上面的c程序的? ...

你要注意里面有个 SDK 的包,那个 SDK 包包含库什么的和 gcc 编译器的
包是分开的。 所以 SDK 里面的 example 是官方提供的,和 Makefile  和 esp-open-sdk
的不是很兼容。官方那个 Makefile 写的不是很好,应该说非常糟糕。

我的开发环境是 gvim, esp-open-sdk, make,
vim 里面使用 ctags 和 cscope 做符号跳转查找。
Makefile 我一般自己写,那个  makefile 写好了可以
编译很快很顺畅。直接在 vim 里面 make 也可以。
大致就是这样。

好处是比较简单,换其他平台例如 stm32 也通用,
都是 gcc。不用被 IDE 绑架。坏处大概是上手时间
长点。不过这个时间投资可以重用在所有其他开发
平台上,例如 linux kernel 和 iphone app 我也是用
vim 来写程序的。xcode 的编辑器就不是很习惯。
vim 查找和跳转都很方便。所以 xcode 我也是尽量
用 make 来编译。



出0入0汤圆

发表于 2016-9-12 20:32:20 | 显示全部楼层
求LZ教我怎么弄,我对这个也比较感兴趣

出0入0汤圆

发表于 2016-9-21 19:38:55 | 显示全部楼层
helislayer 发表于 2016-8-16 15:36
你要注意里面有个 SDK 的包,那个 SDK 包包含库什么的和 gcc 编译器的
包是分开的。 所以 SDK 里面的 exa ...

请问这个固件支持tcp server方式的透传吗?就是esp8266作为服务器端

出0入0汤圆

 楼主| 发表于 2016-9-22 00:45:34 | 显示全部楼层
pazulin 发表于 2016-9-21 19:38
请问这个固件支持tcp server方式的透传吗?就是esp8266作为服务器端

支持透传,但是效率不是特别高。
发太快会有漏数据。
我自己写过一个效率高的。

出0入0汤圆

发表于 2016-9-22 06:25:16 | 显示全部楼层
这个牛逼啊.顶起.

出0入42汤圆

发表于 2016-9-22 07:15:20 来自手机 | 显示全部楼层
收藏了,esp8266

出0入0汤圆

 楼主| 发表于 2016-9-22 07:20:30 | 显示全部楼层
gushuailove 发表于 2016-8-16 15:16
我以为这个开源里面的例程是可以直接用的,那请问您一般是怎么开发esp上面的c程序的? ...

这个 esp-open-sdk example 目录下的 blinky 是可以直接用的。
那个官方发布的 SDK example(不包含 gcc 部分)是不能直接在 open sdk (包含 gcc)
目录里面直接编译。那个是官方 SDK 的 Makefile 写的问题。

我一般就找一个可以编译的例子,例如 blinky 或者 esp-link 在上面改。
我平时也不用 IDE 所以这个部分不是问题。

出0入0汤圆

发表于 2016-9-22 09:01:59 | 显示全部楼层
不错,学习中……

出100入101汤圆

发表于 2016-9-23 05:21:05 来自手机 | 显示全部楼层
helislayer 发表于 2016-8-3 11:55
你要是 Linux 开发环境碰到什么问题可以贴上来,我尽量回答。
我平时都是用 Linux 的,windows 开发不太 ...

开发以外的也用Linux?

出0入0汤圆

 楼主| 发表于 2016-9-23 05:38:44 | 显示全部楼层
fengyunyu 发表于 2016-9-23 05:21
开发以外的也用Linux?

对,我连苹果的机器都装 Linux。Linux 在苹果的机器上比苹果的
操作系统还要省电。Linux 用习惯了效率很高。
当然我现在也不打游戏什么的,
偶尔有一些东西一定要用 windows 就用一部机器的一个
分区来做好了。很久没有碰了。通常是厂家有什么驱动没有
Linux 版本的,例如 GPS 升级地图等等。

出0入0汤圆

发表于 2016-10-12 09:34:30 | 显示全部楼层
您好楼主,能否分享下编译好的ESP-link的固件。想先刷个固件看看

出0入0汤圆

 楼主| 发表于 2016-10-12 09:57:49 | 显示全部楼层
grash 发表于 2016-10-12 09:34
您好楼主,能否分享下编译好的ESP-link的固件。想先刷个固件看看

50 楼有编译好的固件。

出0入0汤圆

发表于 2016-10-12 10:35:02 | 显示全部楼层
helislayer 发表于 2016-10-12 09:57
50 楼有编译好的固件。

多谢楼主,不好意思没有看中间的楼层,
另外请问有没有开源的TCP串口透传及WEB配置推荐呢?我试了下这个ESP-link好像没有AP模式下的TCP server转串口功能,它这个串口是用来打印日志的

出0入0汤圆

发表于 2016-10-12 10:51:42 来自手机 | 显示全部楼层
esplink要是能加进去udp透传,就太好啦!,可惜没有

出0入0汤圆

发表于 2016-10-12 11:40:59 | 显示全部楼层
比较感兴趣这个cgi怎么写的,这么小的模块内部都能跑http server啊。好强大。

出0入0汤圆

发表于 2016-10-12 14:57:48 | 显示全部楼层
楼主,esp-link是从哪里开始看啊,我想了解整个工作流程,看makefile也没看出啥。

出0入0汤圆

 楼主| 发表于 2016-10-12 15:31:15 | 显示全部楼层
grash 发表于 2016-10-12 10:35
多谢楼主,不好意思没有看中间的楼层,
另外请问有没有开源的TCP串口透传及WEB配置推荐呢?我试了下这个E ...

这个固件应该是有透传的。只要的你速率不太快就可以了。
端口 23 就是对应串口。
太快的话那个接受部分需要在中断里面读出 fifo ,现在这个
固件是经过一个事件调度才去读 fifo 的,调度慢了会丢数据。

出0入0汤圆

 楼主| 发表于 2016-10-12 15:35:07 | 显示全部楼层
jxx315315 发表于 2016-10-12 10:51
esplink要是能加进去udp透传,就太好啦!,可惜没有

UDP 透传效率比较低,我实验过了,所以你就不用试了。
特别是作为发送端,UDP 发送有个内部的限制,在发送一个 UDP
包的时候最多 queue 3 个 UDP 包,再多就扔掉了。所以最后
速率还不如 TCP, 差很多。UDP 协议上允许丢包,所以你也
不能说这个 SDK 做错了,反正发送 UDP 不爽就是了。

出0入0汤圆

 楼主| 发表于 2016-10-12 15:36:29 | 显示全部楼层
meirenai 发表于 2016-10-12 14:57
楼主,esp-link是从哪里开始看啊,我想了解整个工作流程,看makefile也没看出啥。 ...

你做个符号索引,然后就从 main 看下来就好了。

简单的网络协议处理看 开发的手册。

出0入8汤圆

发表于 2016-10-12 17:13:17 | 显示全部楼层
收藏下先,谢谢楼主~~~

出0入0汤圆

发表于 2016-10-12 17:26:26 | 显示全部楼层
本帖最后由 meirenai 于 2016-10-12 17:33 编辑

esp-open-sdk 和 esp-link是什么关系啊,没搞懂?
下载下来eps-open-sdk以后根目录下执行make,提示有错误。这个make是编译一个开发环境?那esp-link需要放在哪个目录下啊?
另外你上面说的main函数是 espfs\mkespfsimage\main.c 里面的main函数吗?我看到里面有对main函数参数 argv 的解析,想问一下这个参数是谁传送给main函数的?是boot程序中定义的嘛?
开发手册是github上面的md文档吗?argv

不好意思提了好多问题,希望楼主帮忙解答一下。

出0入0汤圆

发表于 2016-10-12 17:58:29 | 显示全部楼层
helislayer 发表于 2016-10-12 15:31
这个固件应该是有透传的。只要的你速率不太快就可以了。
端口 23 就是对应串口。
太快的话那个接受部分需 ...

多谢楼主指点。刚测试了一下TCP 23端口,确实可以收发数据了。

出0入8汤圆

发表于 2016-10-13 01:49:22 来自手机 | 显示全部楼层
很好的资源,做个记号

出0入0汤圆

发表于 2016-10-13 08:31:12 | 显示全部楼层
esp8266使用 ardino IDE环境 来开发还是相当不错,虽然可参考的资料不多而且还是E文占大部分,其自带的例程如稍加修加,基本都可以很方便实现楼主所说的功能。
8266的udp发包确实比较慢,上传物联网平台的数据,还不如用http协议

出0入0汤圆

发表于 2016-10-13 08:54:11 | 显示全部楼层
收藏了,呵呵。

出0入0汤圆

 楼主| 发表于 2016-10-13 10:15:23 | 显示全部楼层
meirenai 发表于 2016-10-12 17:26
esp-open-sdk 和 esp-link是什么关系啊,没搞懂?
下载下来eps-open-sdk以后根目录下执行make,提示有错误 ...

不好意思我有个地方说错了,

那个 esp-link 入口函数是 user_init, 在 esp-link/main.c

esp-open-sdk 就是编译esp8266 的 gcc 编译器出来。里面还带了
esp8266 的官方 SDK,官方 SDK 就是些投文件和二进制库什么的。
官方 SDK 不带 GCC。

然后 esp-link 就是要用 gcc 和 官方 SDK 来编译的项目。

出0入0汤圆

 楼主| 发表于 2016-10-13 10:29:46 | 显示全部楼层
zljcat3721 发表于 2016-10-13 08:31
esp8266使用 ardino IDE环境 来开发还是相当不错,虽然可参考的资料不多而且还是E文占大部分,其自带的例程 ...

对,其实 esp8266 官方有中文的开发文档。因为公司是中国的,那个中文文档和
英文的差不多仔细的。

出0入0汤圆

发表于 2016-10-13 10:32:43 | 显示全部楼层
感谢楼主分享

出0入0汤圆

发表于 2016-10-21 19:03:42 | 显示全部楼层
收藏,准备用呀,

出0入0汤圆

发表于 2016-10-31 18:55:58 | 显示全部楼层
楼主给推荐一个W7下的编译器,谢谢

出0入0汤圆

发表于 2016-11-1 14:20:45 | 显示全部楼层
写的非常详细,有空的时候我也折腾一下
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-24 00:15

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表