相信聰明伶俐的你,肯定完成了上一篇文章的環(huán)境搭建派歌,如果你是第一次看本系列文章弯囊,可以先去看看前兩篇文章,先了解一下并完成一些基礎(chǔ)操作胶果。
這里推薦大家安裝一下Git這個(gè)灰常炒雞好用的分布式版本管理神器匾嘱,本人是非常喜歡這款由Linux之父Linus Torvalds開(kāi)發(fā)的工具,可以很方便讓我完成一些工作早抠,比如說(shuō)copy代碼~哈哈霎烙,作為初級(jí)菜鳥(niǎo)程序員會(huì)用Git也是一個(gè)加分項(xiàng),大家可以去看一下廖雪峰的Git的教程:
大家根據(jù)自己的系統(tǒng)選擇合適的下載,貌似Linux都是自帶的悬垃,因?yàn)長(zhǎng)inux源碼本身就是使用Git進(jìn)行分布式開(kāi)發(fā)管理的游昼,可以想象一下像Linux這樣大的項(xiàng)目都是使用的Git進(jìn)行開(kāi)發(fā)管理,你還有什么理由不去嘗試一下呢尝蠕?
上篇文章的最后給大家了ESP8266-NonOS-SDK 3.0的下載地址烘豌,相信大家都已經(jīng)下載完成了,如果還有沒(méi)下載的看彼,剛好我們嘗試一下使用Git是如何快速的copy代碼廊佩,安裝好Git了嗎?安裝好了那我們就開(kāi)始吧靖榕,先找一個(gè)你想將代碼copy到的目錄标锄,最好不要在含有中文的路徑下copy,然后右鍵選擇Git bash here
然后輸入如下命令:
1 git clone -b v3.0 git@github.com:espressif/ESP8266_NONOS_SDK.git
其中clone就是克隆(copy)的意思茁计,-b v3.0是選擇3.0這個(gè)分支料皇,如果你問(wèn)分支又是什么,這就又是Git的相關(guān)知識(shí)了簸淀,相信廖大神的教程一定會(huì)讓你明白的瓶蝴,這里就不做解釋了,git@github.com:espressif/ESP8266_NONOS_SDK.git這一大串就是我們要clone(copy)的代碼在github倉(cāng)庫(kù)中的地址了租幕。
我們打開(kāi)下載完成后的文件夾舷手,看一下文件目錄結(jié)構(gòu),然后將下圖中我圈出來(lái)的文件直接刪掉劲绪,我們這里暫時(shí)用不到男窟,不然等會(huì)編譯會(huì)報(bào)錯(cuò):
然后將examples文件下的smart_config文件夾復(fù)制到ESP8266_NONOS_SDK文件夾下并重新命名為app(可以不改,這里為了看著好看)贾富,最后的目錄結(jié)構(gòu)是這樣:
打開(kāi)上篇文章中安裝的安信可一體化開(kāi)發(fā)環(huán)境歉眷,這是一個(gè)開(kāi)源的開(kāi)發(fā)工具,我們先將改好的工程導(dǎo)進(jìn)來(lái)颤枪,左上角點(diǎn)擊file->import:
選擇Existing Code as Makefile Project汗捡,點(diǎn)擊Next:
點(diǎn)擊Browse瀏覽到你剛剛clone(copy)代碼的目錄,項(xiàng)目名稱隨便起,最后選擇Cygwin GCC畏纲,然后點(diǎn)擊Finish扇住,就可以在左側(cè)看到我們的工程樹(shù)了,恭喜你盗胀,萬(wàn)里長(zhǎng)征走了大半步了艘蹋,先不要急著編譯,我們先修改幾個(gè)地方票灰。
打開(kāi)主目錄中的makefile文件女阀,找到第29行將0改為6宅荤,我這里使用的是NodeMCU,flash是32Mbit的浸策,也就是4MByte=4096KB冯键,可以在此文件的第100行找到參考,但是SPI_SIZE_MAP等于6時(shí)也是4096KB的榛,其實(shí)6跟4的區(qū)別主要時(shí)代碼分布不同而已琼了,我們這里讓SPI_SIZE_MAP等于6就可以了,具體代碼分布有什么不同夫晌,我們后面再細(xì)說(shuō)雕薪,修改完成后不要忘記CTRL+S一下。
然后打開(kāi)app->user->user_main.c文件晓淀,找到第251行所袁,user_init函數(shù),這是整個(gè)工程的入口函數(shù)凶掰,底層初始化完成后燥爷,代碼就從這個(gè)地方開(kāi)始往下執(zhí)行,我們這里串口打印一下“Hello World!”懦窘,將代碼修改一下前翎,如下:
os_printf("SDK version:%s\n", system_get_sdk_version());
os_printf("\n\nHello World! ZHIHU IAMLIUBO\n\n");
// smartconfig_set_type(SC_TYPE_AIRKISS); //SC_TYPE_ESPTOUCH,SC_TYPE_AIRKISS,SC_TYPE_ESPTOUCH_AIRKISS
// wifi_set_opmode(STATION_MODE);
// smartconfig_start(smartconfig_done);
注釋下面三行,我們暫時(shí)用不到畅涂,增加一行港华,然后保存,點(diǎn)擊工具欄中的Project->Build Project,Console中出現(xiàn)以下代碼午衰,就表示編譯成功了:
生成的Bin文件在工程目錄的Bin文件夾下立宜,然后我們需要將代碼下載到ESP8266上去了,打開(kāi)上篇文章中已經(jīng)下載好的代碼下載工具flash_download_tools臊岸,沒(méi)有下載的可以看一下上篇文章去下載一下橙数,也可以直接點(diǎn)這里:下載。打開(kāi)后選擇ESP8266 DownloadTool,然后參考下圖設(shè)置好帅戒,代碼下載地址也取決于你的Flash大小灯帮,這里是32Mbit flash的下載地址,端口號(hào)是你的硬件實(shí)際端口號(hào)逻住,波特率建議選大點(diǎn)施流,下載速度快,也不要太大鄙信。
下載地址參考:
eagle.flash.bin-------->0x00000
eagle.irom0text.bin---->0x10000
esp_init_data_default_v08.bin --> 0x3FC000
blank.bin --> 0x3FE000
設(shè)置好后,我們點(diǎn)擊START忿晕,就看到開(kāi)始下載了装诡,NodeMCU是有一鍵下載電路的,不需要我們手動(dòng)去設(shè)置,如果你用的是別的開(kāi)發(fā)板鸦采,沒(méi)有一鍵下載電路宾巍,你需要將GPIO0拉低,復(fù)位一下渔伯,然后點(diǎn)擊START顶霞,不然是沒(méi)法下載的。下載完成后我們打開(kāi)串口助手锣吼,波特率選擇76800(這是ESP8266在使用26Mhz晶振下的默認(rèn)波特率)选浑,按一下NodeMCU上的RST鍵,可以看到打印一些信息后玄叠,就打印出我們的“Hello World”來(lái)了古徒,關(guān)于上電打印信息,是ESP8266底層初始化的時(shí)候打印日志读恃,這部分代碼不對(duì)用戶開(kāi)放隧膘,所以沒(méi)辦法看到,我們可以屏蔽掉上電打印日志寺惫,這個(gè)后面再講疹吃。
恭喜你,成功完成了“Hello World”實(shí)驗(yàn)西雀,通過(guò)一個(gè)簡(jiǎn)單的小例程萨驶,相信你對(duì)整個(gè)ESP8266開(kāi)發(fā)流程有了一定的了解,沒(méi)錯(cuò)蒋搜,后面我們還是一樣的套路去編寫代碼篡撵,編譯代碼,下載代碼豆挽,查看代碼執(zhí)行結(jié)果育谬,但是最重要的如何去編寫我們的代碼,后面將會(huì)跟大家一起來(lái)探討如何深入開(kāi)發(fā)ESP8266帮哈。
最后附上一個(gè)小視頻膛檀,從修改代碼開(kāi)始,但是由于沒(méi)有麥克風(fēng)娘侍,所以沒(méi)有聲音咖刃,大家就當(dāng)參考一下吧。
視頻還在找托管方~
最后附上我的ESP8266倉(cāng)庫(kù)憾筏,后面代碼會(huì)全部在此倉(cāng)庫(kù)更新嚎杨,歡迎小伙伴們Star~
本系列文章在知乎,博客園氧腰,同步更新枫浙,知乎搜索專欄:IAMLIUBO的神奇物聯(lián)網(wǎng)之旅
想看視頻的可以去知乎上的文章看一下~
QQ交流群:592587184