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 2048 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?
  • REKLAMA
  • #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  
  • #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

LABEL_AI_GENERATED
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.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA