在Ubuntu用esp-idf编译micropython---(1)
(2019-03-27 14:48:35)
标签:
micropythonesp32compilemakeerror |
分类: Ubuntu,Puppy,Mac,Centos, |
sudo apt-get install gcc git wget make libncurses-dev flex bison gperf python python-pip python-setuptools python-serial python-cryptography python-future python-pyparsing
GEN build/esp32.common.ld
LINK build/application.elf
Create build/application.bin
esptool.py v2.6
A fatal error occurred: Invalid segment count 25 (max 16).
Usually this indicates a linker script problem.
Makefile:844: recipe for target 'build/application.bin'
failed
make: *** [build/application.bin] Error 2
后来用git submodule update --init , 没用。 再git
submodule update ,,然后再make。。竟然可以了。这次是在阿里云的Ubuntu 18.04
..但是在笔记本的mint,去make还是一样的错误。比对两者的esp-idf 和micropython的commit
hash,是不一样的。把mint上的commit也改成跟ubuntu 18.04一样。还是编译错误。比对
submodule的commit hash。。发现不一样。。。而且在大陆git clone,,,那是宇宙无敌慢
P.S. 后来发现,原来我有两个esp-idf 的clone,一个是~/esp/esp-idf ,一个是~/esp-idf
。之前编译有问题是因为.profile 的IDF_PATH设到 ~/esp/esp-idf ,,,所以在~/esp-idf 去git
submodule update也没用。。编译的方法照着参考资料4,应该就不会有错误了
另外,如果要将source code遍进bin,看参考资料5 ,把source code放在
micropython/ports/esp32/modules底下,然后make就可以了
还有 micropython-lib也要git clone下来,不然有些modules如 umqtt,
urequests都是link到micropython-lib的就会找不到。
最后,把main 和boot 放在inisetup.py 的最后面f.write里面,比如 "import
main.py"
然后complile好的bin开机就会执行main了
参考资料: