реклама на сайте
подробности

 
 
51 страниц V  « < 16 17 18 19 20 > »   
Reply to this topicStart new topic
> Вопросы по Eclipse, CDT, Zylin embedded CDT, предлагаю обсуждать тут, может потом FAQ выжмем
MegaFPGA
сообщение May 18 2010, 09:17
Сообщение #256


Частый гость
**

Группа: Участник
Сообщений: 75
Регистрация: 12-11-09
Из: Уфа
Пользователь №: 53 567



... продолжаю свои попытки подружиться эклипсом:
1. Запускаю openocd
Open On-Chip Debugger 0.4.0 (2010-02-22-19:05)
Licensed under GNU GPL v2
For bug reports, read
http://openocd.berlios.de/doc/doxygen/bugs.html
parport port = 0x378
srst_only srst_pulls_trst srst_gates_jtag srst_open_drain
Warn : use 'at91sam7s.cpu' as target identifier, not '0'
Info : clock speed 500 kHz
Info : JTAG tap: at91sam7s.cpu tap/device found: 0x3f0f0f0f (mfg: 0x787, part: 0xf0f0, ver: 0x3)
Info : Embedded ICE version 1
Info : at91sam7s.cpu: hardware has 2 breakpoint/watchpoint units

2. Запускаю дебагер.
target remote localhost:3333
monitor reset halt
JTAG tap: at91sam7s.cpu tap/device found: 0x3f0f0f0f (mfg: 0x787, part: 0xf0f0, ver: 0x3)
srst pulls trst - can not reset into halted mode. Issuing halt after reset.
target state: halted
target halted in ARM state due to breakpoint, current mode: Supervisor
cpsr: 0x20000053 pc: 0x00000cf8
NOTE! DCC downloads have not been enabled, defaulting to slow memory writes. Type 'help dcc'.
NOTE! Severe performance degradation without fast memory access enabled. Type 'help fast'.

в окне где должна происходить отладка появляется окно No source available for "main() ".

Что это значит ? У меня в качестве параметра указан файл out а в некоторых туториалах указывается файл elf. В чем разница ?

Сообщение отредактировал MegaFPGA - May 18 2010, 09:19
Go to the top of the page
 
+Quote Post
Volldemar
сообщение May 18 2010, 09:31
Сообщение #257


Частый гость
**

Группа: Участник
Сообщений: 121
Регистрация: 27-04-09
Из: Украина
Пользователь №: 48 342



Использую SAM-ICE, ягарто, J-LINK GDB Server. Дебаг в эклипсе запустился, по коду шагает отладка (по F5), где включить показывание регистров? Так как закладка "Registers" полностью пустая. Что и где делаю не так? Подскажите плиз!!!
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение May 18 2010, 11:19
Сообщение #258


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(MegaFPGA @ May 18 2010, 12:17) *
Что это значит ? У меня в качестве параметра указан файл out а в некоторых туториалах указывается файл elf. В чем разница ?
Разница в выходных форматах. a.out - устаревший формат с кучей ограничений. Ошибка ваша может быть вызвана тем, что вы компилите проект без отладочной информации. Добавьте в CFLAGS -gdwarf-2 и убедитесь, что в скрипте линкера есть такие секции:
CODE
/* DWARF debug sections.
Symbols in the DWARF debugging sections are relative to the beginning
of the section so we begin them at 0. */
/* DWARF 1 */
.debug 0 : { *(.debug) }
.line 0 : { *(.line) }
/* GNU DWARF 1 extensions */
.debug_srcinfo 0 : { *(.debug_srcinfo) }
.debug_sfnames 0 : { *(.debug_sfnames) }
/* DWARF 1.1 and DWARF 2 */
.debug_aranges 0 : { *(.debug_aranges) }
.debug_pubnames 0 : { *(.debug_pubnames) }
/* DWARF 2 */
.debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) }
.debug_abbrev 0 : { *(.debug_abbrev) }
.debug_line 0 : { *(.debug_line) }
.debug_frame 0 : { *(.debug_frame) }
.debug_str 0 : { *(.debug_str) }
.debug_loc 0 : { *(.debug_loc) }
.debug_macinfo 0 : { *(.debug_macinfo) }
/* SGI/MIPS DWARF 2 extensions */
.debug_weaknames 0 : { *(.debug_weaknames) }
.debug_funcnames 0 : { *(.debug_funcnames) }
.debug_typenames 0 : { *(.debug_typenames) }
.debug_varnames 0 : { *(.debug_varnames) }
Да, и выводить надо в .elf (a.out не поддерживает дополнительные секции), для этого надо явно указать линкеру выходной файл с расширением .elf:
Код
##Link
ELF = $(OUTDIR)/$(PROJECT).elf
....
$(ELF): $(OBJ)
    @echo Linking: $@
    $(CC) $(LDFLAGS) $(OBJ) $(LINKONLYOBJECTS) $(LIBS) -o $@



