This is merely a historical archive of years 2008-2021, before the migration to mailman3.
A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.
Kévin Redon gerrit-no-reply at lists.osmocom.orgKévin Redon has uploaded this change for review. ( https://gerrit.osmocom.org/9842 Change subject: add more USB configuration checks and error messages ...................................................................... add more USB configuration checks and error messages Change-Id: I20f8018cd5087254dfbfad40b73803390aa84183 --- M firmware/apps/trace/main.c 1 file changed, 64 insertions(+), 8 deletions(-) git pull ssh://gerrit.osmocom.org:29418/simtrace2 refs/changes/42/9842/1 diff --git a/firmware/apps/trace/main.c b/firmware/apps/trace/main.c index aabaa41..54b4242 100644 --- a/firmware/apps/trace/main.c +++ b/firmware/apps/trace/main.c @@ -1,4 +1,22 @@ -// FIXME: Copyright license here +/* + * (C) 2010-2017 by Harald Welte <hwelte at sysmocom.de> + * (C) 2018 by Kevin Redon <kredon at sysmocom.de> + * All Rights Reserved + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation; either version 3 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 Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ /*------------------------------------------------------------------------------ * Headers *------------------------------------------------------------------------------*/ @@ -84,6 +102,9 @@ void USBDDriverCallbacks_ConfigurationChanged(uint8_t cfgnum) { TRACE_INFO_WP("cfgChanged%d ", cfgnum); + if (cfgnum >= sizeof(config_func_ptrs)/sizeof(config_func_ptrs[0])) { + TRACE_FATAL_WP("no functions defined for configuration %d\n\r", cfgnum); + } simtrace_config = cfgnum; } @@ -144,10 +165,13 @@ g_unique_id[2], g_unique_id[3]); TRACE_INFO("Reset Cause: 0x%x\n\r", (RSTC->RSTC_SR & RSTC_SR_RSTTYP_Msk) >> RSTC_SR_RSTTYP_Pos); + TRACE_INFO("cfg %d\n\r", simtrace_config); + board_main_top(); TRACE_INFO("USB init...\n\r"); SIMtrace_USB_Initialize(); + TRACE_INFO_WP("USBD_Inited\n\r"); while (USBD_GetState() < USBD_STATE_CONFIGURED) { WDT_Restart(WDT); @@ -164,14 +188,26 @@ } TRACE_INFO("calling configure of all configurations...\n\r"); - for (i = 1; i < sizeof(config_func_ptrs) / sizeof(config_func_ptrs[0]); - ++i) { - if (config_func_ptrs[i].configure) + for (i = 1; i < sizeof(config_func_ptrs) / sizeof(config_func_ptrs[0]); ++i) { + if (config_func_ptrs[i].configure) { config_func_ptrs[i].configure(); + } else { + TRACE_WARNING("no configure function defined for configuration %d\n\r", i); + } } + TRACE_INFO("cfg %d\n\r", simtrace_config); + TRACE_INFO("calling init of config %u...\n\r", simtrace_config); - config_func_ptrs[simtrace_config].init(); + if (simtrace_config >= sizeof(config_func_ptrs)/sizeof(config_func_ptrs[0])) { + TRACE_ERROR("no functions defined for configuration %d\n\r", simtrace_config); + } else { + if (config_func_ptrs[simtrace_config].init) { + config_func_ptrs[simtrace_config].init(); + } else { + TRACE_ERROR("no init function defined for configuration %d\n\r", simtrace_config); + } + } last_simtrace_config = simtrace_config; TRACE_INFO("entering main loop...\n\r"); @@ -199,11 +235,31 @@ if (last_simtrace_config != simtrace_config) { TRACE_INFO("USB config chg %u -> %u\n\r", last_simtrace_config, simtrace_config); - config_func_ptrs[last_simtrace_config].exit(); - config_func_ptrs[simtrace_config].init(); + if (last_simtrace_config < sizeof(config_func_ptrs)/sizeof(config_func_ptrs[0])) { + if (config_func_ptrs[last_simtrace_config].exit) { + config_func_ptrs[last_simtrace_config].exit(); + } else { + TRACE_WARNING("exit not defined for configuration %d\n\r", last_simtrace_config); + } + } else { + TRACE_ERROR("no functions defined for configuration %d\n\r", last_simtrace_config); + } + if (simtrace_config < sizeof(config_func_ptrs)/sizeof(config_func_ptrs[0])) { + if (config_func_ptrs[simtrace_config].init) { + config_func_ptrs[simtrace_config].init(); + } else { + TRACE_WARNING("init not defined for configuration %d\n\r", simtrace_config); + } + } else { + TRACE_FATAL("no functions defined for configuration %d\n\r", simtrace_config); + } last_simtrace_config = simtrace_config; } else { - config_func_ptrs[simtrace_config].run(); + if (config_func_ptrs[simtrace_config].run) { + config_func_ptrs[simtrace_config].run(); + } else { + TRACE_ERROR("run not defined for configuration %d\n\r", simtrace_config); + } } } } -- To view, visit https://gerrit.osmocom.org/9842 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I20f8018cd5087254dfbfad40b73803390aa84183 Gerrit-Change-Number: 9842 Gerrit-PatchSet: 1 Gerrit-Owner: Kévin Redon <kredon at sysmocom.de> -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20180703/84549012/attachment.htm>