Kwabena W. Agyeman
657c9a6325
common/usbdbg: Flush data from unsupported commands.
...
The removal of unused USB commands that are still sent by the IDE
causes tinyusb boards to crash on connect currently. Flushing the
excess received bytes for unknown commands solves this issue.
2025-08-24 21:34:02 -07:00
Ibrahim Abdelkader
0dbb5c8aa7
Merge pull request #2816 from openmv/profiling_on_steroids
...
🔥 Firmware Build / build-firmware (0, ARDUINO_GIGA) (push) Waiting to run
🔥 Firmware Build / build-firmware (0, ARDUINO_NANO_33_BLE_SENSE) (push) Waiting to run
🔥 Firmware Build / build-firmware (0, ARDUINO_NANO_RP2040_CONNECT) (push) Waiting to run
🔥 Firmware Build / build-firmware (0, ARDUINO_NICLA_VISION) (push) Waiting to run
🔥 Firmware Build / build-firmware (0, ARDUINO_PORTENTA_H7) (push) Waiting to run
🔥 Firmware Build / build-firmware (0, DOCKER) (push) Waiting to run
🔥 Firmware Build / build-firmware (0, OPENMV2) (push) Waiting to run
🔥 Firmware Build / build-firmware (0, OPENMV3) (push) Waiting to run
🔥 Firmware Build / build-firmware (0, OPENMV4) (push) Waiting to run
🔥 Firmware Build / build-firmware (0, OPENMV4P) (push) Waiting to run
🔥 Firmware Build / build-firmware (0, OPENMVPT) (push) Waiting to run
🔥 Firmware Build / build-firmware (0, OPENMV_AE3) (push) Waiting to run
🔥 Firmware Build / build-firmware (0, OPENMV_N6) (push) Waiting to run
🔥 Firmware Build / build-firmware (0, OPENMV_RT1060) (push) Waiting to run
🔥 Firmware Build / build-firmware (1, OPENMV_N6) (push) Waiting to run
🔥 Firmware Build / code-size-report (push) Blocked by required conditions
🔥 Firmware Build / stable-release (push) Blocked by required conditions
🔥 Firmware Build / development-release (push) Blocked by required conditions
common: Add code profiler.
2025-08-24 20:13:33 +03:00
iabdalkader
d4ce288ae2
workflow: Add firmware target to test profiling.
...
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-08-24 17:17:46 +02:00
iabdalkader
d057f85f0b
tools/pyopenmv: Support profiling data and elf symbols.
...
- Support new commands to read profiling data.
- Support rendering profiling data (ticks, cycles and event counters).
- Support loading symbol table from elf to map addresses to symbols.
- Support running scripts via command line args.
New keys:
p - Cycle through available profiling data (events, counters).
m - Toggle profiling mode (inclusive/exclusive).
r - Reset profiler.
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-08-24 17:17:40 +02:00
iabdalkader
927a2c7b54
lib/tflm: Add manual profiling instrumentation.
...
Use OMV_PROFILER_ENTER/EXIT macros to manually instrument the TensorFlow
Lite inference function instead of automatic -finstrument-functions to
avoid C++ linking issues with operator delete and atomics.
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-08-24 16:57:15 +02:00
iabdalkader
872735212f
common: Support reading profiling data via USB debug.
...
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-08-24 16:57:11 +02:00
iabdalkader
e5cdccc72e
common: Introduce profiling support.
...
This adds a simple code profiler that leverages both SysTick and
the Performance Monitoring Unit (PMU) available on Armv8.1-M cores.
SysTick provides a simple high-resolution timer source, while the PMU
offers a cycle counter and multiple configurable event counters that
can track low-level performance metrics such as cache misses, pipeline
stalls, etc... See the Armv8.1-M Performance Monitoring User Guide
for additional details.
Function-level instrumentation is enabled using -finstrument-functions
on select files to automatically record statistics on entry/exit.
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-08-24 16:57:06 +02:00
iabdalkader
cf7b84d682
ports/all: Remove old profiling macros.
...
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-08-24 14:40:02 +02:00
Ibrahim Abdelkader
e6d693cabf
Merge pull request #2820 from openmv/refactor_usbdbg
...
common: Refactor TinyUSB debug interface implementation.
2025-08-24 12:24:32 +03:00
iabdalkader
90bd11e937
common: Refactor TinyUSB debug interface implementation.
...
This commit refactors the TinyUSB debug interface with the following changes:
- Handle disabled IRQs.
- Replace global variables with centralized state.
- Add timeout, and validation for more robust transfers (as much as possible
given the protocol limits).
- Remove obsolete/unsupported commands (attr read/write, script save etc..)
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-08-23 20:16:09 +02:00
Ibrahim Abdelkader
29f07312f8
Merge pull request #2819 from openmv/fix_n6_ic_source
...
🔥 Firmware Build / build-firmware (ARDUINO_GIGA) (push) Has been cancelled
🔥 Firmware Build / build-firmware (ARDUINO_NANO_33_BLE_SENSE) (push) Has been cancelled
🔥 Firmware Build / build-firmware (ARDUINO_NANO_RP2040_CONNECT) (push) Has been cancelled
🔥 Firmware Build / build-firmware (ARDUINO_NICLA_VISION) (push) Has been cancelled
🔥 Firmware Build / build-firmware (ARDUINO_PORTENTA_H7) (push) Has been cancelled
🔥 Firmware Build / build-firmware (DOCKER) (push) Has been cancelled
🔥 Firmware Build / build-firmware (OPENMV2) (push) Has been cancelled
🔥 Firmware Build / build-firmware (OPENMV3) (push) Has been cancelled
🔥 Firmware Build / build-firmware (OPENMV4) (push) Has been cancelled
🔥 Firmware Build / build-firmware (OPENMV4P) (push) Has been cancelled
🔥 Firmware Build / build-firmware (OPENMVPT) (push) Has been cancelled
🔥 Firmware Build / build-firmware (OPENMV_AE3) (push) Has been cancelled
🔥 Firmware Build / build-firmware (OPENMV_N6) (push) Has been cancelled
🔥 Firmware Build / build-firmware (OPENMV_RT1060) (push) Has been cancelled
🔥 Firmware Build / code-size-report (push) Has been cancelled
🔥 Firmware Build / stable-release (push) Has been cancelled
🔥 Firmware Build / development-release (push) Has been cancelled
ports/stm32: Revert N6 slow-peripheral IC clock source.
2025-08-19 14:54:43 +03:00
iabdalkader
0d5c5bc6eb
ports/stm32: Revert N6 slow-peripheral IC clock source.
...
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-08-19 13:39:33 +02:00
Ibrahim Abdelkader
f45c0181fc
Merge pull request #2817 from kwagyeman/kwabena/fix_cmsis_extension
...
lib/cmsis: Fix cmsis compile time constant folding.
2025-08-19 10:41:23 +03:00
Kwabena W. Agyeman
89fc302812
lib/cmsis: Fix cmsis compile time constant folding.
2025-08-18 13:33:25 -07:00
Ibrahim Abdelkader
cafcc357ef
Merge pull request #2814 from kwagyeman/kwabena/fix_stm32_dcmi
...
🔥 Firmware Build / build-firmware (ARDUINO_GIGA) (push) Has been cancelled
🔥 Firmware Build / build-firmware (ARDUINO_NANO_33_BLE_SENSE) (push) Has been cancelled
🔥 Firmware Build / build-firmware (ARDUINO_NANO_RP2040_CONNECT) (push) Has been cancelled
🔥 Firmware Build / build-firmware (ARDUINO_NICLA_VISION) (push) Has been cancelled
🔥 Firmware Build / build-firmware (ARDUINO_PORTENTA_H7) (push) Has been cancelled
🔥 Firmware Build / build-firmware (DOCKER) (push) Has been cancelled
🔥 Firmware Build / build-firmware (OPENMV2) (push) Has been cancelled
🔥 Firmware Build / build-firmware (OPENMV3) (push) Has been cancelled
🔥 Firmware Build / build-firmware (OPENMV4) (push) Has been cancelled
🔥 Firmware Build / build-firmware (OPENMV4P) (push) Has been cancelled
🔥 Firmware Build / build-firmware (OPENMVPT) (push) Has been cancelled
🔥 Firmware Build / build-firmware (OPENMV_AE3) (push) Has been cancelled
🔥 Firmware Build / build-firmware (OPENMV_N6) (push) Has been cancelled
🔥 Firmware Build / build-firmware (OPENMV_RT1060) (push) Has been cancelled
🔥 Firmware Build / code-size-report (push) Has been cancelled
🔥 Firmware Build / stable-release (push) Has been cancelled
🔥 Firmware Build / development-release (push) Has been cancelled
ports/stm32: Fix STM32 DCMI Driver
2025-08-17 17:18:11 +03:00
Kwabena W. Agyeman
c601c706fe
ports/stm32: Simplify CSI_DMA_MAX_SIZE logic.
2025-08-16 18:50:28 -07:00
Kwabena W. Agyeman
170a7eb107
ports/stm32: Move dma_queue to port bits.
2025-08-16 18:36:29 -07:00
Kwabena W. Agyeman
9778028f40
ports/stm32: Add N6 error message for unsupported modes.
2025-08-16 18:36:12 -07:00
Kwabena W. Agyeman
feaca6af12
ports/stm32: Fix DMA transfer of small buffer sizes.
...
HAL_DCMI_Start_DMA() only sets up one node in the circular linked-list
when the transfer size is < 64KB. This causes a user setting transfer
error which locks up the DMA hardware.
The fix is to dynamically make the link list linear on smaller sizes
and circular on larger sizes.
2025-08-16 18:36:12 -07:00
Kwabena W. Agyeman
2e525c504b
ports/stm32: Fix N6 csi camera config settings.
...
Fixes support for mono bpp == 2 and rgb/yuv swap.
2025-08-16 18:36:10 -07:00
Ibrahim Abdelkader
00c8ac9483
Merge pull request #2813 from kwagyeman/kwabena/enable_boson_on_h7p
...
🔥 Firmware Build / build-firmware (ARDUINO_GIGA) (push) Has been cancelled
🔥 Firmware Build / build-firmware (ARDUINO_NANO_33_BLE_SENSE) (push) Has been cancelled
🔥 Firmware Build / build-firmware (ARDUINO_NANO_RP2040_CONNECT) (push) Has been cancelled
🔥 Firmware Build / build-firmware (ARDUINO_NICLA_VISION) (push) Has been cancelled
🔥 Firmware Build / build-firmware (ARDUINO_PORTENTA_H7) (push) Has been cancelled
🔥 Firmware Build / build-firmware (DOCKER) (push) Has been cancelled
🔥 Firmware Build / build-firmware (OPENMV2) (push) Has been cancelled
🔥 Firmware Build / build-firmware (OPENMV3) (push) Has been cancelled
🔥 Firmware Build / build-firmware (OPENMV4) (push) Has been cancelled
🔥 Firmware Build / build-firmware (OPENMV4P) (push) Has been cancelled
🔥 Firmware Build / build-firmware (OPENMVPT) (push) Has been cancelled
🔥 Firmware Build / build-firmware (OPENMV_AE3) (push) Has been cancelled
🔥 Firmware Build / build-firmware (OPENMV_N6) (push) Has been cancelled
🔥 Firmware Build / build-firmware (OPENMV_RT1060) (push) Has been cancelled
🔥 Firmware Build / code-size-report (push) Has been cancelled
🔥 Firmware Build / stable-release (push) Has been cancelled
🔥 Firmware Build / development-release (push) Has been cancelled
boards/OPENMV4P: Enable BOSON on H7 Plus.
2025-08-16 11:23:41 +03:00
Ibrahim Abdelkader
85ab0ebd0f
Merge pull request #2815 from kwagyeman/kwabena/fix_clock_config
...
ports/stm32: Fix SystemClock_config() hard faulting.
2025-08-16 10:31:18 +03:00
Kwabena W. Agyeman
76fc074c0f
ports/stm32: Set oneshot on MDMA snapshot to invalidate.
2025-08-15 18:11:20 -07:00
Kwabena W. Agyeman
2c14af97e7
ports/stm32: Fix JPEG mode 3 support.
2025-08-15 18:11:17 -07:00
Kwabena W. Agyeman
080641c827
ports/stm32: Fix DMA line size error calculation.
...
The error calculation needs to be on the raw byte size.
2025-08-15 17:29:44 -07:00
Kwabena W. Agyeman
cc137456dc
ports/stm32: Only enable frame int manually in jpeg mode.
...
The frame interrupt was being enabled for non-JPEG transfers,
causing massive image corruption and out-of-sync issues on the M4
and M7. This interrupt only needs to be enabled for JPEG mode
where the size of the image is not known.
2025-08-15 17:29:08 -07:00
Kwabena W. Agyeman
908d612ace
ports/stm32: Fix SystemClock_config() hard faulting.
2025-08-15 15:05:16 -07:00
Kwabena W. Agyeman
fb4da36a42
ports/stm32: Fix SystemClock_config() hard faulting.
2025-08-15 13:36:16 -07:00
Kwabena W. Agyeman
a6de586e06
boards/OPENMV4P: Enable BOSON on H7 Plus.
2025-08-15 12:49:44 -07:00
Ibrahim Abdelkader
3b66484f03
Merge pull request #2800 from openmv/dependabot/github_actions/actions/download-artifact-5
...
🔥 Firmware Build / build-firmware (ARDUINO_GIGA) (push) Waiting to run
🔥 Firmware Build / build-firmware (ARDUINO_NANO_33_BLE_SENSE) (push) Waiting to run
🔥 Firmware Build / build-firmware (ARDUINO_NANO_RP2040_CONNECT) (push) Waiting to run
🔥 Firmware Build / build-firmware (ARDUINO_NICLA_VISION) (push) Waiting to run
🔥 Firmware Build / build-firmware (ARDUINO_PORTENTA_H7) (push) Waiting to run
🔥 Firmware Build / build-firmware (DOCKER) (push) Waiting to run
🔥 Firmware Build / build-firmware (OPENMV2) (push) Waiting to run
🔥 Firmware Build / build-firmware (OPENMV3) (push) Waiting to run
🔥 Firmware Build / build-firmware (OPENMV4) (push) Waiting to run
🔥 Firmware Build / build-firmware (OPENMV4P) (push) Waiting to run
🔥 Firmware Build / build-firmware (OPENMVPT) (push) Waiting to run
🔥 Firmware Build / build-firmware (OPENMV_AE3) (push) Waiting to run
🔥 Firmware Build / build-firmware (OPENMV_N6) (push) Waiting to run
🔥 Firmware Build / build-firmware (OPENMV_RT1060) (push) Waiting to run
🔥 Firmware Build / code-size-report (push) Blocked by required conditions
🔥 Firmware Build / stable-release (push) Blocked by required conditions
🔥 Firmware Build / development-release (push) Blocked by required conditions
build(deps): bump actions/download-artifact from 4 to 5
2025-08-15 22:43:58 +03:00
Ibrahim Abdelkader
8217c22fee
Merge pull request #2807 from openmv/update_micropython
...
lib: Update to MicroPython 1.26.0.
2025-08-15 20:56:08 +03:00
iabdalkader
bb7431cb27
lib: Update to MicroPython 1.26.0.
...
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-08-15 19:20:46 +02:00
iabdalkader
e936b69371
lib/stm32/n6: Fix default tick priority.
...
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-08-15 19:20:46 +02:00
iabdalkader
941e1996bc
lib/stm32: Build hal_uart_ex.
...
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-08-15 19:20:46 +02:00
iabdalkader
eae16e4e4b
lib/cmsis: Set N6 USART clock source.
...
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-08-15 19:20:46 +02:00
iabdalkader
8b1b8e9138
boards/OPENMV_N6: Update board config.
...
- Use free GPDMA channels.
- Use channels with bigger FIFOs for SPI.
- Set USART clock source.
- Switch SPI to use IC9.
- Disable IC14.
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-08-15 19:20:46 +02:00
iabdalkader
d30b2e8b71
ports/stm32: Deinit I2C target if enabled.
...
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-08-15 19:20:46 +02:00
iabdalkader
75f3ee3caf
ports/stm32: Remove HAL_InitTick call.
...
This is already called from HAL_Init.
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-08-15 19:20:46 +02:00
iabdalkader
bbfe90aa74
ports/stm32: Configure system clock before HAL_Init.
...
This ensures SystemCoreClock is updated after the
system clock has been configured.
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-08-15 19:20:46 +02:00
iabdalkader
49d830d6dc
ports/stm32: Fix build.
...
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-08-15 19:20:46 +02:00
iabdalkader
18a53b7fee
ports/stm32: Use MicroPython GPDMA handles.
...
Now that MicroPython uses GPDMA for N6, the GPDMA handles
as well as IRQs are shared.
Note: care must be taken when choosing GPDMA channels
to avoid conflicts with MicroPython's channels.
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-08-15 19:20:46 +02:00
iabdalkader
b435a2d0eb
scripts/libraries: Update Alif HP boot script.
...
Create readme.txt, main.py and openmv_disk.
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-08-15 19:20:46 +02:00
iabdalkader
ad5d86d37d
ports/alif: Add OSPI1 MPU region.
...
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-08-15 19:20:46 +02:00
iabdalkader
b15cb394ee
ports/rp2: Add missing init/deinit calls.
...
- Add soft-timer init/deinit.
- Add I2C target init/deinit.
- Add thread/uart deinit.
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-08-15 19:20:09 +02:00
iabdalkader
b2b310b0d2
ports/nrf: Fix build.
...
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-08-15 19:02:07 +02:00
Ibrahim Abdelkader
49ea618610
Merge pull request #2805 from kwagyeman/kwabena/rt1062_max_speed
...
ports/mimxrt: Enable full DMA offload for RT1062.
2025-08-15 17:08:53 +03:00
Ibrahim Abdelkader
20e9b465d5
Merge pull request #2812 from kwagyeman/kwabena/cleanup_post_processing
...
🔥 Firmware Build / build-firmware (ARDUINO_GIGA) (push) Waiting to run
🔥 Firmware Build / build-firmware (ARDUINO_NANO_33_BLE_SENSE) (push) Waiting to run
🔥 Firmware Build / build-firmware (ARDUINO_NANO_RP2040_CONNECT) (push) Waiting to run
🔥 Firmware Build / build-firmware (ARDUINO_NICLA_VISION) (push) Waiting to run
🔥 Firmware Build / build-firmware (ARDUINO_PORTENTA_H7) (push) Waiting to run
🔥 Firmware Build / build-firmware (DOCKER) (push) Waiting to run
🔥 Firmware Build / build-firmware (OPENMV2) (push) Waiting to run
🔥 Firmware Build / build-firmware (OPENMV3) (push) Waiting to run
🔥 Firmware Build / build-firmware (OPENMV4) (push) Waiting to run
🔥 Firmware Build / build-firmware (OPENMV4P) (push) Waiting to run
🔥 Firmware Build / build-firmware (OPENMVPT) (push) Waiting to run
🔥 Firmware Build / build-firmware (OPENMV_AE3) (push) Waiting to run
🔥 Firmware Build / build-firmware (OPENMV_N6) (push) Waiting to run
🔥 Firmware Build / build-firmware (OPENMV_RT1060) (push) Waiting to run
🔥 Firmware Build / code-size-report (push) Blocked by required conditions
🔥 Firmware Build / stable-release (push) Blocked by required conditions
🔥 Firmware Build / development-release (push) Blocked by required conditions
drivers/sensors: Update to using post_process callback.
2025-08-15 10:35:34 +03:00
Kwabena W. Agyeman
ae8eae9290
drivers/sensors: Update BOSON to using post_process callback.
2025-08-14 14:49:16 -07:00
Kwabena W. Agyeman
5d046e2c92
drivers/sensors: Update PAJ6100 to using post_process callback.
2025-08-14 14:49:09 -07:00
Kwabena W. Agyeman
6d4c5cf19b
ports/mimxrt: Enable full DMA offload for RT1062.
2025-08-14 13:05:00 -07:00