Цитата(Volldemar @ May 18 2010, 12:31) *
Так как закладка "Registers" полностью пустая.
А каким плугином пользуетесь для отладки? Что выбираете при создании Debug Configuration? Что указываете на вкладке Debugger? Распишите подробнее.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
Volldemar
сообщение May 18 2010, 11:38
Сообщение #259


Частый гость
**

Группа: Участник
Сообщений: 121
Регистрация: 27-04-09
Из: Украина
Пользователь №: 48 342



Настройки, в прикреплённом изображении. Плугин - вроде Zylin CDT smile.gif
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение May 18 2010, 11:57
Сообщение #260


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(Volldemar @ May 18 2010, 14:38) *
Настройки, в прикреплённом изображении. Плугин - вроде Zylin CDT smile.gif
У меня то же самое. Работает. Но в последней версии есть глючок - при пошаговой отладке содержимое окна пропадает. Приходится открывать какую-нибудь другую вкладку в этом окне и потом возвращаться к вкладке регистров.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
Volldemar
сообщение May 18 2010, 12:04
Сообщение #261


Частый гость
**

Группа: Участник
Сообщений: 121
Регистрация: 27-04-09
Из: Украина
Пользователь №: 48 342



Цитата(Сергей Борщ @ May 18 2010, 14:57) *
У меня то же самое. Работает. Но в последней версии есть глючок - при пошаговой отладке содержимое окна пропадает. Приходится открывать какую-нибудь другую вкладку в этом окне и потом возвращаться к вкладке регистров.


У меня изначально вкладка регистерс - пустая, пошагово работает, вижу изменение R15 (PC), обведено красным. Что делать, куда копать?
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
Volldemar
сообщение May 18 2010, 13:14
Сообщение #262


Частый гость
**

Группа: Участник
Сообщений: 121
Регистрация: 27-04-09
Из: Украина
Пользователь №: 48 342



Вот такая ошибка вылазит, в аттаче
что бы это значило?
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
MegaFPGA
сообщение May 19 2010, 02:31
Сообщение #263


Частый гость
**

Группа: Участник
Сообщений: 75
Регистрация: 12-11-09
Из: Уфа
Пользователь №: 53 567



Все равно не получается.
Вот мой мэйк файл:
CODE

TARGET=AT91SAM7S256
BOARD=AT91SAM7SEK
SUBTARGET=UMGPS
#TARGET=AT91SAM7A3
#CLASS=HID
#MODE=KEYBOARD
#CLASS=HID
#MODE=MOUSE
#CLASS=CDC
#REMAP=YES
DEBUG=YES
LEDS=YES
#TRACES=YES
TRACES=NO
POWER=AUTO
#REVISION=REV_A

VALIDTARGETS_ARM7 = \
AT91SAM7S321 AT91SAM7S64 AT91SAM7S128 AT91SAM7S256 AT91SAM7S512 \
AT91SAM7SE32 AT91SAM7SE256 AT91SAM7SE512 \
AT91SAM7X128 AT91SAM7X256 AT91SAM7X512 \
AT91SAM7A3
VALIDTARGETS_ARM9 = AT91RM9200 AT91SAM9260 AT91SAM9261 AT91SAM9263
VALIDTARGETS = $(VALIDTARGETS_ARM7) $(VALIDTARGETS_ARM9)

#-------------------------------------------------------------------------------
# Check target
#-------------------------------------------------------------------------------
ifndef TARGET
$(warning Warning: No target selected, using default target AT91SAM7S64.)
TARGET = AT91SAM7S256
endif

ifndef SUBTARGET
$(warning Warning: No target selected, using default target AT91SAM7S64.)
SUBTARGET = UMGPS
endif

ifeq (,$(filter $(TARGET), $(VALIDTARGETS)))
$(error Error: $(TARGET): Unknown target.)
endif

ifeq (,$(filter $(TARGET), $(VALIDTARGETS_ARM9)))
MCPU = arm7tdmi
else
#todo: check this (must read - no AT91 ARM9 here for tests)
MCPU = arm9
endif


#-------------------------------------------------------------------------------
# Check board
#-------------------------------------------------------------------------------
ifndef BOARD
$(warning Warning: No board selected, using default board AT91SAM7SEK.)
BOARD = AT91SAM7SEK
endif

