Skip to content

Build cleanup #8

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 5 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
*.o
*~
*.bin
*.elf
*.hex
lpc1xxx/memory.ld
lpcrc
*.rej
*.orig
*.patch
a.*
?
133 changes: 23 additions & 110 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,19 +1,8 @@
##########################################################################
# User configuration and firmware specific object files
##########################################################################

# The target, flash and ram of the LPC1xxx microprocessor.
# Use for the target the value: LPC11xx, LPC13xx or LPC17xx
TARGET = LPC13xx
FLASH = 32K
SRAM = 8K
PROJECTCFG=projectconfig

# For USB HID support the LPC134x reserves 384 bytes from the sram,
# if you don't want to use the USB features, just use 0 here.
SRAM_USB = 384

VPATH =
OBJS = main.o
include boards/defaults
include $(PROJECTCFG)
include configparser.make

##########################################################################
# Debug settings
Expand All @@ -34,95 +23,15 @@ OPTDEFINES = -D __NEWLIB__
##########################################################################

VPATH += project
OBJS += commands.o

VPATH += project/commands
OBJS += cmd_chibi_addr.o cmd_chibi_tx.o
OBJS += cmd_i2ceeprom_read.o cmd_i2ceeprom_write.o cmd_lm75b_gettemp.o
OBJS += cmd_reset.o cmd_sd_dir.o cmd_sysinfo.o cmd_uart.o
OBJS += cmd_roundedcorner.o cmd_pwm.o

VPATH += project/commands/drawing
OBJS += cmd_backlight.o cmd_bmp.o cmd_button.o cmd_calibrate.o
OBJS += cmd_circle.o cmd_clear.o cmd_line.o cmd_orientation.o
OBJS += cmd_pixel.o cmd_progress.o cmd_rectangle.o cmd_text.o
OBJS += cmd_textw.o cmd_tsthreshhold.o cmd_tswait.o cmd_triangle.o

##########################################################################
# Optional driver files
##########################################################################

# Chibi Light-Weight Wireless Stack (AT86RF212)
VPATH += drivers/rf/chibi
OBJS += chb.o chb_buf.o chb_drvr.o chb_eeprom.o chb_spi.o

# 4K EEPROM
VPATH += drivers/storage/eeprom drivers/storage/eeprom/mcp24aa
OBJS += eeprom.o mcp24aa.o

# LM75B temperature sensor
VPATH += drivers/sensors/lm75b
OBJS += lm75b.o

# ISL12022M RTC
VPATH += drivers/rtc/isl12022m
OBJS += isl12022m.o

# TFT LCD support
VPATH += drivers/displays/tft drivers/displays/tft/hw
OBJS += drawing.o touchscreen.o colors.o theme.o bmp.o

# GUI Controls
VPATH += drivers/displays/tft/controls
OBJS += button.o hsbchart.o huechart.o label.o
OBJS += labelcentered.o progressbar.o

# Bitmap (non-AA) fonts
VPATH += drivers/displays/tft/fonts
OBJS += fonts.o
OBJS += dejavusans9.o dejavusansbold9.o dejavusanscondensed9.o
OBJS += dejavusansmono8.o dejavusansmonobold8.o
OBJS += verdana9.o verdana14.o verdanabold14.o

# Anti-aliased fonts
VPATH += drivers/displays/tft/aafonts/aa2 drivers/displays/tft/aafonts/aa4
OBJS += aafonts.o
OBJS += DejaVuSansCondensed14_AA2.o DejaVuSansCondensedBold14_AA2.o
OBJS += DejaVuSansMono10_AA2.o DejaVuSansMono13_AA2.o DejaVuSansMono14_AA2.o

# LCD Driver (Only one can be included at a time!)
# OBJS += hx8340b.o
# OBJS += hx8347d.o
OBJS += ILI9328.o
# OBJS += ILI9325.o
# OBJS += ssd1331.o
# OBJS += ssd1351.o
# OBJS += st7735.o
# OBJS += st7783.o

# Bitmap/Monochrome LCD support (ST7565, SSD1306, etc.)
VPATH += drivers/displays
VPATH += drivers/displays/bitmap/sharpmem
VPATH += drivers/displays/bitmap/st7565
VPATH += drivers/displays/bitmap/ssd1306
OBJS += smallfonts.o sharpmem.o st7565.o ssd1306.o

