Merge branch 'master' into release/v3.1.x

This commit is contained in:
Me No Dev 2024-10-10 18:38:27 +03:00 committed by GitHub
commit 774f2756f1
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
9 changed files with 732 additions and 32 deletions

View file

@ -2966,6 +2966,479 @@ aventen_s3_sync.menu.EraseFlash.all.upload.erase_cmd=-e
############################################################## ##############################################################
BharatPi-Node-Wifi.name=BharatPi Node Wifi Module
BharatPi-Node-Wifi.bootloader.tool=esptool_py
BharatPi-Node-Wifi.bootloader.tool.default=esptool_py
BharatPi-Node-Wifi.upload.tool=esptool_py
BharatPi-Node-Wifi.upload.tool.default=esptool_py
BharatPi-Node-Wifi.upload.tool.network=esp_ota
BharatPi-Node-Wifi.upload.maximum_size=1310720
BharatPi-Node-Wifi.upload.maximum_data_size=327680
BharatPi-Node-Wifi.upload.flags=
BharatPi-Node-Wifi.upload.extra_flags=
BharatPi-Node-Wifi.serial.disableDTR=true
BharatPi-Node-Wifi.serial.disableRTS=true
BharatPi-Node-Wifi.build.tarch=xtensa
BharatPi-Node-Wifi.build.bootloader_addr=0x1000
BharatPi-Node-Wifi.build.target=esp32
BharatPi-Node-Wifi.build.mcu=esp32
BharatPi-Node-Wifi.build.core=esp32
BharatPi-Node-Wifi.build.variant=BharatPi-Node-Wifi
BharatPi-Node-Wifi.build.board=BHARATPI_NODE_WIFI
BharatPi-Node-Wifi.build.f_cpu=240000000L
BharatPi-Node-Wifi.build.flash_size=4MB
BharatPi-Node-Wifi.build.flash_freq=40m
BharatPi-Node-Wifi.build.flash_mode=dio
BharatPi-Node-Wifi.build.boot=dio
BharatPi-Node-Wifi.build.partitions=default
BharatPi-Node-Wifi.build.defines=
BharatPi-Node-Wifi.build.loop_core=
BharatPi-Node-Wifi.build.event_core=
BharatPi-Node-Wifi.menu.PartitionScheme.default=Default 4MB with spiffs (1.2MB APP/1.5MB SPIFFS)
BharatPi-Node-Wifi.menu.PartitionScheme.default.build.partitions=default
BharatPi-Node-Wifi.menu.PartitionScheme.defaultffat=Default 4MB with ffat (1.2MB APP/1.5MB FATFS)
BharatPi-Node-Wifi.menu.PartitionScheme.defaultffat.build.partitions=default_ffat
BharatPi-Node-Wifi.menu.PartitionScheme.default_8MB=8M with spiffs (3MB APP/1.5MB SPIFFS)
BharatPi-Node-Wifi.menu.PartitionScheme.default_8MB.build.partitions=default_8MB
BharatPi-Node-Wifi.menu.PartitionScheme.default_8MB.upload.maximum_size=3342336
BharatPi-Node-Wifi.menu.PartitionScheme.minimal=Minimal (1.3MB APP/700KB SPIFFS)
BharatPi-Node-Wifi.menu.PartitionScheme.minimal.build.partitions=minimal
BharatPi-Node-Wifi.menu.PartitionScheme.no_ota=No OTA (2MB APP/2MB SPIFFS)
BharatPi-Node-Wifi.menu.PartitionScheme.no_ota.build.partitions=no_ota
BharatPi-Node-Wifi.menu.PartitionScheme.no_ota.upload.maximum_size=2097152
BharatPi-Node-Wifi.menu.PartitionScheme.noota_3g=No OTA (1MB APP/3MB SPIFFS)
BharatPi-Node-Wifi.menu.PartitionScheme.noota_3g.build.partitions=noota_3g
BharatPi-Node-Wifi.menu.PartitionScheme.noota_3g.upload.maximum_size=1048576
BharatPi-Node-Wifi.menu.PartitionScheme.noota_ffat=No OTA (2MB APP/2MB FATFS)
BharatPi-Node-Wifi.menu.PartitionScheme.noota_ffat.build.partitions=noota_ffat
BharatPi-Node-Wifi.menu.PartitionScheme.noota_ffat.upload.maximum_size=2097152
BharatPi-Node-Wifi.menu.PartitionScheme.noota_3gffat=No OTA (1MB APP/3MB FATFS)
BharatPi-Node-Wifi.menu.PartitionScheme.noota_3gffat.build.partitions=noota_3gffat
BharatPi-Node-Wifi.menu.PartitionScheme.noota_3gffat.upload.maximum_size=1048576
BharatPi-Node-Wifi.menu.PartitionScheme.huge_app=Huge APP (3MB No OTA/1MB SPIFFS)
BharatPi-Node-Wifi.menu.PartitionScheme.huge_app.build.partitions=huge_app
BharatPi-Node-Wifi.menu.PartitionScheme.huge_app.upload.maximum_size=3145728
BharatPi-Node-Wifi.menu.PartitionScheme.min_spiffs=Minimal SPIFFS (1.9MB APP with OTA/190KB SPIFFS)
BharatPi-Node-Wifi.menu.PartitionScheme.min_spiffs.build.partitions=min_spiffs
BharatPi-Node-Wifi.menu.PartitionScheme.min_spiffs.upload.maximum_size=1966080
BharatPi-Node-Wifi.menu.PartitionScheme.fatflash=16M Flash (2MB APP/12.5MB FATFS)
BharatPi-Node-Wifi.menu.PartitionScheme.fatflash.build.partitions=ffat
BharatPi-Node-Wifi.menu.PartitionScheme.fatflash.upload.maximum_size=2097152
BharatPi-Node-Wifi.menu.PartitionScheme.app3M_fat9M_16MB=16M Flash (3MB APP/9.9MB FATFS)
BharatPi-Node-Wifi.menu.PartitionScheme.app3M_fat9M_16MB.build.partitions=app3M_fat9M_16MB
BharatPi-Node-Wifi.menu.PartitionScheme.app3M_fat9M_16MB.upload.maximum_size=3145728
BharatPi-Node-Wifi.menu.PartitionScheme.rainmaker=RainMaker
BharatPi-Node-Wifi.menu.PartitionScheme.rainmaker.build.partitions=rainmaker
BharatPi-Node-Wifi.menu.PartitionScheme.rainmaker.upload.maximum_size=3145728
BharatPi-Node-Wifi.menu.PartitionScheme.custom=Custom
BharatPi-Node-Wifi.menu.PartitionScheme.custom.build.partitions=
BharatPi-Node-Wifi.menu.PartitionScheme.custom.upload.maximum_size=16777216
BharatPi-Node-Wifi.menu.CPUFreq.240=240MHz (WiFi/BT)
BharatPi-Node-Wifi.menu.CPUFreq.240.build.f_cpu=240000000L
BharatPi-Node-Wifi.menu.CPUFreq.160=160MHz (WiFi/BT)
BharatPi-Node-Wifi.menu.CPUFreq.160.build.f_cpu=160000000L
BharatPi-Node-Wifi.menu.CPUFreq.80=80MHz (WiFi/BT)
BharatPi-Node-Wifi.menu.CPUFreq.80.build.f_cpu=80000000L
BharatPi-Node-Wifi.menu.CPUFreq.40=40MHz (40MHz XTAL)
BharatPi-Node-Wifi.menu.CPUFreq.40.build.f_cpu=40000000L
BharatPi-Node-Wifi.menu.CPUFreq.26=26MHz (26MHz XTAL)
BharatPi-Node-Wifi.menu.CPUFreq.26.build.f_cpu=26000000L
BharatPi-Node-Wifi.menu.CPUFreq.20=20MHz (40MHz XTAL)
BharatPi-Node-Wifi.menu.CPUFreq.20.build.f_cpu=20000000L
BharatPi-Node-Wifi.menu.CPUFreq.13=13MHz (26MHz XTAL)
BharatPi-Node-Wifi.menu.CPUFreq.13.build.f_cpu=13000000L
BharatPi-Node-Wifi.menu.CPUFreq.10=10MHz (40MHz XTAL)
BharatPi-Node-Wifi.menu.CPUFreq.10.build.f_cpu=10000000L
BharatPi-Node-Wifi.menu.FlashMode.qio=QIO
BharatPi-Node-Wifi.menu.FlashMode.qio.build.flash_mode=dio
BharatPi-Node-Wifi.menu.FlashMode.qio.build.boot=qio
BharatPi-Node-Wifi.menu.FlashMode.dio=DIO
BharatPi-Node-Wifi.menu.FlashMode.dio.build.flash_mode=dio
BharatPi-Node-Wifi.menu.FlashMode.dio.build.boot=dio
BharatPi-Node-Wifi.menu.FlashFreq.80=80MHz
BharatPi-Node-Wifi.menu.FlashFreq.80.build.flash_freq=80m
BharatPi-Node-Wifi.menu.FlashFreq.40=40MHz
BharatPi-Node-Wifi.menu.FlashFreq.40.build.flash_freq=40m
BharatPi-Node-Wifi.menu.FlashSize.4M=4MB (32Mb)
BharatPi-Node-Wifi.menu.FlashSize.4M.build.flash_size=4MB
BharatPi-Node-Wifi.menu.FlashSize.8M=8MB (64Mb)
BharatPi-Node-Wifi.menu.FlashSize.8M.build.flash_size=8MB
BharatPi-Node-Wifi.menu.FlashSize.8M.build.partitions=default_8MB
BharatPi-Node-Wifi.menu.FlashSize.16M=16MB (128Mb)
BharatPi-Node-Wifi.menu.FlashSize.16M.build.flash_size=16MB
BharatPi-Node-Wifi.menu.UploadSpeed.921600=921600
BharatPi-Node-Wifi.menu.UploadSpeed.921600.upload.speed=921600
BharatPi-Node-Wifi.menu.UploadSpeed.115200=115200
BharatPi-Node-Wifi.menu.UploadSpeed.115200.upload.speed=115200
BharatPi-Node-Wifi.menu.UploadSpeed.256000.windows=256000
BharatPi-Node-Wifi.menu.UploadSpeed.256000.upload.speed=256000
BharatPi-Node-Wifi.menu.UploadSpeed.230400.windows.upload.speed=256000
BharatPi-Node-Wifi.menu.UploadSpeed.230400=230400
BharatPi-Node-Wifi.menu.UploadSpeed.230400.upload.speed=230400
BharatPi-Node-Wifi.menu.UploadSpeed.460800.linux=460800
BharatPi-Node-Wifi.menu.UploadSpeed.460800.macosx=460800
BharatPi-Node-Wifi.menu.UploadSpeed.460800.upload.speed=460800
BharatPi-Node-Wifi.menu.UploadSpeed.512000.windows=512000
BharatPi-Node-Wifi.menu.UploadSpeed.512000.upload.speed=512000
BharatPi-Node-Wifi.menu.LoopCore.1=Core 1
BharatPi-Node-Wifi.menu.LoopCore.1.build.loop_core=-DARDUINO_RUNNING_CORE=1
BharatPi-Node-Wifi.menu.LoopCore.0=Core 0
BharatPi-Node-Wifi.menu.LoopCore.0.build.loop_core=-DARDUINO_RUNNING_CORE=0
BharatPi-Node-Wifi.menu.EventsCore.1=Core 1
BharatPi-Node-Wifi.menu.EventsCore.1.build.event_core=-DARDUINO_EVENT_RUNNING_CORE=1
BharatPi-Node-Wifi.menu.EventsCore.0=Core 0
BharatPi-Node-Wifi.menu.EventsCore.0.build.event_core=-DARDUINO_EVENT_RUNNING_CORE=0
BharatPi-Node-Wifi.menu.DebugLevel.none=None
BharatPi-Node-Wifi.menu.DebugLevel.none.build.code_debug=0
BharatPi-Node-Wifi.menu.DebugLevel.error=Error
BharatPi-Node-Wifi.menu.DebugLevel.error.build.code_debug=1
BharatPi-Node-Wifi.menu.DebugLevel.warn=Warn
BharatPi-Node-Wifi.menu.DebugLevel.warn.build.code_debug=2
BharatPi-Node-Wifi.menu.DebugLevel.info=Info
BharatPi-Node-Wifi.menu.DebugLevel.info.build.code_debug=3
BharatPi-Node-Wifi.menu.DebugLevel.debug=Debug
BharatPi-Node-Wifi.menu.DebugLevel.debug.build.code_debug=4
BharatPi-Node-Wifi.menu.DebugLevel.verbose=Verbose
BharatPi-Node-Wifi.menu.DebugLevel.verbose.build.code_debug=5
BharatPi-Node-Wifi.menu.EraseFlash.none=Disabled
BharatPi-Node-Wifi.menu.EraseFlash.none.upload.erase_cmd=
BharatPi-Node-Wifi.menu.EraseFlash.all=Enabled
BharatPi-Node-Wifi.menu.EraseFlash.all.upload.erase_cmd=-e
##############################################################
BharatPi-A7672S-4G.name=BharatPi A7672S 4G Module
BharatPi-A7672S-4G.bootloader.tool=esptool_py
BharatPi-A7672S-4G.bootloader.tool.default=esptool_py
BharatPi-A7672S-4G.upload.tool=esptool_py
BharatPi-A7672S-4G.upload.tool.default=esptool_py
BharatPi-A7672S-4G.upload.tool.network=esp_ota
BharatPi-A7672S-4G.upload.maximum_size=1310720
BharatPi-A7672S-4G.upload.maximum_data_size=327680
BharatPi-A7672S-4G.upload.flags=
BharatPi-A7672S-4G.upload.extra_flags=
BharatPi-A7672S-4G.serial.disableDTR=true
BharatPi-A7672S-4G.serial.disableRTS=true
BharatPi-A7672S-4G.build.tarch=xtensa
BharatPi-A7672S-4G.build.bootloader_addr=0x1000
BharatPi-A7672S-4G.build.target=esp32
BharatPi-A7672S-4G.build.mcu=esp32
BharatPi-A7672S-4G.build.core=esp32
BharatPi-A7672S-4G.build.variant=BharatPi-A7672S-4G
BharatPi-A7672S-4G.build.board=BHARATPI_A7672S_4G
BharatPi-A7672S-4G.build.f_cpu=240000000L
BharatPi-A7672S-4G.build.flash_size=4MB
BharatPi-A7672S-4G.build.flash_freq=40m
BharatPi-A7672S-4G.build.flash_mode=dio
BharatPi-A7672S-4G.build.boot=dio
BharatPi-A7672S-4G.build.partitions=default
BharatPi-A7672S-4G.build.defines=
BharatPi-A7672S-4G.build.loop_core=
BharatPi-A7672S-4G.build.event_core=
BharatPi-A7672S-4G.menu.PartitionScheme.default=Default 4MB with spiffs (1.2MB APP/1.5MB SPIFFS)
BharatPi-A7672S-4G.menu.PartitionScheme.default.build.partitions=default
BharatPi-A7672S-4G.menu.PartitionScheme.defaultffat=Default 4MB with ffat (1.2MB APP/1.5MB FATFS)
BharatPi-A7672S-4G.menu.PartitionScheme.defaultffat.build.partitions=default_ffat
BharatPi-A7672S-4G.menu.PartitionScheme.default_8MB=8M with spiffs (3MB APP/1.5MB SPIFFS)
BharatPi-A7672S-4G.menu.PartitionScheme.default_8MB.build.partitions=default_8MB
BharatPi-A7672S-4G.menu.PartitionScheme.default_8MB.upload.maximum_size=3342336
BharatPi-A7672S-4G.menu.PartitionScheme.minimal=Minimal (1.3MB APP/700KB SPIFFS)
BharatPi-A7672S-4G.menu.PartitionScheme.minimal.build.partitions=minimal
BharatPi-A7672S-4G.menu.PartitionScheme.no_ota=No OTA (2MB APP/2MB SPIFFS)
BharatPi-A7672S-4G.menu.PartitionScheme.no_ota.build.partitions=no_ota
BharatPi-A7672S-4G.menu.PartitionScheme.no_ota.upload.maximum_size=2097152
BharatPi-A7672S-4G.menu.PartitionScheme.noota_3g=No OTA (1MB APP/3MB SPIFFS)
BharatPi-A7672S-4G.menu.PartitionScheme.noota_3g.build.partitions=noota_3g
BharatPi-A7672S-4G.menu.PartitionScheme.noota_3g.upload.maximum_size=1048576
BharatPi-A7672S-4G.menu.PartitionScheme.noota_ffat=No OTA (2MB APP/2MB FATFS)
BharatPi-A7672S-4G.menu.PartitionScheme.noota_ffat.build.partitions=noota_ffat
BharatPi-A7672S-4G.menu.PartitionScheme.noota_ffat.upload.maximum_size=2097152
BharatPi-A7672S-4G.menu.PartitionScheme.noota_3gffat=No OTA (1MB APP/3MB FATFS)
BharatPi-A7672S-4G.menu.PartitionScheme.noota_3gffat.build.partitions=noota_3gffat
BharatPi-A7672S-4G.menu.PartitionScheme.noota_3gffat.upload.maximum_size=1048576
BharatPi-A7672S-4G.menu.PartitionScheme.huge_app=Huge APP (3MB No OTA/1MB SPIFFS)
BharatPi-A7672S-4G.menu.PartitionScheme.huge_app.build.partitions=huge_app
BharatPi-A7672S-4G.menu.PartitionScheme.huge_app.upload.maximum_size=3145728
BharatPi-A7672S-4G.menu.PartitionScheme.min_spiffs=Minimal SPIFFS (1.9MB APP with OTA/190KB SPIFFS)
BharatPi-A7672S-4G.menu.PartitionScheme.min_spiffs.build.partitions=min_spiffs
BharatPi-A7672S-4G.menu.PartitionScheme.min_spiffs.upload.maximum_size=1966080
BharatPi-A7672S-4G.menu.PartitionScheme.fatflash=16M Flash (2MB APP/12.5MB FATFS)
BharatPi-A7672S-4G.menu.PartitionScheme.fatflash.build.partitions=ffat
BharatPi-A7672S-4G.menu.PartitionScheme.fatflash.upload.maximum_size=2097152
BharatPi-A7672S-4G.menu.PartitionScheme.app3M_fat9M_16MB=16M Flash (3MB APP/9.9MB FATFS)
BharatPi-A7672S-4G.menu.PartitionScheme.app3M_fat9M_16MB.build.partitions=app3M_fat9M_16MB
BharatPi-A7672S-4G.menu.PartitionScheme.app3M_fat9M_16MB.upload.maximum_size=3145728
BharatPi-A7672S-4G.menu.PartitionScheme.rainmaker=RainMaker
BharatPi-A7672S-4G.menu.PartitionScheme.rainmaker.build.partitions=rainmaker
BharatPi-A7672S-4G.menu.PartitionScheme.rainmaker.upload.maximum_size=3145728
BharatPi-A7672S-4G.menu.PartitionScheme.custom=Custom
BharatPi-A7672S-4G.menu.PartitionScheme.custom.build.partitions=
BharatPi-A7672S-4G.menu.PartitionScheme.custom.upload.maximum_size=16777216
BharatPi-A7672S-4G.menu.CPUFreq.240=240MHz (WiFi/BT)
BharatPi-A7672S-4G.menu.CPUFreq.240.build.f_cpu=240000000L
BharatPi-A7672S-4G.menu.CPUFreq.160=160MHz (WiFi/BT)
BharatPi-A7672S-4G.menu.CPUFreq.160.build.f_cpu=160000000L
BharatPi-A7672S-4G.menu.CPUFreq.80=80MHz (WiFi/BT)
BharatPi-A7672S-4G.menu.CPUFreq.80.build.f_cpu=80000000L
BharatPi-A7672S-4G.menu.CPUFreq.40=40MHz (40MHz XTAL)
BharatPi-A7672S-4G.menu.CPUFreq.40.build.f_cpu=40000000L
BharatPi-A7672S-4G.menu.CPUFreq.26=26MHz (26MHz XTAL)
BharatPi-A7672S-4G.menu.CPUFreq.26.build.f_cpu=26000000L
BharatPi-A7672S-4G.menu.CPUFreq.20=20MHz (40MHz XTAL)
BharatPi-A7672S-4G.menu.CPUFreq.20.build.f_cpu=20000000L
BharatPi-A7672S-4G.menu.CPUFreq.13=13MHz (26MHz XTAL)
BharatPi-A7672S-4G.menu.CPUFreq.13.build.f_cpu=13000000L
BharatPi-A7672S-4G.menu.CPUFreq.10=10MHz (40MHz XTAL)
BharatPi-A7672S-4G.menu.CPUFreq.10.build.f_cpu=10000000L
BharatPi-A7672S-4G.menu.FlashMode.qio=QIO
BharatPi-A7672S-4G.menu.FlashMode.qio.build.flash_mode=dio
BharatPi-A7672S-4G.menu.FlashMode.qio.build.boot=qio
BharatPi-A7672S-4G.menu.FlashMode.dio=DIO
BharatPi-A7672S-4G.menu.FlashMode.dio.build.flash_mode=dio
BharatPi-A7672S-4G.menu.FlashMode.dio.build.boot=dio
BharatPi-A7672S-4G.menu.FlashFreq.80=80MHz
BharatPi-A7672S-4G.menu.FlashFreq.80.build.flash_freq=80m
BharatPi-A7672S-4G.menu.FlashFreq.40=40MHz
BharatPi-A7672S-4G.menu.FlashFreq.40.build.flash_freq=40m
BharatPi-A7672S-4G.menu.FlashSize.4M=4MB (32Mb)
BharatPi-A7672S-4G.menu.FlashSize.4M.build.flash_size=4MB
BharatPi-A7672S-4G.menu.FlashSize.8M=8MB (64Mb)
BharatPi-A7672S-4G.menu.FlashSize.8M.build.flash_size=8MB
BharatPi-A7672S-4G.menu.FlashSize.8M.build.partitions=default_8MB
BharatPi-A7672S-4G.menu.FlashSize.16M=16MB (128Mb)
BharatPi-A7672S-4G.menu.FlashSize.16M.build.flash_size=16MB
BharatPi-A7672S-4G.menu.UploadSpeed.921600=921600
BharatPi-A7672S-4G.menu.UploadSpeed.921600.upload.speed=921600
BharatPi-A7672S-4G.menu.UploadSpeed.115200=115200
BharatPi-A7672S-4G.menu.UploadSpeed.115200.upload.speed=115200
BharatPi-A7672S-4G.menu.UploadSpeed.256000.windows=256000
BharatPi-A7672S-4G.menu.UploadSpeed.256000.upload.speed=256000
BharatPi-A7672S-4G.menu.UploadSpeed.230400.windows.upload.speed=256000
BharatPi-A7672S-4G.menu.UploadSpeed.230400=230400
BharatPi-A7672S-4G.menu.UploadSpeed.230400.upload.speed=230400
BharatPi-A7672S-4G.menu.UploadSpeed.460800.linux=460800
BharatPi-A7672S-4G.menu.UploadSpeed.460800.macosx=460800
BharatPi-A7672S-4G.menu.UploadSpeed.460800.upload.speed=460800
BharatPi-A7672S-4G.menu.UploadSpeed.512000.windows=512000
BharatPi-A7672S-4G.menu.UploadSpeed.512000.upload.speed=512000
BharatPi-A7672S-4G.menu.LoopCore.1=Core 1
BharatPi-A7672S-4G.menu.LoopCore.1.build.loop_core=-DARDUINO_RUNNING_CORE=1
BharatPi-A7672S-4G.menu.LoopCore.0=Core 0
BharatPi-A7672S-4G.menu.LoopCore.0.build.loop_core=-DARDUINO_RUNNING_CORE=0
BharatPi-A7672S-4G.menu.EventsCore.1=Core 1
BharatPi-A7672S-4G.menu.EventsCore.1.build.event_core=-DARDUINO_EVENT_RUNNING_CORE=1
BharatPi-A7672S-4G.menu.EventsCore.0=Core 0
BharatPi-A7672S-4G.menu.EventsCore.0.build.event_core=-DARDUINO_EVENT_RUNNING_CORE=0
BharatPi-A7672S-4G.menu.DebugLevel.none=None
BharatPi-A7672S-4G.menu.DebugLevel.none.build.code_debug=0
BharatPi-A7672S-4G.menu.DebugLevel.error=Error
BharatPi-A7672S-4G.menu.DebugLevel.error.build.code_debug=1
BharatPi-A7672S-4G.menu.DebugLevel.warn=Warn
BharatPi-A7672S-4G.menu.DebugLevel.warn.build.code_debug=2
BharatPi-A7672S-4G.menu.DebugLevel.info=Info
BharatPi-A7672S-4G.menu.DebugLevel.info.build.code_debug=3
BharatPi-A7672S-4G.menu.DebugLevel.debug=Debug
BharatPi-A7672S-4G.menu.DebugLevel.debug.build.code_debug=4
BharatPi-A7672S-4G.menu.DebugLevel.verbose=Verbose
BharatPi-A7672S-4G.menu.DebugLevel.verbose.build.code_debug=5
BharatPi-A7672S-4G.menu.EraseFlash.none=Disabled
BharatPi-A7672S-4G.menu.EraseFlash.none.upload.erase_cmd=
BharatPi-A7672S-4G.menu.EraseFlash.all=Enabled
BharatPi-A7672S-4G.menu.EraseFlash.all.upload.erase_cmd=-e
##############################################################
BharatPi-LoRa.name=BharatPi LoRa Module
BharatPi-LoRa.bootloader.tool=esptool_py
BharatPi-LoRa.bootloader.tool.default=esptool_py
BharatPi-LoRa.upload.tool=esptool_py
BharatPi-LoRa.upload.tool.default=esptool_py
BharatPi-LoRa.upload.tool.network=esp_ota
BharatPi-LoRa.upload.maximum_size=1310720
BharatPi-LoRa.upload.maximum_data_size=327680
BharatPi-LoRa.upload.flags=
BharatPi-LoRa.upload.extra_flags=
BharatPi-LoRa.serial.disableDTR=true
BharatPi-LoRa.serial.disableRTS=true
BharatPi-LoRa.build.tarch=xtensa
BharatPi-LoRa.build.bootloader_addr=0x1000
BharatPi-LoRa.build.target=esp32
BharatPi-LoRa.build.mcu=esp32
BharatPi-LoRa.build.core=esp32
BharatPi-LoRa.build.variant=BharatPi-LoRa
BharatPi-LoRa.build.board=BHARATPI_LORA
BharatPi-LoRa.build.f_cpu=240000000L
BharatPi-LoRa.build.flash_size=4MB
BharatPi-LoRa.build.flash_freq=40m
BharatPi-LoRa.build.flash_mode=dio
BharatPi-LoRa.build.boot=dio
BharatPi-LoRa.build.partitions=default
BharatPi-LoRa.build.defines=
BharatPi-LoRa.build.loop_core=
BharatPi-LoRa.build.event_core=
BharatPi-LoRa.menu.PartitionScheme.default=Default 4MB with spiffs (1.2MB APP/1.5MB SPIFFS)
BharatPi-LoRa.menu.PartitionScheme.default.build.partitions=default
BharatPi-LoRa.menu.PartitionScheme.defaultffat=Default 4MB with ffat (1.2MB APP/1.5MB FATFS)
BharatPi-LoRa.menu.PartitionScheme.defaultffat.build.partitions=default_ffat
BharatPi-LoRa.menu.PartitionScheme.default_8MB=8M with spiffs (3MB APP/1.5MB SPIFFS)
BharatPi-LoRa.menu.PartitionScheme.default_8MB.build.partitions=default_8MB
BharatPi-LoRa.menu.PartitionScheme.default_8MB.upload.maximum_size=3342336
BharatPi-LoRa.menu.PartitionScheme.minimal=Minimal (1.3MB APP/700KB SPIFFS)
BharatPi-LoRa.menu.PartitionScheme.minimal.build.partitions=minimal
BharatPi-LoRa.menu.PartitionScheme.no_ota=No OTA (2MB APP/2MB SPIFFS)
BharatPi-LoRa.menu.PartitionScheme.no_ota.build.partitions=no_ota
BharatPi-LoRa.menu.PartitionScheme.no_ota.upload.maximum_size=2097152
BharatPi-LoRa.menu.PartitionScheme.noota_3g=No OTA (1MB APP/3MB SPIFFS)
BharatPi-LoRa.menu.PartitionScheme.noota_3g.build.partitions=noota_3g
BharatPi-LoRa.menu.PartitionScheme.noota_3g.upload.maximum_size=1048576
BharatPi-LoRa.menu.PartitionScheme.noota_ffat=No OTA (2MB APP/2MB FATFS)
BharatPi-LoRa.menu.PartitionScheme.noota_ffat.build.partitions=noota_ffat
BharatPi-LoRa.menu.PartitionScheme.noota_ffat.upload.maximum_size=2097152
BharatPi-LoRa.menu.PartitionScheme.noota_3gffat=No OTA (1MB APP/3MB FATFS)
BharatPi-LoRa.menu.PartitionScheme.noota_3gffat.build.partitions=noota_3gffat
BharatPi-LoRa.menu.PartitionScheme.noota_3gffat.upload.maximum_size=1048576
BharatPi-LoRa.menu.PartitionScheme.huge_app=Huge APP (3MB No OTA/1MB SPIFFS)
BharatPi-LoRa.menu.PartitionScheme.huge_app.build.partitions=huge_app
BharatPi-LoRa.menu.PartitionScheme.huge_app.upload.maximum_size=3145728
BharatPi-LoRa.menu.PartitionScheme.min_spiffs=Minimal SPIFFS (1.9MB APP with OTA/190KB SPIFFS)
BharatPi-LoRa.menu.PartitionScheme.min_spiffs.build.partitions=min_spiffs
BharatPi-LoRa.menu.PartitionScheme.min_spiffs.upload.maximum_size=1966080
BharatPi-LoRa.menu.PartitionScheme.fatflash=16M Flash (2MB APP/12.5MB FATFS)
BharatPi-LoRa.menu.PartitionScheme.fatflash.build.partitions=ffat
BharatPi-LoRa.menu.PartitionScheme.fatflash.upload.maximum_size=2097152
BharatPi-LoRa.menu.PartitionScheme.app3M_fat9M_16MB=16M Flash (3MB APP/9.9MB FATFS)
BharatPi-LoRa.menu.PartitionScheme.app3M_fat9M_16MB.build.partitions=app3M_fat9M_16MB
BharatPi-LoRa.menu.PartitionScheme.app3M_fat9M_16MB.upload.maximum_size=3145728
BharatPi-LoRa.menu.PartitionScheme.rainmaker=RainMaker
BharatPi-LoRa.menu.PartitionScheme.rainmaker.build.partitions=rainmaker
BharatPi-LoRa.menu.PartitionScheme.rainmaker.upload.maximum_size=3145728
BharatPi-LoRa.menu.PartitionScheme.custom=Custom
BharatPi-LoRa.menu.PartitionScheme.custom.build.partitions=
BharatPi-LoRa.menu.PartitionScheme.custom.upload.maximum_size=16777216
BharatPi-LoRa.menu.CPUFreq.240=240MHz (WiFi/BT)
BharatPi-LoRa.menu.CPUFreq.240.build.f_cpu=240000000L
BharatPi-LoRa.menu.CPUFreq.160=160MHz (WiFi/BT)
BharatPi-LoRa.menu.CPUFreq.160.build.f_cpu=160000000L
BharatPi-LoRa.menu.CPUFreq.80=80MHz (WiFi/BT)
BharatPi-LoRa.menu.CPUFreq.80.build.f_cpu=80000000L
BharatPi-LoRa.menu.CPUFreq.40=40MHz (40MHz XTAL)
BharatPi-LoRa.menu.CPUFreq.40.build.f_cpu=40000000L
BharatPi-LoRa.menu.CPUFreq.26=26MHz (26MHz XTAL)
BharatPi-LoRa.menu.CPUFreq.26.build.f_cpu=26000000L
BharatPi-LoRa.menu.CPUFreq.20=20MHz (40MHz XTAL)
BharatPi-LoRa.menu.CPUFreq.20.build.f_cpu=20000000L
BharatPi-LoRa.menu.CPUFreq.13=13MHz (26MHz XTAL)
BharatPi-LoRa.menu.CPUFreq.13.build.f_cpu=13000000L
BharatPi-LoRa.menu.CPUFreq.10=10MHz (40MHz XTAL)
BharatPi-LoRa.menu.CPUFreq.10.build.f_cpu=10000000L
BharatPi-LoRa.menu.FlashMode.qio=QIO
BharatPi-LoRa.menu.FlashMode.qio.build.flash_mode=dio
BharatPi-LoRa.menu.FlashMode.qio.build.boot=qio
BharatPi-LoRa.menu.FlashMode.dio=DIO
BharatPi-LoRa.menu.FlashMode.dio.build.flash_mode=dio
BharatPi-LoRa.menu.FlashMode.dio.build.boot=dio
BharatPi-LoRa.menu.FlashFreq.80=80MHz
BharatPi-LoRa.menu.FlashFreq.80.build.flash_freq=80m
BharatPi-LoRa.menu.FlashFreq.40=40MHz
BharatPi-LoRa.menu.FlashFreq.40.build.flash_freq=40m
BharatPi-LoRa.menu.FlashSize.4M=4MB (32Mb)
BharatPi-LoRa.menu.FlashSize.4M.build.flash_size=4MB
BharatPi-LoRa.menu.FlashSize.8M=8MB (64Mb)
BharatPi-LoRa.menu.FlashSize.8M.build.flash_size=8MB
BharatPi-LoRa.menu.FlashSize.8M.build.partitions=default_8MB
BharatPi-LoRa.menu.FlashSize.16M=16MB (128Mb)
BharatPi-LoRa.menu.FlashSize.16M.build.flash_size=16MB
BharatPi-LoRa.menu.UploadSpeed.921600=921600
BharatPi-LoRa.menu.UploadSpeed.921600.upload.speed=921600
BharatPi-LoRa.menu.UploadSpeed.115200=115200
BharatPi-LoRa.menu.UploadSpeed.115200.upload.speed=115200
BharatPi-LoRa.menu.UploadSpeed.256000.windows=256000
BharatPi-LoRa.menu.UploadSpeed.256000.upload.speed=256000
BharatPi-LoRa.menu.UploadSpeed.230400.windows.upload.speed=256000
BharatPi-LoRa.menu.UploadSpeed.230400=230400
BharatPi-LoRa.menu.UploadSpeed.230400.upload.speed=230400
BharatPi-LoRa.menu.UploadSpeed.460800.linux=460800
BharatPi-LoRa.menu.UploadSpeed.460800.macosx=460800
BharatPi-LoRa.menu.UploadSpeed.460800.upload.speed=460800
BharatPi-LoRa.menu.UploadSpeed.512000.windows=512000
BharatPi-LoRa.menu.UploadSpeed.512000.upload.speed=512000
BharatPi-LoRa.menu.LoopCore.1=Core 1
BharatPi-LoRa.menu.LoopCore.1.build.loop_core=-DARDUINO_RUNNING_CORE=1
BharatPi-LoRa.menu.LoopCore.0=Core 0
BharatPi-LoRa.menu.LoopCore.0.build.loop_core=-DARDUINO_RUNNING_CORE=0
BharatPi-LoRa.menu.EventsCore.1=Core 1
BharatPi-LoRa.menu.EventsCore.1.build.event_core=-DARDUINO_EVENT_RUNNING_CORE=1
BharatPi-LoRa.menu.EventsCore.0=Core 0
BharatPi-LoRa.menu.EventsCore.0.build.event_core=-DARDUINO_EVENT_RUNNING_CORE=0
BharatPi-LoRa.menu.DebugLevel.none=None
BharatPi-LoRa.menu.DebugLevel.none.build.code_debug=0
BharatPi-LoRa.menu.DebugLevel.error=Error
BharatPi-LoRa.menu.DebugLevel.error.build.code_debug=1
BharatPi-LoRa.menu.DebugLevel.warn=Warn
BharatPi-LoRa.menu.DebugLevel.warn.build.code_debug=2
BharatPi-LoRa.menu.DebugLevel.info=Info
BharatPi-LoRa.menu.DebugLevel.info.build.code_debug=3
BharatPi-LoRa.menu.DebugLevel.debug=Debug
BharatPi-LoRa.menu.DebugLevel.debug.build.code_debug=4
BharatPi-LoRa.menu.DebugLevel.verbose=Verbose
BharatPi-LoRa.menu.DebugLevel.verbose.build.code_debug=5
BharatPi-LoRa.menu.EraseFlash.none=Disabled
BharatPi-LoRa.menu.EraseFlash.none.upload.erase_cmd=
BharatPi-LoRa.menu.EraseFlash.all=Enabled
BharatPi-LoRa.menu.EraseFlash.all.upload.erase_cmd=-e
##############################################################
um_bling.name=UM BLING um_bling.name=UM BLING
um_bling.vid.0=0x303a um_bling.vid.0=0x303a
um_bling.pid.0=0x817F um_bling.pid.0=0x817F