#-------------------------------------------------------------------------------
# Check remap
#-------------------------------------------------------------------------------
ifndef REMAP
REMAP = NO
else
ifneq ($(REMAP),YES)
REMAP = NO
endif
endif

#-------------------------------------------------------------------------------
# Check debug
#-------------------------------------------------------------------------------
ifndef DEBUG
DEBUG = NO
else
ifneq ($(DEBUG),YES)
DEBUG = NO
endif
endif

#-------------------------------------------------------------------------------
# Check leds
#-------------------------------------------------------------------------------
ifndef LEDS
LEDS = YES
else
ifneq ($(LEDS),NO)
LEDS = YES
endif
endif

#-------------------------------------------------------------------------------
# Check traces
#-------------------------------------------------------------------------------
ifndef TRACES
TRACES = YES
else
ifneq ($(TRACES),NO)
TRACES = YES
endif
endif

#-------------------------------------------------------------------------------
# Check power
#-------------------------------------------------------------------------------
ifndef POWER
POWER = AUTO
else
ifneq ($(POWER),BUS)
POWER = AUTO
endif
endif

#-------------------------------------------------------------------------------
# Check mode
#-------------------------------------------------------------------------------
ifndef MODE
MODE = NO
endif

#-------------------------------------------------------------------------------
# Summary
#-------------------------------------------------------------------------------

ifeq ($(TARGET),AT91SAM7A3)
ifndef REVISION
$(warning Revision: REV_B)
else
$(warning Revision: $(REVISION))
endif
endif

GCCLIB = C:\Program\ /Files\yagarto\arm-none-eabi\lib
GCCLIB2 = C:\Program\ /Files\yagarto\lib\gcc\arm-none-eabi\4.5.0
GCCINC = C:\Program\ /Files\yagarto\arm-none-eabi\include
GCCINC2 = C:\Program\ /Files\yagarto\lib\gcc\arm-none-eabi\4.5.0

CC = arm-none-eabi-gcc
LD = $(GCCPATH)arm-none-eabi-ld -v
AR = $(GCCPATH)arm-none-eabi-ar
AS = $(GCCPATH)arm-none-eabi-as -v
CP = $(GCCPATH)arm-none-eabi-objcopy
OD = $(GCCPATH)arm-none-eabi-objdump

CFLAGS = -I./ -I$(GCCINC) -I$(GCCINC2) -L$(GCCLIB) -L$(GCCLIB2) -c -mcpu=arm7tdmi -O2 \
$(OPTIMIZATION) -D$(TARGET) -D$(SUBTARGET) -D$(BOARD) -gdwarf-2

ifeq ($(LEDS),NO)
CFLAGS := $(CFLAGS) -DNOLEDS
endif

ifeq ($(TRACES),NO)
CFLAGS := $(CFLAGS) -DNOTRACES
endif

AFLAGS = -ahlns -x assembler-with-cpp -D$(TARGET) -D$(SUBTARGET) -I$(GCCINC1) -I$(GCCINC2) \
-L$(GCCLIB) -L$(GCCLIB2)

LFLAGS = -L$(GCCLIB) -L$(GCCLIB2) -nostartfiles
LFLAGS += -Map=umgps.map -TAT91SAM7S256-ROM.ld -I$(GCCINC1) -I$(GCCINC2) \
--cref --gc-sections --entry=__ENTRY

CPFLAGS = -O binary
ODFLAGS = -x --syms

OBJECTS = Cstartup.o umgps.o timerisr.o timersetup.o blinker.o
OBJECTS += isrsupport.o device.o standard.o udp.o um_bot_driver.o
OBJECTS += um_sbc_methods.o board.o at91stdio.o syscalls.o um_mb_methods.o CRC.o
OBJECTS += um_spi.o um_CC1000.o um_sys_controller.o

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

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

umgps.elf: $(OBJECTS) AT91SAM7S256-ROM.ld
@ echo "..linking"
$(LD) $(LFLAGS) -o umgps.elf $(OBJECTS)

Cstartup.o: Cstartup.S
@ echo ".assembling $@..."
$(CC) -c $(AFLAGS) $< -o $@

umgps.o: um_main.c
@ echo ".compiling $@..."
$(CC) $(CFLAGS) um_main.c -o umgps.o

timerisr.o: timerisr.c
@ echo ".compiling $@..."
$(CC) $(CFLAGS) timerisr.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

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

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

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

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

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

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

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

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

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

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

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

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

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


# ********************************************************************************
**************
# FLASH PROGRAMMING
# ********************************************************************************
**************

# specify output filename here (must be *.bin file)
OCD_TARGET = umgps.bin

