gnupic: Thread: interpreting pikdev crash handler output


[<<] [<] 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 [>] [>>]


Powered by ezmlm-browse 0.20.