logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Opinie o NuttX i ChibiOS/RT - zalety i wady w praktyce

Freddie Chopin 21 Paź 2012 09:01 12219 64
Najlepsze odpowiedzi

Jakie są w praktyce zalety i wady NuttX oraz ChibiOS/RT i czy warto je rozważyć zamiast FreeRTOS?

W praktyce NuttX jest bardzo ciekawy i potężny, ale wyraźnie cięższy od FreeRTOS/ChibiOS: daje warstwę POSIX/ANSI, sterowniki, systemy plików, USB/Ethernet i GUI, za to ma większy i bardziej skomplikowany kod, większe wymagania RAM i dłuższy czas kompilacji [#11600817][#11614593][#11650860] Na STM32 przykłady typu ostest i nsh da się uruchomić, a NxWidgets działa, ale na małej pamięci robi się ciasno — na HY-mini STM32 GUI zostawiało ok. 42 KB z 48 KB RAM, a po kilku uruchomieniach aplikacji system potrafił się zawieszać [#11595944][#11650860] Wadą są też nietypowe decyzje projektowe i build system: NuttX używa HardFault do obsługi zdarzeń systemowych, a standardowe Makefile bywają wolne; da się to jednak mocno poprawić przez alternatywny build na tup, gdzie pełny build spadł do ok. 25–35 s, a inkrementalny do ułamków sekund [#11785830][#11967489][#11615370] Portowanie na nową platformę zwykle sprowadza się do BSP i konfiguracji, bo aplikacje mają korzystać z abstrakcji sprzętu, ale w wątku nie pokazano „statycznego” trybu w sensie, o jaki pytano dla ChibiOS/RT [#11599638] O ChibiOS/RT praktycznie nie padły tu doświadczenia użytkowe, poza tym że ktoś się do niego przymierzał i linkował chibios-gfx, więc realne opinie w tym wątku dotyczą głównie NuttX [#11554791]
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA
  • #1 11433451
    Freddie Chopin
    Specjalista - Mikrokontrolery
    Posty: 13336
    Pomógł: 1712
    Ocena: 870
    Hi!

    Czy ktoś używa/używał/będzie używał RTOSa o nazwie NuttX? Przeglądając jego kod i dokumentację dochodzę do wniosku, że jest to taki mini-mini-Linux wręcz, ale chętnie poznam opinie osób które już przetestowały (; Zalet ma sporo - pełna abstrakcja sprzętu (często widoczny jako "pliki"), dostępne drivery dla ethernetu, usb, systemów plików itd., funkcje graficzne, duża zgodność ze standardami POSIX i ANSI, przystępna licencja BSD... Wad też jest oczywiście kilka, choćby całkiem pokaźny rozmiar kodu (nie wiem jak z RAMem), wysoki poziom skomplikowania, z dużym prawdopodobieństwem wolniejszy niż np. FreeRTOS czy ChibiOS/RT, skomplikowany proces kompilacji, ...

    No ale - tak czy siak projekt bardzo ciekawy, więc chętnie poznam opinie!

    www.nuttx.org

    A jak jest z systemem ChibiOS/RT? Po przejrzeniu kodu i dokumentacji wydaje się mieć większe możliwości niż tak popularny FreeRTOS (choćby eventy), zapewne w finalnej aplikacji zajmuje mniej miejsca i jest nieco szybszy (ze względu na "statyczną" architekturę), więc również ciekawa sprawa, a jednak tutaj na forum prawie nic o tym nie ma. O tym RTOSie ktoś może powiedzieć coś ciekawego?

    www.chibios.org

    Z góry dzięki (;

    4\/3!!
  • REKLAMA
  • #2 11436206
    michalko12
    Specjalista - Mikrokontrolery
    Posty: 3394
    Pomógł: 462
    Ocena: 321
    To jak już powstał taki RTOSowy wątek to do listy dorzucę
    TNKernel RTOS
  • REKLAMA
  • #5 11595315
    Smashing
    Poziom 20  
    Posty: 513
    Pomógł: 18
    Ocena: 12
    Witam
    udało mi się skompilować Nuttx pod moduł hymini-stm32v
    według opisu:
    * If Nuttx starts correctly, normal state is to have LED1 on and LED2 off.
    dokładnie tak jest świeci tylko LED1
    skompilowałem pod nsh2
    =========== ======================= ================================
    nsh nsh2
    =========== ======================= ================================
    Toolchain: Codesourcery for Linux Codesourcery for Linux (1)
    ----------- ----------------------- --------------------------------
    Loader: ST bootloader ST bootloader
    ----------- ----------------------- --------------------------------
    Serial Debug output: USART1 Debug output: USART1
    Console: NSH output: USART1 NSH output: USART1 (3)
    ----------- ----------------------- --------------------------------
    microSD Yes Yes
    Support
    ----------- ----------------------- --------------------------------
    FAT FS CONFIG_FAT_LCNAME=y CONFIG_FAT_LCNAME=y
    Config CONFIG_FAT_LFN=n CONFIG_FAT_LFN=y (4)
    ----------- ----------------------- --------------------------------
    LCD Driver No Yes
    Support
    ----------- ----------------------- --------------------------------
    RTC Support No Yes
    ----------- ----------------------- --------------------------------
    Support for No Yes
    Built-in
    Apps
    ----------- ----------------------- --------------------------------
    Built-in None apps/examples/nx
    Apps apps/examples/nxhello
    apps/examples/usbstorage (5)
    apps/examples/buttons
    apps/examples/nximage
    =========== ======================= ================================

    Usb nie działa, panel nie działa, rs (serial to USb) hyperterminal nic nie pokazuje,
    jak wgram hex'a debugować się nie da bo nie działa j-tag, trzeba nacisnąć BOOT0 + reset, dopiero wtedy można wgrać do procka coś innego.
    zacząłem zmieniać niektóre opcje... kompilacja trochę trwa ale dalej kicha....
    Ktoś to testował i czy komuś to działa jakiś przykład z Nuttx
  • #6 11595944
    Freddie Chopin
    Specjalista - Mikrokontrolery
    Posty: 13336
    Pomógł: 1712
    Ocena: 870
    Smashing napisał:
    Ktoś to testował i czy komuś to działa jakiś przykład z Nuttx

    U mnie działają (;

    Smashing napisał:
    jak wgram hex'a debugować się nie da bo nie działa j-tag, trzeba nacisnąć BOOT0 + reset, dopiero wtedy można wgrać do procka coś innego.

    Na wczesnym etapie bootowania najlepiej dorzuć coś takiego:

    Kod: text
    Zaloguj się, aby zobaczyć kod


    Ja mam to w funkcji stm32_boardinitialize(). Dzięki temu można wszystko debuggować i problem o którym mówisz nie występuje. Jedyne co dalej troszkę się gryzie, to pierwsze połączenie z OpenOCD po włączeniu zasilania muszę wykonać z naciśniętym resetem - potem już nie ma problemu, ale to może być kwestia płytki której używam i programatora którego używam (niestety ST-Link z płytki Discovery) - podejrzewam tu jakieś dziwne efekty typu pętla mas.

    Smashing napisał:
    Usb nie działa, panel nie działa, rs (serial to USb) hyperterminal nic nie pokazuje,

    Proponuję na razie ograniczyć się do przykładu "ostest" (sprawdzisz w nim UARTa i "resztę" systemu) oraz prostego nsh przez UART.

    Używasz "stabilnej" wersji czy czegoś z repozytorium?

    4\/3!!
  • #7 11596026
    Smashing
    Poziom 20  
    Posty: 513
    Pomógł: 18
    Ocena: 12
    Witam
    Coś mi się wydaje się to się nie kompiluje dobrze (błędów nie ma, ale....)
    Używam wersji nuttx-6.23, app też.
    Ustawiłem:
    CONFIG_STM32_CODESOURCERYW=y
    CONFIG_STM32_CODESOURCERYL=n
    To kolejny mój błąd bo używam PX4 ARM Toolchain,
    z tego co widzę to Make.defs dla PX4 nie ma tych opcji, za to ma opcje PX4_WINTOOL i ld.script jest trochę inny

    1. Pod czym to kompilujesz (Win7, xp ) i jakiego używasz Toolchain?
    2. Built-in app działa tak że można aplikację uruchomić z konsoli....ale trzeba tą ją najpierw skompilować z całym projektem ?
    na razie to rozgryzam...dopiero 2 dzień
    Pozdrawiam
  • #8 11596121
    Freddie Chopin
    Specjalista - Mikrokontrolery
    Posty: 13336
    Pomógł: 1712
    Ocena: 870
    Sprawa jest dosyć skomplikowana. Proponuję Ci zróbić to wg mojego opisu tutaj:
    http://tech.groups.yahoo.com/group/nuttx/message/2807

    Do całej zabawy potrzebujesz MSYS i MinGW + oczywiście toolchaina dla ARM. Ja używam obecnie "swojego", który jest zmodyfikowanym linaro:
    https://github.com/freddiechopin/bleeding-edge-toolchain/downloads

    Używam tego na Win7 64-bit

    Gdyby make z MSYSa działał okrutnie wolno (długo myślał zanim zacznie sie cokolwiek dziać) to daj znać albo poszukaj w necie pliku "csmake-3.81-MSYS-1.0.11-2.tar.bz2".

    Cała kompilacja "od zera" w takiej konfiguracji trwa u mnie około 2-3 minuty.

    4\/3!!
  • #9 11597115
    Smashing
    Poziom 20  
    Posty: 513
    Pomógł: 18
    Ocena: 12
    Witam
    Super opis, wszystko działa, użyłem też "csmake-3.81-MSYS-1.0.11-2.tar.bz2"
    wielkie dzięki.... uff

    Pozdrawiam
  • REKLAMA
  • #11 11597384
    Smashing
    Poziom 20  
    Posty: 513
    Pomógł: 18
    Ocena: 12
    Wyświetlacz działa, przycisk , shd po rs, usb pewnie też... nie mogę znaleźć karty microSd... mam NxWidgets1.3 trzeba w końcu coś napisać....

    Pozdrawiam
  • #12 11597433
    Freddie Chopin
    Specjalista - Mikrokontrolery
    Posty: 13336
    Pomógł: 1712
    Ocena: 870
    Wow, możesz wrzucić jakiś filmik jak się to prezentuje, bo ja bym chętnie zobaczył możliwości tego kodu graficzno/okienkowego... Mój projekt niestety nie ma żadnego LCD, więc nie mam jak sprawdzić sam... Byłbym wdzięczny, wiec z góry dzięki!

    4\/3!!
  • #13 11597486
    Smashing
    Poziom 20  
    Posty: 513
    Pomógł: 18
    Ocena: 12
    Witam, to jest przykładowy kod od nich, wyświetlacz działa tak: wpisuje w nsh: nximage, i pokazuję mi się zdjęcie NX na czarnym tle.... jak na razie nic więcej nie zrobiłem...ale działać działa. Mogę ci z tego filmik wysłać, ale pewnie nie o to Ci chodzi...
  • #14 11597598
    Freddie Chopin
    Specjalista - Mikrokontrolery
    Posty: 13336
    Pomógł: 1712
    Ocena: 870
    No statyczny obrazek to nic specjalnego faktycznie [; Ale jakbyś miał jakieś demko "okienkowe" to baaardzo chętnie zobaczę (;

    W apps/examples masz kilka przykładowych kodów z grafiką, kilka z nich jest też związanych z okienkami - zawsze to jakiś punkt wyjścia (;

    4\/3!!
  • #15 11599512
    uzi18
    Poziom 24  
    Posty: 751
    Pomógł: 37
    Ocena: 82
    mnie interesuje np. jak szybko projekt z jednego procka pod nuttx mozna przeportowac na nowy ktorego nie ma jeszcze w zrodlach samego nuttx

    nuttx ma nieoficjalne zrodla na github
    doczytal sie ktos czy jest tu tez tryb static jak w chibios?
  • #16 11599638
    Freddie Chopin
    Specjalista - Mikrokontrolery
    Posty: 13336
    Pomógł: 1712
    Ocena: 870
    uzi18 napisał:
    mnie interesuje np. jak szybko projekt z jednego procka pod nuttx mozna przeportowac na nowy ktorego nie ma jeszcze w zrodlach samego nuttx

    To bardziej pytanie "jak szybko można przeportować NuttX"... Zasadnicze programy składają się z aplikacji, BSP oraz samego NuttX - w założeniu aplikacji nigdy nie trzeba portować, bo ona odwołuje się do sprzętu tylko przez abstrakcję, jedyne co to trzeba zadbać o te dwie niższe warstwy, w praktyce zwykle tylko o BSP.

    uzi18 napisał:
    doczytal sie ktos czy jest tu tez tryb static jak w chibios?

    Nie ma czegoś takiego, choć w teorii są jakieś funkcje do tworzenia tasków do których podajesz stos, ale tak czy siak jest jeszcze TCB, choć to może jest statyczne i tak.

    4\/3!!
  • REKLAMA
  • Pomocny post
    #17 11600817
    Smashing
    Poziom 20  
    Posty: 513
    Pomógł: 18
    Ocena: 12
    Witam
    Wiem że może szału nie ma ale zawsze to jakiś przykład :)
    Dodatkowo jak coś się dzieje na ekranie w hypernerminalu można zobaczyć jakie funkcje są wywoływane.

    Jedyną wadą to długa kompilacja, około 3-4 min od zera (3,4-i5-3570k)





  • #18 11601010
    Freddie Chopin
    Specjalista - Mikrokontrolery
    Posty: 13336
    Pomógł: 1712
    Ocena: 870
    Smashing napisał:
    Jedyną wadą to długa kompilacja, około 3-4 min od zera (3,4-i5-3570k)

    True, też mnie to strasznie denerwuje.

    Po pierwsze możesz rozważyć użycie mojego toolchaina, on jest jednak trochę szybszy niż zwyczajne linaro.

    U mnie kompilacja na starszym sprzęcie trwa max 3 minuty (3GHz, E8400, 4GB RAM), za to aktualnie przerabiam całość na build system o nazwie "tup" (polecam przejrzeć stronkę - sprawa jest bardzo ciekawa i do tego dowcipnie napisana - http://gittup.org/tup/), w którym cała kompilacja (po clean, więc może nie do końca "od zera") trwa poniżej 35 sekund (w porównaniu do około 2 minut z normalnym make). Większość przyspieszenia zapewne wynika z tego, że w tup wielowątkowość jest w gratisie, a w Makefile'ach które są w NuttX to by trzeba zrobić rewolucję aby chodziło na wielu wątkach...

    Bonusowy zysk jest taki, że "make" w NuttX gdy nie ma nic do roboty i taj zajmuje z 10s, a w tup zajmuje ~0s.

    Jakbyś był zainteresowany "przyspieszeniem" to mogę Ci udostępnić dotychczasowe efekty pracy, choć "czyste" rozwiązanie to to na razie nie jest...

    4\/3!!
  • #19 11601031
    uzi18
    Poziom 24  
    Posty: 751
    Pomógł: 37
    Ocena: 82
    W sumie racja z tym portowaniem NuttX - mysle ze to jednak wazny element kazdeo rtos-a
    Trafia Ci sie procek ktory chcialbys na tym przetestowac lub masz zlecenie na konkretna
    platforme i juz wiesz ktory system szybciej uruchomisz i dlaczego?

    Fajnie byloby gdybysmy mieli wszyscy ten modul co Smashing.
    Sprobowac uruchomic te rtos-y na nich i porownac.

    Ten zestaw kosztuje ok 150 zl?
  • #20 11601635
    Smashing
    Poziom 20  
    Posty: 513
    Pomógł: 18
    Ocena: 12
    Witam
    po clean, kompilacja trwa 3 min.
    Freddie Chopin napisał:
    Po pierwsze możesz rozważyć użycie mojego toolchaina
    toolchaina używam z twojej strony.. https://github.com/freddiechopin/bleeding-edge-toolchain/downloads

    Freddie Chopin napisał:

    Jakbyś był zainteresowany "przyspieszeniem" to mogę Ci udostępnić dotychczasowe efekty pracy
    Byłbym... jak by to nie był problem... ale nie wiem czy to ograne.. :]
    Właśnie patrzę na tego tup..tusia

    uzi18 napisał:
    Ten zestaw kosztuje ok 150 zl?
    tak 150 + 11zl przesyłka.
  • #21 11603798
    uzi18
    Poziom 24  
    Posty: 751
    Pomógł: 37
    Ocena: 82
    co do tup, to fajne ale jest jeszcze np. sprawdzone cmake, ktore tez potrafi to ladnie robic i chyba wydaje sie czytelniejsze ;)

    Dodatkowy plus to mozliwosc budowania poza zrodlami - np. kilka katalogow z roznymi opcjami kompilacji
    Czyszczenie polega na prostym usunieciu katalogu,a zrodla zawsze mozna wtedy skompresowac bez zbednego balaganu z kompilatow.
  • #22 11604049
    Freddie Chopin
    Specjalista - Mikrokontrolery
    Posty: 13336
    Pomógł: 1712
    Ocena: 870
    uzi18 napisał:
    co do tup, to fajne ale jest jeszcze np. sprawdzone cmake, ktore tez potrafi to ladnie robic i chyba wydaje sie czytelniejsze

    Tu nie byłbym taki pewny - tup ma bardzo prostą składnię, podobną do skryptów i trochę podobną do make, natomiast CMake to jest coś zupełnie innego... Potrafiłem zrobić konfigurację NuttX w tup, natomiast w CMake bym nie potrafił (;

    uzi18 napisał:
    Dodatkowy plus to mozliwosc budowania poza zrodlami - np. kilka katalogow z roznymi opcjami kompilacji

    Tup też to ma - nazywa się to variants, niestety chwilowo nie działa jeszcze na Windows...

    Smashing napisał:
    Byłbym... jak by to nie był problem... ale nie wiem czy to ograne.. :]

    To jak doprowadzę to wszystko do jakiegoś sensownego stanu, to udostępnię (;

    4\/3!!
  • #23 11605465
    Smashing
    Poziom 20  
    Posty: 513
    Pomógł: 18
    Ocena: 12
    Witam
    jak na razie jedyny problem jaki znalazłem to z NxWidgets.
    One są napisane w C++, dodaje:

    CONFIG_HAVE_CXX=y
    wtedy dodaje mi libxx
    Robię przycisk z przykładu....
    int cbutton_main(int argc, char *argv[])
    {
    	  // Create an instance of the font test
    	  printf("cbutton_main: Create CButtonTest instance\n");
    	//  CButtonTest *test = new CButtonTest();
    
    }

    zrobiło mi cbuttontest.o i cbutton_main.o (w NuttX\apps\NxWidgets\UnitTests\CButton)
    mam tekst "cbutton_main: Create CButtonTest instance"
    to tylko po to że task działa.... ale jak tylko dodam:
     CButtonTest *test = new CButtonTest();

    to mam takie coś....
    Kod: text
    Zaloguj się, aby zobaczyć kod

    hmmm.... ma ktoś jakiś pomysł
  • #24 11605547
    Freddie Chopin
    Specjalista - Mikrokontrolery
    Posty: 13336
    Pomógł: 1712
    Ocena: 870
    Do kodu musisz dodać swoją funkcję up_cxxinitialize() (lub jakoś tak) - zobacz dla przykładu konfiga dla stm32f4discovery - tam jest taka funkcja w BSP.

    Zastanawiają mnie też opcje kompilacji, bo errory sugerują, że może masz włączoną opcję RTTI? Czy pliki C++ na pewno kompilujesz z "-fno-exceptions -fno-rtti"?

    W razie problemów znajdź jakiegoś konfiga który używa przykładu który chcesz uruchomić o zobacz jakie są opcje kompilacji, jakie funkcje w BSP itd.

    4\/3!!
  • #25 11605708
    uzi18
    Poziom 24  
    Posty: 751
    Pomógł: 37
    Ocena: 82
    Samo "-fno-rtti" powinno rozwiazac problem.

    Musze spakietowac to "tup" pod moj PLD Linux to zobaczymy.

    Co do cmake - to wlasnie on wyglada jak skrypt - mozna pisac funkcje makra itp.
    Udostepnij jakis swoj projekt testowy z plikiem dla tup, ja dopisze do tego cmake i zobaczymy jak sie to ma do siebie :)
  • #26 11606444
    Smashing
    Poziom 20  
    Posty: 513
    Pomógł: 18
    Ocena: 12
    Witam
    Następny problem który mam:
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    w pliku readme.txt (nuttx\configs\stm32f4discovery) znalazłem żeby
    usunąć z libsupc++.a vterminate?? :
    D:\gcc-arm-none-eabi-4_6-x64-121030\arm-none-eabi\lib\armv7-m
    zrobić: arm-none-eabi-ar.exe -x libsupc++.a vterminate.o i potem usunąć vterminate.o
    ale czy z wszystkich gdzie są libsupc++.a, bo nadal nie działa... uff idę na kawę
  • #27 11606844
    Freddie Chopin
    Specjalista - Mikrokontrolery
    Posty: 13336
    Pomógł: 1712
    Ocena: 870
    No ale czy naprawdę potrzebne Ci wyjątki C++ oraz pełne libstdc++?

    EDIT - apropo build systems:
    http://tech.groups.yahoo.com/group/nuttx/message/3207
    Finalizuję swoje skrypty, w temacie jest też załącznik ze skryptami cmake i na Windowsie nawet nie chciały wystartować... Tymczasem większość moich plików tup wygląda tak:

    include_rules
    
    # get the list of files
    include files.mk
    
    : foreach $(ASRCS) |> !as |> {objects}
    : foreach $(CSRCS) |> !cc |> {objects}
    : foreach $(CXXSRCS) |> !cxx |> {objects}
    : {objects} |> !ar |> lib%d.a


    W files.mk - zgodnie z nazwą - znajduje się tylko lista plików (uzależniona czasem od opcji z pliku .config) i żadnych kosmosów. Dla porównania pliki z CMake o których pisałem wcześniej są DUŻO bardziej skomplikowane...

    4\/3!!
  • #28 11608074
    uzi18
    Poziom 24  
    Posty: 751
    Pomógł: 37
    Ocena: 82
    ok uzylem tej latki z listy Nuttx-a, cmake budowa calosci:
    - dla make z 1 watkiem (make -j1):
    generating nuttx.elf>.bin
    generating nuttx.elf>.hex
    [100%] Built target nuttx.elf
    
    real    0m30.420s
    user    0m14.132s
    sys     0m8.593s
    

    czyli 30s.

    - dla make z 5 watkami (make -j5):
    Linking C executable nuttx.elf
    generating nuttx.elf>.bin
    generating nuttx.elf>.hex
    [100%] Built target nuttx.elf
    
    real    0m16.968s
    user    0m16.946s
    sys     0m9.419s

    czyli ~17s.

    Nastepnie po dotknieciu 1 pliku dla -j1 bylo 2,4s, a dla -j5 1,4s. - to sa czasy akceptowalne.

    Niestety musialem wprowadzic kilku poprawek:
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod

    oraz w katalogu glownym dalem na sztywno ten arm toolchain bo niestety
    nigdzie nie znalazlem odwolania do CMAKE_TOOLCHAIN_FILE:
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    Co do Twojego bledu - zaczac nalezy od tego ze dla cmake sciezke do zrodel podaje sie na koncu tj.:
    cd Nuttx
    mkdir build
    cd build
    cmake -DCONFIG=stm32f4discovery/ostest -DCMAKE_TOOLCHAIN_FILE=../nuttx/tools/cmake/Toolchain_arm.cmake ..
    make lub nmake

    zwroc uwage ze ".." jest na koncu linijki

    Jak tylko udostepnisz te pliczki tup-a to tez przetestuje.
  • #29 11608275
    Freddie Chopin
    Specjalista - Mikrokontrolery
    Posty: 13336
    Pomógł: 1712
    Ocena: 870
    Co do czasów jakie "wykręcasz" - jak się one mają do "normalnej" kompilacji, czyli ze standardowymi rekursywnymi Makefile?

    EDIT: Co do CMake, to zmiana którą proponujesz nic nie pomogła...

    d:\Elektronika\ARM\projects\nuttx\build>cmake -DCONFIG=stm32f4discovery/ostest -
    DCMAKE_TOOLCHAIN_FILE=../nuttx/tools/cmake/Toolchain_arm.cmake ..
    -- Building for: NMake Makefiles
    CMake Warning at CMakeLists.txt:4 (project):
      To use the NMake generator, cmake must be run from a shell that can use the
      compiler cl from the command line.  This environment does not contain
      INCLUDE, LIB, or LIBPATH, and these must be set for the cl compiler to
      work.
    
    
    -- Configuring ARM toolchain...
    -- Configuring ARM toolchain...
    CMake Warning at nuttx/tools/cmake/NuttX.cmake:10 (enable_language):
      To use the NMake generator, cmake must be run from a shell that can use the
      compiler cl from the command line.  This environment does not contain
      INCLUDE, LIB, or LIBPATH, and these must be set for the cl compiler to
      work.
    Call Stack (most recent call first):
      CMakeLists.txt:11 (include)
    
    
    -- The ASM compiler identification is GNU
    -- Didn't find assembler
    CMake Error: your ASM compiler: "CMAKE_ASM_COMPILER-NOTFOUND" was not found.   P
    lease set CMAKE_ASM_COMPILER to a valid compiler path or name.
    -- reading configuration from D:/Elektronika/ARM/projects/nuttx/nuttx/configs/st
    m32f4discovery/ostest/defconfig
    CMake Error at nuttx/tools/cmake/NuttX_utils.cmake:48 (foreach):
      Syntax error in cmake code at
    
        D:/Elektronika/ARM/projects/nuttx/nuttx/tools/cmake/NuttX_utils.cmake:48
    
      when parsing string
    
        -T;D:\Elektronika\ARM\projects\nuttx\nuttx\configs\stm32f4discovery\scripts\
    ld.script;--entry=__start;-nostartfiles;-nodefaultlibs;-g
    
      Invalid escape sequence \E
    Call Stack (most recent call first):
      nuttx/tools/cmake/Toolchain_arm.cmake:192 (args_from_list)
      nuttx/tools/cmake/NuttX.cmake:33 (nx_toolchain_config)
      CMakeLists.txt:16 (nx_cmake_prolog)
    
    
    -- Configuring incomplete, errors occurred!


    4\/3!!
  • #30 11608302
    Konto nie istnieje
    Konto nie istnieje  

Podsumowanie tematu

✨ Dyskusja dotyczy systemów operacyjnych czasu rzeczywistego (RTOS) NuttX i ChibiOS/RT, ich zalet i wad. Użytkownicy dzielą się doświadczeniami związanymi z kompilacją i działaniem NuttX na platformach STM32, wskazując na pełną abstrakcję sprzętu, wsparcie dla standardów POSIX oraz problemy z pamięcią RAM i złożonością kompilacji. ChibiOS/RT jest postrzegany jako bardziej wydajny i zajmujący mniej miejsca. Uczestnicy poruszają również kwestie związane z kompilacją, używając różnych narzędzi, takich jak tup i CMake, oraz problemów z alokacją pamięci w NuttX. Wspomniano o problemach z grafiką i obsługą dotykową w aplikacjach opartych na NxWidgets.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA