Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Debug 18f97j94
#1
Imam PicKit3.

I ne znam zašto ali nikako ne mogu dobiti da mi radi debug na 18f97j94.


Do sada sam radio na nekom gotovom kodu, koji su mi poslali i ustvari više manje čistim kod, ništa prestrašno.

Ali sljedeći zahtjev je dodati bootloader.

Uzeo sam gotov USB bootloader i jedva našao što trebam napraviti da napravim offset, ali sada imam nakih sitnih problema koje je bez debugera teško riještit.

Tipa serial mi nije više iste brzije, pa dobijem smeće.

Sličan pic - sa istim bootloaderom za njega uredno mogu debugirati ....
Reply
#2
A samo usput ako netko ne zna jer sam jedva našao, ovo je procedura za offset ako je kod u C18 pisan (taj moj je)

https://stackoverflow.com/questions/2402...t#24068987

Jedan od razloga zašto ne volim PIC su i ovakve procedure koje nikome razumnom ne bi pale napamet.

Vidio sam da drugi compileri imaju u meniju za postaviti offset, ali C18 nema Sad

Drugi razlog je što se uvijek iznerviram sa hrpom verzija C-a samo da bi se nešto prodalo, nešto bilo skuplje nešto jeftinije rade užasne komplikacije nekome tko želi programirati ...

Treći je ta fora da DEBUG-om, pa dao sam 100$ za pickit očekujem da imam neki support za mikrokontrolere i da mi radi debug, a ne samo točenje koda.

Isprike svim ljubiteljima PICa Smile
Reply
#3
Pogledaj Cypress mikrokontrolere http://www.cypress.com imaju riješenja tipa arduino,ST i sl. samo puno bolje softverski riješeno i relativno lako za programiranje. Imaš raznih modula, sa DACevima,OPampovima i sve je to implementirano u FPGA čipac. Cijene su od nekih 5$-20$ zavisno o broju I/O,veličini FPGA čipa i sl.

Skineš njihovo razvojno sučelje i onda što je malo glupo, trebaš za svaki taj "modul" instalirati njegove drivere i onda samo iz menija odabereš koji modul hoćeš da programiraš. Dosta programiranja se može svesti i na klikanje po checkboxovima, ukucavanje jednostavnih parametara. Recimo za jednostavni generator sinusnog signala, ukucaš frekvenciju, sample rate, odabereš na koji izlaz ćeš dobiti signal i to je to. Naravno imaš i editor koda pa možeš sve to i ručno pisati i prepravljati kod kako ti odgovara.
Reply
#4
C18 je jako stari kompejler, ako se ne varam to je jos Hi-teck pravio, u medjuvremenu su promenili 3 puta kompajlere, sada je aktuelan XC8.

PicKit2 a i PickPit3 sam imao, koristio i na karaju poklonio kolegama jer nisam mogao da ga "trpim", posle sam uzeo ICD2 nadajuci se da je drasticno ozbiljniji, hehe, ma to sve isto radi ...

I tad sam resio da potpuno batalim Microchip PIC i predjem na STM32, daleko ozbiljnija prica koja radi drasticno bolje za jos manje para (programator StLink dolazi uz Discovery i Nucleo plocice ili se pravi za 3$ od BluePill), debuger radi fenomenalno ...
Reply
#5
Ako te bude interesovao STM32, ovde imas sazeto uputstvo za pocetnike, kako podesiti Keil i ukratko objasnjen Blinky Led primer sa ostvrtom na low-level registre i dokumentaciju za njih:
http://www.elitesecurity.org/p3794487

Znam da je malo teza ta "tranzicija" sa PIC na STM32, posebno ako imas svoje vec gotove programe ali veruj mi da vreti ulozen trud, lagano istrazis jedno po jedno i posle mozes da se javis u ovoj temi Wink
https://forum.yu3ma.net/thread-1844.html
Reply
#6
Dobro došao u klub nezadovoljnih korisnika Microchip softvera.
Nažalost situacija je upravo takva kako si opisao.

