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

Błąd kompilacji LPC1114 w Keil: Niezdefiniowane identyfikatory IODIR, IOSET

MPelitt 10 Cze 2012 00:33 2036 7
REKLAMA
  • #1 10984939
    MPelitt
    Poziom 9  
    Posty: 5
    Witam mam problem ktory strasznie mnie irytuje i internet milczy na ten temat a mianowicie mam program
    #include <lpc11xx.h>
    int main ()
    {
    	IODIR = (1<<15);
    	IOSET = (1<<15);
    	for(;;);
    }
    


    i przy kompilacji wywala mi taki blad
    1.c(4): error:  #20: identifier "IODIR" is undefined
    1.c(5): error:  #20: identifier "IOSET" is undefined
    1.c - 2 Error(s), 0 Warning(s).

    O co Chodzi?

    Ucze sie z ksiazka Pawla Borkowskiego AVR & ARM7 programowanie mikrokontrolerow dla kazdego
  • REKLAMA
  • #2 10984970
    mickpr
    Poziom 39  
    Posty: 4630
    Pomógł: 579
    Ocena: 295
    IOSET i IODIR nie było czasem w procesorach ARM7 (LPC21xx)?
    Ty masz zaś Cortex M0!
    Blink - jeśli masz Keila znajdziesz w EXAMPLES (podkatalog katalogu Boards)
  • REKLAMA
  • #3 10985688
    MPelitt
    Poziom 9  
    Posty: 5
    Boze daj mi cierpliwosci na forum Forbot'a jest akurat kurs pod mojego zestawu uruchomieniowego ARM ale uzywaja do tego LPCXpresso zamaist Keil'a, jestem za zielony zeby bawic sie w Keil'u Cortex M0 tam jest wybrakowany bo do LPC11xx korzysta sie z takiej funkcji
    LPC_GPIO0->DIR |= _BV(6);
    ale zas nie wie co to _BV i co poradzic?
  • #4 10985964
    mickpr
    Poziom 39  
    Posty: 4630
    Pomógł: 579
    Ocena: 295
    MPelitt napisał:
    _BV

    Bit Value - czyli zamiana numeru bitu na jego wartość bitową.
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod
  • #5 10986044
    MPelitt
    Poziom 9  
    Posty: 5
    O dzięki wielkie za pomoc! :D Ale złośliwość rzeczy martwych jest ogromna i kolejny problem mam, może ktoś będzie ptrafil mi pomoc, używam LPCXpresso i jest napisane tak w kursie

    Teraz możemy otworzyć katalog z naszym kodem wynikowym. Niestety czeka nas niemiła niespodzianka. Domyślnie tworzony jest plik wynikowy w formacie .axf, zamiast oczekiwanego .hex.
    Musimy zmienić konfigurację kompilatora.
    Wybieramy opcję „Project”->”Properties”. Odnajdujemy zakładkę „Build Steps”, a następnie w okienku „Post-build steps” wpisujemy w pole „Command” polecenie:
    
    
     [code]   arm-none-eabi-objcopy -O ihex ${BuildArtifactFileName} ${BuildArtifactFileBaseName}.hex[/code] 
    i po skompilowaniu mam taki blad
    d:\nxp\LPCXpresso_4.2.3_292\lpcxpresso\tools\bin\arm-none-eabi-objcopy.exe: supported targets: elf32-littlearm elf32-bigarm elf32-little elf32-big srec symbolsrec verilog tekhex binary ihex
    make[1]: [post-build] Error 1 (ignored)


    Co zrobiłem źle? Na google szukałem pod hasłem LPCXpresso hex ale nigdzie nic nie znalazłem co by mogło rozwiązać mój problem ;/
  • REKLAMA
  • #6 10986071
    mickpr
    Poziom 39  
    Posty: 4630
    Pomógł: 579
    Ocena: 295
    Ja nie rozumiem jednej rzeczy - Używsz Keila czy LPC Xpresso?

    Pobierz sobie (do nauki) środowisko www.CooCox.com
    Jest oparte o Eclipse - ma szereg kreatorów, na stronie jest nawet AVI z tym jak to wszystko uruchomić.
    Pobierasz i instalujesz CoCenter - resztę instalujesz z jego poziomu.

    Jak opanujesz to narzędzie - przyjdzie czas na Keila (o ile Cię stać).
    LPCXpressto to moim zdaniem pomyłka (z tym ograniczaniem długości kodu)

    Sam korzystam z Code Sourcery + Eclipse + plugin.

    Jeśli zaś masz płytkę LPC Xpresso - no cóż - pozostaje ci LPC Xpresso,
    tylko że wtedy HEX ci jest niepotrzebny - bo masz programator na płytce.
    (Nawiasem mówiąc - ten programator ma spore ograniczenia długości kodu i działa tylko pod LPC Xpresso, ale do LPC1114 powinien wystarczyć).
  • #7 11066225
    Konto nie istnieje
    Konto nie istnieje  
  • REKLAMA
  • #8 11067295
    mickpr
    Poziom 39  
    Posty: 4630
    Pomógł: 579
    Ocena: 295
    karol_85 napisał:
    A co za problem zarejestrować się na stronie i za darmo uzyskać kod aktywacyjny

    Długość ograniczenia kodu zarejestrowanego LPC Xpresso - 128kB
    A jak mam LPC1758 z 512kB Flash?
    A jak mam board LPC Xpresso LPC1769?

    Nie zamierzam płacić za zamknięte środowisko, gdy takie same mam po zintegrowaniu CodeSourcery + Eclipse i ARM plugin.

Podsumowanie tematu

✨ Użytkownik napotkał błąd kompilacji w programie dla mikrokontrolera LPC1114, związany z niezdefiniowanymi identyfikatorami IODIR i IOSET. Odpowiedzi wskazują, że te identyfikatory są specyficzne dla procesorów ARM7 (LPC21xx), podczas gdy LPC1114 to Cortex M0, co wymaga użycia innej składni, np. LPC_GPIO0->DIR. Użytkownik zadał również pytanie o konwersję plików wynikowych w LPCXpresso, gdzie domyślnie generowany jest plik .axf zamiast .hex. Wskazówki dotyczące zmiany konfiguracji kompilatora oraz alternatywne środowiska programistyczne, takie jak CooCox, zostały również zasugerowane.
Wygenerowane przez model językowy.
REKLAMA