#Character Displays (VFD text displays, etc.)
VPATH += drivers/displays/character/samsung_20T202DA2JA
OBJS += samsung_20T202DA2JA.o

# ChaN FatFS and SD card support
VPATH += drivers/fatfs
OBJS += ff.o mmc.o

# Motors
VPATH += drivers/motor/stepper
OBJS += stepper.o

# RSA Encryption/Descryption
VPATH += drivers/rsa
OBJS += rsa.o

# DAC
VPATH += drivers/dac/mcp4725 drivers/dac/mcp4901
OBJS += mcp4725.o mcp4901.o
Expand Down Expand Up @@ -158,13 +67,13 @@ OBJS += mpl115a2.o

VPATH += core core/adc core/cmd core/cpu core/gpio core/i2c core/pmu
VPATH += core/ssp core/systick core/timer16 core/timer32 core/uart
VPATH += core/usbhid-rom core/wdt core/usbcdc core/pwm core/iap
VPATH += core/wdt core/iap
VPATH += core/libc
OBJS += stdio.o string.o
OBJS += adc.o cpu.o cmd.o gpio.o i2c.o pmu.o ssp.o systick.o timer16.o
OBJS += timer32.o uart.o uart_buf.o usbconfig.o usbhid.o
OBJS += wdt.o cdcuser.o cdc_buf.o usbcore.o usbdesc.o usbhw.o usbuser.o
OBJS += sysinit.o pwm.o iap.o
OBJS += adc.o cpu.o gpio.o i2c.o pmu.o ssp.o systick.o timer16.o
OBJS += timer32.o uart.o uart_buf.o
OBJS += wdt.o
OBJS += sysinit.o iap.o

##########################################################################
# GNU GCC compiler prefix and location
Expand All @@ -177,7 +86,6 @@ LD = $(CROSS_COMPILE)gcc
SIZE = $(CROSS_COMPILE)size
OBJCOPY = $(CROSS_COMPILE)objcopy
OBJDUMP = $(CROSS_COMPILE)objdump
OUTFILE = firmware
LPCRC = ./lpcrc

##########################################################################
Expand Down Expand Up @@ -208,26 +116,31 @@ OBJS += $(TARGET)_handlers.o LPC1xxx_startup.o
# Compiler settings, parameters and flags
##########################################################################
ifeq (TRUE,$(DEBUGBUILD))
CFLAGS = -c -g -O0 $(INCLUDE_PATHS) -Wall -mthumb -ffunction-sections -fdata-sections -fmessage-length=0 -mcpu=$(CPU_TYPE) -DTARGET=$(TARGET) -fno-builtin $(OPTDEFINES)
ASFLAGS = -c -g -O0 $(INCLUDE_PATHS) -Wall -mthumb -ffunction-sections -fdata-sections -fmessage-length=0 -mcpu=$(CPU_TYPE) -D__ASSEMBLY__ -x assembler-with-cpp
CFLAGS = -g -O0
ASFLAGS = -g -O0
else
CFLAGS = -c -g -Os $(INCLUDE_PATHS) -Wall -mthumb -ffunction-sections -fdata-sections -fmessage-length=0 -mcpu=$(CPU_TYPE) -DTARGET=$(TARGET) -fno-builtin $(OPTDEFINES)
ASFLAGS = -c -g -Os $(INCLUDE_PATHS) -Wall -mthumb -ffunction-sections -fdata-sections -fmessage-length=0 -mcpu=$(CPU_TYPE) -D__ASSEMBLY__ -x assembler-with-cpp
CFLAGS = -g -Os
ASFLAGS = -g -Os
endif


xCFLAGS = -c $(CFLAGS) $(INCLUDE_PATHS) -Wall -mthumb -ffunction-sections -fdata-sections -fmessage-length=0 -mcpu=$(CPU_TYPE) -DTARGET=$(TARGET) -fno-builtin $(OPTDEFINES) $(DEFS)
xASFLAGS = -c $(ASFLAGS) $(INCLUDE_PATHS) -Wall -mthumb -ffunction-sections -fdata-sections -fmessage-length=0 -mcpu=$(CPU_TYPE) -D__ASSEMBLY__ -x assembler-with-cpp
LDFLAGS = -nostartfiles -mthumb -mcpu=$(CPU_TYPE) -Wl,--gc-sections
LDLIBS = -lm
OCFLAGS = --strip-unneeded

all: firmware
all: $(OUTFILE)