Microchip još uvek izrađuje odličan hardware, ali softver i debug alate su totalno pogrešno razvijali poslednjih 7 godina.
Reply
#7
Inace i STM-ovi alati rade potpuno istu stvar kada je debugging u pitanju, i tamo mora da se promeni start adresa glavnog programa jer se u gornjim adresama ucitavju debuging rutine, to je normalan sled operacija, samo sto nije normalno da to kod Microchip ne radi na prvu nego mora da se cacka po podesavanjima.
Na nekom zadnjem programu koji sam radio za PIC18F4550 sam dosao bas u taj problem, kada ukljucim debuger onda nesto ne radi, zaboravio sam sta tacno, bas sam se bio iznervirao i pokusavao sam da resim i nisam uspeo. Projekat sam zavrsio bez debuggera i to je zadnji PIC projekat koji sam radio Smile
Reply
#8
Microchip je imao svoj C kompajler a Hi-Tech svoj, pri čemu je ovaj drugi bio bolji. Onda je Microchip kupio Hi-Tech i nešto kasnije je izašao XC8, XC16 i XC32.
Moja ti je preporuka da, pošto ne možeš da menjaš mikrokontroler, bar pređeš na XC8. Ja sam sve novije radio sa besplatnom verzijom XC8. Da budem konkretniji, pre nego sam prešao na STM32 Big Grin
Ne znam zašto kod konkretnog PIC ne radi debug ali, po onome kako si opisao problem, čini mi se da nisi uradio kako treba to pomeranje. Tome u prilog ide činjenica da ti recimo, uart ne radi kako treba. Ako uspeš da oporaviš uart probaj kratke debug poruke da šalješ preko njega.
Dobar je Microchip još uvek. Bacite pogled na stranicu gde je PIC16F84A info. Stoji i dalje: In Production. Drugim rečima ako si nešto sa njim napravio pre 20 godina, miran si još...
Reply
#9
Što se tiče proizvodnje, tu je microchip kralj Smile
Oni stvarno ne gase proizvodnju svojih čipova, ako se ne koriste eventualno malo poskupe i to je to.

Eh, da je barem tako lako ovo što ste naveli gore.
To je kod koji neki ljudi pišu 2-3 godne i ja sam bio zadužen da popravim dio sa velikom potrošnjom baterije + nešto malo unaprijedim LoRaWAN dio jer su krivo razumjeli.
A moj je bootloader zadatak (koji se je danas još više zakomplicirao) sa već napisanim kodom sa C18 bez velikih izmjena tog koda dodati bootloader, druge opcije za ovaj posao ne dolaze u obzir. S tim da moram vjerojatno prepraviti dosta toga u bootloaderu jer već postoji "njihov" software sa kojim mora raditi.

Pokušati ću još malo pregledati, ali nisam počeo sa pomicanjem njihovog koda, nego sam napisao i jednostavan timmer blink led.
I led ne blinka, ali kod radi jer ako stisnem tipku koja mi je u main loopu, on skoči nazad na bootloader.
Pa me vjerojatno muči nešto tipa pomicanje adrese vektora (valjda se to tako zove) ...

Što se tiče stm32 (sa njime radim 2 godine na poslu i doma) i zadovoljan sam.
Ima tu puno gluposti ali i dalje mi se čini nekako bliži korisniku.
Ono što mi je kod njega recimo najbitnije da mi sve radi iz linux konzole i kompajliranje i debug i to mi je onda najbrže posložiti gdje god da jesam.
ovako izgleda iz konzole debug Smile
https://asciinema.org/a/128380
to sam davno nešto snimao

@mikikg : Ovaj Tutorijal koji si poslao je super jedino mislim da keil nije beslpatan za F1 seriju znam da je za L0 i F0 sa njima sam radio u njemu ...

A što se tiče ostalih mikrokontrolera i FPGA, stalno eksperimentiram i testiram nove platforme, tako da skoro da nema nečega sa čime se nisam poigrao ...
Reply
#10
Daj ovde map fajl tog tvog projekta gde ti ne radi blink led pa da pogledamo.
Reply
#11
(10-23-2018, 02:05 PM)gorankg Wrote: Daj ovde map fajl tog tvog projekta gde ti ne radi blink led pa da pogledamo.

uhh hvala to bi bilo super, moram ga samo ponovno pregledati dok dođem doma, jer sam imao neku pauzu, a imam nekoliko verzija (različite neuspješnosi)

Ubacim ovdje - vjerojatno sutra ...
Reply
#12
Obrati паžnju na sledeće:


Because PIC18FXXJ94 devices do not have persistent
configuration memory, the top eight words of on-chip
program memory are reserved for configuration informa-
tion. On Reset, the configuration information is copied
into the Configuration registers.

Gde su ti završili Konfiguracioni registri nakon pomeranja?
Reply
#13
(10-23-2018, 02:22 PM)gorankg Wrote: Obrati паžnju na sledeće:


Because PIC18FXXJ94 devices do not have persistent
configuration memory, the top eight words of on-chip
program memory are reserved for configuration informa-
tion. On Reset, the configuration information is copied
into the Configuration registers.

Gde su ti završili Konfiguracioni registri nakon pomeranja?

hmmm, to bi moglo objasniti zašto nešto ne radi. 

Makar mi je čudno da onda uopće radi booltloader i prepozna ga na USB-u - i mogu mu staviti novi kod, koji može otići nazad u bootloader.

