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

STM32F107+openOCD+turtelizer

29 Paź 2009 23:11 5840 33
  • Poziom 14  
    Witam

    Poszukuję osoby której udało się prawidłowo stworzyć plik konfiguracyjny dla openOCD pozwalający programować i debugować procesor STM32F107(ewentualnie STM32F103 lub 101) za pomocą turtelizera. Przewertowałem neta i wszystkie przykłady są pod inne procesory. Próby sklecenia czegoś z dokumentacji jak dotąd kończyły się niepowodzeniem.
  • Specjalista - Mikrokontrolery
    Eee... Przecież w OpenOCD jest plik dla STM32 i nie sądze, aby cokolwiek w nim trzeba było zmieniać dla nowszych wersji. Dla turtelizera też jest plik i w nim w ogóle nic nie należy zmieniać...

    OpenOCD -> https://www.elektroda.pl/rtvforum/topic1372915.html

    4\/3!!
  • Poziom 14  
    Próbowalem plików znajdujących się w instalce openOCD.
    Efekt jest następujący
    STM32F107+openOCD+turtelizer

    Nie wiem co może być przyczyną.
  • Specjalista - Mikrokontrolery
    A ta Vista to 64-bitowa? Bo jeśli tak, to raczej ten temat -> https://www.elektroda.pl/rtvforum/topic1461944.html Masz zainstalowane odpowiednie sterowniki (libusb-win32)? Jeśli tak, to czy jesteś tego pewny? Jeśli tak, to czy aby na pewno? Sprawdź to 3x bo pozbycie się starych sterowników (ftd2xx.dll) i zainstalowanie nowego (libusb-win32) nie jest wcale proste. Sprawdź pod jaką nazwą i w którym miejscu figuruje JTAG w Menadżerze Urządzeń.

    4\/3!!
  • Poziom 14  
    Idąc za radą postanowiłem spróbowac na innym kompie z XP-kiem. Wcześniejszy miał Viste 32 bitową. Efekt widac poniżej:

    STM32F107+openOCD+turtelizer

    Nie wiem czy to dobrze czy nie. Spróbuje jeszcze raz ze sterownikami Pod Vistą.
  • Specjalista - Mikrokontrolery
    Nie znam sprawy Visty, ale może trzeba uruchamiać openocd jako administrator, albo nadać plikowi jakieś specjalne prawa? No a przede wszystkim upewnij się, że masz zainstalowane właściwe sterowniki...

    4\/3!!
  • Poziom 25  
    Zanim zaczniesz dawać uprawnienia administratora na lewo i prawo można też pod vistą spróbować trybu kompatybilności z XP.
    Jak jeszcze kiedys używałem visty do programowania to korzystałem z openocd ale starszej wersji (0.1 cośtam) która dostałem na płytce razem z jtagiem i nie miałem takich problemów.
  • Specjalista - Mikrokontrolery
    Tyle że wtedy pewnie uzywanie z OpenOCD biblioteki ftd2xx.dll było jeszcze OK, a teraz już nie jest, a sterowniki libusb-win32 mogą się nie lubić z vistą.

    4\/3!!
  • Poziom 25  
    Dlatego korzystam z linuxa ;) i ten problem znika.
  • Poziom 14  
    Sprawdzałem już metodę z uruchamianiem w trybie zgodności z XP ale nic nie dało.
    Wygląda na to że sam openocd się uruchamia właściwie a problem pojawia się w momencie próby dostępu do turtelizera dlatego moim zdaniem to problem ze sterownikami.
    Pytanie jak odpalic zainstalowane openocd w wersji 0.2.0 ze sterownikiem FTDI. O ile dobrze zrozumiałem to zakazana jest wspólna dystrybucja ale nie korzystanie.
  • Specjalista - Mikrokontrolery
    Nie o to chodzi. Zakazana jest dystrybucja OpenOCD zlinkowanego z funkcjami z tej biblioteki. Z tego względu OpenOCD udostępnione w necie po prostu nie obsługuje układów FT2232 przy użyciu tej biblioteki, tylko przez libftdi. Nic nie poradzisz na to, musiałbyś skompilować OpenOCD samemu i zlinkować je z biblioteką ftd2xx.dll. Opisy jak to zrobić znajdziesz w necie, ale (jak zapewne łatwo się domyślić) wcale nie jest to proste, zwłaszcza na windowsie.

    4\/3!!
  • Poziom 14  
    Wygląda na to że poległem na temacie.
    Jeszcze tylko jedno pytanie. Czy CrossStudio powinno działac z openocd 0.2.0 ze sterownikami libusb-win32. Póki co nie działa mi to nawet na kompie z XP.
    Z góry dzięki za info.
  • Specjalista - Mikrokontrolery
    CrossStudio nie działa poprzez OpenOCD tylko "samodzielnie" i wymaga sterowników opartych na ftd2xx.dll

    Ja wciąż stawiałbym na problem ze sterownikami...

    4\/3!!
  • Poziom 25  
    Może problem powoduje to (przeczytajcie artykuł):
    Link
    znalazłem ten artykuł dzisiaj, troche mnie zaskoczył i się zastanawiam czy to rzeczywiście prawda?
  • Pomocny post
    Specjalista - Mikrokontrolery
    Nie sądzę, aby to było problemem... OpenOCD nie potrzebuje przecież takich ilości pamięci...

    Sprawdzam teraz o ile zmienia się zużycie pamięci po odpaleniu OpenOCD spod Eclipse - na wykresie wzrasta zaledwie o 1MB, a proces zajmuje 3.

    4\/3!!
  • Poziom 14  
    Jeszcze raz próbowałem ustawić tryb zgodności z XP dla openocd.exe bez skutku.
    Dodatkowo włączyłem "uruchamiaj jako administrator" odpala się w nowym oknie dalej z tym błędem. Następnie ustawiłem pełne uprawnienia dla plików sterownika w katalogu systemowym, bez rezultatu.
    Po wszystkim przeinstalowałem na sterownik FTDI i uruchomiłem CrossStudio. Wygląda na to że turtelizer działa. Teraz czekam na klucz aktywacyjny licencji 30 dniowej.


    Witam ponownie.
    Niestety nie udało mi się nic z tym problemem zrobic. Próbowałem również ze sterownikami dla systemów 64 bitowych.
    Ostatecznym rozwiązaniem okazało się w moim przypadku zainstalowanie XP-eka jako wirtualny system. Wygląda na to że wszystko hula. Teraz biorą się za Eclipse.
  • Poziom 38  
    Mnie dziś po 4h i w ha walki z kompilatorem w końcu się udało
    ;)

    U mnie:
    skompilowane z ft232 z strony ftdi, oprócz tego, nadane prawa katalogowi w program files pełne z dziedziczeniem na podkatalogi/pliki (pełne dla Usera używającego z wyłączeniem praw specjalnych:-) ).
    Do tego komenda:
    Code:

    C:\Program Files\OpenOCD\0.3.1\bin>openocd -f ..\interface\turtelizer2.cfg -f ..\target\lpc2148.cfg

    Koniecznie z "..\" przed katalogami inaczej szukał w bin (a najlepiej podaj pełne ścieżki, to z kropkami działa tylko z bin'a) i o voil'a:

    Code:

    C:\>openocd -f "c:\program files\openocd\0.3.1\interface\turtelizer2.cfg" -f "c:\program files\openocd\0.3.1\target\lpc2148.cfg"
    Open On-Chip Debugger 0.3.1 (2009-11-17-23:13)
    $URL$
    For bug reports, read
            http://openocd.berlios.de/doc/doxygen/bugs.html
    RCLK - adaptive
    jtag_nsrst_delay: 200
    jtag_ntrst_delay: 200
    trst_and_srst srst_pulls_trst srst_gates_jtag trst_push_pull srst_open_drain
    Info : device: 4 "2232C"
    Info : deviceID: 67354056
    Info : SerialNumber: FTRXV1M7A
    Info : Description: Turtelizer JTAG/RS232 Adapter A
    Info : RCLK (adaptive clock speed) not supported - fallback to 500 kHz
    Info : JTAG tap: lpc2148.cpu tap/device found: 0x4f1f0f0f (mfg: 0x787, part: 0xf1f0, ver: 0x4)
    Info : Embedded ICE version 4

    Powiedz czy pomogło, jak potrzeba pomocy z kompilacją, krzycz, pomogę:)

    I przy okazji powiem, że podejście "developerów" krzykaczy (bez generalizacji, byli tez normalni - ci mowiący o exceptions) wypowiadających się na berliosie w temacie o tymże, jest na poziomie działu DIY na elce... brakowało tylko 3/5 :P

    Ale to taka mała odskocznia...
    Daj znać:)
  • Poziom 11  
    Chciałbym się dowiedzieć jaka jest treść plików konfiguracyjnych "Balu" turtelizer2.cfg i lpc2148.cfg. Próbuję odpalić targeta i programatora ale dostaje takie błędy:

    STM32F107+openOCD+turtelizer

    Proszę o pomoc! :)
  • Poziom 11  
    Jaka może być przyczyna błędów?

    Dodano po 11 [minuty]:

    Teraz OpenOCD wcale nie widzi programatora. Wyświetlane komunikaty:

    STM32F107+openOCD+turtelizer

    Jaka może być przyczyna? Programator robiony według projektu "Freddiego".
  • Poziom 38  
    Wyraźnie pisze co mu nie leży, nie może znaleźć ftdi device. Zle stery? Zle zlutowane?
  • Poziom 11  
    Po podłączeniu targeta z programatorem wyskakuje mi błąd:

    STM32F107+openOCD+turtelizer

    Sądzę, że jest problem w podłączeniu JTAGA, tylko nie wiem jaki. Proszę o pomoc.

    Napięcia na poszczególnych pinach JTAGA są:

    1. Programatora
    1-4,12 V 2-4,12 V
    3-4,12 V 4-0 V
    5-0,25 V 6-0 V
    7-0,25 V 8-0 V
    9-0,25 V 10-0 V
    11-0 V 12-0 V
    13-0,18 V 14-0 V
    15-4,12 V 16-0 V
    17-0 V 18-0 V
    19-0 V 20-0 V

    2. Target po podłączeniu napięcia
    1-3,3 V 2-3,3 V
    3-3,3 V 4-0 V
    5-3,3 V 6-0 V
    7-3,3 V 8-0 V
    9-0,25 V 10-0 V
    11-0 V 12-0 V
    13-0,18 V 14-0 V
    15-4,12 V 16-0 V
    17-0 V 18-0 V
    19-0 V 20-0 V

    3. Target+programator
    1-3,6 V 2-3,3 V
    3-3,6 V 4-0 V
    5-3,6 V 6-0 V
    7-3.6 V 8-0 V
    9-0,25 V 10-0 V
    11-0 V 12-0 V
    13-0 V 14-0 V
    15-3,6 V 16-0 V
    17-0 V 18-0 V
    19-0 V 20-0 V

    Używam standardowych plików konfiguracyjnych turtelizer2.cfg i lpc2148.cfg. Z góry dzięki za pomoc.

    Dodano po 1 [godziny] 59 [minuty]:

    Witam ponownie, kolejnym problemem jest taki komunikat, debuger się zacina i trzeba go zatrzymywać za pomoćą "Ctrl+C":

    STM32F107+openOCD+turtelizer

    Używam turtelizer2.cfg i lpc2148.cfg plików konfiguracyjnych. Standardowe pliki w instalacji OpenOCD 0.3.1. W czym może być problem?
  • Specjalista - Mikrokontrolery
    On się "zacina", bo ma się "zacinać" - przecież wszędzie chyba o tym pisze. Po tym jak go uruchomisz to czeka na komendy z innych programów - jak inaczej miałby działać?

    4\/3!!
  • Poziom 11  
    Witam,

    Frieddie dzięki za odpowiedź. Mam kolejny problem. W eclipsie wyskakują mi takie błędy:

    STM32F107+openOCD+turtelizer

    STM32F107+openOCD+turtelizer

    W projekcie używam takich plików:
    startup.c
    Code:
    /****************************************************************************
    
    *  Copyright (c) 2009 by Michael Fischer. All rights reserved.
    *
    *  Redistribution and use in source and binary forms, with or without
    *  modification, are permitted provided that the following conditions
    *  are met:

    *  1. Redistributions of source code must retain the above copyright
    *     notice, this list of conditions and the following disclaimer.
    *  2. Redistributions in binary form must reproduce the above copyright
    *     notice, this list of conditions and the following disclaimer in the
    *     documentation and/or other materials provided with the distribution.
    *  3. Neither the name of the author nor the names of its contributors may
    *     be used to endorse or promote products derived from this software
    *     without specific prior written permission.
    *
    *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
    *  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
    *  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
    *  FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
    *  THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
    *  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
    *  BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
    *  OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
    *  AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
    *  OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
    *  THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
    *  SUCH DAMAGE.
    *
    ****************************************************************************
    *
    *  History:
    *
    *  25.09.09  mifi   First Version, based on the example from Quantum Leaps
    *                   with some small modifications. The original can be find
    *                   here: http://www.embedded.com/design/200900043
    ****************************************************************************/

    /*****************************************************************************
    * Product: Generic startup code for ARM with GNU toolset
    * Date of the Last Update:  Jun 12, 2007
    *
    *                    Q u a n t u m     L e a P s
    *                    ---------------------------
    *                    innovating embedded systems
    *
    * Copyright (C) 2007 Quantum Leaps, LLC. All rights reserved.
    *
    * Contact information:
    * Quantum Leaps Web site:  http://www.quantum-leaps.com
    * e-mail:                  info(malpa)quantum-leaps.com
    *****************************************************************************/

    /* Standard definitions of Mode bits and Interrupt (I & F) flags in PSRs */

        .equ    I_BIT,          0x80      /* when I bit is set, IRQ is disabled */
        .equ    F_BIT,          0x40      /* when F bit is set, FIQ is disabled */

        .equ    USR_MODE,       0x10
        .equ    FIQ_MODE,       0x11
        .equ    IRQ_MODE,       0x12
        .equ    SVC_MODE,       0x13
        .equ    ABT_MODE,       0x17
        .equ    UND_MODE,       0x1B
        .equ    SYS_MODE,       0x1F

    /* constant to pre-fill the stack */
        .equ    STACK_FILL,     0xAAAAAAAA

    /*****************************************************************************
    * The starupt code must be linked at the start of ROM, which is NOT
    * necessarily address zero.
    */
        .text
        .code 32

        .global _start
        .func   _start

    _start:

        /* Vector table
        * NOTE: used only very briefly until RAM is remapped to address zero
        */
        LDR     pc, ResetAddr    /* Reset                 */
        LDR     pc, UndefAddr    /* Undefined instruction */
        LDR     pc, SWIAddr      /* Software interrupt    */
        LDR     pc, PAbortAddr   /* Prefetch abort        */
        LDR     pc, DAbortAddr   /* Data abort            */
        LDR     pc, ReservedAddr /* Reserved              */
        LDR     pc, IRQAddr      /* IRQ interrupt         */
        LDR     pc, FIQAddr      /* FIQ interrupt         */
       
    ResetAddr:     .word _reset
    UndefAddr:     .word UndefHandler
    SWIAddr:       .word SWIHandler
    PAbortAddr:    .word PAbortHandler
    DAbortAddr:    .word DAbortHandler
    ReservedAddr:  .word 0
    IRQAddr:       .word IRQHandler
    FIQAddr:       .word FIQHandler

        .align 4             /* Align to the word boundary */


    /*****************************************************************************
    * _reset
    */
    _reset:

        /*
         * Wait for the oscillator is stable
         */   
        nop
        nop
        nop
        nop
        nop
        nop
        nop
        nop

        /* Call the platform-specific low-level initialization routine
        *
        * NOTE: The ROM is typically NOT at its linked address before the remap,
        * so the branch to low_level_init() must be relative (position
        * independent code). The low_level_init() function must continue to
        * execute in ARM state. Also, the function low_level_init() cannot rely
        * on uninitialized data being cleared and cannot use any initialized
        * data, because the .bss and .data sections have not been initialized yet.
        */
        LDR     r0,=_reset           /* pass the reset address as the 1st argument */
        LDR     r1,=_cstartup        /* pass the return address as the 2nd argument */
        MOV     lr,r1                /* set the return address after the remap */
        LDR     sp,=__stack_end__    /* set the temporary stack pointer */
        B       low_level_init       /* relative branch enables remap */


        /* NOTE: after the return from low_level_init() the ROM is remapped
        * to its linked address so the rest of the code executes at its linked
        * address.
        */

    _cstartup:
        /* Relocate .fastcode section (copy from ROM to RAM) */
        LDR     r0,=__fastcode_load
        LDR     r1,=__fastcode_start
        LDR     r2,=__fastcode_end
    1:
        CMP     r1,r2
        LDMLTIA r0!,{r3}
        STMLTIA r1!,{r3}
        BLT     1b


        /* Relocate the .data section (copy from ROM to RAM) */
        LDR     r0,=__data_load
        LDR     r1,=__data_start
        LDR     r2,=_edata
    1:
        CMP     r1,r2
        LDMLTIA r0!,{r3}
        STMLTIA r1!,{r3}
        BLT     1b


        /* Clear the .bss section (zero init) */
        LDR     r1,=__bss_start__
        LDR     r2,=__bss_end__
        MOV     r3,#0
    1:
        CMP     r1,r2
        STMLTIA r1!,{r3}
        BLT     1b


        /* Fill the .stack section */
        LDR     r1,=__stack_start__
        LDR     r2,=__stack_end__
        LDR     r3,=STACK_FILL
    1:
        CMP     r2,r2
        STMLTIA r1!,{r3}
        BLT     1b

        /* Initialize stack pointers for all ARM modes */
        MSR     CPSR_c,#(IRQ_MODE | I_BIT | F_BIT)
        LDR     sp,=__irq_stack_top__                /* set the IRQ stack pointer */

        MSR     CPSR_c,#(FIQ_MODE | I_BIT | F_BIT)
        LDR     sp,=__fiq_stack_top__                /* set the FIQ stack pointer */

        MSR     CPSR_c,#(SVC_MODE | I_BIT | F_BIT)
        LDR     sp,=__svc_stack_top__                /* set the SVC stack pointer */

        MSR     CPSR_c,#(ABT_MODE | I_BIT | F_BIT)
        LDR     sp,=__abt_stack_top__                /* set the ABT stack pointer */

        MSR     CPSR_c,#(UND_MODE | I_BIT | F_BIT)
        LDR     sp,=__und_stack_top__                /* set the UND stack pointer */

        MSR     CPSR_c,#(SYS_MODE | I_BIT | F_BIT)
        LDR     sp,=__c_stack_top__                  /* set the C stack pointer */


    #if 0
        /* Invoke the static constructors */
        LDR     r12,=__libc_init_array
        MOV     lr,pc           /* set the return address */
        BX      r12             /* the target code can be ARM or THUMB */
    #endif   


        /* Enter the C/C++ code */
        LDR     r12,=main
        MOV     lr,pc           /* set the return address */
        BX      r12             /* the target code can be ARM or THUMB */
       
    ExitFunction:
        NOP
        NOP
        NOP
        b       ExitFunction   
       
        .size   _start, . - _start
        .endfunc
       
    /****************************************************************************/
    /*                         Default interrupt handler                        */
    /****************************************************************************/

    UndefHandler:
       b UndefHandler
       
    SWIHandler:
       b SWIHandler

    PAbortHandler:
       b PAbortHandler

    DAbortHandler:
       b DAbortHandler
       
    IRQHandler:
       b IRQHandler
       
    FIQHandler:
       b FIQHandler
       
       .weak ExitFunction
       .weak UndefHandler, SWIHandler, PAbortHandler, DAbortHandler
       .weak IRQHandler, FIQHandler
       
       .end

    /*** EOF ***/


    makefile

    Code:
    ##############################################################################################
    
    #
    #       !!!! Do NOT edit this makefile with an editor which replace tabs by spaces !!!!   
    #
    ##############################################################################################
    #
    # On command line:
    #
    # make all = Create project
    #
    # make clean = Clean project files.
    #
    # To rebuild project do "make clean" and "make all".
    #

    ##############################################################################################
    # Start of default section
    #

    TRGT = arm-elf-
    CC   = $(TRGT)gcc
    CP   = $(TRGT)objcopy
    AS   = $(TRGT)gcc -x assembler-with-cpp
    BIN  = $(CP) -O ihex

    MCU  = arm7tdmi

    # List all default C defines here, like -D_DEBUG=1
    DDEFS =

    # List all default ASM defines here, like -D_DEBUG=1
    DADEFS =

    # List all default directories to look for include files here
    DINCDIR =

    # List the default directory to look for the libraries here
    DLIBDIR =

    # List all default libraries here
    DLIBS =

    #
    # End of default section
    ##############################################################################################

    ##############################################################################################
    # Start of user section
    #

    # Define project name here
    PROJECT = test

    # Define linker script file here
    #lpc2148_ram.ld
    #lpc2148_rom.ld
    LDSCRIPT_RAM =
    LDSCRIPT_ROM =

    # List all user C define here, like -D_DEBUG=1
    UDEFS =

    # Define ASM defines here
    UADEFS =

    # List C source files here
    SRC  =

    # List ASM source files here
    ASRC = startup.s

    # List all user directories here
    UINCDIR =

    # List the user directory to look for the libraries here
    ULIBDIR =

    # List all user libraries here
    ULIBS =

    # Define optimisation level here
    OPT = -O0

    #
    # End of user defines
    ##############################################################################################


    INCDIR  = $(patsubst %,-I%,$(DINCDIR) $(UINCDIR))
    LIBDIR  = $(patsubst %,-L%,$(DLIBDIR) $(ULIBDIR))
    DEFS    = $(DDEFS) $(UDEFS)
    ADEFS   = $(DADEFS) $(UADEFS)
    OBJS    = $(ASRC:.s=.o) $(SRC:.c=.o)
    LIBS    = $(DLIBS) $(ULIBS)
    MCFLAGS = -mcpu=$(MCU)

    ASFLAGS = $(MCFLAGS) -g -gdwarf-2 -Wa,-amhls=$(<:.s=.lst) $(ADEFS)
    CPFLAGS = $(MCFLAGS) $(OPT) -gdwarf-2 -mthumb-interwork -fomit-frame-pointer -Wall -Wstrict-prototypes -fverbose-asm -Wa,-ahlms=$(<:.c=.lst) $(DEFS)
    LDFLAGS_RAM = $(MCFLAGS) -nostartfiles -T$(LDSCRIPT_RAM) -Wl,-Map=$(PROJECT)_ram.map,--cref,--no-warn-mismatch $(LIBDIR)
    LDFLAGS_ROM = $(MCFLAGS) -nostartfiles -T$(LDSCRIPT_ROM) -Wl,-Map=$(PROJECT)_rom.map,--cref,--no-warn-mismatch $(LIBDIR)

    # Generate dependency information
    CPFLAGS += -MD -MP -MF .dep/$(@F).d

    #
    # makefile rules
    #

    all: RAM ROM

    RAM: $(OBJS) $(PROJECT)_ram.elf $(PROJECT)_ram.hex

    ROM: $(OBJS) $(PROJECT)_rom.elf $(PROJECT)_rom.hex

    %o : %c
       $(CC) -c $(CPFLAGS) -I . $(INCDIR) $< -o $@

    %o : %s
       $(AS) -c $(ASFLAGS) $< -o $@

    %ram.elf: $(OBJS)
       $(CC) $(OBJS) $(LDFLAGS_RAM) $(LIBS) -o $@
     
    %rom.elf: $(OBJS)
       $(CC) $(OBJS) $(LDFLAGS_ROM) $(LIBS) -o $@

    %hex: %elf
       $(BIN) $< $@

    clean:
       -rm -f $(OBJS)
       -rm -f $(PROJECT)_ram.elf
       -rm -f $(PROJECT)_ram.map
       -rm -f $(PROJECT)_ram.hex
       -rm -f $(PROJECT)_rom.elf
       -rm -f $(PROJECT)_rom.map
       -rm -f $(PROJECT)_rom.hex
       -rm -f $(SRC:.c=.c.bak)
       -rm -f $(SRC:.c=.lst)
       -rm -f $(ASRC:.s=.s.bak)
       -rm -f $(ASRC:.s=.lst)
       -rm -fR .dep

    #
    # Include the dependency files, should be the last of the makefile
    #
    -include $(shell mkdir .dep 2>/dev/null) $(wildcard .dep/*)

    # *** EOF ***


    test.c
    Code:
    int main ()
    
    {
    return;
    }


    W czym problem?
  • Specjalista - Mikrokontrolery
    Problem w tym że system nie może odnaleźć określonego pliku - przecież pisze nawet po polsku (; . Nie wierzysz, to wpisz w konsoli "arm-elf-gcc" to się przekonasz, że taki program nie jest dodany do zmiennej PATH systemu. Pozatym używasz cs-make (czyli pewnie pakietu codesourcery), więc dodam może, że tam żaden plik nie ma prefixu arm-elf-...

    Ostatnio piszę to co kilka dni - nie działa Ci, bo masz jakieś przypadkowe pliki i starasz się ich używać bez jakiegokolwiek zrozumienia. Skoro korzystasz z mojego tutoriala (a widzę że korzystasz zapewne), to może skorzystaj z niego w 100% i weź moje przykładowe pliki i dopiero jak zrozumiesz o co chodzi to modyfikuj jakieś pliki znalezione w sieci / napisane przez siebie.

    Jak to wszystko zrobić krok po kroku:
    https://www.elektroda.pl/rtvforum/topic1313509.html
    https://www.elektroda.pl/rtvforum/topic1339518-0.html

    4\/3!!
  • Poziom 11  
    Dzięki Freddie za podpowiedź. Użyłem Twojego przykładu, czyli LPC2103_blink_led. W eclipsie udało się zbudować pliki. Po debugowaniu mam taki rezultat w eclipsie:

    Okno debug wygląda tak:

    STM32F107+openOCD+turtelizer

    Okno Error log wygląda tak:

    STM32F107+openOCD+turtelizer

    Okno Console jest puste. Może zadam głupie pytanie ale chce się upewnić. Tak ma być? Jeśli tak przystąpię do dalszych prac :). Czyli napisanie progamu dostosowanego do LPC2148. Dzięki :)

    Konfiguracja OpenOCD i Debugera według tutoriala Freddiego.
  • Specjalista - Mikrokontrolery
    Nie tak ma być. Pewnie procek nie jest zatrzymany i gdb wywala się na ładowaniu wsadu. W przykładzie są zawarte przykładowe skróty dla GDB (w katalogu debug) - jeden do ładowania programi i jego debuggowania, drugi do debuggowania programu załadowanego do procka poprzednio - spróbuj najpierw użyć ich. Po zaimportowaniu projektu powinny być dostępne pod grupą GDB Hardware Debugging.

    4\/3!!
  • Poziom 11  
    A gdzie mam ustawić te pliki gdb? Może porozmawiamy przez skypa lub gg będzie szybciej, mniej kłopotu dla Ciebie i dla mnie?
  • Specjalista - Mikrokontrolery
    Możemy gadać przez forum, tak aby korzyści mieli z tego wszyscy.

    Zasadniczo po zaimportowaniu projektu do Eclipse w Debug Configurations > GDB Hardware Debugging (tam gdzie stworzyłeś swoją własną konfigurację o nazwie "mano") powinny się pojawić dwie konfiguracje dołączone do tego projektu - "gdb (flash) + load" oraz "gdb (flash)".

    4\/3!!