[基礎篇]ESP8266-NonOS學習筆記(二)之Hello World!
相信聰明伶俐的你,肯定完成了上一篇文章的環境搭建,如果你是第一次看本系列文章,可以先去看看前兩篇文章,先了解一下並完成一些基礎操作。
這裡推薦大家安裝一下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 [email protected]:espressif/ESP8266_NONOS_SDK.git
其中clone就是克隆(copy)的意思,-b v3.0是選擇3.0這個分支,如果你問分支又是什麼,這就又是Git的相關知識了,相信廖大神的教程一定會讓你明白的,這裡就不做解釋了,
我們開啟下載完成後的資料夾,看一下檔案目錄結構,然後將下圖中我圈出來的檔案直接刪掉,我們這裡暫時用不到,不然等會編譯會報錯:
然後將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的神奇物聯網之旅