Skip to content

Crash w Dmod_EnterCritical #87

@JohnAmadis

Description

@JohnAmadis

Z niejasnego powodu mamy hard fault w tej ścieżce:

Reading symbols from ../../dmgpio/build/dmgpio...
(gdb) bt
#0  Dmod_GetLogLevel () at /data/projects/chocotechnologies/public/dmdevfs/build/_deps/dmod-src/src/module/dmod_module.c:19
#1  0x20025076 in prepare_driver_module (driver_name=driver_name@entry=0x20014864 "dmgpio", was_loaded=was_loaded@entry=0x20014837, was_enabled=was_enabled@entry=0x20014836)
    at /data/projects/chocotechnologies/public/dmdevfs/src/dmdevfs.c:1250
#2  0x20026218 in configure_driver (driver_name=driver_name@entry=0x20014864 "dmgpio", config_ctx=config_ctx@entry=0x2002c3fc) at /data/projects/chocotechnologies/public/dmdevfs/src/dmdevfs.c:908
#3  0x2002680e in configure_drivers (ctx=ctx@entry=0x2002b718, driver_name=driver_name@entry=0x200148e4 "dmgpio", config_path=config_path@entry=0x20014904 "/configs/dmgpio")
    at /data/projects/chocotechnologies/public/dmdevfs/src/dmdevfs.c:863
#4  0x2002689c in configure_drivers (ctx=ctx@entry=0x2002b718, driver_name=0x200148e4 "dmgpio", driver_name@entry=0x0 <ModuleHeader>, config_path=0x2002b768 "/configs")
    at /data/projects/chocotechnologies/public/dmdevfs/src/dmdevfs.c:888
#5  0x2002699e in dmfsi_dmdevfs_init (config=0x8021318 "/configs") at /data/projects/chocotechnologies/public/dmdevfs/src/dmdevfs.c:161
#6  0x08004648 in add_mount_point (mount_point=0x80213b0 "/dev", fs_context=0x200247e0, config=0x8021318 "/configs") at /data/projects/chocotechnologies/public/dmod-boot/lib/dmvfs/src/dmvfs.c:673
#7  0x08004d6e in dmvfs_mount_fs (fs_name=0x80213b8 "dmdevfs", mount_point=0x80213b0 "/dev", config=0x8021318 "/configs") at /data/projects/chocotechnologies/public/dmod-boot/lib/dmvfs/src/dmvfs.c:969
#8  0x08000850 in mount_embedded_filesystems () at /data/projects/chocotechnologies/public/dmod-boot/src/main.c:309
#9  0x08000d68 in main (argc=0, argv=0x0 <ModuleHeader>) at /data/projects/chocotechnologies/public/dmod-boot/src/main.c:493
(gdb) p Dmod_EnterCritical
$7 = (void (*)(void)) 0xd3aefbda

Scenariusz jest prosty:

  1. Budujemy projekt w konfiguracji dla boarda stm32f746g-disco
  2. Odpalamy go i czekamy aż się zainicjalizuje
  3. W efekcie podczas konfiguracji jednego z driverów, po wydrukowaniu loga, mamy hard fault

Błąd jest obserwowany na prawdziwej płytce stm32f7 discovery, nie jestem pewien czy to się reprodukuje w emulacji, ale warto sprawdzić w celach debugowych. Przypominam, że to jest bardzo proste, aby uruchomić to z renode w dmod-boot. Source code modułów raczej nie powinien mieć znaczenia w tym bugu, jako, że błąd pojawia się w logowaniu w dmod, no ale jeśli ma znaczenie to tutaj są źródła:

https://github.com/choco-technologies/dmdevfs
https://github.com/choco-technologies/dmgpio

Spróbuj zreprodukować sobie błąd, a następnie przedebugować go i rozwiązać.

Metadata

Metadata

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions