eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronika › Dziwny problem z kodem w C (gcc mips/pic32)
Ilość wypowiedzi w tym wątku: 171

  • 11. Data: 2023-05-18 13:22:22
    Temat: Re: Dziwny problem z kodem w C (gcc mips/pic32)
    Od: "J.F" <j...@p...onet.pl>

    On Wed, 17 May 2023 22:16:05 +0200, Marek wrote:
    > On Wed, 17 May 2023 22:02:05 +0200, Zbych <z...@n...org> wrote:
    >> Trzeba było napisać:
    >> const char * const connectionFailureStrings[] = {
    >
    > Okok faktycznie. Dobra, szukam dalej co po tej tablicy jeździ..

    No wlasnie - const to jedno, ale cos jezdzi.

    Przekompiluj jak wyzej - moze wyrzuci błąd i znajdziesz,
    ale jesli nie, to moze być bardziej skomplikowane szukanie.

    J.


  • 12. Data: 2023-05-18 13:29:23
    Temat: Re: Dziwny problem z kodem w C (gcc mips/pic32)
    Od: "Grzegorz Niemirowski" <g...@g...net>

    Janusz <j...@o...pl> napisał(a):
    > No i co z tego, przecież to dwie osobne tablice i osobno się adresują i
    > chyba kompilator czy linkier nie ma tu błędu w adresacji?

    Niby osobno adresowane ale nie do końca, bo są w jednej pamięci. Jak
    wyjedziesz poza zakres jednej, to wpadniesz na drugą. To nie jest błąd
    kompilatora ani linkera ale uroki C. Błąd w kodzie polega na zapomnieniu, że
    sizeof() nie służy do zwracania liczby elementów tablicy. Można go użyć w
    tej roli tylko dla tablic o typie jednobajtowym (char, uint8_t itp) a nie
    short.

    --
    Grzegorz Niemirowski
    https://www.grzegorz.net/


  • 13. Data: 2023-05-18 13:49:02
    Temat: Re: Dziwny problem z kodem w C (gcc mips/pic32)
    Od: heby <h...@p...onet.pl>

    On 18/05/2023 13:29, Grzegorz Niemirowski wrote:
    > Błąd w kodzie polega na
    > zapomnieniu, że sizeof() nie służy do zwracania liczby elementów
    > tablicy.

    Słusznie. Pozwólcie, że wsadzę kij w mrowisko i pokażę co należy używać
    od kilku lat:

    https://en.cppreference.com/w/cpp/iterator/size

    A bodaj od 20 lat jest w boost.


  • 14. Data: 2023-05-18 13:54:03
    Temat: Re: Dziwny problem z kodem w C (gcc mips/pic32)
    Od: "Grzegorz Niemirowski" <g...@g...net>

    heby <h...@p...onet.pl> napisał(a):
    > Słusznie. Pozwólcie, że wsadzę kij w mrowisko i pokażę co należy używać od
    > kilku lat:
    > https://en.cppreference.com/w/cpp/iterator/size
    > A bodaj od 20 lat jest w boost.

    Ale to trzeba zacząć C++ używać :)

    --
    Grzegorz Niemirowski
    https://www.grzegorz.net/


  • 15. Data: 2023-05-18 14:01:27
    Temat: Re: Dziwny problem z kodem w C (gcc mips/pic32)
    Od: Marek <f...@f...com>

    On Thu, 18 May 2023 04:08:13 -0700 (PDT), Dawid Rutkowski
    <d...@w...pl> wrote:
    > To nie turbo pascal tylko C na uC - i tak się dziwię, że OP
    > pisze tu o jakichś wyjątkach, może to w wersji mips pod jaki
    > mś unixem.

    Błagam, przecież pic32 to pełen mips dlaczego nie ma mieć wyjątków??
    Ma nawet wsparcie częściowe do VM user/kernel space. A MZy nawet
    TBLe do translacji adresów wirtualnych. Na ATmega8 świat się nie
    kończy...

    --
    Marek


  • 16. Data: 2023-05-18 14:13:49
    Temat: Re: Dziwny problem z kodem w C (gcc mips/pic32)
    Od: Dawid Rutkowski <d...@w...pl>

    czwartek, 18 maja 2023 o 14:01:30 UTC+2 Marek napisał(a):
    > On Thu, 18 May 2023 04:08:13 -0700 (PDT), Dawid Rutkowski
    > <d...@w...pl> wrote:
    > > To nie turbo pascal tylko C na uC - i tak się dziwię, że OP
    > > pisze tu o jakichś wyjątkach, może to w wersji mips pod jaki
    > > mś unixem.
    > Błagam, przecież pic32 to pełen mips dlaczego nie ma mieć wyjątków??
    > Ma nawet wsparcie częściowe do VM user/kernel space. A MZy nawet
    > TBLe do translacji adresów wirtualnych. Na ATmega8 świat się nie
    > kończy...

    O, nawet się nie zainteresowałem, że pic32 to mips - sądziłem, że się bardziej
    wysilili.
    Wszystko kwestia kosztu, w tym ilości RAMu - 386 było już w 1986,
    ja miałem już w 1933, a Linux Torvalds, dla zbawienia ludzkości, na szczęście już w
    1990 (chyba).

    No ale żeby się nie kopać po kostkach, to i na 386 można sobie puszczać jeden program
    (tak narodził
    się Linux - Linusowi nie podobał się emulator terminal w minixie, więc napisał
    własny,
    działający na "gołym" 386 - ale 32-bitowym), i pewnie na pic32 też - ale żeby były
    wyjątki obsługiwane, to coś tam jeszcze trzeba albo dokompilować - w stylu eCosa,
    czyli jednozadaniowego, wielowątkowego systemu operacyjnego - lub coś po prostu
    puszczać, w stylu Linuxa czy innego OSa.
    Więc co tam jeszcze masz?
    Czy wszystko, łącznie z obsługą wyjątków, jest w tych 75k linii kodu? Bo można i tak,
    choć ciekawi, jak te wyjątki obsługujesz.


  • 17. Data: 2023-05-18 14:14:30
    Temat: Re: Dziwny problem z kodem w C (gcc mips/pic32)
    Od: Dawid Rutkowski <d...@w...pl>

    czwartek, 18 maja 2023 o 13:54:05 UTC+2 Grzegorz Niemirowski napisał(a):
    > heby <h...@p...onet.pl> napisał(a):
    > > Słusznie. Pozwólcie, że wsadzę kij w mrowisko i pokażę co należy używać od
    > > kilku lat:
    > > https://en.cppreference.com/w/cpp/iterator/size
    > > A bodaj od 20 lat jest w boost.
    > Ale to trzeba zacząć C++ używać :)

    Zaraz usłyszysz, że "jest za darmo" ;>


  • 18. Data: 2023-05-18 14:37:19
    Temat: Re: Dziwny problem z kodem w C (gcc mips/pic32)
    Od: heby <h...@p...onet.pl>

    On 18/05/2023 13:54, Grzegorz Niemirowski wrote:
    >> https://en.cppreference.com/w/cpp/iterator/size
    >> A bodaj od 20 lat jest w boost.
    > Ale to trzeba zacząć C++ używać :)

    Tak. Trzeba zmienić 2 litery w nazwie kompilatora na dwa +.


  • 19. Data: 2023-05-18 14:59:43
    Temat: Re: Dziwny problem z kodem w C (gcc mips/pic32)
    Od: Dawid Rutkowski <d...@w...pl>

    czwartek, 18 maja 2023 o 14:39:29 UTC+2 heby napisał(a):
    > On 18/05/2023 13:54, Grzegorz Niemirowski wrote:
    > >> https://en.cppreference.com/w/cpp/iterator/size
    > >> A bodaj od 20 lat jest w boost.
    > > Ale to trzeba zacząć C++ używać :)
    > Tak. Trzeba zmienić 2 litery w nazwie kompilatora na dwa +.

    I to wystarczy, żeby sizeof zaczął oznaczać liczbę elementów tablicy?
    Analogicznie do dowodu nie wprost:
    "Jedna rana stanowczo śmiertelna, ale pozostałe dadzą się wyleczyć!"


  • 20. Data: 2023-05-18 15:04:27
    Temat: Re: Dziwny problem z kodem w C (gcc mips/pic32)
    Od: Marek <f...@f...com>

    On Thu, 18 May 2023 05:13:49 -0700 (PDT), Dawid Rutkowski
    <d...@w...pl> wrote:
    > t w tych 75k linii kodu? Bo można i tak,
    > choć ciekawi, jak te wyjątki obsługujesz.

    Wyjątki obsługuje funkcja przypisana do exception handler, ją już
    wywołuje core procesorami. Jest kilka wyjątków:

    static enum {
          EXCEP_IRQ = 0,            // interrupt
          EXCEP_AdEL = 4,            // address error exception (load or
    ifetch)
          EXCEP_AdES,                // address error exception (store)
          EXCEP_IBE,                // bus error (ifetch)
          EXCEP_DBE,                // bus error (load/store)
          EXCEP_Sys,                // syscall
          EXCEP_Bp,                // breakpoint
          EXCEP_RI,                // reserved instruction
          EXCEP_CpU,                // coprocessor unusable
          EXCEP_Overflow,            // arithmetic overflow
          EXCEP_Trap,                // trap (possible divide by zero)
          EXCEP_IS1 = 16,            // implementation specfic 1
          EXCEP_CEU,                // CorExtend Unuseable
          EXCEP_C2E                // coprocessor 2
      } _excep_code;


    Oczywiście można po wyjątku wyjść z handlera i działać dalej ale w
    moim przypadku handler zapamiętuje co i gdzie się wydarzyło i
    zatrzymuje kod aż watchdog zresetuje procesor.

    Kiedyś na MZ zrobiłem małego OSa z ochroną pamięci, obsługą pamięci
    wirtualnej i TBLami, ładowaniem procesów itp... Skończyło się tylko
    na tym, że jeden proces wypisywał AAA a drugi BBB na konsoli
    (zbieżność z początkiem innego OSa przypadkowa).
    Zresztą na MZ można uruchomić pełnego Linuxa więc....

    --
    Marek

strony : 1 . [ 2 ] . 3 ... 10 ... 18


Szukaj w grupach

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: