[<<] [<] Page 1 of 1 [>] [>>] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Subject:
interpreting pikdev crash handler output
From: "Maxim Wexler" ####@####.#### Date: 4 Sep 2006 01:25:17 +0100 Message-Id: <a0811460609031724q63193672j7c9f322164a43f2d@mail.gmail.com> Hi group, pikdev is still crashing. This time I got as far as loading a file, this one: ; ******************************************* ; This program for the PIC16F874 solves the following program ; specification: ; 1. Have the processor toggle Port A <4> repeatedly. ; ******************************************* ; ; Filename: Toggle.asm ; Date: 31 January 2005 ; File Version: 1 ; ; Author: CDR Charles B. Cameron, USN ; Company: United States Naval Academy ; ; ; ******************************************* ; ; Files required ; ; p16f874.inc ; ; ******************************************* ; Notes: ; This program initializes PORT A <4> to 0. It then enters ; a perpetual loop, toggling the value of A<4> each time. ; ******************************************* list p=16f876 ; list directive to define processor #include <p16f876.inc> ; processor specific variable definitions __CONFIG _CP_OFF & _WDT_OFF & _BODEN_OFF & _PWRTE_ON & _HS_OSC & _WRT_ENABLE_ON & _LVP_ON & _CPD_OFF ; '__CONFIG' directive is used to embed configuration data within the .asm file. ; The labels following the directive are defined in the 16f874.inc file. ; See the data sheet for additional information on the configuration word. ; The particular choice given above turns code protection off, watch dog timer off, ; brown-out reset disabled, power-up timer enabled, HS oscillator mode selected, ; flash program memory write disabled, low-voltage in-circuit serial programming ; disabled, and data EE memory code protrection off. Other choices ; might be useful in certain circumstances. For example, if the watchdog timer ; were in use, replacting _WDT_OFF with _WDT_ON would be appropriate. ;***** VARIABLE DEFINITIONS ; Bits within PORTA ToggleBit equ B'00010000' ; Designates bit 4 of Port A. ; This is an open-drain output bit, so ; a pull-up resistor is needed. TRISAMask equ B'11101111' ; Make bit 4 of PORT A an output. ; Leave the rest as input bits. ADCON1InitMask equ B'00000110' ; Make all PORT A bits digital, not analog ; ******************************************* ORG 0x000 ; Start with the processor's reset vector clrf PCLATH ; Ensure page 0 is used goto main ; Go to beginning of program main ; ******************************************* ; Initialize registers as required ; ******************************************* bcf STATUS,RP0 ; Select Bank 0 bcf STATUS,RP1 clrf PORTA ; Initialize Port A by clearing the output latches. ; ******************************************* ; Switch to Bank 1 and continue doing initializations. ; ******************************************* bsf STATUS,RP0 ; Select Bank 1 movlw TRISAMask ; Initialize direction pins for Port A using TRISA. movwf TRISA movlw ADCON1InitMask ; Initialize the ADCON1 register to control which ; Port A pins use analog inputs. movwf ADCON1 bcf STATUS,RP0 ; Revert to Bank 0 ;main() ; This is the main program. It does only one thing: toggle PORTA<togglebit> loop movlw ToggleBit xorwf PORTA,f goto loop ; Repeat ad infinitum ; ******************************************* END ; directive to assembler: this is the end of the program And generating a hex file. Please note I'm using a *876. When I click 'Program' pikdev crashes with this crash handler message: Using host libthread_db library "/lib/libthread_db.so.1". `system-supplied DSO at 0xffffe000' has disappeared; keeping its symbols. [Thread debugging using libthread_db enabled] [New Thread 16384 (LWP 7869)] [KCrash handler] #6 0xb6b79bf9 in __gnu_cxx::__exchange_and_add () from /usr/lib/gcc/i686-pc-linux-gnu/3.4.6/libstdc++.so.6 #7 0x080803af in PicFactory::getPic (this=0x85af298, picname=0x846fa50 "p12c508") at basic_string.h:219 #8 0x080739bd in PikMain::burnChipFile (this=0x823cdb0) at PikMain.cpp:826 #9 0x0807433a in PikMain::burnChip (this=0x823cdb0) at PikMain.cpp:739 #10 0x0809f553 in PikMain::qt_invoke (this=0x823cdb0, _id=79, _o=0xbfb13250) at PikMain.moc.cc:251 #11 0xb64b467c in QObject::activate_signal (this=0x821cb40, clist=0x8241990, o=0xbfb13250) at qobject.cpp:2355 #12 0xb64b44d4 in QObject::activate_signal (this=0x821cb40, signal=2) at qobject.cpp:2324 #13 0xb70a890e in KAction::activated (this=0xffffffff) at kaction.moc:176 #14 0xb70a940a in KAction::slotActivated (this=0x821cb40) at kaction.cpp :1102 #15 0xb70a8ac5 in KAction::slotButtonClicked (this=0x821cb40, state=LeftButton) at kaction.cpp:1147 #16 0xb70ac72d in KAction::qt_invoke (this=0x821cb40, _id=-1078905800, _o=0xbfb133d0) at kaction.moc:220 #17 0xb64b467c in QObject::activate_signal (this=0x81ecc88, clist=0x81ed570, o=0xbfb133d0) at qobject.cpp:2355 #18 0xb7171c35 in KToolBarButton::buttonClicked (this=0x81ecc88, t0=-1, t1=LeftButton) at ktoolbarbutton.moc:154 #19 0xb7171df5 in KToolBarButton::mouseReleaseEvent (this=0x81ecc88, e=0xbfb138f0) at ktoolbarbutton.cpp:479 #20 0xb64f7b05 in QWidget::event (this=0x81ecc88, e=0xbfb138f0) at qwidget.cpp:4676 #21 0xb7171366 in KToolBarButton::event (this=0x81ecc88, e=0xbfb138f0) at ktoolbarbutton.cpp:651 #22 0xb6444205 in QApplication::internalNotify (this=0xbfb13e10, receiver=0x81ecc88, e=0xbfb138f0) at qapplication.cpp:2635 #23 0xb6443738 in QApplication::notify (this=0xbfb13e10, receiver=0x81ecc88, e=0xbfb138f0) at qapplication.cpp:2421 #24 0xb6dcb035 in KApplication::notify (this=0xbfb13e10, receiver=0x81ecc88, event=0xbfb138f0) at kapplication.cpp:550 #25 0xb63cbd0e in QApplication::sendSpontaneousEvent (receiver=0x81ecc88, event=0xbfb138f0) at qapplication.h:494 #26 0xb63c3a50 in QETWidget::translateMouseEvent (this=0x81ecc88, event=0xbfb13cb0) at qapplication_x11.cpp:4291 #27 0xb63c1318 in QApplication::x11ProcessEvent (this=0xbfb13e10, event=0xbfb13cb0) at qapplication_x11.cpp:3442 #28 0xb63df295 in QEventLoop::processEvents (this=0x818b0a8, flags=4) at qeventloop_x11.cpp:192 #29 0xb645b7a9 in QEventLoop::enterLoop (this=0x818b0a8) at qeventloop.cpp :198 #30 0xb645b6c2 in QEventLoop::exec (this=0x818b0a8) at qeventloop.cpp:145 #31 0xb64443a7 in QApplication::exec (this=0xbfb13e10) at qapplication.cpp :2758 #32 0x0807fd22 in main (argc=-1, argv=0xffffffff) at pikdev.cpp:87 I'm curious about "#7 0x080803af in PicFactory::getPic (this=0x85af298, picname=0x846fa50 "p12c508") at basic_string.h:219" According to http://pikdev.free.fr/pikdev-api/html/d6/d9/classPicFactory.html the 12c508 is just an example they use but here it seems like a mistake and the program was actually looking for a non-existent chip. I note F1 comes up empty and there is no man pikdev. Are these add-ons? Is it the __CONFIG line? I'm trying to use Byron Jeff's "Trivial" programmer. But I couldn't find a 1uF cap for the RC terminator. Is there another RC combo I can use. The smallest I've got is a 10uF e-lytic. (A long shot <gulp>) -Maxim | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
[<<] [<] Page 1 of 1 [>] [>>] |