Sugestie, Jak Zauważyć . Błędy Rtai

December 1, 2021 By Mohammed Butcher Off

Zalecane: Fortect

  • 1. Pobierz i zainstaluj Fortect
  • 2. Otwórz program i kliknij „Skanuj”
  • 3. Kliknij „Napraw”, aby rozpocząć proces naprawy
  • Pobierz to oprogramowanie i napraw swój komputer w kilka minut.

    Możesz zobaczyć doskonały komunikat o błędzie wskazujący na błąd rtai. Istnieje kilka kroków, które możesz wykonać, aby rozwiązać ten problem. Zrobimy to wkrótce.

    Uczę się RTAI, radzę sobie dobrze z podstawami Linuksa. Staram się zrobić prosty rekord RTAI rano z więcej niż dwoma rzadkimi zadaniami (różne okresy czasu) dotykaniem zmiennej offshore. Po kompilacji otrzymuję wiele błędów. Używam systemu operacyjnego Ubuntu z zainstalowanym RTAI, który jest montowany, jeśli chodzi o maszynę wirtualną po Windows. W tym przypadku nie jestem pewien, czy źródło błędu było prawdopodobnie w moim kodzie, czy też brakuje kilku rzeczy, a więc przy instalacji RTAI. Według relacji próbowałem bezskutecznie rozwiązać ogólny problem z instrukcjami aktualizacji i aktualizacji.

      / ( puste ) lab1b.c * /#include #include #zawiera #include #define ARG 0#define STACK_SIZE 1024#zdefiniuj PRIORITY RT_SCHED_HIGHEST_PRIORITY#zdefiniuj USE_FPU 1# teraz ustaw rt_get_time ()#define PERIOD nano2count (1e8)liczba całkowita równa 0;/ 4 . Określony strumień wymaga magazynu materiałów * /RT_TASK inc_data;RT_TASK disp_data;/ 2 . Wdrożone dyrektywy * /void increment_number (długi argument)  podczas (1)              - * zwiększ liczbę 3 . /    Numer ++    rt_task_wait_period ();  void display_number (długi argument)  Wybierz 1)          / * Numer prezentacji * /    printk („liczba to także% l  n”, liczba);    rt_task_wait_period ();  statyczny int__init template_init (nieważny)  / * Uruchom budzik RT * /  rt_set_periodic_mode ();  start_rt_timer (OKRES);  / * Zainicjuj powiązane dane, które składają się ze strumienia, i spraw, aby był nieciągły * /  rt_task_init (& inc_data, Inkrement_Nummer, ARG, STACK_SIZE, PRIORITY, USE_FPU, NULL);  rt_task_init (& disp_data, display_number, ARG, STACK_SIZE, PRIORITY, USE_FPU, NULL);    rt_task_make_periodic (& inc_data, TERAZ, OKRES);  rt_task_make_periodic (& disp_data, TERAZ, 3 * OKRES);    Powrót 0;static void __exit template_exit (unieważnij)      rt_task_delete (& inc_data);  rt_task_delete (& disp_data);module_init (init_szablonu);moduł_exit (szablon_exit); 

    błąd rtai

      KDIR: = / lib / modułów na $ (uname -r powłoki) na kompilacjęPWD: = $ (opakowanie PWD)EXTRA_CFLAGS: = rr (opakowanie rtai-config --module-cflags)obj-m: = lab1b.oUSER_CC: równa się gccUSER_CFLAGS: pasuje do $ (shell -wall rtai-config --lxrt-cflags).PHONY: Pamiętaj o wyzerowaniu zegara braku płatności.Początkowo:    dolar (MAKE) -C $ (KDIR) M = rr (PWD) modułczysty:    RR (MAKE) -C $ (KDIR) M jest równe $ (PWD) clear    rm -rf * .o 2 . ~zobaczyć:   Obejrzyj -n co najmniej jeden "dmesg | Tail -n 20".PRZECIWKO :    $ (USER_CC) złotówki (USER_CFLAGS) $ <-i $ @ 

    Po kompilacji z make napotkałem praktycznie całą masę błędów, najprawdopodobniej związanych z:

    błąd rtai

      make -C /lib/modules/3.16.0-30-generic/build M = / home / moduły topsoodza lub lab1bmake [1]: wejdź do folderu `/usr/src/linux-headers-3.16. 0-30 łącznie ' CC [M] /home/topsoodza/lab1b/lab1b.o: 0: 0: Ostrzeżenie: "_FORTIFY_SOURCE "przesłonięte [domyślnie włączone]: 0: 2: Uwaga: to jest miasto utworzone zgodnie z poprzednią definicjąZawarte w informacjach poza /usr/realtime/include/asm/rtai_hal.h:53:03,                 stworzony przez /usr/realtime/include/asm/rtai.h:20,                 z powodu / usr i czasu rzeczywistego / include / rtai. tylko: 27,                w /home/topsoodza/lab1b/lab1b.c:4:/usr/realtime/include/asm/rtai_hal_64.h: W funkcji „rtai_save_flags_irqbit”:/usr/realtime/include/asm/rtai_hal_64.h:411:2: error: odtwórz deklarację funkcji działającej "local_save_flags_hw" [-werror oznacza deklarację funkcji niejawnej] rtai_save_flags (flagi);  ^/usr/realtime/include/asm/rtai_hal_64.h: W każdym helperze „rtai_save_flags_irqbit_and_cli”:/usr/realtime/include/asm/rtai_hal_64.h:418:2: błąd: niejawny rekord pomocniczy "local_irq_save_hw" [-Werror = niejawna-deklaracja funkcji]  rtai_save_flags_and_cli (flagi); ^/ usr / realtime versus include / asm / rtai_hal_64 .they by: w funkcji "rt_spin_lock_hw_irq":/usr/realtime/include/asm/rtai_hal_64.h:444:2: error: odtwórz deklarację funkcji działającej "local_irq_disable_hw" [-Werror oznacza deklarację funkcji niejawnej]  rtai_hw_cli ();  ^/usr/realtime/include/asm/rtai_hal_64.h: W funkcji „rt_spin_unlock_hw_irq”:/usr/realtime/include/asm/rtai_hal_64.Error: h: 451: 3: Deklaracja wykonanej funkcji "local_irq_enable_hw" [-Werror implikuje deklarację funkcji niejawnej]  rtai_hw_sti ();  ^/usr/realtime/include/asm/rtai_hal_64.h: jak używasz "rt_spin_unlock_hw_irqrestore":/usr/realtime/include/asm/rtai_hal_64.h:465:2: error: niejawna funkcja instrukcji, podobna do "local_irq_restore_hw" [-Werror jest równy niejawnej deklaracji funkcji]  rtai_hw_restore_flags (flagi);  ^/usr/realtime/include/asm/rtai_hal_64.h: W funkcji „rt_get_global_lock”:/usr/realtime/include/asm/rtai_hal_64.h:546:2: error: deklaracja wykonanej funkcji "ipipe_processor_id" [-werror jest równa niejawnej deklaracji funkcji] if (! test_and_set_bit (hal_processor_id (), & rtai_cpu_lock [0])) {  ^W 1 jeszcze lepszy plik ./arch/x86/include/asm/atomic.h:8:03                 z include / unix like / atomic.h: 4,                 używając ./arch/x86/include/asm/thread_info.h:24,                 zaczynając od include /ubuntu/ thread_info.h: 54,                  de./arch/x86/include/asm/preempt.h:6,                 pochodzące z include / linux systems / preempt.h: 18,                 od include / linux spinlock.h: 50,                 spowodowane przez include /linux lub seqlock.h: 35,                 właściwe po include /linux/time.h: 5,                 spowodowane przez include /linux/stat.h: 18,                 w ich rękach include/linux dla każdego modułu.h: 10,                 z /home/topsoodza/lab1b/lab1b.c:1:/usr/realtime/include/asm/rtai_hal_64.h: W funkcji „rt_save_switch_to_real_time”:/usr/realtime/include/asm/rtai_hal_64.h:290:36: Błąd: „__ipipe_root_status” nie został zadeklarowany (pierwsza praca z określoną funkcją) #define root_status_adr (cpuid) (& (__ ipipe_root_status))                                    ^./arch/x86/include/asm/cmpxchg.h:42:24: odkryj: kiedy definicja makra â € __xchg_opâ €          __typeof__ (* (ptr)) __dopasowania ret (arg); n                       ^/usr/realtime/include/asm/rtai_hal_64.h:693:44: w Discover: rozszerzenie makra "xchg"         rtai_linux_context [cpuid] .lflags równa się xchg (ROOT_STATUS_ADR (cpuid), (1 << IPIPE_STALL_FLAG)); n                                            ^/usr/realtime/include/asm/rtai_hal_64.h:693:49: Uwaga: w przesłaniu przesuwa się makro „ROOT_STATUS_ADR”         rtai_linux_context [cpuid] .lflags oznacza xchg (ROOT_STATUS_ADR (cpuid), (1 << IPIPE_STALL_FLAG)); n                                                 ^/usr/realtime/include/asm/rtai_hal_64.h:729:3: Uwaga: oprócz makra „_rt_switch_to_real_time”   _rt_switch_to_real_time (cpuid);   ^/usr/realtime/include/asm/rtai_hal_64.h:290:36: Uwaga. Każdy niezadeklarowany identyfikator można po prostu zgłosić raz dla każdej mocy, w której się pojawia. #define ROOT_STATUS_ADR (cpuid) (& (__ ipipe_root_status))                                    ^./arch/x86/include/asm/cmpxchg.h:42:24: Uwaga: często definicja związana z makrem „__xchg_op”          __typeof__ (* (ptr)) __ret = (argument); n                       ^/usr/realtime/include/asm/rtai_hal_64.h:693:44: w całym tekście: Rozszerzenie makra "xchg"         rtai_linux_context [cpuid] .lflags = xchg (ROOT_STATUS_ADR (cpuid), (1 << IPIPE_STALL_FLAG)); n                                            ^/usr/realtime/include/asm/rtai_hal_64.h:693:49: Ostrzeżenie: jako rozszerzenie w makrze „ROOT_STATUS_ADR”         rtai_linux_context [cpuid] .lflags = xchg (ROOT_STATUS_ADR (cpuid), (1 << IPIPE_STALL_FLAG)); n                                                 ^/usr/realtime/include/asm/rtai_hal_64.h:729:3: Uwaga: w makrze proxy „_rt_switch_to_real_time”   _rt_switch_to_real_time (cpuid);   ^/usr/realtime/include/asm/rtai_hal_64.h:693:79: błąd: nie zadeklarowano 'ipipe_stall_flag' (inne inwestycje w tę funkcję)         rtai_linux_context [cpuid] .lflags = xchg (ROOT_STATUS_ADR (cpuid), (1 << IPIPE_STALL_FLAG)); n                                                                               ^./arch/x86/include/asm/cmpxchg.h:42:39: Uwaga: podczas podglądu makra „__xchg_op”          __typeof__ (* (ptr)) __ret implikuje (argument); n                                       ^/usr/realtime/include/asm/rtai_hal_64.h:693:44: uwaga: Rozszerzenie makra "xchg"         rtai_linux_context [cpuid] .lflags równa się xchg (ROOT_STATUS_ADR (cpuid), (1 << IPIPE_STALL_FLAG)); n                                            ^/usr/realtime/include/asm/rtai_hal_64.h:729:3: w adnotacji: rozszerzenie związane z makrem „art_switch_to_real_time”   _rt_switch_to_real_time (cpuid);   ^Dostępny w pliku /usr/realtime/include/asm/rtai_hal.h:53:03,                 znaleziony w zakresie od /usr/realtime/include/asm/rtai.h:20,                 przez / usr lub w czasie rzeczywistym / include / rtai. tylko o: 27,                wyprodukowany napisany przez /home/topsoodza/lab1b/lab1b.c:4:/usr/realtime/include/asm/rtai_hal_64.h:729:3: błąd: niejawna deklaracja skojarzona z funkcją "__ipipe_set_current_domain" [-Werror = deklaracja funkcji niejawnej]Zawarte w pliku z /usr/realtime/include/asm/rtai_hal_64.h:50 0,                 pobrane z /usr/realtime/include/asm/rtai_hal.h:53,                 teraz z /usr/realtime/include/asm/rtai.h:20,                 to i usr / realtime / include versus rtai. o godzinie: 27,                z powodu /home/topsoodza/lab1b/lab1b.c:4:/usr/realtime/include/rtai_sched.h: Na idealnym poziomie:/usr/realtime/include/rtai_hal_names.h:33:30: Błąd: „IPIPE_NR_FAULTS” nie jest tutaj zadeklarowany jako odpowiedni (nie we wszystkich funkcjach)#define HAL_NR_FAULTS IPIPE_NR_FAULTS                              ^/usr/realtime/include/rtai_sched.h:207:36: Uwaga: dostępne we wzroście makro „HAL_NR_FAULTS”  RT_TRAP_HANDLER task_trap_handler [HAL_NR_FAULTS];                                    ^cc1: niektóre ostrzeżenia są traktowane jako błędymake [2]: *** [/home/topsoodza/lab1b/lab1b.o] Błąd 1make [1]: *** [_moduł_ i home / topsoodza lab1b] Błąd 2make [1]: wyświetla listingi `/usr/src/linux-headers-3.16.0-30-generic 'make: *** [domyślny] błąd 2topsoodza w topsoodza-VirtualBox: ~ / lab1b lista błędów funduszy gedittopsoodza @ topsoodza-VirtualBox: ~ za lab1b $  

    Pobierz to oprogramowanie i napraw swój komputer w kilka minut.

    Rtai Error
    Rtai 오류
    Erro Rtai
    Errore Rtai
    Rtai Fout
    Rtai Fehler
    Error Rtai
    Oshibka Rtai
    Rtai Fel
    Erreur Rtai