Fórum témák
» Több friss téma |
Fórum » PIC - Miértek, hogyanok haladóknak
Sziasztok!
Pontos vesszővel is ugyanaz a hiba: main.o(.text+0xa0): In function `init_xlcd': D:\mentesek\tavcso2012\szoftver\vezerles\main.c:50: undefined reference to `putsXLCD' Link step failed. A main.c 50.sorában nincs is semmi. A hibás sor az init.h 50.sorában van, ha kikommentelem akkor lefordul. Üdv kszabi Idézet: Olyan tényleg nincs, PutsXLCD-nek hívják.„undefined reference to `putsXLCD'”
Sziasztok!
Megakadtam egy problémával. Adott egy PIC32MX440f512h és egy ICD 2 programozó. Több azonos hardverben régebbi program frissítését szeretném megoldani. A hardver mind működőképes, viszont frissítéskor némely processzornál a következő hibaüzenetet kapom. : ...Connected Setting Vdd source to target Target Device PIC32MX440F512H found, revision = Rev 0x50900053 ...Reading ICD Product ID Running ICD Self Test ...Passed MPLAB ICD 2 ready for next operation Programming Target... ...Validating configuration fields ...Erasing Part ...Loading Program Executive ...Programming Boot Config (0x1FC00000 - 0x1FC003FC) ...Verifying Boot Config memory (0x1FC00000 - 0x1FC003FC) ICD0296: Failed CRC check (Mem='BootConfig' Expected=0xE232 Received=0xD903) ICD0275: Programming failed. Kb. Fele "elhal" így. Ezek után már nem tudok életet lehelni bele. Törlés utasítás után "blank checking"-re minden esetben "device not blank" választ kapok. Esetleg tud valaki ötlettel szolgálni, hogy mi a fene lehet? Amire felmegy a program, az megy jól.
Így már működik, köszi a segítséget.
Üdv kszabi
Lyukra futottam, nem tudom kipróbálni... Ugyanis az XC8 nem C18-kompatibilis abban az értelemben, hogy az extra dolgokat (pl. rom kulcsszó) nem támogatja (igazából nincs is szükség rá: ha const, akkor program flash-ba rakja, a különféle pointereket meg automatikusan kezeli). Elméletben van benne egy C18-kompatibilitás üzemmód, a gyakorlatban viszont nem sikerült bekapcsolni, mert akkor nem fordít le semmit... A C18 meg nem megy Linuxon.
Viszont azt megnéztem, hogy a HiTech-alapú XC8 v1.00 const-tal, rom nélkül gyönyörűen fordítja, úgy, ahogy kell. Csináltam 8 darab 128-byte méretű ilyen struktúrát, meg egy 256-byte méretű sima tömböt, ez utóbbi normál RAM-ba kerül, az 1KB-nyi konstans meg a program flash-be. Idézet: „Ha csak néhány sort (2 - 3 sort) fordítok be, akkor rendben megtörténik a linkelés is..” Ez azért lehet, mert 2-3 sor még befér a RAM-ba...
Szerintem van (vagy volt) MCC18 linuxra is, legalábbis az MPLAB-X alatt mintha használtam is volna. Ha máshogy nem, valami wine-nal biztos lehet futtatni. Majd hétvégén megnézem, hogy mennyire emlékszem rosszul
Azért ha tudod, hogy honnan lehet ezt letölteni (a webjükön nem találtam), ne tartsd magadban
Szia!
Egyre jobban nem értem... Az összes descriptor a RAM -ba másolódik! Miért? Pedig a ROM, const ROM vagy ROM const van előírva? Mindegy, fogja az egész tartalmat átmásolja a RAM -ba. Minek? Watt féle HID demo Idézet: Annak idején az alfa- vagy bétaverziós MPLAB X honlapján volt kitéve. Egy régi, használaton kívüli munkahelyi számítógépemen föltehetőleg van egy biztonsági másolatom róla. A jövő héten megpróbálom feltámasztani... „Azért ha tudod, hogy honnan lehet ezt letölteni”
Találtam itt egy linket, ezzel is lehet próbálkozni! A nevéből úgy tűnik, hogy C18 telepítő Linux-hoz.
Link: http://ww1.microchip.com/downloads/mplab/X/mplabc18-v3.40-linux-ful...er.run
Sziasztok!
A ROM probléma továbbra is megvan, sőt ROM -ra mutató pointerrel sem sikerült adatot kiolvasnom. Egy kis assembly betéttel megoldva. Működik... Találtam viszont egy poloskát a HID string kezelésében. Rettentő sok szöveget ad vissza - szerintem hibásan.
helyett ezt
használva csak annyi szöveget lehet kiolvasni, amennyit a táblázatba felvettünk. Idézet: „A ROM probléma továbbra is megvan, sőt ROM -ra mutató pointerrel sem sikerült adatot kiolvasnom.” Felgyógyítottam a lentebb belinkelt v3.40-es Linuxos verziót. Megnézegettem, hogy milyen kódot generál. Ha const struct van, akkor én is idata-ba kaptam a struktúrát, azaz foglalta a program flash-t is, meg a RAM-ot is. Ha viszont const rom struct volt, akkor ez a fordító is úgy dolgozott, ahogy kellett, csak a program flash-t töltötte. Nem lehet, hogy a ROM az egy üres #define a #define ROM rom helyett? Meg nem mindegy neki a pointer sem: ha a const rom struct címét berakom egy const BYTE * pointerbe, akkor lazán rossz kódot generál.
Sziasztok!
Újjabb problémám akadt az xlcd kezeléssel. Meghivom az OpenXLCD fügvényt, le is fordul, de az utasitásokat nem hajtja végre. Semmi nem jön a pic-ből, a tris regisztereket sem állitja be. A regiszter definiciókat beállitottam az xlcd.h-ban. Az OpenXLCD.c fügvényt egy helyen találtam meg az src mappában, egy tömöritett almappában. Ha ezt az egész mappát törlöm, a program akkor is lefordul. Hogy lehet ez, mi lehet itt elrontva? C30-at használok, 3.31 verziót. A pic dspic33ep. Üdv kszabi Idézet: Azt hiába állítod be, ha a hozzá tartozó könyvtári modult nem fordítod újra.„A regiszter definiciókat beállitottam az xlcd.h-ban.” A C30 gyári könyvtáraival nincs tapasztalatom, de valószínűleg ugyanaz a helyzet, mint a C18-nál: a lib könyvtárban gyárilag előfordított perifériakönyvtárak vannak, azt csatolja hozzá a lefordított tárgykódhoz a linker. Ha módosítod a láb hozzárendeléseket, akkor újra kell fordítani az egészet.
Szia!
Egyre érdekesebb... - Ha a
usb_descriptors.c:170:Error [1109] type mismatch in redeclaration of 'device_dsc' Ezek szerint írhatom át az egész USB descriptor kezelést? - Ha a string descriptort írom át
Érdekes, két napja gyötröm a C-t, az assemby betét 1 óra elett kész volt...
Ezt a "meglepő" kódrészletet találtam a Microchip libek között... (Include/Compiler.h)
Jó ötlet... Köszönöm. :kalap:
De Watt mást használt:
Így már érthető a másolás...
Szia!
Ennek a módositás utáni ujraforditásnak mi lenne a módja? Ha a libp33EP512MU810-coff.a -ra nyomok egy compile-t akkor 10 percig dolgozik, végül több száz hibával. Ha a c forásokon akarok módositani akkor is ez a helyzet? Át szeretném irni fix késleltetésre, mert sajnos későn olvastam a pic-kwik projektet és az adat vonalak nem 5V toleráns lábakon vannak. Köszi kszabi
C18-nál ha jól emlékszem van valamelyik mappában egy .bat fájl, amit ha elindítasz újraforgatja a könyvtári dolgokat. Talán C30-nál is megvan ez a lehetőség.
Szia! Nem nagyon változtattam a gyári dolgokon, mert sok esetben én sem értettem miért nem fordul le. Olvasom régóta a problémákat, de nem tudtam segíteni.
Idézet: Ezt a dokumentációból kell kideríteni. Én nem használom a gyári perifériakönyvtárakat. Ezt találtam a C30 doc mappában:„Ennek a módositás utáni ujraforditásnak mi lenne a módja?” Idézet: „Rebuilding the Peripheral Library The batch file makeplib.bat may be used to remake the libraries. The default behavior is to build peripheral libraries for all supported target processors; however, you may select a particular processor to build by naming it on the command line. For example, makeplib.bat 30F6014A will rebuild the library for the dsPIC30F6014A device.”
Szia!
Megy már mind a két formában. Csak egy kicsit el volt dugva a ROM definíciója..
Szia!
Nem kell feltétlenül újrafordítanod: ha a szükséges függvények fájlait ( busy.c, stb. ) és az xlcd.h-t a projekt mappába teszed, az #include "xlcd.h"-nál meg használod az idézőjelet, akkor a projekt mappában lévő fájlaidat fogja újrafordítani és akkor működik ( C18-nál legalábbis így jó!) ! Steve
valaki tudna segíteni abban, hogy a PIC simulator IDE-ben, hogyan lehet kezelni a PIC bemeneteit? Sehogy sem tudok rájönni.
Sziasztok!
Sikerült átirni a port definiciókat. A megoldás az lett amit kissi javasolt. Az összes .c file-ban át kell irni #include "xlcd.h"-ra. Próbálkoztam a makeplib.bat-tal, de kifogott rajtam. Köszi a tippeket, üdv kszabi
Advanced Midrange beépített USB modullal: 16F1454, 16F1455, 16F1459
Sajnos megint a D+ és a D- a ICSP PGD illetve PGC vonal...
Örülnék, ha valaki tudna segíteni a következő problémában:
adott egy félkész program, ami egy órát működtetne: SZÁM1EQU0x10 GOTOSZÁM2 SZÁM2EQU0x1 GOTOSZÁM3 SZÁM3EQU0x5 GOTOSZÁM4 SZÁM4EQU0x7 GOTOBEÁLLÍTÁS ;------------------------ BEÁLLÍTÁS CLRF PORTA BANKSEL TRISA CLRF TRISA BANKSEL PORTA CLRF PORTB BANKSEL TRISB CLRF TRISB BANKSEL PORTB CLRF PORTC BANKSEL TRISC CLRF TRISC BANKSEL PORTC CLRF PORTD BANKSEL TRISD CLRF TRISD BANKSEL PORTD ;CLRF SZÁM1 ;CLRF SZÁM2 ;CLRF SZÁM3 ;CLRF SZÁM4 GOTO FŐPROGRAMRÉSZ ;------------------------------ FŐPROGRAMRÉSZ INCFSZÁM1,F MOVFWSZÁM1 MOVWFPORTA XORLWD'9' BTFSSSTATUS,z GOTOFŐPROGRAMRÉSZ INCFSZÁM2,F MOVFWSZÁM2 MOVWFPORTB CLRFSZÁM1 GOTOFŐPROGRAMRÉSZ END -------------------------------------------------- nem igazán tudom lefoglalni a memóriaterületeket a különböző változókhoz. |
Bejelentkezés
Hirdetés |