aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ROMFS/px4fmu_common/init.d/rcS26
-rw-r--r--src/systemcmds/nshterm/module.mk2
-rw-r--r--src/systemcmds/nshterm/nshterm.c6
3 files changed, 12 insertions, 22 deletions
diff --git a/ROMFS/px4fmu_common/init.d/rcS b/ROMFS/px4fmu_common/init.d/rcS
index 2c9387ff0..4d337171a 100644
--- a/ROMFS/px4fmu_common/init.d/rcS
+++ b/ROMFS/px4fmu_common/init.d/rcS
@@ -6,6 +6,11 @@
#
#
+# Start CDC/ACM serial driver
+#
+sercon
+
+#
# Default to auto-start mode.
#
set MODE autostart
@@ -43,29 +48,8 @@ else
fi
unset FRC
-# if this is an APM build then there will be a rc.APM script
-# from an EXTERNAL_SCRIPTS build option
-if [ -f /etc/init.d/rc.APM ]
-then
- if sercon
- then
- echo "[i] USB interface connected"
- fi
-
- echo "[i] Running rc.APM"
- # if APM startup is successful then nsh will exit
- sh /etc/init.d/rc.APM
-fi
-
if [ $MODE == autostart ]
then
- echo "[i] AUTOSTART mode"
-
- #
- # Start CDC/ACM serial driver
- #
- sercon
-
# Try to get an USB console
nshterm /dev/ttyACM0 &
diff --git a/src/systemcmds/nshterm/module.mk b/src/systemcmds/nshterm/module.mk
index a12bc369e..4e2710572 100644
--- a/src/systemcmds/nshterm/module.mk
+++ b/src/systemcmds/nshterm/module.mk
@@ -38,7 +38,7 @@
MODULE_COMMAND = nshterm
SRCS = nshterm.c
-MODULE_STACKSIZE = 1600
+MODULE_STACKSIZE = 1500
MAXOPTIMIZATION = -Os
diff --git a/src/systemcmds/nshterm/nshterm.c b/src/systemcmds/nshterm/nshterm.c
index ceaea35b6..50547a562 100644
--- a/src/systemcmds/nshterm/nshterm.c
+++ b/src/systemcmds/nshterm/nshterm.c
@@ -50,6 +50,7 @@
#include <apps/nsh.h>
#include <fcntl.h>
#include <systemlib/err.h>
+#include <drivers/drv_hrt.h>
#include <uORB/topics/actuator_armed.h>
@@ -67,6 +68,11 @@ nshterm_main(int argc, char *argv[])
int armed_fd = orb_subscribe(ORB_ID(actuator_armed));
struct actuator_armed_s armed;
+ /* back off 800 ms to avoid running into the USB setup timing */
+ while (hrt_absolute_time() < 800U * 1000U) {
+ usleep(50000);
+ }
+
/* try to bring up the console - stop doing so if the system gets armed */
while (true) {