micro-ROS / micro-ROS/micro_ros_setup

rclc_support_init is corrupting FreeRTOS Heap

Offen
#657 3 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Vorherrschende Sprache
Shell
Sterne
509
Forks
183
Ø Merge
22 Std. 26 Min.
Gemergte PRs (30 T.)
7

Beschreibung

## Issue template

- Hardware description: STM32L4
- RTOS: FreeRTOS
- Installation type: standard
- Version or commit hash: humble

#### Steps to reproduce the issue
I created a FreeRTOS heap with 16kByte and a 'Standard Task' with 12000 Bytes. Additionally I created 2 binary Semaphores.

#### Expected behavior
Semaphores stay as they are, completely independent of the micro ROS function cals
#### Actual behavior
in the function call rclc_support_init it seems that the FreeRTOS Heap gets corrupted and the semaphores get affected. Maybe other FreeRTOS elements as well
![beforeCorruption](https://github.com/micro-ROS/micro_ros_setup/assets/135316308/ce9e8a43-0a31-497d-825a-44abff95f8b3)

#### Additional information

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Beginne damit, das Problem auf STM32L4 mit FreeRTOS unter Verwendung eines 16-kB-Heaps, eines 12.000-Byte-Standard-Tasks und zweier binärer Semaphore zu reproduzieren. Vergleiche den Zustand der Semaphore vor und nach rclc_support_init; abgeschlossen ist die Aufgabe, wenn die Heap-Korruption identifiziert und verhindert wurde, ohne die Semaphore zu beeinträchtigen.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Bereich
embedded-iot, operating-systems
Issue-Typ
Bug
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Veraltet
Klarheit
Muss geklärt werden
Anfängerfreundlichkeit
25/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.