文章目錄
- 前言
- 需要的資料
- 搭建SDK開發環境
- SDK的編譯和燒寫
前言
之前在做智能家居的時候需要用到esp8266,我這邊因為esp8266物聯網開發板的技小新教程相對齊全就不用串口模塊,直接使用板子,但是沒想到板子的配備的技小新資料中例程和相關的模板基本不能用,官方的指南有些教程也很是迷惑,于是我這邊和隊友琢磨了相當的一段時間來重新配置其模板和工程檔案,并記錄了相關的詳細使用檔案供大家參考
需要的資料
首先提供給大家網址以便資料的下載和學習:
tip:這里跟大家分享的是不基于作業系統的SDK的開發,比較簡便且資料較為齊全
- 樂鑫官網 https://www.espressif.com
- 安信可官網https://www.ai-thinker.com/home
- 參考檔案(筆者已為大家整理好) https://pan.baidu.com/s/181ho5M3PVXI1cnlrQLRtsw 密碼 niuf
- 工程模板(這里我們采用的是3.0.4版本的SDK并經筆者除錯過可使用)https://pan.baidu.com/s/1sCAi1TQJDu7xsE3Jbx2oyQ 密碼 f415
- 開發例程集合test-code(經筆者修改移植技小新除錯后的可用代碼)https://pan.baidu.com/s/1l2GDgul9Hy-dUhIPJaUz2Q 密碼 31wg
- SDK 一體化開發環境(IDE1.0) https://pan.baidu.com/share/init?surl=Mbi2xoHQxyYM35lnJEUBTA 密碼 fzfd
- 燒錄WiFi韌體工具:ESP_DOWNLOAD_TOOL https://docs.ai-thinker.com/_media/flash_download_tool_v3.8.5_1.zip
- 安信可串口除錯助手 https://docs.ai-thinker.com/_media/tools/aithinker_serial_tool_v1.2.3.7z
- TCP/UDP 網路除錯助手(PC版) https://docs.ai-thinker.com/_media/tools/tcpudpdbg.zip
看起來資料好像有點小多哦~不過千萬不要有壓力,跟著小B往下看,保證學起來簡簡單單滴
好了,接下來正文開始搭建SDK開發環境
-
打開ai-thinker-IDE1.0安裝檔案,選擇安裝路徑
-
安裝完成后,第一次使用aithinker eclipse集成開發環境先以管理員身份運行
AiThinkerIDE_V1.0\eclipse\目錄下的Confing.exe 應用來配置esp8266和esp32所需要的環境變數(此組態檔運行一次即可),點擊Default設定默認路徑,再點擊save保存到電腦的環境變數中,記得點一次就行,

-
安裝配置完之后我們會發現在我們桌面沒有對應圖示,我們需要到
AiThinkerIDE_V1.0\eclipse\下找到eclipse.exe檔案,右鍵,選擇發送到->桌面快捷方式,我們就可以在桌面看到圖示了,

-
第一次打開eclipse,會彈出選擇eclipse作業區保存的路徑,用戶自行選擇到安裝目錄下的Ai-Thinker\AithinkerIDE_v1.0檔案夾

至此環境搭建完成
接下來,我們可以來進行SDK的燒寫和編譯
SDK的編譯和燒寫
- 配置SDK
(1)復制ESP8266_NONOS_SDK-3.0.4-temple,拷貝一份將檔案夾重命名
(2)將SDK包中的driver_lib改名為code(意為存放代碼的地方)
注意:這里一定要先在SDK工程包匯入IDE之前更改檔案夾,切不可在import之后再更改檔案名,否則會在源檔案夾中留下難以發現的配置引數,后面再匯入都會報錯,最好的方法就是在匯入之前最好先有備份
(3)將example中選取demo拷貝到code中粘貼替換
(4)將example檔案夾洗掉(可選)
(5)將third_party/Makefile修改名為makefile.bak - 2.將SDK工程匯入到編譯器中
(1)打開eclipse環境,在’project explorer’中右鍵點擊import
(2)選擇C/C++ ->Existing Code as Makefile Project,點擊next

3)選擇Cygwin GCC,再點擊Browse…,選擇已配置好的SDK工程路徑,點擊finish

(4)可點擊code->user->user_main.c查看例程程式