View file

@ -24,17 +24,14 @@
#endif #endif
void serialEvent(void) __attribute__((weak)); void serialEvent(void) __attribute__((weak));
void serialEvent(void) {}
#if SOC_UART_HP_NUM > 1 #if SOC_UART_HP_NUM > 1
void serialEvent1(void) __attribute__((weak)); void serialEvent1(void) __attribute__((weak));
void serialEvent1(void) {} #endif /* SOC_UART_NUM > 1 */
#endif /* SOC_UART_HP_NUM > 1 */
#if SOC_UART_HP_NUM > 2 #if SOC_UART_HP_NUM > 2
void serialEvent2(void) __attribute__((weak)); void serialEvent2(void) __attribute__((weak));
void serialEvent2(void) {} #endif /* SOC_UART_NUM > 2 */
#endif /* SOC_UART_HP_NUM > 2 */
#if !defined(NO_GLOBAL_INSTANCES) && !defined(NO_GLOBAL_SERIAL) #if !defined(NO_GLOBAL_INSTANCES) && !defined(NO_GLOBAL_SERIAL)
// There is always Seria0 for UART0 // There is always Seria0 for UART0
@ -48,37 +45,35 @@ HardwareSerial Serial2(2);
#if HWCDC_SERIAL_IS_DEFINED == 1 // Hardware JTAG CDC Event #if HWCDC_SERIAL_IS_DEFINED == 1 // Hardware JTAG CDC Event
extern void HWCDCSerialEvent(void) __attribute__((weak)); extern void HWCDCSerialEvent(void) __attribute__((weak));
void HWCDCSerialEvent(void) {}
#endif #endif
#if USB_SERIAL_IS_DEFINED == 1 // Native USB CDC Event #if USB_SERIAL_IS_DEFINED == 1 // Native USB CDC Event
// Used by Hardware Serial for USB CDC events // Used by Hardware Serial for USB CDC events
extern void USBSerialEvent(void) __attribute__((weak)); extern void USBSerialEvent(void) __attribute__((weak));
void USBSerialEvent(void) {}
#endif #endif
void serialEventRun(void) { void serialEventRun(void) {
#if HWCDC_SERIAL_IS_DEFINED == 1 // Hardware JTAG CDC Event #if HWCDC_SERIAL_IS_DEFINED == 1 // Hardware JTAG CDC Event
if (HWCDCSerial.available()) { if (HWCDCSerialEvent && HWCDCSerial.available()) {
HWCDCSerialEvent(); HWCDCSerialEvent();
} }
#endif #endif
#if USB_SERIAL_IS_DEFINED == 1 // Native USB CDC Event #if USB_SERIAL_IS_DEFINED == 1 // Native USB CDC Event
if (USBSerial.available()) { if (USBSerialEvent && USBSerial.available()) {
USBSerialEvent(); USBSerialEvent();
} }
#endif #endif
// UART0 is default serialEvent() // UART0 is default serialEvent()
if (Serial0.available()) { if (serialEvent && Serial0.available()) {
serialEvent(); serialEvent();
} }
#if SOC_UART_HP_NUM > 1 #if SOC_UART_NUM > 1
if (Serial1.available()) { if (serialEvent1 && Serial1.available()) {
serialEvent1(); serialEvent1();
} }
#endif #endif
#if SOC_UART_HP_NUM > 2 #if SOC_UART_NUM > 2
if (Serial2.available()) { if (serialEvent2 && Serial2.available()) {
serialEvent2(); serialEvent2();
} }
#endif #endif

View file

@ -15,6 +15,21 @@ extern "C" {
#include "lwip/priv/tcpip_priv.h" #include "lwip/priv/tcpip_priv.h"
#ifdef CONFIG_LWIP_TCPIP_CORE_LOCKING
#define UDP_MUTEX_LOCK() \
if (!sys_thread_tcpip(LWIP_CORE_LOCK_QUERY_HOLDER)) { \
LOCK_TCPIP_CORE(); \
}
#define UDP_MUTEX_UNLOCK() \
if (sys_thread_tcpip(LWIP_CORE_LOCK_QUERY_HOLDER)) { \
UNLOCK_TCPIP_CORE(); \
}
#else // CONFIG_LWIP_TCPIP_CORE_LOCKING
#define UDP_MUTEX_LOCK()
#define UDP_MUTEX_UNLOCK()
#endif // CONFIG_LWIP_TCPIP_CORE_LOCKING
static const char *netif_ifkeys[TCPIP_ADAPTER_IF_MAX] = {"WIFI_STA_DEF", "WIFI_AP_DEF", "ETH_DEF", "PPP_DEF"}; static const char *netif_ifkeys[TCPIP_ADAPTER_IF_MAX] = {"WIFI_STA_DEF", "WIFI_AP_DEF", "ETH_DEF", "PPP_DEF"};
static esp_err_t tcpip_adapter_get_netif(tcpip_adapter_if_t tcpip_if, void **netif) { static esp_err_t tcpip_adapter_get_netif(tcpip_adapter_if_t tcpip_if, void **netif) {
@ -28,7 +43,9 @@ static esp_err_t tcpip_adapter_get_netif(tcpip_adapter_if_t tcpip_if, void **net
if (netif_index < 0) { if (netif_index < 0) {
return ESP_FAIL; return ESP_FAIL;
} }
UDP_MUTEX_LOCK();
*netif = (void *)netif_get_by_index(netif_index); *netif = (void *)netif_get_by_index(netif_index);
UDP_MUTEX_UNLOCK();
} else { } else {
*netif = netif_default; *netif = netif_default;
} }
@ -232,9 +249,6 @@ static bool _udp_task_stop(){
} }
*/ */
#define UDP_MUTEX_LOCK() //xSemaphoreTake(_lock, portMAX_DELAY)
#define UDP_MUTEX_UNLOCK() //xSemaphoreGive(_lock)
AsyncUDPMessage::AsyncUDPMessage(size_t size) { AsyncUDPMessage::AsyncUDPMessage(size_t size) {
_index = 0; _index = 0;
if (size > CONFIG_TCP_MSS) { if (size > CONFIG_TCP_MSS) {
@ -473,12 +487,14 @@ bool AsyncUDP::_init() {
if (_pcb) { if (_pcb) {
return true; return true;
} }
UDP_MUTEX_LOCK();
_pcb = udp_new(); _pcb = udp_new();
if (!_pcb) { if (!_pcb) {
UDP_MUTEX_UNLOCK();
return false; return false;
} }
//_lock = xSemaphoreCreateMutex();
udp_recv(_pcb, &_udp_recv, (void *)this); udp_recv(_pcb, &_udp_recv, (void *)this);
UDP_MUTEX_UNLOCK();
return true; return true;
} }
@ -493,14 +509,12 @@ AsyncUDP::~AsyncUDP() {
close(); close();
UDP_MUTEX_LOCK(); UDP_MUTEX_LOCK();
udp_recv(_pcb, NULL, NULL); udp_recv(_pcb, NULL, NULL);
UDP_MUTEX_UNLOCK();
_udp_remove(_pcb); _udp_remove(_pcb);
_pcb = NULL; _pcb = NULL;
UDP_MUTEX_UNLOCK();
//vSemaphoreDelete(_lock);
} }
void AsyncUDP::close() { void AsyncUDP::close() {
UDP_MUTEX_LOCK();
if (_pcb != NULL) { if (_pcb != NULL) {
if (_connected) { if (_connected) {
_udp_disconnect(_pcb); _udp_disconnect(_pcb);
@ -508,7 +522,6 @@ void AsyncUDP::close() {
_connected = false; _connected = false;
//todo: unjoin multicast group //todo: unjoin multicast group
} }
UDP_MUTEX_UNLOCK();
} }
bool AsyncUDP::connect(const ip_addr_t *addr, uint16_t port) { bool AsyncUDP::connect(const ip_addr_t *addr, uint16_t port) {
@ -520,14 +533,11 @@ bool AsyncUDP::connect(const ip_addr_t *addr, uint16_t port) {
return false; return false;
} }
close(); close();
UDP_MUTEX_LOCK();
_lastErr = _udp_connect(_pcb, addr, port); _lastErr = _udp_connect(_pcb, addr, port);
if (_lastErr != ERR_OK) { if (_lastErr != ERR_OK) {
UDP_MUTEX_UNLOCK();
return false; return false;
} }
_connected = true; _connected = true;
UDP_MUTEX_UNLOCK();
return true; return true;
} }
@ -544,13 +554,10 @@ bool AsyncUDP::listen(const ip_addr_t *addr, uint16_t port) {
IP_SET_TYPE_VAL(_pcb->local_ip, addr->type); IP_SET_TYPE_VAL(_pcb->local_ip, addr->type);
IP_SET_TYPE_VAL(_pcb->remote_ip, addr->type); IP_SET_TYPE_VAL(_pcb->remote_ip, addr->type);
} }
UDP_MUTEX_LOCK();
if (_udp_bind(_pcb, addr, port) != ERR_OK) { if (_udp_bind(_pcb, addr, port) != ERR_OK) {
UDP_MUTEX_UNLOCK();
return false; return false;
} }
_connected = true; _connected = true;
UDP_MUTEX_UNLOCK();
return true; return true;
} }
@ -624,12 +631,10 @@ bool AsyncUDP::listenMulticast(const ip_addr_t *addr, uint16_t port, uint8_t ttl
return false; return false;
} }
UDP_MUTEX_LOCK();
_pcb->mcast_ttl = ttl; _pcb->mcast_ttl = ttl;
_pcb->remote_port = port; _pcb->remote_port = port;
ip_addr_copy(_pcb->remote_ip, *addr); ip_addr_copy(_pcb->remote_ip, *addr);
//ip_addr_copy(_pcb->remote_ip, ip_addr_any_type); //ip_addr_copy(_pcb->remote_ip, ip_addr_any_type);
UDP_MUTEX_UNLOCK();
return true; return true;
} }
@ -651,7 +656,6 @@ size_t AsyncUDP::writeTo(const uint8_t *data, size_t len, const ip_addr_t *addr,
if (pbt != NULL) { if (pbt != NULL) {
uint8_t *dst = reinterpret_cast<uint8_t *>(pbt->payload); uint8_t *dst = reinterpret_cast<uint8_t *>(pbt->payload);
memcpy(dst, data, len); memcpy(dst, data, len);
UDP_MUTEX_LOCK();
if (tcpip_if < TCPIP_ADAPTER_IF_MAX) { if (tcpip_if < TCPIP_ADAPTER_IF_MAX) {
void *nif = NULL; void *nif = NULL;
tcpip_adapter_get_netif((tcpip_adapter_if_t)tcpip_if, &nif); tcpip_adapter_get_netif((tcpip_adapter_if_t)tcpip_if, &nif);
@ -663,7 +667,6 @@ size_t AsyncUDP::writeTo(const uint8_t *data, size_t len, const ip_addr_t *addr,
} else { } else {
_lastErr = _udp_sendto(_pcb, pbt, addr, port); _lastErr = _udp_sendto(_pcb, pbt, addr, port);
} }
UDP_MUTEX_UNLOCK();
pbuf_free(pbt); pbuf_free(pbt);
if (_lastErr < ERR_OK) { if (_lastErr < ERR_OK) {
return 0; return 0;

View file

@ -0,0 +1,14 @@
{
"platforms": {
"qemu": false,
"wokwi": false
},
"requires": [
"CONFIG_SPIRAM=y"
],
"targets": {
"esp32c3": false,
"esp32c6": false,
"esp32h2": false
}
}

View file

@ -0,0 +1,112 @@
#include <Arduino.h>
#include <unity.h>
#define MAX_TEST_SIZE 512 * 1024 // 512KB
void *buf = NULL;
void test_malloc_success(void) {
buf = ps_malloc(MAX_TEST_SIZE);
TEST_ASSERT_NOT_NULL(buf);
free(buf);
buf = NULL;
}
void test_calloc_success(void) {
buf = ps_calloc(MAX_TEST_SIZE, 1);
TEST_ASSERT_NOT_NULL(buf);
free(buf);
buf = NULL;
}
void test_realloc_success(void) {
buf = ps_malloc(MAX_TEST_SIZE);
TEST_ASSERT_NOT_NULL(buf);
buf = ps_realloc(buf, MAX_TEST_SIZE + 1024);
TEST_ASSERT_NOT_NULL(buf);
free(buf);
buf = NULL;
}
void test_malloc_fail(void) {
buf = ps_malloc(0xFFFFFFFF);
TEST_ASSERT_NULL(buf);
}
void test_memset_all_zeroes(void) {
memset(buf, 0, MAX_TEST_SIZE);
for (size_t i = 0; i < MAX_TEST_SIZE; i++) {
TEST_ASSERT_EQUAL(0, ((uint8_t *)buf)[i]);
}
}
void test_memset_all_ones(void) {
memset(buf, 0xFF, MAX_TEST_SIZE);
for (size_t i = 0; i < MAX_TEST_SIZE; i++) {
TEST_ASSERT_EQUAL(0xFF, ((uint8_t *)buf)[i]);
}
}
void test_memset_alternating(void) {
for (size_t i = 0; i < MAX_TEST_SIZE; i++) {
((uint8_t *)buf)[i] = i % 2 == 0 ? 0x00 : 0xFF;
}
memset(buf, 0xAA, MAX_TEST_SIZE);
for (size_t i = 0; i < MAX_TEST_SIZE; i++) {
TEST_ASSERT_EQUAL(0xAA, ((uint8_t *)buf)[i]);
}
}
void test_memset_random(void) {
for (size_t i = 0; i < MAX_TEST_SIZE; i++) {
((uint8_t *)buf)[i] = random(0, 256);
}
memset(buf, 0x55, MAX_TEST_SIZE);
for (size_t i = 0; i < MAX_TEST_SIZE; i++) {
TEST_ASSERT_EQUAL(0x55, ((uint8_t *)buf)[i]);
}
}
void test_memcpy(void) {
void *buf2 = malloc(1024); // 1KB
TEST_ASSERT_NOT_NULL(buf2);
memset(buf, 0x55, MAX_TEST_SIZE);
memset(buf2, 0xAA, 1024);
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wpointer-arith"
for (size_t i = 0; i < MAX_TEST_SIZE; i += 1024) {
memcpy(buf + i, buf2, 1024);
}
for (size_t i = 0; i < MAX_TEST_SIZE; i += 1024) {
TEST_ASSERT_NULL(memcmp(buf + i, buf2, 1024));
}
#pragma GCC diagnostic pop
free(buf2);
}
void setup() {
Serial.begin(115200);
while (!Serial) {
delay(10);
}
UNITY_BEGIN();
RUN_TEST(test_malloc_success);
RUN_TEST(test_malloc_fail);
RUN_TEST(test_calloc_success);
RUN_TEST(test_realloc_success);
buf = ps_malloc(MAX_TEST_SIZE);
RUN_TEST(test_memset_all_zeroes);
RUN_TEST(test_memset_all_ones);
RUN_TEST(test_memset_alternating);
RUN_TEST(test_memset_random);
RUN_TEST(test_memcpy);
UNITY_END();
}
void loop() {}

View file

@ -0,0 +1,2 @@
def test_psram(dut):
dut.expect_unity_test_output(timeout=120)

View file

@ -0,0 +1,31 @@
#ifndef Pins_Arduino_h
#define Pins_Arduino_h
#include <stdint.h>
static const uint8_t LED_BUILTIN = 2;
#define BUILTIN_LED LED_BUILTIN // backward compatibility
#define LED_BUILTIN LED_BUILTIN // allow testing #ifdef LED_BUILTIN
static const uint8_t A0 = 14;
static const uint8_t A1 = 13;
static const uint8_t A2 = 12;
static const uint8_t A3 = 4;
static const uint8_t A4 = 2;
static const uint8_t A5 = 0;
static const uint8_t TX = 1;
static const uint8_t RX = 3;
static const uint8_t TX_4G = 17;
static const uint8_t RX_4G = 16;
static const uint8_t SDA = 21;
static const uint8_t SCL = 22;
static const uint8_t SS = 5;
static const uint8_t MOSI = 23;
static const uint8_t MISO = 19;
static const uint8_t SCK = 18;
#endif /* Pins_Arduino_h */

View file

@ -0,0 +1,35 @@
#ifndef Pins_Arduino_h
#define Pins_Arduino_h
#include <stdint.h>
static const uint8_t LED_BUILTIN = 2;
#define BUILTIN_LED LED_BUILTIN // backward compatibility
#define LED_BUILTIN LED_BUILTIN // allow testing #ifdef LED_BUILTIN
static const uint8_t A0 = 14;
static const uint8_t A1 = 13;
static const uint8_t A2 = 12;
static const uint8_t A3 = 4;
static const uint8_t A4 = 2;
static const uint8_t A5 = 0;
static const uint8_t TX = 1;
static const uint8_t RX = 3;
static const uint8_t TX2 = 17;
static const uint8_t RX2 = 16;
static const uint8_t LORA_SS = 4;
static const uint8_t RST = 14;
static const uint8_t DIO0 = 2;
static const uint8_t SDA = 21;
static const uint8_t SCL = 22;
static const uint8_t SS = 5;
static const uint8_t MOSI = 23;
static const uint8_t MISO = 19;
static const uint8_t SCK = 18;
#endif /* Pins_Arduino_h */

View file

@ -0,0 +1,35 @@
#ifndef Pins_Arduino_h
#define Pins_Arduino_h
#include <stdint.h>
static const uint8_t LED_BUILTIN = 2;
#define BUILTIN_LED LED_BUILTIN // backward compatibility
#define LED_BUILTIN LED_BUILTIN // allow testing #ifdef LED_BUILTIN
static const uint8_t SAFFRON_LED = 12;
static const uint8_t WHITE_LED = 2;
static const uint8_t GREEN_LED = 13;
static const uint8_t A0 = 14;
static const uint8_t A1 = 13;
static const uint8_t A2 = 12;
static const uint8_t A3 = 4;
static const uint8_t A4 = 2;
static const uint8_t A5 = 0;
static const uint8_t TX = 1;
static const uint8_t RX = 3;
static const uint8_t TX2 = 17;
static const uint8_t RX2 = 16;
static const uint8_t SDA = 21;
static const uint8_t SCL = 22;
static const uint8_t SS = 5;
static const uint8_t MOSI = 23;
static const uint8_t MISO = 19;
static const uint8_t SCK = 18;
#endif /* Pins_Arduino_h */