From ece09064c42cab5f135cf619becd4452656badab Mon Sep 17 00:00:00 2001 From: Daniel Agar Date: Mon, 17 Jan 2022 10:49:38 -0500 Subject: [PATCH] parameters: perform verification pass twice - on NuttX with MTD storage this is to ensure we are verifying what's actually stored on ramtron or eeprom, not just what's cached by bchlib --- .ci/Jenkinsfile-hardware | 3 +++ Tools/HIL/test_airframes.sh | 1 + src/lib/parameters/parameters.cpp | 4 ++-- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/.ci/Jenkinsfile-hardware b/.ci/Jenkinsfile-hardware index eb15472104..2692bca6d8 100644 --- a/.ci/Jenkinsfile-hardware +++ b/.ci/Jenkinsfile-hardware @@ -743,8 +743,10 @@ void checkStatus() { sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param save"' sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param status"' sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param show SYS*"' + sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param dump"' sh './Tools/HIL/reboot.py --device `find /dev/serial -name *usb-*`' // reboot to apply sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param show SYS*"' + sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param dump"' // run logger sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "logger on"' @@ -778,6 +780,7 @@ void checkStatus() { sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "mavlink status" || true' sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "mount"' sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "mtd status"' + sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param dump"' sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param show" || true' sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param status"' sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "perf latency"' diff --git a/Tools/HIL/test_airframes.sh b/Tools/HIL/test_airframes.sh index d6fd6b8c7d..f828686720 100755 --- a/Tools/HIL/test_airframes.sh +++ b/Tools/HIL/test_airframes.sh @@ -48,6 +48,7 @@ do ${DIR}/reboot.py --device ${SERIAL_DEVICE} + ${DIR}/run_nsh_cmd.py --device ${SERIAL_DEVICE} --cmd 'param status' ${DIR}/run_nsh_cmd.py --device ${SERIAL_DEVICE} --cmd 'param dump /fs/mtd_params' || true ${DIR}/run_nsh_cmd.py --device ${SERIAL_DEVICE} --cmd 'param dump /fs/microsd/parameters_backup.bson' || true diff --git a/src/lib/parameters/parameters.cpp b/src/lib/parameters/parameters.cpp index 417f4414ee..d5bc65f8a2 100644 --- a/src/lib/parameters/parameters.cpp +++ b/src/lib/parameters/parameters.cpp @@ -1,6 +1,6 @@ /**************************************************************************** * - * Copyright (c) 2012-2021 PX4 Development Team. All rights reserved. + * Copyright (c) 2012-2022 PX4 Development Team. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -1212,7 +1212,7 @@ int param_save_default() if (res == PX4_OK) { // reopen file to verify int fd_verify = ::open(filename, O_RDONLY, PX4_O_MODE_666); - res = param_verify(fd_verify); + res = param_verify(fd_verify) || lseek(fd_verify, 0, SEEK_SET) || param_verify(fd_verify); ::close(fd_verify); } }