I to isto nisam siguran niti sam našao negdje, da li kod startanja aplikacije mogu promjeniti CONFIG registre ili moraju biti isti kao u bootloader-u.

Ali najviše sam lud na to što mi ne radi debug Sad

Možda mogu nekako externo debug raditi?

Inače davnih dana sam kupio genijalan PIC simulator - autor je negdje sa ovih prostora i još uvije imam ključ, ali ne podržava taj PIC pa ne mogu u njemu provjeriti registre nakon startanja.
Reply
#14
(10-23-2018, 01:52 PM)Goran.Mahovlic Wrote: @mikikg : Ovaj Tutorijal koji si poslao je super jedino mislim da keil nije beslpatan za F1 seriju znam da je za L0 i F0 sa njima sam radio u njemu ...

Bio je bespletan za sve serije, limit je bio na code size-u, moglo je besplatno do 64kB programa da se pise, jedino ako su to promenili u medjuvremenu
Reply
#15
(10-23-2018, 05:37 PM)mikikg Wrote:
(10-23-2018, 01:52 PM)Goran.Mahovlic Wrote: @mikikg : Ovaj Tutorijal koji si poslao je super jedino mislim da keil nije beslpatan za F1 seriju znam da je za L0 i F0 sa njima sam radio u njemu ...

Bio je bespletan za sve serije, limit je bio na code size-u, moglo je besplatno do 64kB programa da se pise, jedino ako su to promenili u medjuvremenu

Ako je bio free moguće da je i dalje.

Znam jedino da je ST kupio Atolic (u pozadini je koliko ja znam eclipse) i da je on free za sve serije STM-a

Samo meni se uopće ne da u windowse za "kućne projekte" pa mi je puno rađe raditi iz linux-a iz konzole.
Doduše treba nešto više vremena kada zapne, ali usput se i puno toga nauči,pa mi nije neki problem...

PIC je s te strane recimo OK MPLAB mi radi u linux-u isto kao u windowsima ...
Reply
#16
Za ARM generalno je odlicna podrska na svim platformama, za linux cuveni "arm-none-linux-gnueabi-gcc" radi kao sat, na tome se vrti prakticno cela Android i RPi ekipa a to je mnooooogoooo developera i korisnika tako da ima ceo spektar raspolozivih alata i vecina radi skoro savrseno.

Moja preporuka za sve developere je da se drze sto je moguce vise GNU alata i standardnih biblioteka jer su se pokazali vrlo robusnim i pouzdanim i sto je najbitnije to vam je prakticno resenje za bilo koju platformu trenutno koja ima na trzistu i programi mogu uz manje-vise vecih izmena da se portuju na bilo koji CPU/MCU. Developerima se tako daje sloboda da svoje programe vise ne moraju da vezuju za nekog konkretnog proizvodjaca procesora nego mogu da biraju celu paletu rasplozicih procesora, ima tu i Silicon Labs, NXP, Maxim, Texas Instruments i jos mnooogo drugih varijanti a pokrece ih jedan te isti program ... ELF executable pa teraj Smile
Reply
#17
Bas pre neki dan sam cackao nesto za ARM u C/C++ za RPi i trebao mi je SHA256 algoritam, imao sam source od Maxim-ove univerzalne implementacije u par source skripti koja je proradila bez problema, medjutim setim se da ja nisam u obavezi da koristim njihove rutine nego mogu da uzmem iste te rutine iz OpenSSL biblioteke i probam njih i na divno cudo naravno da su davale iste rezultate racuna ali su mi ove OpenSSL radile tacno duplo brze!
Na primer ta OpenSSL biblioteka je jedna od najvise moguce koriscenih i testiranih biblioteka trenutno na svetu, tu je ispeglano sve do zadnjeg bita i naravno da cu da koristim takvu biblioteku nego da ja cackm po tome sam ili pravim neke fraknkenstajne : )
Reply
#18
Napravi import tog hex-a u MPLAB. Production -> Set Configurations Bits i videćeš šta ti je postavljeno. Ako nije dozvoljen preko config bits nema DEBUG-a.

Vrlo je verovatno da se u tvom slučaju PIC vrti na drugoj frekvenciji (možda probaš i to) ako si postavio da ti je aktivan PLL. Zato ti ne radi UART kako treba.

Možeš i bilo kojim hex editorom da uporediš regularan i onaj hex koji ti ne radi.
Reply
#19
(10-23-2018, 02:39 PM)Goran.Mahovlic Wrote: I to isto nisam siguran niti sam našao negdje, da li kod startanja aplikacije mogu promjeniti CONFIG registre ili moraju biti isti kao u bootloader-u.
Kod pic18f97j94 možeš da promeniš ove config bitove koji su u flash-u ali oni postaju validni tek kad uradiš reset.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)