(5)在’project explorer’中選中工程名,右鍵點擊’Properties’,在’C/C++Build->Build Commnd’中去掉勾如下圖所示并填寫 make COMPILE=gcc BOOT=none APP=0 SPI_SPEED=40 SPI_MODE=DIO SPI_SIZE_MAP=6,點擊’apply’,再點擊OK

注:SPI_SIZE_MAP的賦值需要根據user_main.c開頭的定義陳述句(如下圖)去定值,如果沒有的或者不支持的值不能對SPI_SIZE_MAP賦值

(6)針對制作SDK空白模板(可選):
對于 ESP8266_NONOS_SDK_v1.5.2 ? ESP8266_NONOS_SDK_v2.2.1 之間的版本,請在 user_main.c 增加函式 void user_rf_pre_init(void) 和 uint32 user_rf_cal_sector_set(void),可參考 IOT_Demo 的 user_main.c,?戶可在 user_rf_pre_init 中配置 RF 初始化,RF 設定接?為 system_phy_set_rfoption,或者在 Deep-sleep 前調? system_deep_sleep_set_option,如果設定為 RF 不打開,則 ESP8266 Station 及 SoftAP 均?法使?,請勿調? Wi-Fi 相關接?及?絡功能,RF 關閉時,Wi-Fi 射頻功能和?絡堆疊管理 API
對于 ESP8266_NONOS_SDK_v3.0.0 及之后版本,請在 user_main.c 增加函式 void ICACHE_FLASH_ATTR user_pre_init(void),并且在 user_pre_init 函式中注冊自己的 partition table,(注意,此步驟和2.0版本有所不同,至關重要!)
即v3.x版本都需要在user_pre_init 函式中注冊partition table(磁區表)
void ICACHE_FLASH_ATTR
user_pre_init(void)
{
if(!system_partition_table_regist(at_partition_table, sizeof(at_partition_table)/sizeof(at_partition_table[0]),SPI_FLASH_SIZE_MAP)) {
os_printf("system_partition_table_regist fail\r\n");
}
}
而設定磁區表則需要前面的宣告代碼和定義代碼才能成為一個完整可執行的3.0模板,具體代碼詳見ESP8266_NONOS_SDK-3.0.4-temple->code->user_mian.c檔案
(7)編譯之前進行保存,在’project explorer’中選中工程名,右鍵先clean project,清除之前的編譯宣告,再build project進行編譯
注意:編譯的時候最好只保留控制臺和功能視窗,其他視窗不要打開,以防編譯出錯

(8)編譯成功后,控制臺會有如下顯示

(9)最后要注意,user_cal_sector_set(暫定),user_pre_init,user_init三個函式在程式中需要保留,
- Esp8266程式燒寫
工程編譯完之后,會在工程檔案夾下的bin中生成如下.bin檔案

我們需要把生成的檔案燒寫到esp8266中
(1) 打開FLASH_DOWNLOAD_TOOLS工具,選擇esp8266,顯示對應燒錄的UI界面

(2)按照圖示配置引數(檔案和下載對應地址)

(3)可以下載的程式有如下所示,但是真正需要下載的程式只有兩個系統程式:eagle.flash.bin和eagle.irom0text.bin,其他的只需初次下載即可,但如出現野指標等引發破環了初始配置引數的情況則需要全部選中燒錄

其中燒錄的檔案作用如下


(4)根據下載地址圖示來配置我們需要下載的程式地址
注:因為ESP-12F模組的外部
Flash==4MB==4096KB==32bit 4MB Flash==0x000 000~ 0x3FF FFF
扇區編號:0x000~0x3FF【Flash扇區==4KB】
對應選擇下載地址

一般只燒寫最后兩個系統程式即可
(5)燒寫時如一直停留在等待同步狀態,需要按住開發板的boot,再同時按住restart,再放開restart,最后放開boot,整個程序按住停留時間需要把握好,具體可以嘗試幾遍即可知;如沒有上述情況則不用按鍵直接燒寫即可
下載成功如圖所示

(6)燒寫完成之后再按下restart鍵,此時esp8266藍燈短亮,開始執行燒寫進去的程式
然后就成功了有木有!!!
如果對您有幫助的話,記得一鍵三連喲~
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/246920.html
標籤:其他