# specify the directory where openocd executable and configuration files reside
OPENOCD_DIR = 'C:\Program Files\OpenOCD\0.4.0\bin\'

# specify OpenOCD executable (pp is for the wiggler, ftd2xx is for the USB debuggers)
OPENOCD = $(OPENOCD_DIR)openocd.exe

# specify OpenOCD configuration file (pick the one for your device)
OPENOCD_CFG = $(OPENOCD_DIR)at91sam7s256-wiggler-flash-program.cfg

# program the AT91SAM7S256 internal flash memory
program: $(OCD_TARGET)
@echo "Flash Programming with OpenOCD..."
openocd.exe -f $(OPENOCD_CFG)
@echo "Flash Programming Finished."





скрипт линкера:
CODE
/*---------------------------------------------------------------------------*/
/*- ATMEL Microcontroller Software Support - ROUSSET - */
/*---------------------------------------------------------------------------*/
/* The software is delivered "AS IS" without warranty or condition of any */
/* kind, either express, implied or statutory. This includes without */
/* limitation any warranty or condition with respect to merchantability or */
/* fitness for any particular purpose, or against the infringements of */
/* intellectual property rights of others. */
/*---------------------------------------------------------------------------*/
/*- File source : AT91SAM7S_sections_ROM.ldh */
/*- Object : Section-definitions for the Flash workspace */
/* (to be included from the linker-script) */
/*- Compilation flag : None */
/*- */
/*- 1.0 20/Oct/04 JPP : Creation */
/* */
/* Modifications by Martin Thomas (not Atmel) for WinARM */
/* 1.1mt --.---.---- : ramfunc, C++-support, and more */
/* 1.2mt 04.Aug.2006 : split of MEMORY and SECTIONS */
/* support for function- and data-sections (gcc4) */
/* 1.3mt 02.Sep.2006 : added NOLOAD at .bss */
/*---------------------------------------------------------------------------*/

MEMORY
{
CODE (rx) : ORIGIN = 0x00100000, LENGTH = 256k
DATA (rwx) : ORIGIN = 0x00200000, LENGTH = 64k
}

/*
__FIRST_IN_RAM = ORIGIN(DATA);
__TOP_STACK = ORIGIN(DATA) + LENGTH(DATA);
*/

/* Section Definitions */

SECTIONS
{
/* first section is .text which is used for code */
. = ORIGIN(CODE);

.text :
{
KEEP(*(.vectorg))
. = ALIGN(4);
KEEP(*(.init))
*(.text .text.*) /* remaining code */
*(.gnu.linkonce.t.*)
*(.glue_7)
*(.glue_7t)
*(.gcc_except_table)
*(.rodata) /* read-only data (constants) */
*(.rodata.*)
*(.gnu.linkonce.r.*)
. = ALIGN(4);
} >CODE

. = ALIGN(4);

/* .ctors .dtors are used for c++ constructors/destructors */

.ctors :
{
PROVIDE(__ctors_start__ = .);
KEEP(*(SORT(.ctors.*)))
KEEP(*(.ctors))
PROVIDE(__ctors_end__ = .);
} >CODE

.dtors :
{
PROVIDE(__dtors_start__ = .);
KEEP(*(SORT(.dtors.*)))
KEEP(*(.dtors))
PROVIDE(__dtors_end__ = .);
} >CODE

. = ALIGN(4);

_etext = . ;
PROVIDE (etext = .);

/* .data section which is used for initialized data */
.data : AT (_etext)
{
_data = . ;
__data_start = .;
KEEP(*(.vectmapped))
. = ALIGN(4);
*(.fastrun .fastrun.*)
. = ALIGN(4);
SORT(CONSTRUCTORS)
. = ALIGN(4);
*(.data)
*(.data.*)
*(.gnu.linkonce.d.*)
. = ALIGN(4);
} >DATA

. = ALIGN(4);

_edata = . ;
PROVIDE (edata = .);

/* .bss section which is used for uninitialized data */
.bss (NOLOAD) :
{
__bss_start = . ;
__bss_start__ = . ;
*(.bss)
*(.bss.*)
*(.gnu.linkonce.b.*)
*(COMMON)
. = ALIGN(4);
} >DATA

. = ALIGN(4);

__bss_end__ = . ;

_end = .;
PROVIDE (end = .);

/* Stabs debugging sections. */
.stab 0 : { *(.stab) }
.stabstr 0 : { *(.stabstr) }
.stab.excl 0 : { *(.stab.excl) }
.stab.exclstr 0 : { *(.stab.exclstr) }
.stab.index 0 : { *(.stab.index) }
.stab.indexstr 0 : { *(.stab.indexstr) }
.comment 0 : { *(.comment) }
/* DWARF debug sections.
Symbols in the DWARF debugging sections are relative to the beginning
of the section so we begin them at 0. */
/* DWARF 1 */
.debug 0 : { *(.debug) }
.line 0 : { *(.line) }
/* GNU DWARF 1 extensions */
.debug_srcinfo 0 : { *(.debug_srcinfo) }
.debug_sfnames 0 : { *(.debug_sfnames) }
/* DWARF 1.1 and DWARF 2 */
.debug_aranges 0 : { *(.debug_aranges) }
.debug_pubnames 0 : { *(.debug_pubnames) }
/* DWARF 2 */
.debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) }
.debug_abbrev 0 : { *(.debug_abbrev) }
.debug_line 0 : { *(.debug_line) }
.debug_frame 0 : { *(.debug_frame) }
.debug_str 0 : { *(.debug_str) }
.debug_loc 0 : { *(.debug_loc) }
.debug_macinfo 0 : { *(.debug_macinfo) }
/* SGI/MIPS DWARF 2 extensions */
.debug_weaknames 0 : { *(.debug_weaknames) }
.debug_funcnames 0 : { *(.debug_funcnames) }
.debug_typenames 0 : { *(.debug_typenames) }
.debug_varnames 0 : { *(.debug_varnames) }

}


