feat(gps): expose ESKF build profiles and 460800 UART

This commit is contained in:
2026-07-25 19:39:36 +03:00
parent ecbb8d0b68
commit 49b8609bb4
16 changed files with 393 additions and 39 deletions
+9 -3
View File
@@ -24,7 +24,7 @@ GDB_HOST ?= localhost
GDB_PORT ?= 3333
OPENOCD_ADAPTER_SPEED ?= 1000
UART_PORT ?= auto
UART_BAUD ?= 115200
UART_BAUD ?= 460800
BOARD ?= genesys2
PART_NAME ?= xc7k325tffg900-2
BOARD_PART ?= digilentinc.com:genesys2:part0:1.1
@@ -69,6 +69,8 @@ FLASH_REGIONS ?= auto
FLASH_FORCE ?= 0
GPS_DEBUG ?= 1
GPS_DEBUG_LEVEL ?= 1
GPS_ESKF_ENABLE ?= 1
IMU_SENSOR ?= auto
FLASH_MCS ?= $(OUT_DIR)/flash/genesys2_rocket.mcs
FLASH_BIN ?= $(OUT_DIR)/flash/genesys2_rocket.bin
@@ -172,6 +174,8 @@ help:
' FLASH_FORCE=$(FLASH_FORCE) # 1 forces unchanged regions too' \
' APP=$(APP)' \
' APP_ELF=$(APP_ELF)' \
' GPS_ESKF_ENABLE=$(GPS_ESKF_ENABLE)' \
' IMU_SENSOR=$(IMU_SENSOR)' \
' UART_PORT=$(UART_PORT)' \
' ETH_RF_IFACE=$(ETH_RF_IFACE)' \
' ETH_RF_INPUT=$(ETH_RF_INPUT)' \
@@ -209,15 +213,17 @@ fpga-config:
' CFGMEM_PART=$(CFGMEM_PART)' \
' UART_PORT=$(UART_PORT)' \
' UART_BAUD=$(UART_BAUD)' \
' GPS_ESKF_ENABLE=$(GPS_ESKF_ENABLE)' \
' IMU_SENSOR=$(IMU_SENSOR)' \
' ETH_RF_IFACE=$(ETH_RF_IFACE)' \
' ETH_RF_INPUT=$(ETH_RF_INPUT)' \
' ETH_RF_SAMPLE_FORMAT=$(ETH_RF_SAMPLE_FORMAT)'
software:
@$(MAKE_BIN) -C "$(SOC_SW_DIR)" TOOLCHAIN="$(TOOLCHAIN)" APP="$(APP)" APP_FLASH_OFFSET="$(APP_FLASH_OFFSET)" BSP_UART_CLOCK_HZ="$(BSP_UART_CLOCK_HZ)" BSP_UART_BAUDRATE="$(BSP_UART_BAUDRATE)" BSP_CLINT_TIMEBASE_HZ="$(BSP_CLINT_TIMEBASE_HZ)" BSP_DTIM_BASE="$(DTIM_BASE)" BSP_DTIM_SIZE="$(DTIM_SIZE)" GPS_DEBUG="$(GPS_DEBUG)" GPS_DEBUG_LEVEL="$(GPS_DEBUG_LEVEL)" bootloader flash-image
@$(MAKE_BIN) -C "$(SOC_SW_DIR)" TOOLCHAIN="$(TOOLCHAIN)" APP="$(APP)" APP_FLASH_OFFSET="$(APP_FLASH_OFFSET)" BSP_UART_CLOCK_HZ="$(BSP_UART_CLOCK_HZ)" BSP_UART_BAUDRATE="$(BSP_UART_BAUDRATE)" BSP_CLINT_TIMEBASE_HZ="$(BSP_CLINT_TIMEBASE_HZ)" BSP_DTIM_BASE="$(DTIM_BASE)" BSP_DTIM_SIZE="$(DTIM_SIZE)" GPS_DEBUG="$(GPS_DEBUG)" GPS_DEBUG_LEVEL="$(GPS_DEBUG_LEVEL)" GPS_ESKF_ENABLE="$(GPS_ESKF_ENABLE)" IMU_SENSOR="$(IMU_SENSOR)" bootloader flash-image
$(APP_ELF): FORCE
@$(MAKE_BIN) -C "$(SOC_SW_DIR)" TOOLCHAIN="$(TOOLCHAIN)" APP="$(APP)" APP_FLASH_OFFSET="$(APP_FLASH_OFFSET)" BSP_UART_CLOCK_HZ="$(BSP_UART_CLOCK_HZ)" BSP_UART_BAUDRATE="$(BSP_UART_BAUDRATE)" BSP_CLINT_TIMEBASE_HZ="$(BSP_CLINT_TIMEBASE_HZ)" BSP_DTIM_BASE="$(DTIM_BASE)" BSP_DTIM_SIZE="$(DTIM_SIZE)" GPS_DEBUG="$(GPS_DEBUG)" GPS_DEBUG_LEVEL="$(GPS_DEBUG_LEVEL)" app
@$(MAKE_BIN) -C "$(SOC_SW_DIR)" TOOLCHAIN="$(TOOLCHAIN)" APP="$(APP)" APP_FLASH_OFFSET="$(APP_FLASH_OFFSET)" BSP_UART_CLOCK_HZ="$(BSP_UART_CLOCK_HZ)" BSP_UART_BAUDRATE="$(BSP_UART_BAUDRATE)" BSP_CLINT_TIMEBASE_HZ="$(BSP_CLINT_TIMEBASE_HZ)" BSP_DTIM_BASE="$(DTIM_BASE)" BSP_DTIM_SIZE="$(DTIM_SIZE)" GPS_DEBUG="$(GPS_DEBUG)" GPS_DEBUG_LEVEL="$(GPS_DEBUG_LEVEL)" GPS_ESKF_ENABLE="$(GPS_ESKF_ENABLE)" IMU_SENSOR="$(IMU_SENSOR)" app
chisel: software
@cd "$(REPO_DIR)"
+15 -2
View File
@@ -16,7 +16,7 @@ Varsayilanlar:
SoC/fabric clock : 50 MHz
GPS acquisition : 80 MHz
GPS tracking : 125 MHz
UART baud : 115200
UART baud : 460800
App flash offset : 0x01800000
QSPI flash : 32 MiB S25FL256S
RF input mode : pmod
@@ -181,7 +181,7 @@ make -C targets/fpga/genesys2 bitstream
make -C targets/fpga/genesys2 program-fpga
make -C targets/fpga/genesys2 program-flash
make -C targets/fpga/genesys2 program-app APP=gps_system
make -C targets/fpga/genesys2 uart-listen UART_PORT=/dev/ttyUSB1 UART_BAUD=115200
make -C targets/fpga/genesys2 uart-listen UART_PORT=/dev/ttyUSB1
```
Kok Makefile uzerinden:
@@ -190,12 +190,25 @@ Kok Makefile uzerinden:
make FPGA_BOARD=genesys2 fpga-config
make FPGA_BOARD=genesys2 fpga-bitstream
make FPGA_BOARD=genesys2 fpga-program
# TDK + GPS + ESKF, UART varsayilani 460800
make FPGA_BOARD=genesys2 APP=gps_system \
GPS_ESKF_ENABLE=1 IMU_SENSOR=tdk fpga-mcs
# GPS-only; tracking, Doppler velocity WLS ve PPS aktif
make FPGA_BOARD=genesys2 APP=gps_system \
GPS_ESKF_ENABLE=0 fpga-mcs
```
`program-app APP=gps_system` yalniz application flash bolgesini derleyip
programlar. Tracking mailbox registerlari ve synchronizer RTL degisikligi
bitstream gerektirir; Doppler IIR katsayisi/yazilim degisikligi ise bitstream
gerektirmez, yalniz yeni `gps_system` uygulamasinin yuklenmesi yeterlidir.
`GPS_ESKF_ENABLE` verilmezse ESKF aciktir. ESKF kapali profilde IMU ve fusion
baslatilmaz; GPS acquisition/tracking, C/N0, Doppler velocity WLS, ham konum ve
PPS calismaya devam eder. Iki profil ayni `genesys2_rocket.mcs/.bin` cikti
yoluna yazdigi icin birlikte saklanacaksa build sonrasinda yeniden
adlandirilmalidir.
`debug-load APP=gps_system` ELF'i GDB ile DTIM/RAM'e yukler; hizli kart testi
icin uygundur fakat power-cycle/reset sonrasinda flash'taki eski uygulama geri
+10 -4
View File
@@ -24,7 +24,7 @@ GDB_HOST ?= localhost
GDB_PORT ?= 3333
OPENOCD_ADAPTER_SPEED ?= 1000
UART_PORT ?= /dev/ttyUSB2
UART_BAUD ?= 115200
UART_BAUD ?= 460800
BOARD ?= vcu118
PART_NAME ?= xcvu9p-flga2104-2L-e
BOARD_PART ?= xilinx.com:vcu118:part0:2.4
@@ -68,6 +68,8 @@ FLASH_REGIONS ?= auto
FLASH_FORCE ?= 0
GPS_DEBUG ?= 1
GPS_DEBUG_LEVEL ?= 4
GPS_ESKF_ENABLE ?= 1
IMU_SENSOR ?= auto
FLASH_MCS ?= $(OUT_DIR)/flash/vcu118_rocket.mcs
FLASH_BIN ?= $(OUT_DIR)/flash/vcu118_rocket.bin
@@ -171,6 +173,8 @@ help:
' FLASH_FORCE=$(FLASH_FORCE) # 1 forces unchanged regions too' \
' APP=$(APP)' \
' APP_ELF=$(APP_ELF)' \
' GPS_ESKF_ENABLE=$(GPS_ESKF_ENABLE)' \
' IMU_SENSOR=$(IMU_SENSOR)' \
' UART_PORT=$(UART_PORT)' \
' ETH_RF_IFACE=$(ETH_RF_IFACE)' \
' ETH_RF_INPUT=$(ETH_RF_INPUT)' \
@@ -207,13 +211,15 @@ fpga-config:
' FLASH_INTERFACE=$(FLASH_INTERFACE)' \
' CFGMEM_PART=$(CFGMEM_PART)' \
' UART_PORT=$(UART_PORT)' \
' UART_BAUD=$(UART_BAUD)'
' UART_BAUD=$(UART_BAUD)' \
' GPS_ESKF_ENABLE=$(GPS_ESKF_ENABLE)' \
' IMU_SENSOR=$(IMU_SENSOR)'
software:
@$(MAKE_BIN) -C "$(SOC_SW_DIR)" TOOLCHAIN="$(TOOLCHAIN)" APP="$(APP)" APP_FLASH_OFFSET="$(APP_FLASH_OFFSET)" BSP_UART_CLOCK_HZ="$(BSP_UART_CLOCK_HZ)" BSP_UART_BAUDRATE="$(BSP_UART_BAUDRATE)" BSP_CLINT_TIMEBASE_HZ="$(BSP_CLINT_TIMEBASE_HZ)" BSP_DTIM_BASE="$(DTIM_BASE)" BSP_DTIM_SIZE="$(DTIM_SIZE)" GPS_DEBUG="$(GPS_DEBUG)" GPS_DEBUG_LEVEL="$(GPS_DEBUG_LEVEL)" bootloader flash-image
@$(MAKE_BIN) -C "$(SOC_SW_DIR)" TOOLCHAIN="$(TOOLCHAIN)" APP="$(APP)" APP_FLASH_OFFSET="$(APP_FLASH_OFFSET)" BSP_UART_CLOCK_HZ="$(BSP_UART_CLOCK_HZ)" BSP_UART_BAUDRATE="$(BSP_UART_BAUDRATE)" BSP_CLINT_TIMEBASE_HZ="$(BSP_CLINT_TIMEBASE_HZ)" BSP_DTIM_BASE="$(DTIM_BASE)" BSP_DTIM_SIZE="$(DTIM_SIZE)" GPS_DEBUG="$(GPS_DEBUG)" GPS_DEBUG_LEVEL="$(GPS_DEBUG_LEVEL)" GPS_ESKF_ENABLE="$(GPS_ESKF_ENABLE)" IMU_SENSOR="$(IMU_SENSOR)" bootloader flash-image
$(APP_ELF): FORCE
@$(MAKE_BIN) -C "$(SOC_SW_DIR)" TOOLCHAIN="$(TOOLCHAIN)" APP="$(APP)" APP_FLASH_OFFSET="$(APP_FLASH_OFFSET)" BSP_UART_CLOCK_HZ="$(BSP_UART_CLOCK_HZ)" BSP_UART_BAUDRATE="$(BSP_UART_BAUDRATE)" BSP_CLINT_TIMEBASE_HZ="$(BSP_CLINT_TIMEBASE_HZ)" BSP_DTIM_BASE="$(DTIM_BASE)" BSP_DTIM_SIZE="$(DTIM_SIZE)" GPS_DEBUG="$(GPS_DEBUG)" GPS_DEBUG_LEVEL="$(GPS_DEBUG_LEVEL)" app
@$(MAKE_BIN) -C "$(SOC_SW_DIR)" TOOLCHAIN="$(TOOLCHAIN)" APP="$(APP)" APP_FLASH_OFFSET="$(APP_FLASH_OFFSET)" BSP_UART_CLOCK_HZ="$(BSP_UART_CLOCK_HZ)" BSP_UART_BAUDRATE="$(BSP_UART_BAUDRATE)" BSP_CLINT_TIMEBASE_HZ="$(BSP_CLINT_TIMEBASE_HZ)" BSP_DTIM_BASE="$(DTIM_BASE)" BSP_DTIM_SIZE="$(DTIM_SIZE)" GPS_DEBUG="$(GPS_DEBUG)" GPS_DEBUG_LEVEL="$(GPS_DEBUG_LEVEL)" GPS_ESKF_ENABLE="$(GPS_ESKF_ENABLE)" IMU_SENSOR="$(IMU_SENSOR)" app
chisel: software
@cd "$(REPO_DIR)"