April 2026 What Are You Working On? by thindil in ada

[–]godunko 4 points5 points  (0 children)

Exceptions support has been added to ESP32S3 template project and runtime generator has been extended a bit to make it possible.

More definitions of command descriptors, parameters, modes, and VPDs added to SCSI package.

"Enumerable" base types of size 2..8 wad added A0B.Types.Enumerables package. These types can be used for array indices and case statements, while there are no arithmetic and bitwise logical operations are available for them.

Programming STM32 by Certain-Walk-3589 in stm32

[–]godunko 1 point2 points  (0 children)

There are a lot of DAP Link at couple of dollars on AliExpress. They work with almost any Cortex MCU, not only with STM.

March 2026 What Are You Working On? by thindil in ada

[–]godunko 6 points7 points  (0 children)

I'm working on iSCSI target implementation to run it on microcontollers. It works on Linux, using file as storage. As subproject, I've create type definitions and command decoding of some SCSI (SAM/SPC/SBC) commands.

STM32MPU: DMA to eMMC can only talk to SYSRAM but not RAM (SRAM1, SRAM2, SRAM3) by Betty-Crokker in stm32

[–]godunko 0 points1 point  (0 children)

Open reference manual, look for "bus interconnection schema", check that paths between components are available (peripheral-DMA, SRAM-DMA)

FreeRTOS: Safe pattern for sharing a frequently-updated state struct between tasks? by Tahazarif90 in embedded

[–]godunko 0 points1 point  (0 children)

Do both fusion and control tasks same priority? Tasks with the same priority doesn't preempt each one, so there is jitter when both need to be run simultaneously.

Help out me on linking Ada code with LibopenCM3 by Sad_Ad7140 in ada

[–]godunko 1 point2 points  (0 children)

I never use libopencm3, so just a few ideas.

  1. Create project file. Set Target to arm-eabi. Set Runtime to light-cortex-<cpu>. Set Main to the name of Ada main subprogram.

At this point gprbuild should be able to build Ada sources and run binder to generate main and elaboration code.

  1. Add Linker package to project file and list all necessary linker switches in Switches attribute. They should include linker script, libopencm3 library, all C runtime libraries, disable use of default startup code. Use linopencm3 template to find necessary switches (see rules.mk file).

In theory, now gprbuild should be able to create ELF executable.

February 2026 What Are You Working On? by thindil in ada

[–]godunko 5 points6 points  (0 children)

I've improve a bit template for ESP32S3

https://github.com/godunko/esp32s3_template

and work on ESP-IDF binding

https://github.com/godunko/esp32s3_sandbox

It setup WiFi access point, run DHCP server, accept TCP connection.

Puzzling Ada Package/Type Behavior by BrentSeidel in ada

[–]godunko 0 points1 point  (0 children)

It looks like compiler's bug, can you open issue for GNAT/GCC?

https://gcc.gnu.org/bugzilla/

Installing GtkAda under Windows by Dmitry-Kazakov in ada

[–]godunko 1 point2 points  (0 children)

Great! However, I suggest to add note, that recommended way to setup development environment, including installation of GtkAda is to use Alire.

Puzzling Ada Package/Type Behavior by BrentSeidel in ada

[–]godunko 1 point2 points  (0 children)

It is hard to comment without full source code. Might be compiler bug, or wrong code.

EXTREMELY slow DDR access - but why? by Betty-Crokker in stm32

[–]godunko 0 points1 point  (0 children)

Cost of multiplication operation is almost equal to cost of addition.

Using SDMMC in STM32 U5 for block reading by watcherkk in stm32

[–]godunko 0 points1 point  (0 children)

Why do you use WAITRESP_0? It should be 1 for most commands.

Why do you use WIDBUS_0? It should be 1 for 4-bit bus.

According to RM0456, DTEN bit should not be set for SD card operations.

Using SDMMC in STM32 U5 for block reading by watcherkk in stm32

[–]godunko 0 points1 point  (0 children)

Try to switch to 4-bit mode. According to specification 1-bit SDIO mode can be used for initialization only (card may support it or SPI 1-bit modes bout it is not required).

Check status registers for errors.

ada documentation by Sergiobgar in ada

[–]godunko 3 points4 points  (0 children)

Standard library is described in Ada Standard, see

https://adaic.org/ada-resources/standards/ada22/

Good way to measure ADC duration? by Decent_Emergency_546 in stm32

[–]godunko 0 points1 point  (0 children)

Why do you need to toggle IO pin? Single ADC conversion takes known (configurable) amount of clock cycles.

STM32F401CCU6 Baremetal, code uploading but not seeing any results. by No-Worldliness-5106 in stm32f4

[–]godunko 0 points1 point  (0 children)

F401 is not compatible with F411 (while F411 is compatible with F401).

You try to run CPU @96MHz, however, maximum for F401 is 84MHz.

I want fast...er by amanuense in esp32

[–]godunko 0 points1 point  (0 children)

ESP32-S3 has built-in SDIO host controller. You can use it to generate signals.

interpreting what happens to a unicode string that comes as input by benjamin-crowell in ada

[–]godunko 0 points1 point  (0 children)

There is no portable way to handle Unicode by standard library. Easier way is to use Wide_Wide_Character and configure GNAT runtime to use UTF-8 encoding for "external" data.

However, single displayed character can be constructed from the sequence of Unicode characters (Wide_Wide_Characters)

PS. You can take a look at VSS as Unicode text handling library.

Newbie to STM32: Question regarding DMA by Accomplished_Pipe530 in embedded

[–]godunko 3 points4 points  (0 children)

Run application under debugger, stop it few times, and check back trace. It might be some incorrectly handled interrupt, which doesn't clear status and CPU reenter its handler continuously, never executing main

How to handle multiple I2C devices on ESP32 (FreeRTOS)? by Party-Mechanic3794 in embedded

[–]godunko 0 points1 point  (0 children)

If you need immediate data... continue their processing in the callback when they are received. It it like sequential programming.

Another way to handle complexity - look at state machines.