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

 
 
> lpc13xx + gcc
vitmeat
сообщение Mar 22 2011, 16:07
Сообщение #1





Группа: Участник
Сообщений: 13
Регистрация: 22-01-11
Пользователь №: 62 402



В общем имеется у меня платка LPCExpresso, с lpc1343 на борту, давно купленная за кровные 750руб.
Никакие keil'ы, iar'ы, code red'ы, меня категорически не устраивают, как и eclipse в принципе.
Выбор IDE я хочу сделать самостоятельно.
А вот компилятор я хочу gcc.
Есть от klen'а, есть Yagarto, есть Codesourcery G++.
Так вот:
Не могу сообразить, как собрать первый проект с cortex'овским cmsis'ом. (CMSISv1p30_LPC13xx)
Нужен как минимум makefile и скрипты для линкера, а также правильная инициализация при старте. - это я правильно понимаю?
Есть у кого нибудь пример для сабжа. Ну или может кто объяснит, что да как. Или даст адресок, где можно об этом почитать.

Натыкался вот на это в интернете.
http://www.microbuilder.eu/Projects/LPC134...enceDesign.aspx
Но там все как-то перепахано и simple example от туда не получается выдрать.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Krom
сообщение May 13 2011, 10:07
Сообщение #2


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

Группа: Свой
Сообщений: 107
Регистрация: 27-06-05
Из: Россия
Пользователь №: 6 324



Рабочий Makefile для сборки библиотеки CMSYS для LPC1768. Правда, для работы в линуксе.

########################################################################
# Makefile to create FirmWare Library for LPC17xx
########################################################################
TCHAIN = arm-elf
TCHAIN_VER = 4.6.1
TCHAIN_ROOT = /usr/local

MCU = cortex-m3
OPT = 0
CMCORE = CM3
DEVICE = LPC17xx

DEBUG = dwarf-2
CSTANDARD = -std=gnu99

TARGET = lib$(DEVICE)

PROJECT = DEV_LPC17xx
PROJ_ROOT = ~/MPrjs/CortexM3/$(PROJECT)

EXTRAINCDIRS =

########################################################################
# (FWLIB) SOURCE AND HOCEADERS LOCATIONS
########################################################################
FWLIB_ROOT =~/MPrjs/CortexM3/LPC1700CMSIS
FWLIB_SRC_DIR =$(FWLIB_ROOT)/Drivers/source
FWLIB_INC_DIR =$(FWLIB_ROOT)/Drivers/include


########################################################################
# (CMCORE) SOURCE AND HEADERS LOCATIONS
########################################################################
CMCORE_DIR =$(FWLIB_ROOT)/Core/$(CMCORE)/CoreSupport
DEVICE_DIR =$(FWLIB_ROOT)/Core/$(CMCORE)/DeviceSupport/NXP/$(DEVICE)


########################################################################
# C-Sources
########################################################################
SRC = $(PROJ_ROOT)/lpc17xx_libcfg.c
SRC += $(FWLIB_SRC_DIR)/lpc17xx_gpio.c
SRC += $(FWLIB_SRC_DIR)/lpc17xx_adc.c
#SRC += $(FWLIB_SRC_DIR)/lpc17xx_gpio.c
SRC += $(FWLIB_SRC_DIR)/lpc17xx_nvic.c
SRC += $(FWLIB_SRC_DIR)/lpc17xx_pinsel.c
SRC += $(FWLIB_SRC_DIR)/lpc17xx_spi.c
SRC += $(FWLIB_SRC_DIR)/lpc17xx_timer.c
SRC += $(FWLIB_SRC_DIR)/lpc17xx_uart.c
SRC += $(FWLIB_SRC_DIR)/lpc17xx_clkpwr.c
SRC += $(FWLIB_SRC_DIR)/lpc17xx_rtc.c
SRC += $(FWLIB_SRC_DIR)/lpc17xx_ssp.c
SRC += $(FWLIB_SRC_DIR)/lpc17xx_systick.c

########################################################################
# Assembler-Sources
########################################################################
ASRC =