%.o : %.c
$(CC) $(CFLAGS) -o $@ $<
@echo CC $<
@$(CC) $(xCFLAGS) -o $@ $<

%.o : %.s
$(AS) $(ASFLAGS) -o $@ $<
@echo AS $<
@$(AS) $(xASFLAGS) -o $@ $<

firmware: $(OBJS) $(SYS_OBJS)
$(OUTFILE): $(OBJS) $(SYS_OBJS)
-@echo "MEMORY" > $(LD_TEMP)
-@echo "{" >> $(LD_TEMP)
-@echo " flash(rx): ORIGIN = 0x00000000, LENGTH = $(FLASH)" >> $(LD_TEMP)
Expand All @@ -242,7 +155,7 @@ firmware: $(OBJS) $(SYS_OBJS)
$(OBJCOPY) $(OCFLAGS) -O binary $(OUTFILE).elf $(OUTFILE).bin
$(OBJCOPY) $(OCFLAGS) -O ihex $(OUTFILE).elf $(OUTFILE).hex
-@echo ""
$(LPCRC) firmware.bin
$(LPCRC) $(OUTFILE).bin

clean:
rm -f $(OBJS) $(LD_TEMP) $(OUTFILE).elf $(OUTFILE).bin $(OUTFILE).hex
18 changes: 18 additions & 0 deletions boards/LPC1343_802154USBSTICK
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
GPIO_ENABLE_IRQ1 = 1

CFG_SSP0_SCKPIN = 0_6

CFG_LED_PORT = 3
CFG_LED_PIN = 2

CFG_USBCDC = 1

CFG_PRINTF_USBCDC = 1
CFG_PRINTF_NEWLINE = "\r\n"

CFG_INTERFACE_PROMPT = "CMD >> "

CFG_I2CEEPROM = 1

CFG_CHIBI = 1
CFG_CHIBI_BUFFERSIZE = 1024
9 changes: 9 additions & 0 deletions boards/LPC1343_LPCXPRESSO
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
GPIO_ENABLE_IRQ1 = 1

CFG_LED_PORT = 0
CFG_LED_PIN = 7

CFG_USBCDC = 1

CFG_PRINTF_USBCDC = 1
CFG_PRINTF_NEWLINE = "\r\n"
9 changes: 9 additions & 0 deletions boards/LPC1343_OLIMEX_P
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
GPIO_ENABLE_IRQ1 = 1

CFG_LED_PORT = 3
CFG_LED_PIN = 2

CFG_USBCDC = 1

CFG_PRINTF_USBCDC = 1
CFG_PRINTF_NEWLINE = "\r\n"
7 changes: 7 additions & 0 deletions boards/LPC1343_REFDESIGN
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
include boards/LPC1343_REFDESIGN_MINIMAL

CFG_USBCDC = 1

CFG_PRINTF_USBCDC = 1

CFG_I2CEEPROM = 1
5 changes: 5 additions & 0 deletions boards/LPC1343_REFDESIGN_MINIMAL
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
GPIO_ENABLE_IRQ1 = 1

ADC_AVERAGING_ENABLE = 1

CFG_PRINTF_NEWLINE = "\r\n"
25 changes: 25 additions & 0 deletions boards/LPC1343_TFTLCDSTANDALONE_UART
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
GPIO_ENABLE_IRQ1 = 1

CFG_ALTRESET = 1
CFG_ALTRESET_PORT = 1
CFG_ALTRESET_PIN = 5 # P1.5 = RTS

CFG_UART_BAUDRATE = 57600

CFG_USBCDC_BAUDRATE = 57600

CFG_PRINTF_UART = 1

CFG_INTERFACE_PROMPT = "CMD >> "
CFG_INTERFACE_SILENTMODE = 1
CFG_INTERFACE_DROPCR = 1
CFG_INTERFACE_ENABLEIRQ = 1
CFG_INTERFACE_SHORTERRORS = 1
CFG_INTERFACE_SHORTERRORS_UNKNOWNCOMMAND = "?"
CFG_INTERFACE_SHORTERRORS_TOOMANYARGS = ">"
CFG_INTERFACE_SHORTERRORS_TOOFEWARGS = "<"
CFG_INTERFACE_CONFIRMREADY_TEXT = "."

CFG_I2CEEPROM = 1

CFG_TFTLCD = 1
16 changes: 16 additions & 0 deletions boards/LPC1343_TFTLCDSTANDALONE_USB
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
GPIO_ENABLE_IRQ1 = 1