Сообщение отредактировал MegaFPGA - May 19 2010, 02:33
Go to the top of the page
 
+Quote Post
MegaFPGA
сообщение May 19 2010, 05:48
Сообщение #264


Частый гость
**

Группа: Участник
Сообщений: 75
Регистрация: 12-11-09
Из: Уфа
Пользователь №: 53 567



Подправил параметры запуска линовщика и компилятора в мэйке:
CODE
# ***************************************************************
# * Makefile for Atmel AT91SAM7S256 - flash execution *
# * *
# * *
# * James P Lynch September 3, 2006 *
# ***************************************************************

#NAME = umgps

include mt_defs.mk

VALIDTARGETS_ARM7 = \
AT91SAM7S321 AT91SAM7S64 AT91SAM7S128 AT91SAM7S256 AT91SAM7S512 \
AT91SAM7SE32 AT91SAM7SE256 AT91SAM7SE512 \
AT91SAM7X128 AT91SAM7X256 AT91SAM7X512 \
AT91SAM7A3
VALIDTARGETS_ARM9 = AT91RM9200 AT91SAM9260 AT91SAM9261 AT91SAM9263
VALIDTARGETS = $(VALIDTARGETS_ARM7) $(VALIDTARGETS_ARM9)

#-------------------------------------------------------------------------------
# Check parameters
#-------------------------------------------------------------------------------

#-------------------------------------------------------------------------------
# Check target
#-------------------------------------------------------------------------------
ifndef TARGET
$(warning Warning: No target selected, using default target AT91SAM7S64.)
TARGET = AT91SAM7S256
endif

ifndef SUBTARGET
$(warning Warning: No target selected, using default target AT91SAM7S64.)
SUBTARGET = UMGPS
endif

ifeq (,$(filter $(TARGET), $(VALIDTARGETS)))
$(error Error: $(TARGET): Unknown target.)
endif

ifeq (,$(filter $(TARGET), $(VALIDTARGETS_ARM9)))
MCPU = arm7tdmi
else
#todo: check this (must read - no AT91 ARM9 here for tests)
MCPU = arm9
endif


#-------------------------------------------------------------------------------
# Check board
#-------------------------------------------------------------------------------
ifndef BOARD
$(warning Warning: No board selected, using default board AT91SAM7SEK.)
BOARD = AT91SAM7SEK
endif

#-------------------------------------------------------------------------------
# Check class
#-------------------------------------------------------------------------------
#ifndef CLASS
#$(warning Warning: No class selected, using default enumeration class.)
#CLASS = ENUM
#endif

#-------------------------------------------------------------------------------
# Check remap
#-------------------------------------------------------------------------------
ifndef REMAP
REMAP = NO
else
ifneq ($(REMAP),YES)
REMAP = NO
endif
endif

#-------------------------------------------------------------------------------
# Check debug
#-------------------------------------------------------------------------------
ifndef DEBUG
DEBUG = NO
else
ifneq ($(DEBUG),YES)
DEBUG = NO
endif
endif

#-------------------------------------------------------------------------------
# Check leds
#-------------------------------------------------------------------------------
ifndef LEDS
LEDS = YES
else
ifneq ($(LEDS),NO)
LEDS = YES
endif
endif

