diff options
author | Harald Welte <laforge@osmocom.org> | 2020-01-11 12:31:51 +0100 |
---|---|---|
committer | Harald Welte <laforge@osmocom.org> | 2020-01-11 17:52:36 +0100 |
commit | e3b2de45c4507754a29f1c74865150b34c5d5f23 (patch) | |
tree | 071ae2367c17023f2d377158e63ac06005953204 | |
parent | ce4b5c25e8fca000723b586a1dee24b7299c360e (diff) |
firmware: move printing of welcome banner to common function print_banner()
This unifies the printing of the welcome banner, and it also ensures
that all modes print all information (serial number, reset cause).
Furthermore the APP and BOARD #defines from the make environment are
also printed.
Change-Id: I7e6bc05cee4b9ec0fd9a05dc90ce0b26a5763e5a
-rw-r--r-- | firmware/Makefile | 3 | ||||
-rw-r--r-- | firmware/apps/cardem/main.c | 32 | ||||
-rw-r--r-- | firmware/apps/trace/main.c | 18 | ||||
-rw-r--r-- | firmware/apps/triple_play/main.c | 14 | ||||
-rw-r--r-- | firmware/libcommon/include/main_common.h | 3 | ||||
-rw-r--r-- | firmware/libcommon/source/main_common.c | 54 |
6 files changed, 64 insertions, 60 deletions
diff --git a/firmware/Makefile b/firmware/Makefile index bd634aa..5c7aa92 100644 --- a/firmware/Makefile +++ b/firmware/Makefile @@ -99,7 +99,8 @@ C_LIBCHIP = $(notdir $(wildcard $(AT91LIB)/libchip_sam3s/source/*.c) $(wildcard C_LIBUSB = USBDescriptors.c USBRequests.c USBD.c USBDCallbacks.c USBDDriver.c USBDDriverCallbacks.c C_LIBUSB_RT = dfu.c dfu_runtime.c C_LIBUSB_DFU = dfu.c dfu_desc.c dfu_driver.c -C_LIBCOMMON = string.c stdio.c fputs.c usb_buf.c ringbuffer.c pseudo_talloc.c host_communication.c +C_LIBCOMMON = string.c stdio.c fputs.c usb_buf.c ringbuffer.c pseudo_talloc.c host_communication.c \ + main_common.c C_BOARD = $(notdir $(wildcard libboard/common/source/*.c)) C_BOARD += $(notdir $(wildcard libboard/$(BOARD)/source/*.c)) diff --git a/firmware/apps/cardem/main.c b/firmware/apps/cardem/main.c index 2f7bcd5..f6a5ab5 100644 --- a/firmware/apps/cardem/main.c +++ b/firmware/apps/cardem/main.c @@ -24,10 +24,9 @@ #include "board.h" #include "simtrace.h" #include "utils.h" +#include "main_common.h" #include <osmocom/core/timer.h> -unsigned int g_unique_id[4]; - /*------------------------------------------------------------------------------ * Internal variables *------------------------------------------------------------------------------*/ @@ -154,34 +153,7 @@ extern int main(void) PIO_InitializeInterrupts(0); - EEFC_ReadUniqueID(g_unique_id); - - printf("\n\r\n\r" - "=============================================================================\n\r" - "SIMtrace2 firmware " GIT_VERSION "\n\r" - "(C) 2010-2019 by Harald Welte, 2018-2019 by Kevin Redon\n\r" - "=============================================================================\n\r"); - -#if (TRACE_LEVEL >= TRACE_LEVEL_INFO) - TRACE_INFO("Chip ID: 0x%08lx (Ext 0x%08lx)\n\r", CHIPID->CHIPID_CIDR, CHIPID->CHIPID_EXID); - TRACE_INFO("Serial Nr. %08x-%08x-%08x-%08x\n\r", - g_unique_id[0], g_unique_id[1], - g_unique_id[2], g_unique_id[3]); - uint8_t reset_cause = (RSTC->RSTC_SR & RSTC_SR_RSTTYP_Msk) >> RSTC_SR_RSTTYP_Pos; - static const char* reset_causes[] = { - "general reset (first power-up reset)", - "backup reset (return from backup mode)", - "watchdog reset (watchdog fault occurred)", - "software reset (processor reset required by the software)", - "user reset (NRST pin detected low)", - }; - if (reset_cause < ARRAY_SIZE(reset_causes)) { - TRACE_INFO("Reset Cause: %s\n\r", reset_causes[reset_cause]); - } else { - TRACE_INFO("Reset Cause: 0x%lx\n\r", (RSTC->RSTC_SR & RSTC_SR_RSTTYP_Msk) >> RSTC_SR_RSTTYP_Pos); - } -#endif - + print_banner(); board_main_top(); TRACE_INFO("USB init...\n\r"); diff --git a/firmware/apps/trace/main.c b/firmware/apps/trace/main.c index 97455fb..08d6120 100644 --- a/firmware/apps/trace/main.c +++ b/firmware/apps/trace/main.c @@ -24,10 +24,9 @@ #include "board.h" #include "simtrace.h" #include "utils.h" +#include "main_common.h" #include "osmocom/core/timer.h" -unsigned int g_unique_id[4]; - /*------------------------------------------------------------------------------ * Internal variables *------------------------------------------------------------------------------*/ @@ -158,20 +157,7 @@ extern int main(void) PIO_InitializeInterrupts(0); - EEFC_ReadUniqueID(g_unique_id); - - printf("\n\r\n\r" - "=============================================================================\n\r" - "SIMtrace2 firmware " GIT_VERSION " (C) 2010-2016 by Harald Welte\n\r" - "=============================================================================\n\r"); - - TRACE_INFO("Chip ID: 0x%08lx (Ext 0x%08lx)\n\r", CHIPID->CHIPID_CIDR, CHIPID->CHIPID_EXID); - TRACE_INFO("Serial Nr. %08x-%08x-%08x-%08x\n\r", - g_unique_id[0], g_unique_id[1], - g_unique_id[2], g_unique_id[3]); - TRACE_INFO("Reset Cause: 0x%lx\n\r", (RSTC->RSTC_SR & RSTC_SR_RSTTYP_Msk) >> RSTC_SR_RSTTYP_Pos); - TRACE_INFO("USB configuration used: %d\n\r", simtrace_config); - + print_banner(); board_main_top(); TRACE_INFO("USB init...\n\r"); diff --git a/firmware/apps/triple_play/main.c b/firmware/apps/triple_play/main.c index b81abdd..d22687e 100644 --- a/firmware/apps/triple_play/main.c +++ b/firmware/apps/triple_play/main.c @@ -26,8 +26,6 @@ #include "req_ctx.h" #include <osmocom/core/timer.h> -unsigned int g_unique_id[4]; - /*------------------------------------------------------------------------------ * Internal variables *------------------------------------------------------------------------------*/ @@ -149,17 +147,7 @@ extern int main(void) PIO_InitializeInterrupts(0); - EEFC_ReadUniqueID(g_unique_id); - - printf("\r\n\r\n" - "=============================================================================\r\n" - "SIMtrace2 firmware " GIT_REVISION " (C) 2010-2017 by Harald Welte\r\n" - "=============================================================================\r\n"); - - TRACE_INFO("Serial Nr. %08x-%08x-%08x-%08x\r\n", - g_unique_id[0], g_unique_id[1], - g_unique_id[2], g_unique_id[3]); - + print_banner(); board_main_top(); TRACE_INFO("USB init...\r\n"); diff --git a/firmware/libcommon/include/main_common.h b/firmware/libcommon/include/main_common.h new file mode 100644 index 0000000..ce19f81 --- /dev/null +++ b/firmware/libcommon/include/main_common.h @@ -0,0 +1,3 @@ +#pragma once + +void print_banner(void); diff --git a/firmware/libcommon/source/main_common.c b/firmware/libcommon/source/main_common.c new file mode 100644 index 0000000..3314595 --- /dev/null +++ b/firmware/libcommon/source/main_common.c @@ -0,0 +1,54 @@ +/* SIMtrace 2 firmware common main helpers + * + * (C) 2015-2019 by Harald Welte <hwelte@hmw-consulting.de> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#include "board.h" +#include "utils.h" + +void print_banner(void) +{ + printf("\n\r\n\r" + "=============================================================================\n\r" + "SIMtrace2 firmware " GIT_VERSION ", BOARD=" BOARD ", APP=" APPLICATION "\n\r" + "(C) 2010-2019 by Harald Welte, 2018-2019 by Kevin Redon\n\r" + "=============================================================================\n\r"); + +#if (TRACE_LEVEL >= TRACE_LEVEL_INFO) + /* print chip-unique ID */ + unsigned int unique_id[4]; + EEFC_ReadUniqueID(unique_id); + TRACE_INFO("Chip ID: 0x%08lx (Ext 0x%08lx)\n\r", CHIPID->CHIPID_CIDR, CHIPID->CHIPID_EXID); + TRACE_INFO("Serial Nr. %08x-%08x-%08x-%08x\n\r", + unique_id[0], unique_id[1], unique_id[2], unique_id[3]); + + /* print reset cause */ + uint8_t reset_cause = (RSTC->RSTC_SR & RSTC_SR_RSTTYP_Msk) >> RSTC_SR_RSTTYP_Pos; + static const char* reset_causes[] = { + "general reset (first power-up reset)", + "backup reset (return from backup mode)", + "watchdog reset (watchdog fault occurred)", + "software reset (processor reset required by the software)", + "user reset (NRST pin detected low)", + }; + if (reset_cause < ARRAY_SIZE(reset_causes)) { + TRACE_INFO("Reset Cause: %s\n\r", reset_causes[reset_cause]); + } else { + TRACE_INFO("Reset Cause: 0x%lx\n\r", (RSTC->RSTC_SR & RSTC_SR_RSTTYP_Msk) >> RSTC_SR_RSTTYP_Pos); + } +#endif +} |