資源簡介
Arduino上開發,配合使用的esp8266 wifi芯片,其庫函數,版本號為 2.4.2
代碼片段和文件信息
/*?Copyright?(c)?2015-2016?Ivan?Grokhotkov.?All?rights?reserved.
?*?This?file?is?part?of?eboot?bootloader.
?*
?*?Redistribution?and?use?is?permitted?according?to?the?conditions?of?the
?*?3-clause?BSD?license?to?be?found?in?the?LICENSE?file.
?*/
#include?
#include?
#include?
#include?
#include?“flash.h“
#include?“eboot_command.h“
#define?SWRST?do?{?(*((volatile?uint32_t*)?0x60000700))?|=?0x80000000;?}?while(0);
extern?void?ets_wdt_enable(void);
extern?void?ets_wdt_disable(void);
int?print_version(const?uint32_t?flash_addr)
{
????uint32_t?ver;
????if?(SPIRead(flash_addr?+?APP_START_OFFSET?+?sizeof(image_header_t)?+?sizeof(section_header_t)?&ver?sizeof(ver)))?{
????????return?1;
????}
????const?char*?__attribute__?((aligned?(4)))?fmtt?=?“v%08x\n\0\0“;
????uint32_t?fmt[2];
????fmt[0]?=?((uint32_t*)?fmtt)[0];
????fmt[1]?=?((uint32_t*)?fmtt)[1];
????ets_printf((const?char*)?fmt?ver);
????return?0;
}
int?load_app_from_flash_raw(const?uint32_t?flash_addr)
{
????image_header_t?image_header;
????uint32_t?pos?=?flash_addr?+?APP_START_OFFSET;
????if?(SPIRead(pos?&image_header?sizeof(image_header)))?{
????????return?1;
????}
????pos?+=?sizeof(image_header);
????for?(uint32_t?section_index?=?0;
????????section_index?????????++section_index)
????{
????????section_header_t?section_header?=?{0};
????????if?(SPIRead(pos?§ion_header?sizeof(section_header)))?{
????????????return?2;
????????}
????????pos?+=?sizeof(section_header);
????????const?uint32_t?address?=?section_header.address;
????????bool?load?=?false;
????????if?(address?0x40000000)?{
????????????load?=?true;
????????}
????????if?(address?>=?0x40100000?&&?address?0x40108000)?{
????????????load?=?true;
????????}
????????if?(address?>=?0x60000000)?{
????????????load?=?true;
????????}
????????if?(!load)?{
????????????pos?+=?section_header.size;
????????????continue;
????????}
????????if?(SPIRead(pos?(void*)address?section_header.size))
????????????return?3;
????????pos?+=?section_header.size;
????}
????register?uint32_t?sp?asm(“a1“)?=?0x3ffffff0;
????register?uint32_t?pc?asm(“a3“)?=?image_header.entry;
????__asm__??__volatile__?(“jx?a3“);
????return?0;
}
int?copy_raw(const?uint32_t?src_addr
?????????????const?uint32_t?dst_addr
?????????????const?uint32_t?size)
{
????//?require?regions?to?be?aligned
????if?(src_addr?&?0xfff?!=?0?||
????????dst_addr?&?0xfff?!=?0)?{
????????return?1;
????}
????const?uint32_t?buffer_size?=?FLASH_SECTOR_SIZE;
????uint8_t?buffer[buffer_size];
????uint32_t?left?=?((size+buffer_size-1)?&?~(buffer_size-1));
????uint32_t?saddr?=?src_addr;
????uint32_t?daddr?=?dst_addr;
????while?(left)?{
????????if?(SPIEraseSector(daddr/buffer_size))?{
????????????return?2;
????????}
????????if?(SPIRead(saddr?buffer?buffer_size))?{
????????????return?3;
????????}
????????if?(SPIWrite(daddr?buffer?buffer_size))?{
????????????return?4;
????????}
????????saddr?+=?buffer_size;
????????daddr
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2018-08-03?07:19??esp8266-2.4.2\
?????文件????????7722??2018-08-03?07:19??esp8266-2.4.2\README.md
?????目錄???????????0??2018-08-03?07:19??esp8266-2.4.2\libraries\
?????目錄???????????0??2018-08-03?07:19??esp8266-2.4.2\libraries\ESP8266WiFiMesh\
?????文件????????9159??2018-08-03?07:19??esp8266-2.4.2\libraries\ESP8266WiFiMesh\README.md
?????文件????????1356??2018-08-03?07:19??esp8266-2.4.2\libraries\ESP8266WiFiMesh\keywords.txt
?????目錄???????????0??2018-08-03?07:19??esp8266-2.4.2\libraries\ESP8266WiFiMesh\examples\
?????目錄???????????0??2018-08-03?07:19??esp8266-2.4.2\libraries\ESP8266WiFiMesh\examples\HelloMesh\
?????文件????????5708??2018-08-03?07:19??esp8266-2.4.2\libraries\ESP8266WiFiMesh\examples\HelloMesh\HelloMesh.ino
?????文件?????????267??2018-08-03?07:19??esp8266-2.4.2\libraries\ESP8266WiFiMesh\library.properties
?????目錄???????????0??2018-08-03?07:19??esp8266-2.4.2\libraries\ESP8266WiFiMesh\src\
?????文件???????18190??2018-08-03?07:19??esp8266-2.4.2\libraries\ESP8266WiFiMesh\src\ESP8266WiFiMesh.cpp
?????文件????????2133??2018-08-03?07:19??esp8266-2.4.2\libraries\ESP8266WiFiMesh\src\TransmissionResult.cpp
?????文件????????4789??2018-08-03?07:19??esp8266-2.4.2\libraries\ESP8266WiFiMesh\src\Compatibilityla
?????文件????????2173??2018-08-03?07:19??esp8266-2.4.2\libraries\ESP8266WiFiMesh\src\TransmissionResult.h
?????文件????????2292??2018-08-03?07:19??esp8266-2.4.2\libraries\ESP8266WiFiMesh\src\NetworkInfo.h
?????文件????????4123??2018-08-03?07:19??esp8266-2.4.2\libraries\ESP8266WiFiMesh\src\UtilityMethods.cpp
?????文件????????2290??2018-08-03?07:19??esp8266-2.4.2\libraries\ESP8266WiFiMesh\src\NetworkInfo.cpp
?????文件???????14411??2018-08-03?07:19??esp8266-2.4.2\libraries\ESP8266WiFiMesh\src\ESP8266WiFiMesh.h
?????目錄???????????0??2018-08-03?07:19??esp8266-2.4.2\libraries\ESP8266SSDP\
?????文件????????1203??2018-08-03?07:19??esp8266-2.4.2\libraries\ESP8266SSDP\README.rst
?????文件????????1336??2018-08-03?07:19??esp8266-2.4.2\libraries\ESP8266SSDP\keywords.txt
?????目錄???????????0??2018-08-03?07:19??esp8266-2.4.2\libraries\ESP8266SSDP\examples\
?????目錄???????????0??2018-08-03?07:19??esp8266-2.4.2\libraries\ESP8266SSDP\examples\SSDP\
?????文件????????1308??2018-08-03?07:19??esp8266-2.4.2\libraries\ESP8266SSDP\examples\SSDP\SSDP.ino
?????文件????????4578??2018-08-03?07:19??esp8266-2.4.2\libraries\ESP8266SSDP\ESP8266SSDP.h
?????文件???????12811??2018-08-03?07:19??esp8266-2.4.2\libraries\ESP8266SSDP\ESP8266SSDP.cpp
?????目錄???????????0??2018-08-03?07:19??esp8266-2.4.2\libraries\Ticker\
?????文件?????????656??2018-08-03?07:19??esp8266-2.4.2\libraries\Ticker\keywords.txt
?????目錄???????????0??2018-08-03?07:19??esp8266-2.4.2\libraries\Ticker\examples\
?????目錄???????????0??2018-08-03?07:19??esp8266-2.4.2\libraries\Ticker\examples\TickerBasic\
............此處省略2107個文件信息
評論
共有 條評論