#-------------------------------------------------------------------------------
# Check traces
#-------------------------------------------------------------------------------
ifndef TRACES
TRACES = YES
else
ifneq ($(TRACES),NO)
TRACES = YES
endif
endif

#-------------------------------------------------------------------------------
# Check power
#-------------------------------------------------------------------------------
ifndef POWER
POWER = AUTO
else
ifneq ($(POWER),BUS)
POWER = AUTO
endif
endif

#-------------------------------------------------------------------------------
# Check mode
#-------------------------------------------------------------------------------
ifndef MODE
MODE = NO
endif

#-------------------------------------------------------------------------------
# Summary
#-------------------------------------------------------------------------------

#$(warning Target:$(TARGET)/$(MCPU) Board:$(BOARD))
#$(warning Class:$(CLASS) Mode:$(MODE) Power:$(POWER))
#$(warning Remap:$(REMAP))
#$(warning Debug:$(DEBUG) LEDs:$(LEDS) Traces:$(TRACES))

ifeq ($(TARGET),AT91SAM7A3)
ifndef REVISION
$(warning Revision: REV_B)
else
$(warning Revision: $(REVISION))
endif
endif

GCCLIB = C:\Program\ /Files\yagarto\arm-none-eabi\lib
GCCLIB2 = C:\Program\ /Files\yagarto\lib\gcc\arm-none-eabi\4.5.0
GCCINC = C:\Program\ /Files\yagarto\arm-none-eabi\include
GCCINC2 = C:\Program\ /Files\yagarto\lib\gcc\arm-none-eabi\4.5.0

CC = arm-none-eabi-gcc
LD = arm-none-eabi-ld -v
AR = arm-none-eabi-ar
AS = arm-none-eabi-as -v
CP = arm-none-eabi-objcopy
OD = arm-none-eabi-objdump

#CFLAGS1 = -I./ -I$(GCCINC) -I$(GCCLIB) -c -fno-common -mthumb-interwork -O2 -g
#CFLAGS = -I./ -I$(GCCINC) -I$(GCCLIB) -c -fno-common -mthumb -mthumb-interwork -O2 -g

#CFLAGS1 = -I./ -I$(GCCINC) -I$(GCCINC2) -c -fno-common -O2
CFLAGS = -I./ -I$(GCCINC) -I$(GCCINC2) -L$(GCCLIB) -L$(GCCLIB2) -c -mcpu=arm7tdmi -O2 $(OPTIMIZATION) -D$(TARGET) -D$(SUBTARGET) -D$(BOARD) -gdwarf-2
CFLAGS += -mthumb-interwork
CFLAGS += -fomit-frame-pointer -Wall -Wstrict-prototypes -fverbose-asm -Wa,-ahlms=$(<:.c=.lst)
ifeq ($(LEDS),NO)
CFLAGS := $(CFLAGS) -DNOLEDS
endif

ifeq ($(TRACES),NO)
CFLAGS := $(CFLAGS) -DNOTRACES
endif

#ifeq ($(POWER),BUS)
#CFLAGS := $(CFLAGS) -DUSB_BUS_POWERED
#endif

#ifneq ($(MODE),NO)
#CFLAGS := $(CFLAGS) -D$(MODE)
#endif

#CFLAGS = -I./ -c -fno-common -O0 -g
#AFLAGS = -ahlns -mapcs-32 -D$(TARGET) -o Cstartup.o
AFLAGS = -ahlns -gdwarf-2 -x assembler-with-cpp -D$(TARGET) -D$(SUBTARGET) -I$(GCCINC1) -I$(GCCINC2) -L$(GCCLIB) -L$(GCCLIB2)
#LFLAGS = -Map umgps.map -Tdemo_at91sam7_blink_flash.cmd
LFLAGS = -L$(GCCLIB) -L$(GCCLIB2) -nostartfiles
LFLAGS += -Map=umgps.map -TAT91SAM7S256-ROM.ld -I$(GCCINC1) -I$(GCCINC2) --cref --gc-sections --entry=__ENTRY

CPFLAGS = -O binary
ODFLAGS = -x --syms


OBJECTS = Cstartup.o umgps.o timerisr.o timersetup.o blinker.o
OBJECTS += isrsupport.o device.o standard.o udp.o um_bot_driver.o
OBJECTS += um_sbc_methods.o board.o at91stdio.o syscalls.o um_mb_methods.o CRC.o
OBJECTS += um_spi.o um_CC1000.o um_sys_controller.o



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


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

umgps.elf: $(OBJECTS) AT91SAM7S256-ROM.ld

