Fórum témák
» Több friss téma |
Fórum » PIC - USB - PC projekt
Elküldenéd nekem az eredeti C programot nekem, amiből a .hex file-t csináltad?
Én rontottam el azzal, hogy ellenőrizetlenül küldtem egy olyan HEX-et, ami nem jó a HID bootloaderhez (nem a 0x1000 címen kezdődik)! S nem hívtam fel a figyelmedet, hogy a második változatot kell használni.
A PIC-ből kiolvasott programok pedig azért lettek nagyobbak az eredetijüknél, mert a nem használt memória területeket is tartalmazzák - fölöslegesen. Idézet: Már rég ott van a gépeden! „Elküldenéd nekem az eredeti C programot nekem, amiből a .hex file-t csináltad?”
A gépemen van? Hol?
A tőled letöltött tömörített állományban megtaláltam a hello-poll.c nevű file-t. Ugyan az mint a PICCOLO projektben leírtak. Akkor most az a kérdésem, hogy mi változott a két .hex-a file között. Vagy mi változott az eredeti C programban. Én a PICCOLO projektben leírt c programot pötyögtem be a gépbe és az sem futott, akkor a C programban valahol változás?
Nincs változás, a PICCOLO projekt honlapjáról letöltött program jó úgy, ahogy van (kivéve, ha a telepítési útvonalaid mások, de ezt már megtárgyaltuk korábban).
Próbáld meg lefordítani, aztán meglátjuk, mi az eredmény!
Megpróbáltam, begépeltem a progit és le is fordítottam. A .hex-a filet feltöltöttem a PIC-re, de nem működik. Mellékelem a .c filet és a .hex filet. Mit rontottam el?
Idézet: Miért kell begépelni, amikor a letöltött mintaprogramok között ott van a teljes projekt? „begépeltem a progit és le is fordítottam.” ![]() Idézet: Azt, hogy nem nézted meg figyelmesen, hogy mit ír ki fordításkor az Output ablakba az MPLAB (be ne másold, én anélkül is tudom!). Nézd meg mégegyszer, s próbáld kitalálni, hogy mit konfiguráltál rosszul!„Mit rontottam el?” Ha a hex állományt megnézed, az első sorokból kiderül, hogy a hasonlóság ellenére most nem egészen olyan, mint a működőképes program eleje.
Neki álltam megkeresni a problémát. Először a PICCOLO projekt eredeti programját próbálom fordítani, de hibaüzenetet ír nekem:
Idézet: „D:\PIC\PIC18\include\piccolo_config.h:42:Error [1034] previous definition of macro 'USE_USB' does not agree ” De keresem a problémát... (Hagytam egyenlőre az általam pötyögött programot. ![]()
Idézet: Nem kellene két helyen definiálni az USE_USB makrót! Tedd kommenté a piccolo_config.h-ban, mert az .mcp állomány már definiálta!„previous definition of macro 'USE_USB' does not agree ?” A Project/Build Options/Project menüpontban a C18 fülnél lehet ilyen egyedi - nem minden projektre vonatkozó - beállításokat eszközölni.
Nem tudom mit csinálok rosszul. A programot tüzetesen átnéztem, becsatoltam minden állományt és még mindig hibát ír ki. Assembly-ben nem volt ilyen baj, ott mindent én írtam meg, nem kellett csatolgatni file-kat aminek a tartalmát az ember nem ismerte. El vagyok keseredve. Miért nem megy?
Ezt a hibát dobja: Idézet: „Error - could not find definition of symbol '__AARGB1' in file './usb_function_cdc.o'.” Az útvonal pedig be van állítva neki két helyre is. Külön-külön is megadtam az elérés meg egyszerre, de nem akarja az igazságot.
Idézet: „Nem kellene két helyen definiálni az USE_USB makrót! Tedd kommenté a piccolo_config.h-ban, mert az .mcp állomány már definiálta!” ...vagy ha mashol meg kell hasznalni a piccolo_config.h -ban levo makrot akkor #ifndef-be kell tenni...
Idézet: Na, és tudtál vele USB-t kezelni? „Assembly-ben nem volt ilyen baj, ott mindent én írtam meg, nem kellett csatolgatni file-kat aminek a tartalmát az ember nem ismerte.” ![]()
Azert a c-n innen is van elet.
Korabban ebben a temaban belinkeltem az altalam elkeszitett (es a C forrason alapulo) TELJESEN assembly USB kezelest. Tobbek kozott pic programozo es 12 csatornas EEG adatgyujto is fut vele. Idézet: Nem kétlem, de a bonyolult alkalmazások fejlesztése abban is bonyolult. S ha valaki nem maga írja, akkor ugyanezekkel a problémákkal (pl. becsatolás, nem ismeri a tartalmát) ugyanúgy meg kell szenvedni. „Azert a c-n innen is van elet.”
Sziasztok!
Icserny, nem adom fel a dolgot a C-vel, meg fogom csinálni. Lehet, hogy addig sokat fogok még tőled kérdezni, de megcsinálom. ![]()
Szia bbalazs_!
Ha nem nagy kérés, akkor megadnád annak a hozzászólásodnak a számát, amihez csatoltad ezt az assembly-s USB kezelést? Köszönöm!
Idézet: Bővebben: Link1 és Link2 „megadnád annak a hozzászólásodnak a számát, amihez csatoltad ezt az assembly-s USB kezelést?”
Idézet: Én már elvesztettem a fonalat. Most hol tartunk? „nem adom fel a dolgot a C-vel, meg fogom csinálni.”
![]() Nem tudtam a C programot lefordítani, mert nem jól csatoltam a header file-kat. De még küzdök...
Valamit nem értek: szerintem nem kellett csatolnod semmit, hiszen a letöltött csomagban kész projektet kaptál. Csak a telepítési útvonalakat kell(ett volna) átírni az .mcp fájlban, ha nem oda telepítetted a fejlesztői programokat, ahová én.
A legutolsó hibajelzésnél, ahol én elmaradtam, pedig egy olyan útvonal lett elbabrálva, amihez hozzá sem kellett volna nyúlni, mert a projektekben - ahol lehet - direkt relatív útvonalakat adok meg. Az ilyen bosszantó hibák (amelyeken mindannyian átesünk) csak nagyobb odafigyeléssel, nem pedig a programozási nyelv váltásával lehet elkerülni.
Sziasztok!
Most tudtam megint leülni a "projekthez", kicsit elfoglalt voltam. Nos most azt próbálom, hogy a megfelelő helyre másoljam át a programot, hogy az MPLAB megfelelően lefordítsa az eredeti hello-poll.c. A kitömörített PICOLLO projektet a C: meghajtóra másoltam át, így néz ki most C:/PIC18. De a fordító még mindig hibát ír ki, nem fordítja le a c programot. Beállítottam az elérési utakat. Most mit csináljak?
Idézet: Legalább a hibaüzeneteket bemásolhatnád! „Most mit csináljak?”
A hello-poll-4550.mcp állományban mi van a dir_inc= és dir_lib= kezdetű sorokba írva? Nálam így néznek ki ezek a sorok:
dir_inc=..\include;..\Microchip\Include;..\Microchip\Include\USB;C:\Program Files\Microchip\MCC18\h;. dir_lib=C:\Program Files\Microchip\MCC18\lib Nálad csak a pirossal jelzett bejegyzések különbözhetnek (a C18 fordító telepítési útvonalénak megfelelően), a többihez tilos hozzápiszkálni!
Akkor a kettő összehasonlításából már látod, hogy mit kell (vissza)változtatni. A dir_inc sor így nézzen ki:
dir_inc=..\include;..\Microchip\Include;..\Microchip\Include\USB;C:\Program Files (x86)\Microchip\MCC18\h; A sorrendre is figyelj oda! Egyébként a C18 telepítési útvonal nálad hogy néz ki? Pl. az MCC18-ból közvetlenül nyílik a /h és /lib könyvtár? Vagy van közte egy verziószám?
A C18 telepítési útvonal nálam így néz ki:
C:/Programfájlok(x86)/Microchip/MCC18 A /h és a /lib könyvtárak közvetlenül innen nyílnak, nincsen köztük verzió számmal ellátott könyvtár. Beírtam amit mondtál az.mcp file-be, de nem jó. Ezt az üzenetet küldi nekem a program:ű Idézet: „---------------------------------------------------------------------- Release build of project `C:\PIC18\usb\hello-poll-4550.mcp' started. Language tool versions: mpasmwin.exe v5.42, mplink.exe v4.40, mcc18.exe v3.40, mplib.exe v4.40 Mon Dec 05 06:19:41 2011 ---------------------------------------------------------------------- Clean: Deleting intermediary and output files. Clean: Deleted file "C:\PIC18\usb\usb_descriptors.o". Clean: Deleted file "C:\PIC18\usb\usb_function_cdc.o". Clean: Deleted file "C:\PIC18\usb\usb_device.o". Clean: Deleted file "C:\PIC18\usb\piccolo_usb.o". Clean: Deleted file "C:\PIC18\usb\hello-poll.o". Clean: Deleted file "C:\PIC18\usb\hello-poll-4550.mcs". Clean: Done. Executing: "C:\Program Files (x86)\Microchip\mplabc18\v3.40\bin\mcc18.exe" -p=18F4550 /i"..\include" -I"..\Microchip\Include" -I"..\Microchip\Include\USB" -I"C:\Program Files (x86)\Microchip\MCC18\h" "..\common\usb_descriptors.c" -fo="usb_descriptors.o" -DUSE_USB -Opa- MPLAB C18 v3.40 (evaluation) Copyright 2000-2011 Microchip Technology Inc. Days remaining until evaluation becomes feature limited: 16 Executing: "C:\Program Files (x86)\Microchip\mplabc18\v3.40\bin\mcc18.exe" -p=18F4550 /i"..\include" -I"..\Microchip\Include" -I"..\Microchip\Include\USB" -I"C:\Program Files (x86)\Microchip\MCC18\h" "..\Microchip\USB\CDC Device Driver\usb_function_cdc.c" -fo="usb_function_cdc.o" -DUSE_USB -Opa- MPLAB C18 v3.40 (evaluation) Copyright 2000-2011 Microchip Technology Inc. Days remaining until evaluation becomes feature limited: 16 Executing: "C:\Program Files (x86)\Microchip\mplabc18\v3.40\bin\mcc18.exe" -p=18F4550 /i"..\include" -I"..\Microchip\Include" -I"..\Microchip\Include\USB" -I"C:\Program Files (x86)\Microchip\MCC18\h" "..\Microchip\USB\usb_device.c" -fo="usb_device.o" -DUSE_USB -Opa- MPLAB C18 v3.40 (evaluation) Copyright 2000-2011 Microchip Technology Inc. Days remaining until evaluation becomes feature limited: 16 Executing: "C:\Program Files (x86)\Microchip\mplabc18\v3.40\bin\mcc18.exe" -p=18F4550 /i"..\include" -I"..\Microchip\Include" -I"..\Microchip\Include\USB" -I"C:\Program Files (x86)\Microchip\MCC18\h" "..\common\piccolo_usb.c" -fo="piccolo_usb.o" -DUSE_USB -Opa- MPLAB C18 v3.40 (evaluation) Copyright 2000-2011 Microchip Technology Inc. Days remaining until evaluation becomes feature limited: 16 Executing: "C:\Program Files (x86)\Microchip\mplabc18\v3.40\bin\mcc18.exe" -p=18F4550 /i"..\include" -I"..\Microchip\Include" -I"..\Microchip\Include\USB" -I"C:\Program Files (x86)\Microchip\MCC18\h" "hello-poll.c" -fo="hello-poll.o" -DUSE_USB -Opa- C:\PIC18\include\piccolo_all.h:63:Warning [2105] * USE__USB : DEFINIÁLT * C:\PIC18\include\piccolo_all.h:70:Warning [2105] * USE__INTERRUPT : NEM DEFINIÁLT * C:\PIC18\include\piccolo_all.h:75:Warning [2105] * HID__BOOTLOADER : NEM DEFINIÁLT * C:\PIC18\include\piccolo_all.h:81:Warning [2105] *********************************************** MPLAB C18 v3.40 (evaluation) Copyright 2000-2011 Microchip Technology Inc. Days remaining until evaluation becomes feature limited: 16 C:\PIC18\usb\hello-poll.c:36:Warning [2066] type qualifier mismatch in assignment Executing: "C:\Program Files (x86)\Microchip\mplabc18\v3.40\bin\mplink.exe" /l"C:\Program Files (x86)\Microchip\MCC18\lib" "..\common\PIC18f4550.lkr" "usb_descriptors.o" "usb_function_cdc.o" "usb_device.o" "piccolo_usb.o" "hello-poll.o" /u_CRUNTIME /m"hello-poll-4550.map" /w /o"hello-poll-4550.cof" /uHID_BOOTLOADER /p18f4550 MPLINK 4.40, Linker Device Database Version 1.3 Copyright (c) 1998-2011 Microchip Technology Inc. Error - could not find definition of symbol '__AARGB1' in file './usb_function_cdc.o'. Errors : 1 Link step failed. ---------------------------------------------------------------------- Release build of project `C:\PIC18\usb\hello-poll-4550.mcp' failed. Language tool versions: mpasmwin.exe v5.42, mplink.exe v4.40, mcc18.exe v3.40, mplib.exe v4.40 Mon Dec 05 06:19:44 2011 ---------------------------------------------------------------------- BUILD FAILED ”
Idézet: Én szívesen elhinném, de az MPLAB mást mond:„A C18 telepítési útvonal nálam így néz ki: C:/Programfájlok(x86)/Microchip/MCC18 A /h és a /lib könyvtárak közvetlenül innen nyílnak, nincsen köztük verzió számmal ellátott könyvtár.” Executing: "C:\Program Files (x86)\Microchip\mplabc18\v3.40\bin\mcc18.exe" -p=18F4550 .... stb. Executing: "C:\Program Files (x86)\Microchip\mplabc18\v3.40\bin\mplink.exe" Idézet: Ez a kettő így üti egymást! Ha bootloadert használsz, akkor ne tiltsd le a piccolo-config.h állományban a HID_BOOTLOADER definiálását! (Erre már próbáltalak rávezetni a múltkor, de a jelek szerint sikertelenül) „Warning [2105] * HID__BOOTLOADER : NEM DEFINIÁLT C:\Program Files (x86)\Microchip\mplabc18\v3.40\bin\mplink.exe" .... /uHID_BOOTLOADER /p18f4550 ”
Köszönöm a segítséget sikerült életet lehelnem a programba.
![]()
Sziasztok!
Először is mindenkinek Kellemes Karácsonyi Ünnepet kívánok! Van egy újabb problémám. Lejárt a verziója a C18-as fordítómnak, de újra telepítettem. A programokat le is tudom fordítani, de nem tudom a bootloader-rel beégetni a PIC-be. De a régebbi hex file-t be tudom égetni. Szerintem beállítási probléma, de nem tudom mit kell beállítanom, hogy jó legyen.Segítsetek! |
Bejelentkezés
Hirdetés |