Boot sequence 분석

  • /Firmware/ROMFS/px4fmu_common/init.d
  • system console 보기

PX4에서 NSH접속하기

준비물

  • picocom 또는 screen 터미널 프로그램
  • ftdi232 3.3v 모듈 Pixhawk SERIAL 4/5 포트의 4(TX),5(RX),6(GND)에 연결
    • 또는 SD 카드를 뺴고 usb 시리얼포트로 접속한다.

sudo apt-get install picocom
picocom /dev/tty.usbserial-AH01JABI --baud 57600
cd Firmware/Tools
python mavlink_shell.py /dev/ttyACM0

NSH 사용하기

help

실습: tone_alarm app 소리를 내고 소리를 꺼보자.

nsh> tone_alarm MBAGP
nsh> tone_alarm MLL32CP8MB

rcS 읽어보고, 수정하기

nsh> cd /etc/init.d

/Firmware/ROMFS/px4fmu_common/init.d/

해보기

  • rcS에서 uORB 가 실행되는 부분을 찾아보자.
  • rcS안에 있는 tone_alarm app을 삭제하여 부팅시 소리가 나지 않도록 만들어 보자.
  • tone_alarm app을 수정하여, 부져소리의 음높이가 낮아지도록 만들어 보자.

Mixing

airframe layout 세팅하기

http://dev.px4.io/concept-mixing.html

/Firmware/ROMFS/px4fmu_common/init.d/

해보기

  • init.d 폴더안에 있는 mixer 설정을 읽어보자.

Boot Log

Firmware/NuttX/apps/nshlib/nsh_script.c

nsh_initscript()` 

nuttx-configs/px4fmu-v2/nsh/defconfig
1480:CONFIG_NSH_INITSCRIPT="init.d/rcS"
Firmware/ROMFS/px4fmu_common/init.d/rcS
  • system console 보기
  • 실습: tone_alarm app 삭제/수정
sercon: Registering CDC/ACM serial driver
sercon: Successfully registered the CDC/ACM serial driver
nsh: mount: mount failed: No such device
nsh: mkfatfs: mkfatfs failed: No such device
param: selected parameter default file /fs/mtd_params
[param] Loaded: /fs/mtd_params 
rgbled on I2C bus 2 at 0x55 (bus: 100 KHz, max: 100 KHz)
 1:   SYS_USE_IO: match
 4001: + SYS_AUTOSTART: match
px4io: CRCs match
dataman: Could not open data manager file /fs/microsd/dataman
dataman: dataman start failed
MS5611_SPI on SPI bus 1 at 3 (20000 KHz)
bst: no devices found
adc init done
ver hwcmp match: PX4FMU_V2
hmc5883: no device on bus 2
hmc5883: no device on bus 1
mpu6000: driver start failed
MPU6000 on SPI bus 1 at 4 (1000 KHz)
L3GD20 on SPI bus 1 at 1 (11000 KHz)
LSM303D on SPI bus 1 at 2 (11000 KHz)
meas_airspeed: no MS4525 airspeed sensor connected
ets_airspeed: no ETS airspeed sensor connected
ets_airspeed: no ETS airspeed sensor connected
nsh: sf10a: command not found
px4io default PWM output device
mavlink_if0: mode: 0, data rate: 1200 B/s on /dev/ttyS1 @ 57600B
mavlink_if0: offboard mission init: ERROR
ver hwcmp match: PX4FMU_V2
 157600:   SYS_COMPANION: match
mavlink_if1: mode: 3, data rate: 1000 B/s on /dev/ttyS2 @ 57600B
[i] MULTICOPTER 
[i] Mixer: /etc/mixers/quad_x.main.mix on /dev/pwm_output0 
[i] Mixer: /etc/mixers/pass.aux.mix on /dev/pwm_output1 
 1:   INAV_ENABLED: match
[i] No microSD card found 
ver hwcmp match: PX4FMU_V2
px4flow [189:100]
nshterm [190:70]

NuttShell (NSH)
nsh> px4flow: scanning I2C buses for device..
mavlink_if1: Disabling hardware flow control
commander_low_prio: settings saved.
mavlink_if0: Disabling hardware flow control

PX4 PreBoot

nuttx부터 읽기 ..;