mirror of
https://github.com/IoTManagerProject/IoTManager.git
synced 2026-03-26 14:12:16 +03:00
Merge branch 'ver4dev' into ver4dev
This commit is contained in:
38
tools/lt_fsbuild.py
Normal file
38
tools/lt_fsbuild.py
Normal file
@@ -0,0 +1,38 @@
|
||||
|
||||
# c:\Users\bmw\.platformio\penv\Scripts\pio run -t buildfs
|
||||
#c:\Users\bmw\.platformio\penv\.libretiny\Scripts\ltchiptool -v flash write lt_littlefs.bin --start 0x1db000 -f BK7231N
|
||||
|
||||
|
||||
|
||||
Import("env")
|
||||
|
||||
# Определите имя таргета
|
||||
target_name = "buildfs"
|
||||
|
||||
# Получите путь к директории с данными из переменной среды env
|
||||
data_dir = env.subst("$PROJECT_DIR") + "/data_svelte"
|
||||
|
||||
# Получите путь к выходному файлу LittleFS из переменной среды env
|
||||
output_file = env.subst("$PROJECT_DIR") + "/lt_littlefs.bin"
|
||||
|
||||
# Получите путь к mklittlefs.exe из переменной среды env
|
||||
mklittlefs_path = env.subst("$PROJECT_DIR") + "/tools/mklittlefs.exe"
|
||||
|
||||
# Определите команду, которая будет выполнена при вызове таргета
|
||||
command = "{} -c {} -s 0x25000 -p 0x100 -b 0x1000 {}".format(mklittlefs_path, data_dir, output_file)
|
||||
|
||||
# Добавьте кастомный таргет
|
||||
env.AddCustomTarget(
|
||||
name=target_name,
|
||||
dependencies=None,
|
||||
actions=[command],
|
||||
title="Build LittleFS",
|
||||
description="Build LittleFS file system"
|
||||
)
|
||||
|
||||
|
||||
# Определите путь к исполняемому файлу ltchiptool
|
||||
ltchiptool_path = "${LTCHIPTOOL}"
|
||||
|
||||
|
||||
print("Custom target '{}' added!".format(target_name))
|
||||
58
tools/lt_fsbuildscript.py
Normal file
58
tools/lt_fsbuildscript.py
Normal file
@@ -0,0 +1,58 @@
|
||||
|
||||
#import os
|
||||
import subprocess
|
||||
#import json
|
||||
#from datetime import datetime
|
||||
from os.path import basename, join, normpath
|
||||
Import("env")
|
||||
from platformio.platform.base import PlatformBase
|
||||
from platformio.platform.board import PlatformBoardConfig
|
||||
#from SCons.Script import DefaultEnvironment, Environment
|
||||
#env: Environment = DefaultEnvironment()
|
||||
platform: PlatformBase = env.PioPlatform()
|
||||
|
||||
def build_ltfs():
|
||||
print("Current Data dir", env.get("PROJECT_DATA_DIR"))
|
||||
pathmk = env.get("PROJECT_DIR")+ "/tools/mklittlefs.exe"
|
||||
pathmk = normpath(pathmk).replace("\\", "/")
|
||||
print("Current tools dir", pathmk)
|
||||
FS_SIZE ="0x25000"
|
||||
FS_PAGE = "0x100"
|
||||
FS_BLOCK = "0x1000"
|
||||
subprocess.call([pathmk, "-c", env.get("PROJECT_DATA_DIR"), "-s", FS_SIZE, "-p", FS_PAGE, "-b", FS_BLOCK, "lt_littlefs.bin", ])
|
||||
print("------------!!!!!!!!!-------------")
|
||||
print("FS_SIZE", FS_SIZE)
|
||||
print("FS_PAGE", FS_PAGE)
|
||||
print("FS_BLOCK", FS_BLOCK)
|
||||
print("------------!!!!!!!!!-------------")
|
||||
#subprocess.call(["c:/USER_BMW/IoTManager_4dev/IoTManager_C6_Tiny/tools/mklittlefs.exe", '-c', '${SOURCES}', '-s', '${FS_SIZE}', '-p', '${FS_PAGE}', '-b', '${FS_BLOCK}', 'lt_littlefs.bin'])
|
||||
# ./mklittlefs.exe -c c:\USER_BMW\IoTManager_4dev\IoTManager_C6_Tiny\data_svelte -s 0x25000 -p 0x100 -b 0x1000 lt_littlefs.bin
|
||||
def upload_ltfs():
|
||||
print("Flash UserData offset", env.get("FLASH_USERDATA_OFFSET"))
|
||||
print("Flash UserData length", env.get("FLASH_USERDATA_LENGTH"))
|
||||
LT_TOOL = 'python.exe -m ltchiptool -r -i 1 -L ' + platform.get_dir() + 'flash write'
|
||||
print(LT_TOOL)
|
||||
#subprocess.call(LT_TOOL , shell=True)
|
||||
#"${LTCHIPTOOL}"
|
||||
def before_build(): # source, target, env
|
||||
print("Current Build targets", BUILD_TARGETS)
|
||||
# Это всё потому что не работает "buildprog". При сборке прошивки Targets пустой, на всякий случай исключим все остальные
|
||||
if (BUILD_TARGETS == ['upload'] or
|
||||
BUILD_TARGETS == ['buildfs'] or
|
||||
BUILD_TARGETS == ['uploadfs'] or
|
||||
BUILD_TARGETS == ['uploadfsota'] or
|
||||
BUILD_TARGETS == ['size']):
|
||||
return
|
||||
|
||||
#print("Clear BUILD_TIME, delete main.o !")
|
||||
# config = configparser.ConfigParser() # создаём объекта парсера INI
|
||||
# config.read("platformio.ini")
|
||||
#deviceName = config["platformio"]["default_envs"]
|
||||
build_ltfs()
|
||||
upload_ltfs()
|
||||
|
||||
before_build()
|
||||
|
||||
#на всякий случай
|
||||
#cd data_svelte/
|
||||
#curl.exe -F "file=@edit.htm.gz;filename=edit.htm.gz" http://192.168.2.110/edit
|
||||
34
tools/lt_fsflash.py
Normal file
34
tools/lt_fsflash.py
Normal file
@@ -0,0 +1,34 @@
|
||||
|
||||
# c:\Users\bmw\.platformio\penv\Scripts\pio run -t buildfs
|
||||
#c:\Users\bmw\.platformio\penv\.libretiny\Scripts\ltchiptool -v flash write lt_littlefs.bin --start 0x1db000 -f BK7231N -c
|
||||
|
||||
|
||||
|
||||
Import("env")
|
||||
|
||||
# Определите имя таргета
|
||||
target_name = "flashfs"
|
||||
|
||||
# Получите путь к выходному файлу LittleFS из переменной среды env
|
||||
output_file = env.subst("$PROJECT_DIR") + "/lt_littlefs.bin"
|
||||
|
||||
# Получите путь к mklittlefs.exe из переменной среды env
|
||||
ltchiptool_path = "${LTCHIPTOOL}"
|
||||
# Определите команду, которая будет выполнена при вызове таргета
|
||||
command = "{} flash write {} -s 0x1db000 -c -f BK7231N ".format(ltchiptool_path, output_file)
|
||||
|
||||
# Добавьте кастомный таргет
|
||||
env.AddCustomTarget(
|
||||
name=target_name,
|
||||
dependencies=None,
|
||||
actions=[command],
|
||||
title="Flash LittleFS",
|
||||
description="Flash LittleFS file system"
|
||||
)
|
||||
|
||||
|
||||
# Определите путь к исполняемому файлу ltchiptool
|
||||
|
||||
|
||||
|
||||
print("Custom target '{}' added!".format(target_name))
|
||||
6
tools/partitions_custom_8mb.csv
Normal file
6
tools/partitions_custom_8mb.csv
Normal file
@@ -0,0 +1,6 @@
|
||||
# Name, Type, SubType, Offset, Size, Flags
|
||||
nvs, data, nvs, 0x9000, 0x5000,
|
||||
otadata, data, ota, 0xe000, 0x2000,
|
||||
app0, app, ota_0, , 3000K,
|
||||
app1, app, ota_1, , 3000K,
|
||||
spiffs, data, spiffs, , 1500K,
|
||||
|
@@ -3,25 +3,33 @@
|
||||
# #define WIFI_CLIENT_MAX_WRITE_RETRY (10)
|
||||
# #define WIFI_CLIENT_SELECT_TIMEOUT_US (1000000)
|
||||
# Прописать скрипт в platformio.ini внутри [env:esp32_4mb3f] написать extra_scripts = pre:tools/patch32_ws.py
|
||||
|
||||
Import("env")
|
||||
import os
|
||||
import shutil
|
||||
from sys import platform
|
||||
|
||||
pio_home = env.subst("$PROJECT_CORE_DIR")
|
||||
print("PLATFORMIO_DIR" + pio_home)
|
||||
|
||||
if platform == "linux" or platform == "linux2":
|
||||
# linux
|
||||
mainPyPath = '/home/rise/.platformio/packages/framework-arduinoespressif32/libraries/WiFi/src/WiFiClient.cpp'
|
||||
#mainPyPath = '/home/rise/.platformio/packages/framework-arduinoespressif32/libraries/WiFi/src/WiFiClient.cpp'
|
||||
mainPyPath = pio_home + '/packages/framework-arduinoespressif32/libraries/WiFi/src/WiFiClient.cpp'
|
||||
else:
|
||||
# windows
|
||||
mainPyPath = os.environ['USERPROFILE'] + '\\.platformio\\packages\\framework-arduinoespressif32\\libraries\\WiFi\\src\\WiFiClient.cpp'
|
||||
#mainPyPath = os.environ['USERPROFILE'] + '\\.platformio\\packages\\framework-arduinoespressif32\\libraries\\WiFi\\src\\WiFiClient.cpp'
|
||||
mainPyPath = pio_home + '\\packages\\framework-arduinoespressif32\\libraries\\WiFi\\src\\WiFiClient.cpp'
|
||||
|
||||
# print(mainPyPath)
|
||||
|
||||
with open(mainPyPath) as fr:
|
||||
oldData = fr.read()
|
||||
if not 'if WIFI_CLIENT_MAX_WRITE_RETRY (10)' in oldData:
|
||||
shutil.copyfile(mainPyPath, mainPyPath+'.bak')
|
||||
newData = oldData.replace('#define WIFI_CLIENT_MAX_WRITE_RETRY (10)', '#define WIFI_CLIENT_MAX_WRITE_RETRY (2)')
|
||||
newData = newData.replace('#define WIFI_CLIENT_SELECT_TIMEOUT_US (1000000)', '#define WIFI_CLIENT_SELECT_TIMEOUT_US (500000)')
|
||||
with open(mainPyPath, 'w') as fw:
|
||||
fw.write(newData)
|
||||
try:
|
||||
with open(mainPyPath) as fr:
|
||||
oldData = fr.read()
|
||||
if not 'if WIFI_CLIENT_MAX_WRITE_RETRY (10)' in oldData:
|
||||
shutil.copyfile(mainPyPath, mainPyPath+'.bak')
|
||||
newData = oldData.replace('#define WIFI_CLIENT_MAX_WRITE_RETRY (10)', '#define WIFI_CLIENT_MAX_WRITE_RETRY (5)')
|
||||
newData = newData.replace('#define WIFI_CLIENT_SELECT_TIMEOUT_US (1000000)', '#define WIFI_CLIENT_SELECT_TIMEOUT_US (500000)')
|
||||
with open(mainPyPath, 'w') as fw:
|
||||
fw.write(newData)
|
||||
print(f"Файл изменён, ОК! {mainPyPath}")
|
||||
except FileNotFoundError:
|
||||
print("Файл не найден или не удается открыть")
|
||||
42
tools/patch32c6.py
Normal file
42
tools/patch32c6.py
Normal file
@@ -0,0 +1,42 @@
|
||||
Import("env")
|
||||
import json
|
||||
import os
|
||||
import shutil
|
||||
from sys import platform
|
||||
|
||||
pio_home = env.subst("$PROJECT_CORE_DIR")
|
||||
print("PLATFORMIO_DIR" + pio_home)
|
||||
|
||||
if platform == "linux" or platform == "linux2":
|
||||
# linux
|
||||
#devkitm = '/home/rise/.platformio/platforms/espressif32/boards/esp32-c6-devkitm-1.json'
|
||||
#devkitc = '/home/rise/.platformio/platforms/espressif32/boards/esp32-c6-devkitc-1.json'
|
||||
devkitm = pio_home + '/platforms/espressif32/boards/esp32-c6-devkitm-1.json'
|
||||
devkitc = pio_home + '/platforms/espressif32/boards/esp32-c6-devkitc-1.json'
|
||||
else:
|
||||
# windows
|
||||
devkitm = pio_home + '\\platforms\\espressif32\\boards\\esp32-c6-devkitm-1.json'
|
||||
devkitc = pio_home + '\\platforms\\espressif32\\boards\\esp32-c6-devkitc-1.json'
|
||||
|
||||
def add_arduino_to_frameworks(file_name):
|
||||
try:
|
||||
with open(file_name, 'r+') as f:
|
||||
data = json.load(f)
|
||||
frameworks = data['frameworks']
|
||||
if 'arduino' not in frameworks:
|
||||
frameworks.insert(frameworks.index('espidf') + 1, 'arduino')
|
||||
data['frameworks'] = frameworks
|
||||
f.seek(0)
|
||||
json.dump(data, f, indent=4)
|
||||
f.truncate()
|
||||
print(f"Файл изменён, ОК! {file_name}")
|
||||
else:
|
||||
print(f"Arduino already exists in {file_name}")
|
||||
except FileNotFoundError:
|
||||
print("Файл не найден или не удается открыть")
|
||||
|
||||
if os.path.exists(devkitm) and os.path.exists(devkitc):
|
||||
add_arduino_to_frameworks(devkitm)
|
||||
add_arduino_to_frameworks(devkitc)
|
||||
else:
|
||||
print("One or both files do not exist.")
|
||||
@@ -1,23 +1,31 @@
|
||||
# правим %USERPROFILE%\.platformio\platforms\espressif8266\builder\main.py 103-115
|
||||
# для добавления возможности прошивки 16мб модуля esp8266
|
||||
Import("env")
|
||||
|
||||
import os
|
||||
import shutil
|
||||
from sys import platform
|
||||
|
||||
pio_home = env.subst("$PROJECT_CORE_DIR")
|
||||
print("PLATFORMIO_DIR" + pio_home)
|
||||
|
||||
if platform == "linux" or platform == "linux2":
|
||||
# linux
|
||||
mainPyPath = '/home/rise/.platformio/platforms/espressif8266@4.0.1/builder/main.py'
|
||||
#mainPyPath = '/home/rise/.platformio/platforms/espressif8266@4.0.1/builder/main.py'
|
||||
mainPyPath = pio_home + '/platforms/espressif8266@4.0.1/builder/main.py'
|
||||
else:
|
||||
# windows
|
||||
mainPyPath = os.environ['USERPROFILE'] + '\\.platformio\\platforms\\espressif8266@4.0.1\\builder\\main.py'
|
||||
#mainPyPath = os.environ['USERPROFILE'] + '\\.platformio\\platforms\\espressif8266@4.0.1\\builder\\main.py'
|
||||
mainPyPath = pio_home + '\\platforms\\espressif8266@4.0.1\\builder\\main.py'
|
||||
|
||||
# print(mainPyPath)
|
||||
print("FIX 16Mb path: " + mainPyPath)
|
||||
|
||||
with open(mainPyPath) as fr:
|
||||
oldData = fr.read()
|
||||
if not 'if _value == -0x6000:' in oldData:
|
||||
shutil.copyfile(mainPyPath, mainPyPath+'.bak')
|
||||
newData = oldData.replace('_value += 0xE00000 # correction', '_value += 0xE00000 # correction\n\n if _value == -0x6000:\n _value = env[k]-0x40200000')
|
||||
with open(mainPyPath, 'w') as fw:
|
||||
fw.write(newData)
|
||||
try:
|
||||
with open(mainPyPath) as fr:
|
||||
oldData = fr.read()
|
||||
if not 'if _value == -0x6000:' in oldData:
|
||||
shutil.copyfile(mainPyPath, mainPyPath+'.bak')
|
||||
newData = oldData.replace('_value += 0xE00000 # correction', '_value += 0xE00000 # correction\n\n if _value == -0x6000:\n _value = env[k]-0x40200000')
|
||||
with open(mainPyPath, 'w') as fw:
|
||||
fw.write(newData)
|
||||
print(f"Файл изменён, ОК! {mainPyPath}")
|
||||
except FileNotFoundError:
|
||||
print("Файл не найден или не удается открыть")
|
||||
|
||||
Reference in New Issue
Block a user