CFG_USBCDC = 1

CFG_PRINTF_USBCDC = 1
CFG_PRINTF_NEWLINE = "\r\n"

CFG_INTERFACE_PROMPT = "CMD >> "
CFG_INTERFACE_SHORTERRORS_UNKNOWNCOMMAND = "?"
CFG_INTERFACE_SHORTERRORS_TOOMANYARGS = ">"
CFG_INTERFACE_SHORTERRORS_TOOFEWARGS = "<"
CFG_INTERFACE_CONFIRMREADY_TEXT = "."

CFG_I2CEEPROM = 1

CFG_TFTLCD = 1
73 changes: 73 additions & 0 deletions boards/defaults
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
CFG_CPU_CCLK = 72000000 # 1 tick = 13.88nS
CFG_SYSTICK_DELAY_IN_MS = 1

CFG_UART_BAUDRATE = 115200
CFG_UART_BUFSIZE = 512

CFG_SSP0_SCKPIN = 2_11

ADC_AVERAGING_SAMPLES = 5

CFG_LED_PORT = 2
CFG_LED_PIN = 10
CFG_LED_ON = 0
CFG_LED_OFF = 1

CFG_SDCARD_READONLY = 1
CFG_SDCARD_CDPORT = 3
CFG_SDCARD_CDPIN = 0

CFG_USB_VID = 239A
CFG_USB_PID = 1002

CFG_USBCDC_BAUDRATE = 115200
CFG_USBCDC_INITTIMEOUT = 5000
CFG_USBCDC_BUFFERSIZE = 256

CFG_PRINTF_MAXSTRINGSIZE = 255
CFG_PRINTF_NEWLINE = "\n"

CFG_INTERFACE_MAXMSGSIZE = 256
CFG_INTERFACE_PROMPT = "LPC1343 >> "
CFG_INTERFACE_SILENTMODE = 0
CFG_INTERFACE_DROPCR = 0
CFG_INTERFACE_ENABLEIRQ = 0
CFG_INTERFACE_IRQPORT = 0
CFG_INTERFACE_IRQPIN = 7
CFG_INTERFACE_SHORTERRORS = 0
CFG_INTERFACE_CONFIRMREADY = 0
CFG_INTERFACE_LONGSYSINFO = 0

CFG_PWM_DEFAULT_PULSEWIDTH = CFG_CPU_CCLK / 1000
CFG_PWM_DEFAULT_DUTYCYCLE = 50

CFG_I2CEEPROM_SIZE = 3072

CFG_EEPROM_RESERVED = FF # Protect first 256 bytes of memory
CFG_EEPROM_CHIBI_IEEEADDR = 00 # 8
CFG_EEPROM_CHIBI_SHORTADDR = 09 # 2
CFG_EEPROM_UART_SPEED = 20 # 4
CFG_EEPROM_TOUCHSCREEN_CALIBRATED = 30 # 1
CFG_EEPROM_TOUCHSCREEN_CAL_AN = 31 # 4
CFG_EEPROM_TOUCHSCREEN_CAL_BN = 35 # 4
CFG_EEPROM_TOUCHSCREEN_CAL_CN = 39 # 4
CFG_EEPROM_TOUCHSCREEN_CAL_DN = 3D # 4
CFG_EEPROM_TOUCHSCREEN_CAL_EN = 41 # 4
CFG_EEPROM_TOUCHSCREEN_CAL_FN = 45 # 4
CFG_EEPROM_TOUCHSCREEN_CAL_DIVIDER = 49 # 4
CFG_EEPROM_TOUCHSCREEN_THRESHHOLD = 4D # 1

CFG_CHIBI_MODE = 0 # OQPSK_868MHZ
CFG_CHIBI_POWER = 0xE9 # CHB_PWR_EU2_3DBM
CFG_CHIBI_CHANNEL = 0 # 868-868.6 MHz
CFG_CHIBI_PANID = 1234
CFG_CHIBI_PROMISCUOUS = 0
CFG_CHIBI_BUFFERSIZE = 128

CFG_TFTLCD_DRIVER = ILI9328
CFG_TFTLCD_INCLUDESMALLFONTS = 0
CFG_TFTLCD_USEAAFONTS = 0
CFG_TFTLCD_TS_DEFAULTTHRESHOLD = 50
CFG_TFTLCD_TS_KEYPADDELAY = 100

CFG_RSA_BITS = 32
Loading