相信聰明伶俐的你,肯定完成了上一篇文章的環境搭建,如果你是第一次看本系列文章,可以先去看看前兩篇文章,先了解一下並完成一些基礎操作。
這里推薦大家安裝一下Git這個灰常炒雞好用的分布式版本管理神器,本人是非常喜歡這款由Linux之父Linus Torvalds開發的工具,可以很方便讓我完成一些工作,比如說copy代碼~哈哈,作為初級菜鳥程序員會用Git也是一個加分項,大家可以去看一下廖雪峰的Git的教程:
大家根據自己的系統選擇合適的下載,貌似Linux都是自帶的,因為Linux源碼本身就是使用Git進行分布式開發管理的,可以想象一下像Linux這樣大的項目都是使用的Git進行開發管理,你還有什么理由不去嘗試一下呢?
上篇文章的最后給大家了ESP8266-NonOS-SDK 3.0的下載地址,相信大家都已經下載完成了,如果還有沒下載的,剛好我們嘗試一下使用Git是如何快速的copy代碼,安裝好Git了嗎?安裝好了那我們就開始吧,先找一個你想將代碼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這個分支,如果你問分支又是什么,這就又是Git的相關知識了,相信廖大神的教程一定會讓你明白的,這里就不做解釋了,git@github.com:espressif/ESP8266_NONOS_SDK.git這一大串就是我們要clone(copy)的代碼在github倉庫中的地址了。
我們打開下載完成后的文件夾,看一下文件目錄結構,然后將下圖中我圈出來的文件直接刪掉,我們這里暫時用不到,不然等會編譯會報錯:
然后將examples文件下的smart_config文件夾復制到ESP8266_NONOS_SDK文件夾下並重新命名為app(可以不改,這里為了看着好看),最后的目錄結構是這樣:
打開上篇文章中安裝的安信可一體化開發環境,這是一個開源的開發工具,我們先將改好的工程導進來,左上角點擊file->import:
選擇Existing Code as Makefile Project,點擊Next:
點擊Browse瀏覽到你剛剛clone(copy)代碼的目錄,項目名稱隨便起,最后選擇Cygwin GCC,然后點擊Finish,就可以在左側看到我們的工程樹了,恭喜你,萬里長征走了大半步了,先不要急着編譯,我們先修改幾個地方。
打開主目錄中的makefile文件,找到第29行將0改為6,我這里使用的是NodeMCU,flash是32Mbit的,也就是4MByte=4096KB,可以在此文件的第100行找到參考,但是SPI_SIZE_MAP等於6時也是4096KB,其實6跟4的區別主要時代碼分布不同而已,我們這里讓SPI_SIZE_MAP等於6就可以了,具體代碼分布有什么不同,我們后面再細說,修改完成后不要忘記CTRL+S一下。
然后打開app->user->user_main.c文件,找到第251行,user_init函數,這是整個工程的入口函數,底層初始化完成后,代碼就從這個地方開始往下執行,我們這里串口打印一下“Hello World!”,將代碼修改一下,如下:
1 os_printf("SDK version:%s\n", system_get_sdk_version()); 2 os_printf("\n\nHello World! ZHIHU IAMLIUBO\n\n"); 3 // smartconfig_set_type(SC_TYPE_AIRKISS); //SC_TYPE_ESPTOUCH,SC_TYPE_AIRKISS,SC_TYPE_ESPTOUCH_AIRKISS 4 // wifi_set_opmode(STATION_MODE); 5 // smartconfig_start(smartconfig_done);
注釋下面三行,我們暫時用不到,增加一行,然后保存,點擊工具欄中的Project->Build Project,Console中出現以下代碼,就表示編譯成功了:
生成的Bin文件在工程目錄的Bin文件夾下,然后我們需要將代碼下載到ESP8266上去了,打開上篇文章中已經下載好的代碼下載工具flash_download_tools,沒有下載的可以看一下上篇文章去下載一下,也可以直接點這里:下載。打開后選擇ESP8266 DownloadTool,然后參考下圖設置好,代碼下載地址也取決於你的Flash大小,這里是32Mbit flash的下載地址,端口號是你的硬件實際端口號,波特率建議選大點,下載速度快,也不要太大。
下載地址參考:
- eagle.flash.bin-------->0x00000
- eagle.irom0text.bin---->0x10000
- esp_init_data_default_v08.bin --> 0x3FC000
- blank.bin --> 0x3FE000
設置好后,我們點擊START,就看到開始下載了,NodeMCU是有一鍵下載電路的,不需要我們手動去設置,如果你用的是別的開發板,沒有一鍵下載電路,你需要將GPIO0拉低,復位一下,然后點擊START,不然是沒法下載的。下載完成后我們打開串口助手,波特率選擇76800(這是ESP8266在使用26Mhz晶振下的默認波特率),按一下NodeMCU上的RST鍵,可以看到打印一些信息后,就打印出我們的“Hello World”來了,關於上電打印信息,是ESP8266底層初始化的時候打印日志,這部分代碼不對用戶開放,所以沒辦法看到,我們可以屏蔽掉上電打印日志,這個后面再講。
恭喜你,成功完成了“Hello World”實驗,通過一個簡單的小例程,相信你對整個ESP8266開發流程有了一定的了解,沒錯,后面我們還是一樣的套路去編寫代碼,編譯代碼,下載代碼,查看代碼執行結果,但是最重要的如何去編寫我們的代碼,后面將會跟大家一起來探討如何深入開發ESP8266。
最后附上一個小視頻,從修改代碼開始,但是由於沒有麥克風,所以沒有聲音,大家就當參考一下吧。
最后附上我的ESP8266倉庫,后面代碼會全部在此倉庫更新,歡迎小伙伴們Star~
本系列文章在知乎同步更新,知乎搜索專欄:IAMLIUBO的神奇物聯網之旅
QQ交流群:592587184