Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

eclipse +yagarto+ programowanie przez jtaga flasha

Smashing 24 Wrz 2007 07:54 1739 4
  • #1 24 Wrz 2007 07:54
    Smashing
    Poziom 20  

    używam jtaga wiggler'a na LPT który działa w IAR. Po ustawieniu całego środowiska, oraz makefile i script.ocd włączam OpenOCD->RUN. pojawia się komunikat :
    Info: openocd.c:93 main(): Open On-Chip Debugger (2007-09-05 09:00 CEST)
    Warning: arm7_9_common.c:734 arm7_9_assert_reset(): srst resets test logic, too
    Warning: arm7_9_common.c:933 arm7_9_halt(): target was already halted

    niby wszystko ok, ale jak potem daje programowanie flasha mam komunikat:
    **** Build of configuration Cygwin GCC for project demo_at91sam7_blink_flash ****

    make -k program
    Flash Programming with OpenOCD...
    'c:/Program Files/openocd-2007re141/bin/'openocd-pp.exe -f 'c:/Program Files/openocd-2007re141/bin/'at91sam7s256-wiggler-flash-program.cfg # program the onchip FLASH here
    /usr/bin/sh: c:/Program Files/openocd-2007re141/bin/openocd-pp.exe: No such file or directory
    make: *** [program] Error 127

    ręce mi już opadają, a nie mam siły na ciągłe przeinstalowywanie IAR'a (działa tylko miesiąc a kruki coś nie działają...)

    0 4
  • #2 24 Wrz 2007 08:19
    piotrkopec
    Poziom 17  

    c:/Program Files/openocd-2007re141/bin/openocd-pp.exe: No such file or directory
    Czyli nie ma pliku w podanej ścieżce. Mógłbyś durzucić 'Makefile'? To tam tkwi problem. Musisz poprawić ścieżkę do 'openocd' i pewniaście też do 'at91sam7s256-wiggler-flash-program.cfg'

    0
  • #3 24 Wrz 2007 08:28
    Smashing
    Poziom 20  

    NAME = demo_at91sam7_blink_flash

    # variables
    CC = arm-elf-gcc
    LD = arm-elf-ld -v
    AR = arm-elf-ar
    AS = arm-elf-as
    CP = arm-elf-objcopy
    OD = arm-elf-objdump

    CFLAGS = -I./ -c -fno-common -O0 -g
    AFLAGS = -ahls -mapcs-32 -o crt.o
    LFLAGS = -Map main.map -Tdemo_at91sam7_blink_flash.cmd
    CPFLAGS = --output-target=binary
    ODFLAGS = -x --syms

    OBJECTS = crt.o main.o timerisr.o timersetup.o isrsupport.o lowlevelinit.o blinker.o


    # make target called by Eclipse (Project -> Clean ...)
    clean:
    -rm $(OBJECTS) crt.lst main.lst main.out main.bin main.hex main.map main.dmp


    #make target called by Eclipse (Project -> Build Project)
    all: main.out
    @ echo "...copying"
    $(CP) $(CPFLAGS) main.out main.bin
    $(OD) $(ODFLAGS) main.out > main.dmp

    main.out: $(OBJECTS) demo_at91sam7_blink_flash.cmd
    @ echo "..linking"
    $(LD) $(LFLAGS) -o main.out $(OBJECTS) libc.a libm.a libgcc.a

    crt.o: crt.s
    @ echo ".assembling"
    $(AS) $(AFLAGS) crt.s > crt.lst

    main.o: main.c
    @ echo ".compiling"
    $(CC) $(CFLAGS) main.c

    timerisr.o: timerisr.c
    @ echo ".compiling"
    $(CC) $(CFLAGS) timerisr.c

    lowlevelinit.o: lowlevelinit.c
    @ echo ".compiling"
    $(CC) $(CFLAGS) lowlevelinit.c

    timersetup.o: timersetup.c
    @ echo ".compiling"
    $(CC) $(CFLAGS) timersetup.c

    isrsupport.o: isrsupport.c
    @ echo ".compiling"
    $(CC) $(CFLAGS) isrsupport.c

    blinker.o: blinker.c
    @ echo ".compiling"
    $(CC) $(CFLAGS) blinker.c

    TARGET = main.bin
    OPENOCD_DIR = 'c:/Program Files/openocd-2007re141/bin/'
    OPENOCD = $(OPENOCD_DIR)openocd-pp.exe
    OPENOCD_CFG = $(OPENOCD_DIR)at91sam7s256-wiggler-flash-program.cfg
    # program the AT91SAM7S256 internal flash memory
    program: $(TARGET)
    @echo "Flash Programming with OpenOCD..." # display a message on the console
    $(OPENOCD) -f $(OPENOCD_CFG) # program the onchip FLASH here
    @echo "Flash Programming Finished."

    A tak wyglada script.ocd
    wait_halt # halt the processor and wait
    armv4_5 core_state arm # select the core state
    mww 0xffffff64 0x5a000004 # clear lock bit 0
    mww 0xffffff64 0x5a002004
    mww 0xffffff60 0x00320100 # set flash wait state (AT91C_MC_FMR)
    mww 0xfffffd44 0xa0008000 # watchdog disable (AT91C_WDTC_WDMR)
    mww 0xfffffc20 0xa0000601 # enable main oscillator (AT91C_PMC_MOR)
    wait 100 # wait 100 ms
    mww 0xfffffc2c 0x00480a0e # set PLL register (AT91C_PMC_PLLR)
    wait 200 # wait 200 ms
    mww 0xfffffc30 0x7 # set master clock to PLL (AT91C_PMC_MCKR)
    wait 100 # wait 100 ms
    mww 0xfffffd08 0xa5000401 # enable user reset AT91C_RSTC_RMR
    flash write 0 main.bin 0x0 # program the onchip flash
    reset # reset processor
    shutdown # stop OpenOCD

    0
  • #4 24 Wrz 2007 09:23
    piotrkopec
    Poziom 17  

    Sprawdz gdzie lezy 'openocd', moze to jest inna rev. niz 're141' i popraw ta linijke w 'Makefile'

    Cytat:
    OPENOCD_DIR = 'c:/Program Files/openocd-2007re141/bin/'

    0
  • #5 24 Wrz 2007 09:31
    Smashing
    Poziom 20  

    zrobiłem tak, wpisałem :
    program: $(main.bin)
    @echo "Flash Programming with OpenOCD..." # display a message on the console
    $(c:\Program Files\openocd-2007re141\bin\openocd-pp.exe -f $(c:\Program Files\openocd-2007re141\bin\at91sam7s256-wiggler-flash-program.cfg)
    @echo "Flash Programming Finished." # display a message on the console
    niby mam komunikat:
    make -k program
    Flash Programming with OpenOCD...
    Flash Programming Finished.

    ale nie ważne czy wałącze jtaga czy nie i tak jest komunikat że programowanie poszło ok.

    ps
    ale wszystko oczywiście działa po tych zmianach w makefile

    0