diff --git a/firmware/common/Makefile_inc.mk b/firmware/common/Makefile_inc.mk index 9b451b5f..ff301ee3 100644 --- a/firmware/common/Makefile_inc.mk +++ b/firmware/common/Makefile_inc.mk @@ -44,7 +44,7 @@ OBJDUMP = $(PREFIX)-objdump GDB = $(PREFIX)-gdb TOOLCHAIN_DIR := $(shell dirname `which $(CC)`)/../$(PREFIX) -CFLAGS += -O2 -g -Wall -Wextra -I$(LIBOPENCM3)/include -I../common \ +CFLAGS += -O2 -g3 -Wall -Wextra -I$(LIBOPENCM3)/include -I../common \ -fno-common -mcpu=cortex-m4 -mthumb -MD \ -mfloat-abi=hard -mfpu=fpv4-sp-d16 \ $(HACKRF_OPTS) diff --git a/firmware/common/hackrf_core.c b/firmware/common/hackrf_core.c index c812c587..adfe54e3 100644 --- a/firmware/common/hackrf_core.c +++ b/firmware/common/hackrf_core.c @@ -77,11 +77,9 @@ void cpu_clock_init(void) /* power on the oscillator and wait until stable */ CGU_XTAL_OSC_CTRL &= ~CGU_XTAL_OSC_CTRL_ENABLE; - delay(1000000); /* use XTAL_OSC as clock source for BASE_M4_CLK (CPU) */ - CGU_BASE_M4_CLK = (CGU_BASE_CLK_AUTOBLOCK - | (CGU_SRC_XTAL << CGU_BASE_CLK_SEL_SHIFT)); + CGU_BASE_M4_CLK = ((CGU_SRC_XTAL << CGU_BASE_CLK_SEL_SHIFT)); /* use XTAL_OSC as clock source for APB1 */ CGU_BASE_APB1_CLK = (CGU_BASE_CLK_AUTOBLOCK @@ -111,9 +109,7 @@ void cpu_clock_init(void) while (!(CGU_PLL1_STAT & CGU_PLL1_STAT_LOCK)); /* use PLL1 as clock source for BASE_M4_CLK (CPU) */ - CGU_BASE_M4_CLK = (CGU_BASE_CLK_AUTOBLOCK - | (CGU_SRC_PLL1 << CGU_BASE_CLK_SEL_SHIFT)); - delay(1000000); + CGU_BASE_M4_CLK = ((CGU_SRC_PLL1 << CGU_BASE_CLK_SEL_SHIFT)); /* use XTAL_OSC as clock source for PLL0USB */ CGU_PLL0USB_CTRL = (CGU_PLL0USB_CTRL_PD diff --git a/firmware/startup/startup.c b/firmware/startup/startup.c index 97ed69ae..912ef38a 100644 --- a/firmware/startup/startup.c +++ b/firmware/startup/startup.c @@ -53,6 +53,8 @@ void gpio_setup(void) int main(void) { + u32 i; + gpio_setup(); gpio_set(PORT_EN1V8, PIN_EN1V8); /* 1V8 on */ @@ -61,7 +63,26 @@ int main(void) gpio_set(PORT_LED1_3, (PIN_LED1|PIN_LED2|PIN_LED3)); /* LEDs on */ - while (1); + while (1) + { + gpio_set(PORT_LED1_3, (PIN_LED1)); /* LEDs on */ + for (i = 0; i < 2000000; i++) /* Wait a bit. */ + __asm__("nop"); + + gpio_set(PORT_LED1_3, (PIN_LED1|PIN_LED2)); /* LEDs on */ + for (i = 0; i < 2000000; i++) /* Wait a bit. */ + __asm__("nop"); + + gpio_set(PORT_LED1_3, (PIN_LED1|PIN_LED2|PIN_LED3)); /* LED off */ + for (i = 0; i < 2000000; i++) /* Wait a bit. */ + __asm__("nop"); + + gpio_clear(PORT_LED1_3, (PIN_LED1|PIN_LED2|PIN_LED3)); /* LED off */ + for (i = 0; i < 2000000; i++) /* Wait a bit. */ + __asm__("nop"); + } + + return 0; }