#CDEFS =
CDEFS = -D__BUILD_WITH_EXAMPLE__

CFLAGS = $(CDEFS)
CFLAGS += -mthumb
CFLAGS += -Wall
CFLAGS += -O$(OPT)
CFLAGS += -mapcs-frame
CFLAGS += -D__thumb2__=1
CFLAGS += -msoft-float
CFLAGS += -mfpu=vfp
CFLAGS += -mfloat-abi=soft
CFLAGS += -mno-sched-prolog
CFLAGS += -fno-hosted
#CFLAGS += -mtune=cortex-m3
#CFLAGS += -march=armv7-m
#CFLAGS += -mfix-cortex-m3-ldrd
CFLAGS += -ffunction-sections
CFLAGS += -fdata-sections
CFLAGS += -g$(DEBUG)
CFLAGS += $(CSTANDARD)

#CFLAGS += -Wstrict-prototypes
#CFLAGS += -Wundef
#CFLAGS += -Wa,-adhlns=$(<:%.c=%.lst)
#CFLAGS += $(patsubst %,-I%,$(EXTRAINCDIRS))

CFLAGS += -D__BUILD_WITH_EXAMPLE__=1

CFLAGS += -I $(FWLIB_INC_DIR) -I $(CMCORE_DIR) -I $(DEVICE_DIR)

ASFLAGS = -Wa,-adhlns=$(<:%.S=%.lst),-g$(DEBUG)
ASFLAGS += -mthumb -Dgcc -DBUILD_ALL
AFLAGS += -I $(FWLIB_INC_DIR) -I $(CMCORE_INC_DIR)

CC = $(TCHAIN_ROOT)/bin/$(TCHAIN)-gcc
AS = $(TCHAIN_ROOT)/bin/$(TCHAIN)-as
AR = $(TCHAIN_ROOT)/bin/$(TCHAIN)-ar
LD = $(TCHAIN_ROOT)/bin/$(TCHAIN)-gcc
NM = $(TCHAIN_ROOT)/bin/$(TCHAIN)-nm
OBJDUMP = $(TCHAIN_ROOT)/bin/$(TCHAIN)-objdump
OBJCOPY = $(TCHAIN_ROOT)/bin/$(TCHAIN)-objcopy
READELF = $(TCHAIN_ROOT)/bin/$(TCHAIN)-readelf
RANLIB = $(TCHAIN_ROOT)/bin/$(TCHAIN)-ranlib
SIZE = $(TCHAIN_ROOT)/bin/$(TCHAIN)-size

SHELL = /bin/sh
REMOVE = /bin/rm -f
REMOVEDIR = /bin/rm -rf

# Define all object files.
OBJ = $(SRC:%.c=%.o) $(ASRC:%.S=%.o)

# Define all listing files.
LST = $(SRC:%.c=%.lst) $(ASRC:%.S=%.lst)

# Combine all necessary flags and optional flags.
# Add target processor to flags.
ALL_CFLAGS = -mcpu=$(MCU) -I. $(CFLAGS) $(GENDEPFLAGS)
ALL_ASFLAGS = -mcpu=$(MCU) -I. -x assembler-with-cpp $(ASFLAGS)

# target for make all -> just create go to target lib
all: lib

%.o : %.c
$(CC) -c $(ALL_CFLAGS) $< -o $@

%.o : %.S
$(CC) -c $(ALL_ASFLAGS) $< -o $@

lib: $(OBJ)
$(AR) -crs $(TARGET).a $(OBJ)

# Target: clean project.
clean :
$(REMOVE) $(SRC:.c=.s)
$(REMOVE) $(SRC:.c=.d)
$(REMOVE) $(OBJ)
$(REMOVE) $(LST)
$(REMOVE) $(TARGET).a
$(REMOVEDIR) .dep


# Create object files directory
# $(shell mkdir $(OBJDIR) 2>/dev/null)


# Include the dependency files.
-include $(shell mkdir .dep 2>/dev/null) $(wildcard .dep/*)


# Listing of phony targets.
.PHONY : all build clean lib
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 29th July 2025 - 08:40
Рейтинг@Mail.ru


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