数码之家

 找回密码
 立即注册
搜索
查看: 4963|回复: 5

ESP8266 windows原生编译入门指引(续)

[复制链接]
发表于 2021-1-15 21:32:36 | 显示全部楼层 |阅读模式

爱科技、爱创意、爱折腾、爱极致,我们都是技术控

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

x
接上:https://www.mydigit.cn/forum.php?mod=viewthread&tid=228450

  --- 副标题是,如何构建36MB的完整编译环境,替代乐鑫官方600多MB的toolchain.
      (bin 2.3MB,+SDK 7MB, +编译器 26MB)

光说不练假把式,笔者把自己电脑里支持编译的相关文件提取出来;原来是我运气好,刚好装了mingw32+git.


其中mingw32里只用到了一个make,其他3个是依赖dll。
mingw32-make.exe   
libgcc_s_dw2-1.dll   
libiconv-2.dll        
libintl-8.dll         

git里用到了下面的exe,有4个依赖dll。
bash.exe              
echo.exe              
mkdir.exe            
mv.exe               
rm.exe               
sed.exe               
sh.exe  


msys-2.0.dll         
msys-gcc_s-1.dll      
msys-iconv-2.dll      
msys-intl-8.dll  


其实mingw32与git依赖的dll是一回事,但是它们名字不一样。。。
笔者怎么知道是这些文件的,因为有procmon.
把笔者提供的bin文件夹,合并到到xtensa-lx106-elf\bin\,顶层的那个。
在纯净的XP里测试通过,没其他依赖文件了。
这些文件压缩后是2.3MB,+SDK 7MB, +编译器 26MB,整个编译环境一共36MB。

最后写个bat如下:
假设你的SDK与编译工具都在C盘根目录;
set path=%path%;c:\xtensa-lx106-elf\bin\
set SDK_PATH=c:/ESP8266_RTOS_SDK-2.1.0
set BIN_PATH=bin


记得一定要把python装好并加环境变量,因为编译最后一步要用到python。
编译只需要在上面三个set执行后,cd到工程目录,比如:\ESP8266_RTOS_SDK-2.1.0\examples\project_template\;
输入mingw32-make回车即可。
你会看到中间穿插很多/tmp目录找不到的warning,
bash非要在windows找/tmp,好在是不影响编译的。


bin.7z

2.31 MB, 下载次数: 9, 下载积分: 家元 -55

打赏

参与人数 2家元 +30 收起 理由
hongo + 10 原創內容
家睦 + 20

查看全部打赏

本帖被以下淘专辑推荐:

  • · MCU|主题: 24, 订阅: 18
发表于 2021-1-16 09:18:11 | 显示全部楼层
果然是系列文章,赞!楼主再来一些干货

打赏

参与人数 1家元 +5 收起 理由
wywa123 + 5

查看全部打赏

回复 支持 1 反对 0

使用道具 举报

发表于 2021-1-16 17:21:21 | 显示全部楼层
本帖最后由 devcang 于 2021-1-17 00:33 编辑

!!!
SDK_PATH: G:/ESP8266_RTOS_SDK-2.1.0
BIN_PATH: bin

No boot needed.
Generate eagle.flash.bin and eagle.irom0text.bin successully in BIN_PATH
eagle.flash.bin-------->0x00000
eagle.irom0text.bin---->0x20000
!!!



看似成功了


:praise: :praise:



python是2.7(建议这个版本, 要是3.x就要自己麻烦修改源码,比如像print不兼容)


目录结构:

ESP
      |-ESP8266_RTOS_SDK-2.1.0 sdk源码目录,修改makefile中SPI_SIZE_MAP?=4 为实际flash大小

      |-make_tools        mingw32-make和依赖的.dll、mkdir.exe等,以及python2.7所在目录

      |-xtensa-lx106-elf      交叉编译器


加上python2.7,工具、源码在打包后的大小约36mb (7z极致压缩)。

在ESP目录,建立批处理,内容如下

@ECHO OFF
set curDir=%CD%
set IncDir=%curDir:\=/%
set ELF_HOME=%curDir%\xtensa-lx106-elf

set MakeHome=%curDir%\make_tools
set PYTHONHOME=%curDir%\make_tools\python2_7
set PATH=C:\windows\System32;%ELF_HOME%\bin;%MakeHome%;%PYTHONHOME%;%PYTHONHOME%\Scripts


REM 注意/,不是\
set SDK_PATH=%IncDir%/ESP8266_RTOS_SDK-2.1.0
set BIN_PATH=bin

cd %curDir%\ESP8266_RTOS_SDK-2.1.0\examples\project_template\
cmd /c mingw32-make
cd /d %curDir%




执行结果的后几行

!!!
bash.exe: warning: could not find /tmp, please create!
SDK_PATH: G:/ESP/ESP8266_RTOS_SDK-2.1.0
bash.exe: warning: could not find /tmp, please create!
bash.exe: warning: could not find /tmp, please create!
BIN_PATH: bin
bash.exe: warning: could not find /tmp, please create!

bash.exe: warning: could not find /tmp, please create!
No boot needed.
bash.exe: warning: could not find /tmp, please create!
Generate eagle.flash.bin and eagle.irom0text.bin successully in BIN_PATH
bash.exe: warning: could not find /tmp, please create!
eagle.flash.bin-------->0x00000
bash.exe: warning: could not find /tmp, please create!
eagle.irom0text.bin---->0x20000
bash.exe: warning: could not find /tmp, please create!
!!!




据目前所知,如果很讨厌 /tmp 提示,就需要引用完整的msys32/mingw32,楼主上一贴的内容中有链接,那样总大小会到达1.6g。但不用去找mingw32-make、而是使用make就可以。


-----------------------
偶喜欢短小精悍~!

回复 支持 1 反对 0

使用道具 举报

发表于 2021-6-4 16:15:28 | 显示全部楼层
此乃神贴一枚,备注留用
回复 支持 反对

使用道具 举报

发表于 2021-6-5 02:27:06 | 显示全部楼层
没事研究了下8266,回头再看这些就简单易懂了,不知道官方为什么搞出这么奇葩的编译方式,Arduino还好些,那个集成IDE编译简直是令人发指,乐鑫这是怕大家都学会买吗?:mad:
回复 支持 反对

使用道具 举报

发表于 2022-8-13 11:24:53 | 显示全部楼层
自己也试着折腾乐鑫的ESP32,最真实的感受开发环境的搭建以及后续使用中出错debug,体验真心的差,真是上面的友友说的那样,乐鑫是怕大家都学会么。
回复 支持 反对

使用道具 举报

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

本版积分规则

APP|手机版|小黑屋|关于我们|联系我们|法律条款|技术知识分享平台

闽公网安备35020502000485号

闽ICP备2021002735号-2

GMT+8, 2024-3-29 14:18 , Processed in 0.374400 second(s), 15 queries , Redis On.

Powered by Discuz!

© 2006-2023 smzj.net

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