ESP8266_NONOS_SDK環境搭建


http://www.51hei.com/bbs/dpj-150034-1.html
說明FLASH SIZE這一欄如果是ESP-01就選8Mbit,如果是ESP-12F就選32Mbit

安裝環境

下載AiThinkerIDE_V0.5_Setup.exe安裝-注意要使用英文目錄(注意這里是0.5版本,不是最新的版本,新版本未測試)
安裝完成后打開安裝目錄下的ConfigTool.exedefule鍵設置目錄

SDK

這里的SDK為ESP8266_NONOS_SDK-2.2.0.zip
找開AiThinkerIDE軟件,刪除ESP8266_NONOS_SDK項目,刪除時勾選Delete project contents on disk,然后再打開OpenWorkSpace.bat目錄
刪除ESP8266_NONOS_SDK目錄下的文件,

修改SDK包

1、將driver_lib重命名為app(名字自己喜好來定),從examples文件夾下隨便復制(或剪切)一個工程到app文件夾下,(提示是否要替換,都替 換掉)
2、將third_party文件夾下的Makefile重命名為Makefile.bak(備份起來,也是怕它影響到接下來的編譯)
3、將頂層Makefile文件中SPI_SIZE_MAP?=0改為SPI_SIZE_MAP?=6
4、倒數第三行INCLUDES := $(INCLUDES) -I $(PDIR)include -I $(PDIR)in clude/$(TARGET) -I $(PDIR)driver_lib/include中的driver_lib改為第2步的重命名,例如我改為app,這里就改為app即可。

SDK導入與編譯

然后再項目中導入SDK項目
選擇General->Existing Projects into Workspace 點擊next
然后選擇目錄注意SDK目錄不能有點符號與中文,勾選Copy projects into workspace然后完成,
然后可以下OpenWorkSpace.bat目錄下的項目下查看是否有該項目

然后就可以編譯項目了,編譯完成后在Console下面會有以下字樣(注意編譯前要保存與清除)

No boot needed.
Generate eagle.flash.bin and eagle.irom0text.bin successully in folder bin.
eagle.flash.bin-------->0x00000
eagle.irom0text.bin---->0x10000

然后在項目下燒錄的bin文件夾內
文件名與地址
eagle.flash.bin 0x00000
eagle.irom0text.bin 0x10000
esp_init_data_default_v08.bin 0x3FC000
blank.bin 0x3FE000

關於下面的選項 為40Mhz 模式:DOUT Size:32Mbit 去除二個勾選,然后就可以燒錄了

編程測試

在app/user/user_main.c文件中user_init(void)函數寫入以下代碼
os_printf("\n\nHello World! \n\n");
燒錄完成后,測試時波特率設置為74880(晶振26MHz),如果外晶振40時波特率115200

才能可以看到數據

串口測試

#include "driver/uart.h"
//用戶代碼
uart_init(9600,9600);  //波特率
os_printf("\r\n------------------------\r\n"); 
uart0_sendStr("\n\nHello World! \n\n");
os_printf("\r\n------------------------\r\n"); 

makefile文件修改

當頭文件修改位置時
要修改makefile文件中的二處SUBDIRSCOMPONENTS_eagle.app.v6(格式:driver/lib文件夾名.a)
記得user_mian聲明要更改一下

看門狗

喂狗函數system_soft_wdt_feed()

延時

#include "osapi.h" //定時器
void ICACHE_FLASH_ATTR delay_ms(u32 C_time)
{
	for(;C_time>0;C_time--)
	{os_delay_us(1000);}//延時1000納秒
}
void ICACHE_FLASH_ATTR user_init()
{
	while(1)
	{
		system_soft_wdt_feed();
		uart0_sendStr("\r\nHello! \r\n");
		delay_ms(1000); //調用延時1000微秒=1秒
	}
}

GPIO

#include "eagle_soc.h" //GPIO函數與宏定義
(因為考慮到NONOS的多任務,轉為RTOS學習)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM