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

Jak przekonwertować plik C++ na HEX dla mikrokontrolera PIC16F84A?

kow 22 Kwi 2007 19:55 2258 11
REKLAMA
  • #1 3811610
    kow
    Poziom 13  
    Posty: 113
    Ocena: 15
    Zaczynam zabawę z mikrokontrolerami, a dokładnie to z PIC16F84A i mam w związku z tym kilka pytań do osób znających się na rzeczy. Program mam napisany w C++. Jakiego programu użyć, aby zamienić ten plik na rozszerzenie *.hex ? Czy zamieniając plik *.c na *.hex, wskazuję dla jakiego procesora będzie wgrywany program ? Program jakiego używam w programatorze to WinPic.
  • REKLAMA
  • #2 3811761
    tomj7
    Poziom 19  
    Posty: 404
    Pomógł: 5
    Ocena: 25
    Napewno C++ a nie C ?
    Z tego co mi wiadomo nie ma kompilatora C++ na PIC.

    Aby zamienić C na .hex musisz skompilować ten plik.
    Zależy jeszcze pod jaki kompilator został napisany ten plik C.

    Zacznij od tych stronek:
    
    http://www.microchipc.com/
    http://www.ccsinfo.com/
    
  • REKLAMA
  • REKLAMA
  • #4 3811814
    starob
    Poziom 29  
    Posty: 1088
    Pomógł: 128
    Ocena: 137
    1.Nie C++ tylko C.
    2.Program w C jest (lub nie jest:)) zrozumiały dla ciebie.
    3.Plik .hex jest programem zrozumiałym dla procesora.
    4.Program zmieniający z C na hex nazywa się kompilatorem.
    5. Kompilator jest dedykowany dla określonej rodziny procesorów np. AVR,8051,PIC... , Jednak w większości przypadków trzeba sprecyzować typ.

    Znalazłem coś takiego http://www.htsoft.com/products/compilers/PICClite.php
    oraz
    http://sdcc.sourceforge.net/
    który lepszy nie mam zdania
    Na pewno trzeba mieć http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en019469
  • REKLAMA
  • #6 3812335
    fantom
    Poziom 31  
    Posty: 1649
    Pomógł: 108
    Ocena: 41
    LashloE napisał:
    Ja pod Linuksem zrobił bym to poleceniem:
    avr-objcopy -O ihex nazwa_binarki_c++ nazwa_heksa.hex

    I po bólu.

    Ta... avr-gcc jest szczegolnie przydatny w przypadku PIC-ow.
    Cytat:
    3.Plik .hex jest programem zrozumiałym dla procesora.

    Blad. Plik .hex jest zrozumialy dla programatora a nie dla procesora. Nie jest to czysty obraz binarny.
  • #7 3812704
    kow
    Poziom 13  
    Posty: 113
    Ocena: 15
    Wielkie dzięki za informację.
    Sprawdzałem i mój plik źródłowy jest jednak *.c.
    Mam tylko problem z zainstalowaniem mplab.
  • #8 3814562
    kow
    Poziom 13  
    Posty: 113
    Ocena: 15
    Zainstalowałem Mplab. Ściągnąłem Picclite, ale po instalacji nie mam pliku *.exe. Proszę o info co do instalacji tego Picclite.
    Co należy zrobić później, aby skompilować ten plik *.c na *.hex dla procesora PIC16F84A ?
  • #9 3814758
    piti___
    Poziom 23  
    Posty: 623
    Pomógł: 67
    Ocena: 9
    witam

    W MPLAB wybierasz nowy projekt nastepnie w kreatorze wybierasz model uC, katalog projektu oraz z listy z jakiego kompilatora bedziesz korzystal, na liscie powinienes znalezc komipator piclite z hitecha.

    Przy okazji.. wszystko jest w pdf'ach z MPLAB i piclite.

    Pozdrawiam
  • #10 3814993
    kow
    Poziom 13  
    Posty: 113
    Ocena: 15
    W MPLAB wybrałem nowy projekt. Gdzie zanjduje się kreator, w którym mam wybrać model uC, katalog projektu, listę kompilatorów?
    Proszę o odpowiedź, bo dopiero uczę się na tych programach.
  • #11 3815076
    piti___
    Poziom 23  
    Posty: 623
    Pomógł: 67
    Ocena: 9
    Menu Project >> Project Wizard...
    1. wybierasz procesor
    2. wybierasz toolset (kompilator)
    3. katalog projektu
  • #12 3817403
    kow
    Poziom 13  
    Posty: 113
    Ocena: 15
    Wybrałem procesor (w moim przypadku PIC16F84A), wybrałem kompilator, tylko nie wiem co to znaczy katalog projektu. Gdzie wskazuję plik źródłowy *.c do kompilacji?
    Proszę o info co robić dalej.

    Dodano po 1 [godziny] 41 [minuty]:

    Proszę o info co zrobić, aby z *.c zrobić *.hex dla PIC16F84A -program MPLAB + PICCLITE.

    Dodano po 48 [sekundy]:

    Proszę o info co zrobić, aby z *.c zrobić *.hex dla PIC16F84A -program MPLAB + PICCLITE.

    Dodano po 1 [godziny] 55 [minuty]:

    Jak skompilować ten plik *.c na *.hex ???

Podsumowanie tematu

✨ Aby przekonwertować plik źródłowy napisany w języku C (nie C++) na plik z rozszerzeniem *.hex dla mikrokontrolera PIC16F84A, należy użyć dedykowanego kompilatora przeznaczonego dla rodziny PIC, który generuje plik hex z kodem maszynowym. Popularnym narzędziem jest kompilator PICCLite firmy Hi-Tech, który można zintegrować z środowiskiem MPLAB firmy Microchip. W MPLAB należy utworzyć nowy projekt, wybrać model mikrokontrolera (PIC16F84A), wskazać kompilator (np. PICCLite) oraz katalog projektu. Plik źródłowy *.c dodaje się do projektu, a następnie kompiluje, co generuje plik *.hex. Plik hex jest formatem zrozumiałym dla programatora (np. WinPic), a nie bezpośrednio dla procesora. Alternatywnie, na systemach Linux można użyć narzędzia avr-objcopy do konwersji binariów na format hex, jednak jest to bardziej typowe dla mikrokontrolerów AVR. Ważne jest, aby kompilator był dedykowany dla konkretnej rodziny i modelu mikrokontrolera, co pozwala na poprawne wygenerowanie pliku hex do wgrania do PIC16F84A.
Wygenerowane przez model językowy.
REKLAMA