@ echo "..linking"
$(LD) $(LFLAGS) -o umgps.elf $(OBJECTS)
# $(LD) $(LFLAGS) -o umgps.out $(OBJECTS) $(GCCLIB2)libgcc.a
# $(LD) $(LFLAGS) -o umgps.out $(OBJECTS) -nostartfiles

Cstartup.o: Cstartup.S
@ echo ".assembling $@..."
$(CC) -c $(AFLAGS) $< -o $@
#$(CC) $(CFLAGS) -Wa -ahlns Cstartup.s -o Cstartup.o

umgps.o: um_main.c
@ echo ".compiling $@..."
$(CC) $(CFLAGS) um_main.c -o umgps.o

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


# ********************************************************************************
**************
# FLASH PROGRAMMING (using OpenOCD and Amontec JTAGKey)
#
# Alternate make target for flash programming only
#
# You must create a special Eclipse make target (program) to run this part of the makefile
# (Project -> Create Make Target... then set the Target Name and Make Target to "program")
#
# OpenOCD is run in "batch" mode with a special configuration file and a script file containing
# the flash commands. When flash programming completes, OpenOCD terminates.
#
# Note that the make file below creates the script file of flash commands "on the fly"
#
# Programmers: Martin Thomas, Joseph M Dupre, James P Lynch
# ********************************************************************************
**************

# specify output filename here (must be *.bin file)
OCD_TARGET = umgps.bin

# specify the directory where openocd executable resides (openocd-ftd2xx.exe or openocd-pp.exe)
OPENOCD_DIR = 'c:\Program Files\openocd-2006re93\bin\'

# specify OpenOCD executable (pp is for the wiggler, ftd2xx is for the USB debugger)
#OPENOCD = $(OPENOCD_DIR)openocd-pp.exe
OPENOCD = openocd-pp
#OPENOCD = $(OPENOCD_DIR)openocd-ftd2xx.exe

# specify OpenOCD configuration file (pick the one for your device)
#OPENOCD_CFG = $(OPENOCD_DIR)at91sam7s256-wiggler-flash-program.cfg
OPENOCD_CFG = at91sam7s256-wiggler-flash-program.cfg
#OPENOCD_CFG = $(OPENOCD_DIR)at91sam7s256-jtagkey-flash-program.cfg
#OPENOCD_CFG = $(OPENOCD_DIR)at91sam7s256-armusbocd-flash-program.cfg

# specify the name and folder of the flash programming script file
OPENOCD_SCRIPT = script.ocd

# program the AT91SAM7S256 internal flash memory
program: $(OCD_TARGET)
@echo "Preparing OpenOCD script..."
@cmd /c 'echo wait_halt > $(OPENOCD_SCRIPT)'
@cmd /c 'echo armv4_5 core_state arm >> $(OPENOCD_SCRIPT)'
@cmd /c 'echo flash write 0 $(OCD_TARGET) 0x0 >> $(OPENOCD_SCRIPT)'
@cmd /c 'echo mww 0xfffffd08 0xa5000401 >> $(OPENOCD_SCRIPT)'
@cmd /c 'echo reset >> $(OPENOCD_SCRIPT)'
@cmd /c 'echo shutdown >> $(OPENOCD_SCRIPT)'
@echo "Flash Programming with OpenOCD..."
$(OPENOCD) -f $(OPENOCD_CFG)
@echo "Flash Programming Finished."

Отладка запустилась !
Но работает не нормально.
Жму Ф5 несколько раз и вот что выдет консоль:
Warn : stepi ignored. GDB will now fetch the register state from the target.
Error: address + size wrapped(0xfffffffe, 0x00000004)
Error: address + size wrapped(0xfffffffe, 0x00000004)
Error: address + size wrapped(0xfffffffe, 0x00000004)
Error: address + size wrapped(0xfffffffe, 0x00000004)
Warn : memory read caused data abort (address: 0x20000052, size: 0x1, count: 0x2)
Warn : memory read caused data abort (address: 0x20000052, size: 0x1, count: 0x2)
Warn : memory read caused data abort (address: 0x20000052, size: 0x1, count: 0x2)
Warn : memory read caused data abort (address: 0x20000052, size: 0x1, count: 0x2)
Warn : memory read caused data abort (address: 0x20000052, size: 0x1, count: 0x2)
Warn : memory read caused data abort (address: 0x20000052, size: 0x1, count: 0x2)

И потом зависает.
Go to the top of the page
 
+Quote Post
Volldemar
сообщение May 20 2010, 12:55
Сообщение #265


Частый гость
**

Группа: Участник
Сообщений: 121
Регистрация: 27-04-09
Из: Украина
Пользователь №: 48 342



