LukeMike
11 years ago
committed by
Emile Castelnuovo
5 changed files with 600 additions and 0 deletions
@ -0,0 +1,177 @@
@@ -0,0 +1,177 @@
|
||||
#!nsh |
||||
|
||||
# APM startup script for NuttX on VRBRAIN |
||||
|
||||
# To disable APM startup add a /fs/microsd/APM/nostart file |
||||
|
||||
# check for an old file called APM, caused by |
||||
# a bug in an earlier firmware release |
||||
if [ -f /fs/microsd/APM ] |
||||
then |
||||
echo "[APM] APM file found - renaming" |
||||
mv /fs/microsd/APM /fs/microsd/APM.old |
||||
fi |
||||
|
||||
if [ -f /fs/microsd/APM/nostart ] |
||||
then |
||||
echo "[APM] APM/nostart found - skipping APM startup" |
||||
sh /etc/init.d/rc.error |
||||
fi |
||||
|
||||
# mount binfs so we can find the built-in apps |
||||
if [ -f /bin/reboot ] |
||||
then |
||||
echo "[APM] binfs already mounted" |
||||
else |
||||
echo "[APM] Mounting binfs" |
||||
if mount -t binfs /dev/null /bin |
||||
then |
||||
echo "[APM] binfs mounted OK" |
||||
else |
||||
sh /etc/init.d/rc.error |
||||
fi |
||||
fi |
||||
|
||||
if rm /fs/microsd/APM/boot.log |
||||
then |
||||
echo "[APM] Removed old boot.log" |
||||
fi |
||||
set logfile /fs/microsd/APM/BOOT.LOG |
||||
|
||||
if [ ! -f /bin/ArduPilot ] |
||||
then |
||||
echo "[APM] /bin/ArduPilot not found" |
||||
sh /etc/init.d/rc.error |
||||
fi |
||||
|
||||
if mkdir /fs/microsd/APM > /dev/null |
||||
then |
||||
echo "[APM] Created APM directory" |
||||
fi |
||||
|
||||
echo "[APM] Starting UORB" |
||||
if uorb start |
||||
then |
||||
echo "[APM] UORB started OK" |
||||
else |
||||
sh /etc/init.d/rc.error |
||||
fi |
||||
|
||||
echo "[APM] Starting ADC" |
||||
if adc start |
||||
then |
||||
echo "[APM] ADC started OK" |
||||
else |
||||
sh /etc/init.d/rc.error |
||||
fi |
||||
|
||||
echo "[APM] Starting APM sensors" |
||||
if ms5611 start |
||||
then |
||||
echo "[APM] MS5611 started OK" |
||||
else |
||||
echo "[APM] MS5611 start failed" |
||||
sh /etc/init.d/rc.error |
||||
fi |
||||
|
||||
if hmc5883_onboard start |
||||
then |
||||
echo "[APM] HMC5883 onboard started OK" |
||||
# if hmc5883 calibrate |
||||
# then |
||||
# echo "[APM] HMC5883 onboard calibrate OK" |
||||
# else |
||||
# echo "[APM] HMC5883 onboard calibrate failed" |
||||
# fi |
||||
else |
||||
echo "[APM] HMC5883 onboard start failed" |
||||
sh /etc/init.d/rc.error |
||||
fi |
||||
|
||||
#if hmc5883_external start |
||||
#then |
||||
# echo "[APM] HMC5883 external started OK" |
||||
# if hmc5883 calibrate |
||||
# then |
||||
# echo "[APM] HMC5883 external calibrate OK" |
||||
# else |
||||
# echo "[APM] HMC5883 external calibrate failed" |
||||
# fi |
||||
#else |
||||
# echo "[APM] HMC5883 external start failed" |
||||
# sh /etc/init.d/rc.error |
||||
#fi |
||||
|
||||
if mpu6000_onboard start |
||||
then |
||||
echo "[APM] MPU6000 onboard started OK" |
||||
else |
||||
echo "[APM] MPU6000 onboard start failed" |
||||
sh /etc/init.d/rc.error |
||||
fi |
||||
|
||||
#if mpu6000_external start |
||||
#then |
||||
# echo "[APM] MPU6000 external started OK" |
||||
#else |
||||
# echo "[APM] MPU6000 external start failed" |
||||
# sh /etc/init.d/rc.error |
||||
#fi |
||||
|
||||
echo "[APM] Starting MTD driver" |
||||
if mtd start /fs/mtd |
||||
then |
||||
echo "[APM] MTD driver started OK" |
||||
else |
||||
echo "[APM] MTD driver start failed" |
||||
sh /etc/init.d/rc.error |
||||
fi |
||||
|
||||
echo "[APM] MTD driver read test" |
||||
if mtd readtest /fs/mtd |
||||
then |
||||
echo "[APM] MTD driver readtest OK" |
||||
else |
||||
echo "[APM] MTD driver failed to read" |
||||
sh /etc/init.d/rc.error |
||||
fi |
||||
|
||||
echo "[APM] Starting VROUTPUT driver" |
||||
vroutput mode_pwm |
||||
#if vroutput mode_pwm |
||||
#then |
||||
# echo "[APM] VROUTPUT driver started OK" |
||||
#else |
||||
# echo "[APM] VROUTPUT driver start failed" |
||||
# sh /etc/init.d/rc.error |
||||
#fi |
||||
|
||||
echo "[APM] Starting VRINPUT driver" |
||||
vrinput start |
||||
#if vrinput start |
||||
#then |
||||
# echo "[APM] VRINPUT driver started OK" |
||||
#else |
||||
# echo "[APM] VRINPUT driver start failed" |
||||
# sh /etc/init.d/rc.error |
||||
#fi |
||||
|
||||
set sketch NONE |
||||
set deviceA /dev/ttyACM0 |
||||
set deviceC /dev/ttyS2 |
||||
|
||||
echo "[APM] Starting ArduPilot" |
||||
#if ArduPilot -d $deviceA -d2 $deviceC start |
||||
if ArduPilot start |
||||
then |
||||
echo "[APM] ArduPilot started OK" |
||||
else |
||||
echo "[APM] ArduPilot start failed" |
||||
sh /etc/init.d/rc.error |
||||
fi |
||||
|
||||
echo "[APM] Exiting from nsh shell" |
||||
exit |
||||
|
||||
echo "[APM] Script finished" |
||||
|
@ -0,0 +1,150 @@
@@ -0,0 +1,150 @@
|
||||
#!nsh |
||||
|
||||
# APM startup script for NuttX on VRBRAIN |
||||
|
||||
# mount binfs so we can find the built-in apps |
||||
if [ -f /bin/reboot ] |
||||
then |
||||
echo "[APMNS] binfs already mounted" |
||||
else |
||||
echo "[APMNS] Mounting binfs" |
||||
if mount -t binfs /dev/null /bin |
||||
then |
||||
echo "[APMNS] binfs mounted OK" |
||||
else |
||||
sh /etc/init.d/rc.error |
||||
fi |
||||
fi |
||||
|
||||
if [ ! -f /bin/ArduPilot ] |
||||
then |
||||
echo "[APMNS] /bin/ArduPilot not found" |
||||
sh /etc/init.d/rc.error |
||||
fi |
||||
|
||||
echo "[APMNS] Starting UORB" |
||||
if uorb start |
||||
then |
||||
echo "[APMNS] UORB started OK" |
||||
else |
||||
sh /etc/init.d/rc.error |
||||
fi |
||||
|
||||
echo "[APMNS] Starting ADC" |
||||
if adc start |
||||
then |
||||
echo "[APMNS] ADC started OK" |
||||
else |
||||
sh /etc/init.d/rc.error |
||||
fi |
||||
|
||||
echo "[APMNS] Starting APM sensors" |
||||
if ms5611 start |
||||
then |
||||
echo "[APMNS] MS5611 started OK" |
||||
else |
||||
echo "[APMNS] MS5611 start failed" |
||||
sh /etc/init.d/rc.error |
||||
fi |
||||
|
||||
if hmc5883_onboard start |
||||
then |
||||
echo "[APMNS] HMC5883 onboard started OK" |
||||
# if hmc5883 calibrate |
||||
# then |
||||
# echo "[APMNS] HMC5883 onboard calibrate OK" |
||||
# else |
||||
# echo "[APMNS] HMC5883 onboard calibrate failed" |
||||
# fi |
||||
else |
||||
echo "[APMNS] HMC5883 onboard start failed" |
||||
sh /etc/init.d/rc.error |
||||
fi |
||||
|
||||
if hmc5883_external start |
||||
then |
||||
echo "[APMNS] HMC5883 external started OK" |
||||
# if hmc5883 calibrate |
||||
# then |
||||
# echo "[APMNS] HMC5883 external calibrate OK" |
||||
# else |
||||
# echo "[APMNS] HMC5883 external calibrate failed" |
||||
# fi |
||||
else |
||||
echo "[APMNS] HMC5883 external start failed" |
||||
# sh /etc/init.d/rc.error |
||||
fi |
||||
|
||||
if mpu6000_onboard start |
||||
then |
||||
echo "[APMNS] MPU6000 onboard started OK" |
||||
else |
||||
echo "[APMNS] MPU6000 onboard start failed" |
||||
sh /etc/init.d/rc.error |
||||
fi |
||||
|
||||
if mpu6000_external start |
||||
then |
||||
echo "[APMNS] MPU6000 external started OK" |
||||
else |
||||
echo "[APMNS] MPU6000 external start failed" |
||||
# sh /etc/init.d/rc.error |
||||
fi |
||||
|
||||
echo "[APMNS] Starting MTD driver" |
||||
if mtd start /fs/mtd |
||||
then |
||||
echo "[APMNS] MTD driver started OK" |
||||
else |
||||
echo "[APMNS] MTD driver start failed" |
||||
sh /etc/init.d/rc.error |
||||
fi |
||||
|
||||
echo "[APMNS] MTD driver read test" |
||||
if mtd readtest /fs/mtd |
||||
then |
||||
echo "[APMNS] MTD driver readtest OK" |
||||
else |
||||
echo "[APMNS] MTD driver failed to read" |
||||
sh /etc/init.d/rc.error |
||||
fi |
||||
|
||||
echo "[APMNS] Starting VROUTPUT driver" |
||||
vroutput mode_pwm |
||||
#if vroutput mode_pwm |
||||
#then |
||||
# echo "[APMNS] VROUTPUT driver started OK" |
||||
#else |
||||
# echo "[APMNS] VROUTPUT driver start failed" |
||||
# sh /etc/init.d/rc.error |
||||
#fi |
||||
|
||||
echo "[APMNS] Starting VRINPUT driver" |
||||
vrinput start |
||||
#if vrinput start |
||||
#then |
||||
# echo "[APMNS] VRINPUT driver started OK" |
||||
#else |
||||
# echo "[APMNS] VRINPUT driver start failed" |
||||
# sh /etc/init.d/rc.error |
||||
#fi |
||||
|
||||
set sketch NONE |
||||
set deviceA /dev/ttyACM0 |
||||
set deviceC /dev/ttyS2 |
||||
|
||||
echo "[APMNS] Starting ArduPilot" |
||||
#if ArduPilot -d $deviceA -d2 $deviceC start |
||||
if ArduPilot start |
||||
then |
||||
echo "[APMNS] ArduPilot started OK" |
||||
else |
||||
echo "[APMNS] ArduPilot start failed" |
||||
sh /etc/init.d/rc.error |
||||
fi |
||||
|
||||
echo "[APMNS] Exiting from nsh shell" |
||||
exit |
||||
|
||||
echo "[APMNS] Script finished" |
||||
|
@ -0,0 +1,7 @@
@@ -0,0 +1,7 @@
|
||||
echo "Error in startup" |
||||
|
||||
nshterm /dev/ttyACM0 & |
||||
sleep 1 |
||||
nshterm /dev/ttyS0 & |
||||
sleep 1 |
||||
exit |
@ -0,0 +1,93 @@
@@ -0,0 +1,93 @@
|
||||
#!nsh |
||||
# |
||||
# VRBRAIN startup script. |
||||
# |
||||
# This script is responsible for: |
||||
# |
||||
# - mounting the microSD card (if present) |
||||
# - running the user startup script from the microSD card (if present) |
||||
# - detecting the configuration of the system and picking a suitable |
||||
# startup script to continue with |
||||
# |
||||
# Note: DO NOT add configuration-specific commands to this script; |
||||
# add them to the per-configuration scripts instead. |
||||
# |
||||
|
||||
# |
||||
# Default to auto-start mode. An init script on the microSD card |
||||
# can change this to prevent automatic startup of the flight script. |
||||
# |
||||
set MODE autostart |
||||
set USB autoconnect |
||||
|
||||
# |
||||
# Try to mount the microSD card. |
||||
# |
||||
echo "[init] looking for microSD..." |
||||
if mount -t vfat /dev/mmcsd0 /fs/microsd |
||||
then |
||||
echo "[init] card mounted at /fs/microsd" |
||||
set HAVE_MICROSD 1 |
||||
else |
||||
echo "[init] no microSD card found" |
||||
set HAVE_MICROSD 0 |
||||
fi |
||||
|
||||
# |
||||
# Look for an init script on the microSD card. |
||||
# |
||||
# To prevent automatic startup in the current flight mode, |
||||
# the script should set MODE to some other value. |
||||
# |
||||
if [ -f /fs/microsd/etc/rc ] |
||||
then |
||||
echo "[init] reading /fs/microsd/etc/rc" |
||||
sh /fs/microsd/etc/rc |
||||
fi |
||||
# Also consider rc.txt files |
||||
if [ -f /fs/microsd/etc/rc.txt ] |
||||
then |
||||
echo "[init] reading /fs/microsd/etc/rc.txt" |
||||
sh /fs/microsd/etc/rc.txt |
||||
fi |
||||
|
||||
# |
||||
# Check for USB host |
||||
# |
||||
if [ $USB != autoconnect ] |
||||
then |
||||
echo "[init] not connecting USB" |
||||
else |
||||
if sercon |
||||
then |
||||
echo "[init] USB interface connected" |
||||
else |
||||
echo "[init] No USB connected" |
||||
fi |
||||
fi |
||||
|
||||
if [ $HAVE_MICROSD == 1 ] |
||||
then |
||||
if [ ! -f /fs/microsd/APM/nostart ] |
||||
then |
||||
if [ -f /etc/init.d/rc.APM ] |
||||
then |
||||
echo "[init] Running rc.APM" |
||||
# if APM startup is successful then nsh will exit |
||||
sh /etc/init.d/rc.APM |
||||
else |
||||
nshterm /dev/ttyACM0 & |
||||
fi |
||||
else |
||||
nshterm /dev/ttyACM0 & |
||||
fi |
||||
else |
||||
if [ -f /etc/init.d/rc.APMNS ] |
||||
then |
||||
echo "[init] Running rc.APM without SD" |
||||
# if APM startup is successful then nsh will exit |
||||
sh /etc/init.d/rc.APMNS |
||||
else |
||||
nshterm /dev/ttyACM0 & |
||||
fi |
||||
fi |
@ -0,0 +1,173 @@
@@ -0,0 +1,173 @@
|
||||
#
|
||||
# Makefile for the VRBRAIN 5.1 APM configuration
|
||||
#
|
||||
|
||||
#
|
||||
# Use the configuration's ROMFS.
|
||||
#
|
||||
ROMFS_ROOT = $(SKETCHBOOK)/mk/VRBRAIN/ROMFS_VRBRAIN51_APM
|
||||
|
||||
MODULES += $(APM_MODULE_DIR)
|
||||
|
||||
#
|
||||
# Board support modules
|
||||
#
|
||||
MODULES += drivers/device
|
||||
MODULES += drivers/stm32
|
||||
MODULES += drivers/stm32/adc
|
||||
MODULES += drivers/stm32/tone_alarm
|
||||
MODULES += drivers/led
|
||||
MODULES += drivers/buzzer
|
||||
|
||||
|
||||
MODULES += drivers/boards/vrbrain-v51
|
||||
MODULES += drivers/vrbrain/vroutput
|
||||
MODULES += drivers/vrbrain/vrinput/controls
|
||||
MODULES += drivers/vrbrain/vrinput
|
||||
|
||||
|
||||
|
||||
#MODULES += drivers/mpu6000
|
||||
MODULES += drivers/mpu6000_external
|
||||
MODULES += drivers/mpu6000_onboard
|
||||
#MODULES += drivers/hmc5883
|
||||
MODULES += drivers/hmc5883_external
|
||||
MODULES += drivers/hmc5883_onboard
|
||||
MODULES += drivers/ms5611
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#
|
||||
# System commands
|
||||
#
|
||||
MODULES += systemcmds/mtd
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
MODULES += systemcmds/pwm
|
||||
|
||||
MODULES += systemcmds/top
|
||||
MODULES += systemcmds/reboot
|
||||
|
||||
|
||||
MODULES += systemcmds/tests
|
||||
|
||||
MODULES += systemcmds/nshterm
|
||||
|
||||
#
|
||||
# General system control
|
||||
#
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#
|
||||
# Estimation modules (EKF/ SO3 / other filters)
|
||||
#
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#
|
||||
# Vehicle Control
|
||||
#
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#
|
||||
# Logging
|
||||
#
|
||||
|
||||
|
||||
#
|
||||
# Unit tests
|
||||
#
|
||||
|
||||
|
||||
|
||||
#
|
||||
# Library modules
|
||||
#
|
||||
MODULES += modules/systemlib
|
||||
|
||||
|
||||
MODULES += modules/uORB
|
||||
|
||||
#
|
||||
# Libraries
|
||||
#
|
||||
|
||||
|
||||
MODULES += lib/mathlib/math/filter
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#
|
||||
# Transitional support - add commands from the NuttX export archive.
|
||||
#
|
||||
# In general, these should move to modules over time.
|
||||
#
|
||||
# Each entry here is <command>.<priority>.<stacksize>.<entrypoint> but we use a helper macro
|
||||
# to make the table a bit more readable.
|
||||
#
|
||||
define _B |
||||
$(strip $1).$(or $(strip $2),SCHED_PRIORITY_DEFAULT).$(or $(strip $3),CONFIG_PTHREAD_STACK_DEFAULT).$(strip $4)
|
||||
endef |
||||
|
||||
# command priority stack entrypoint
|
||||
BUILTIN_COMMANDS := \
|
||||
$(call _B, sercon, , 2048, sercon_main ) \
|
||||
$(call _B, serdis, , 2048, serdis_main ) \
|
||||
$(call _B, msconn, , 2048, msconn_main ) \
|
||||
$(call _B, msdis, , 2048, msdis_main ) \
|
||||
$(call _B, sysinfo, , 2048, sysinfo_main )
|
Loading…
Reference in new issue