Переустановил Eclipse CDT, и Zylin, всё осталось по прежнему. Кто, что подскажет???
Go to the top of the page
 
+Quote Post
gte
сообщение May 20 2010, 16:31
Сообщение #266


Гуру
******

Группа: Свой
Сообщений: 2 318
Регистрация: 13-02-05
Из: Липецкая область
Пользователь №: 2 613



Цитата(Volldemar @ May 20 2010, 16:55) *
Переустановил Eclipse CDT, и Zylin, всё осталось по прежнему. Кто, что подскажет???

У Вас какая версия Yagarto? Если последняя, то у меня в Debugger указан
C:\Program Files\yagarto\bin\arm-none-eabi-gdb.exe,
а elf был в предыдущей версии.
Может Вы поставили поверх предыдущей и в таком варианте не хочет работать.
Go to the top of the page
 
+Quote Post
Volldemar
сообщение May 20 2010, 17:41
Сообщение #267


Частый гость
**

Группа: Участник
Сообщений: 121
Регистрация: 27-04-09
Из: Украина
Пользователь №: 48 342



Цитата(gte @ May 20 2010, 19:31) *
У Вас какая версия Yagarto? Если последняя, то у меня в Debugger указан
C:\Program Files\yagarto\bin\arm-none-eabi-gdb.exe,
а elf был в предыдущей версии.
Может Вы поставили поверх предыдущей и в таком варианте не хочет работать.

Проблема была и в предыдущей версии, и в текущей "arm-none-eabi-gdb.exe".
Перекомпиляция проекта производилась и до, и после, т.е. elf-файл был адекватен версии gdb.

Новая версия ягарто ставилась поверху, но в мейк-файле всё это учитывалось:

#CROSS_COMPILE= arm-elf-
CROSS_COMPILE= arm-none-eabi-

куда копать? в чём проблемка?
Go to the top of the page
 
+Quote Post
gte
сообщение May 20 2010, 17:53
Сообщение #268


Гуру
******

Группа: Свой
Сообщений: 2 318
Регистрация: 13-02-05
Из: Липецкая область
Пользователь №: 2 613



Цитата(Volldemar @ May 20 2010, 21:41) *
Проблема была и в предыдущей версии, и в текущей "arm-none-eabi-gdb.exe".

Надеюсь, Java "свежая".
При запуске отладчика с Мт-линк, у меня сбивается, если перед запуском я не выставлю скорость GDB сервера от 100 кГц. Попробуйте, поиграйтесь скоростью соединения.
Go to the top of the page
 
+Quote Post
Volldemar
сообщение May 21 2010, 07:18
Сообщение #269


Частый гость
**

Группа: Участник
Сообщений: 121
Регистрация: 27-04-09
Из: Украина
Пользователь №: 48 342



Цитата(gte @ May 20 2010, 20:53) *
Надеюсь, Java "свежая".
При запуске отладчика с Мт-линк, у меня сбивается, если перед запуском я не выставлю скорость GDB сервера от 100 кГц. Попробуйте, поиграйтесь скоростью соединения.



ява свежая: "java version "1.6.0_20""

Вот что выводит в консоль:

target remote localhost:2331
0x0020089c in ?? ()
monitor flash device = AT91SAM9XE512
Select flash device: AT91SAM9XE512

monitor halt
monitor reset halt
Expected an decimal digit (0-9)

thbreak main
Hardware assisted breakpoint 1 at 0x2010b0: file sam9xe512_test.S, line 11.
continue

Temporary breakpoint 1, main () at sam9xe512_test.S:11
11 LDR R1,=0x46

Скорость соединения менял, не влияет. Всё так же нет отображения во вкладке "Registers". Что делать? куда копать? sad.gif

Сообщение отредактировал Volldemar - May 21 2010, 07:50
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение May 21 2010, 07:48
Сообщение #270


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



Цитата(Volldemar @ May 21 2010, 13:18) *
Код
Cannot access memory at address 0x2243220


А что там? По этому адресу? Покажите скрипт инициализации отладчика.
Попробуйте добавить в него
Код
set mem inaccessible-by-default off


Цитата(Volldemar @ May 21 2010, 13:18) *
Код
monitor reset halt
Expected an decimal digit (0-9)


Это тоже непорядок. Попробуйте поменять на
Код
monitor soft_reset_halt



---
ЗЫ. И конфиги openocd тоже покажите.


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post

51 страниц V  « < 16 17 18 19 20 > » 
Reply to this topicStart new topic
4 чел. читают эту тему (гостей: 4, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 07:53
Рейтинг@Mail.ru


Страница сгенерированна за 0.01606 секунд с 7
ELECTRONIX ©2004-2016