mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-06-24 14:00:35 +08:00
Compare commits
36 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 6823cbc414 | |||
| beaebe4d0b | |||
| 0bddca6b9b | |||
| c50c1e3982 | |||
| a249b77647 | |||
| 17de164e95 | |||
| a057b38c40 | |||
| 39e53711d5 | |||
| 1294851bb6 | |||
| 1c15a1a7f4 | |||
| 21567ca187 | |||
| 8e789bcc7f | |||
| d699d5f27e | |||
| 4ae97c505f | |||
| b8ce2a6039 | |||
| 1f399e5b33 | |||
| d67cddae7d | |||
| 0290282b17 | |||
| 39d1c79f48 | |||
| ad410a2512 | |||
| 453acdce31 | |||
| afb2538da3 | |||
| af58c412c3 | |||
| d5226b28ce | |||
| b091ea9fd9 | |||
| 9e91ca8294 | |||
| 8302f076e7 | |||
| de26ffa6e0 | |||
| f60d38db65 | |||
| 5e3c8d2fa0 | |||
| 90998837ec | |||
| 8cff9a1e04 | |||
| f8ff34f82d | |||
| e69d9ec48f | |||
| f033e164fe | |||
| 41191765ad |
@@ -102,6 +102,7 @@ pipeline {
|
|||||||
"px4_fmu-v5_uavcanv0periph",
|
"px4_fmu-v5_uavcanv0periph",
|
||||||
"px4_fmu-v5_uavcanv1",
|
"px4_fmu-v5_uavcanv1",
|
||||||
"px4_fmu-v5x_default",
|
"px4_fmu-v5x_default",
|
||||||
|
"px4_fmu-v6c_default",
|
||||||
"px4_fmu-v6u_default",
|
"px4_fmu-v6u_default",
|
||||||
"px4_fmu-v6x_default",
|
"px4_fmu-v6x_default",
|
||||||
"px4_io-v2_default",
|
"px4_io-v2_default",
|
||||||
|
|||||||
@@ -60,6 +60,7 @@ jobs:
|
|||||||
px4_fmu-v4pro,
|
px4_fmu-v4pro,
|
||||||
px4_fmu-v5,
|
px4_fmu-v5,
|
||||||
px4_fmu-v5x,
|
px4_fmu-v5x,
|
||||||
|
px4_fmu-v6c,
|
||||||
px4_fmu-v6u,
|
px4_fmu-v6u,
|
||||||
px4_fmu-v6x,
|
px4_fmu-v6x,
|
||||||
sky-drones_smartap-airlink,
|
sky-drones_smartap-airlink,
|
||||||
|
|||||||
@@ -9,3 +9,5 @@ launch.json
|
|||||||
ipch/
|
ipch/
|
||||||
|
|
||||||
browse.vc.db*
|
browse.vc.db*
|
||||||
|
|
||||||
|
*.log
|
||||||
|
|||||||
@@ -325,12 +325,13 @@ px4io_update: px4_io-v2_default cubepilot_io-v2_default
|
|||||||
cp build/px4_io-v2_default/px4_io-v2_default.bin boards/px4/fmu-v5/extras/px4_io-v2_default.bin
|
cp build/px4_io-v2_default/px4_io-v2_default.bin boards/px4/fmu-v5/extras/px4_io-v2_default.bin
|
||||||
cp build/px4_io-v2_default/px4_io-v2_default.bin boards/px4/fmu-v5x/extras/px4_io-v2_default.bin
|
cp build/px4_io-v2_default/px4_io-v2_default.bin boards/px4/fmu-v5x/extras/px4_io-v2_default.bin
|
||||||
cp build/px4_io-v2_default/px4_io-v2_default.bin boards/px4/fmu-v6x/extras/px4_io-v2_default.bin
|
cp build/px4_io-v2_default/px4_io-v2_default.bin boards/px4/fmu-v6x/extras/px4_io-v2_default.bin
|
||||||
|
cp build/px4_io-v2_default/px4_io-v2_default.bin boards/px4/fmu-v6c/extras/px4_io-v2_default.bin
|
||||||
# cubepilot_io-v2_default
|
# cubepilot_io-v2_default
|
||||||
cp build/cubepilot_io-v2_default/cubepilot_io-v2_default.bin boards/cubepilot/cubeorange/extras/cubepilot_io-v2_default.bin
|
cp build/cubepilot_io-v2_default/cubepilot_io-v2_default.bin boards/cubepilot/cubeorange/extras/cubepilot_io-v2_default.bin
|
||||||
cp build/cubepilot_io-v2_default/cubepilot_io-v2_default.bin boards/cubepilot/cubeyellow/extras/cubepilot_io-v2_default.bin
|
cp build/cubepilot_io-v2_default/cubepilot_io-v2_default.bin boards/cubepilot/cubeyellow/extras/cubepilot_io-v2_default.bin
|
||||||
git status
|
git status
|
||||||
|
|
||||||
bootloaders_update: cuav_nora_bootloader cuav_x7pro_bootloader cubepilot_cubeorange_bootloader holybro_durandal-v1_bootloader matek_h743-slim_bootloader modalai_fc-v2_bootloader mro_ctrl-zero-h7_bootloader mro_ctrl-zero-h7-oem_bootloader mro_pixracerpro_bootloader px4_fmu-v6u_bootloader px4_fmu-v6x_bootloader
|
bootloaders_update: cuav_nora_bootloader cuav_x7pro_bootloader cubepilot_cubeorange_bootloader holybro_durandal-v1_bootloader holybro_kakuteh7_bootloader matek_h743-slim_bootloader modalai_fc-v2_bootloader mro_ctrl-zero-classic_bootloader mro_ctrl-zero-h7_bootloader mro_ctrl-zero-h7-oem_bootloader mro_pixracerpro_bootloader px4_fmu-v6c_bootloader px4_fmu-v6u_bootloader px4_fmu-v6x_bootloader
|
||||||
git status
|
git status
|
||||||
|
|
||||||
.PHONY: coverity_scan
|
.PHONY: coverity_scan
|
||||||
|
|||||||
@@ -61,6 +61,8 @@ param set-default HIL_ACT_FUNC6 400
|
|||||||
|
|
||||||
param set SYS_HITL 1
|
param set SYS_HITL 1
|
||||||
|
|
||||||
|
param set UAVCAN_ENABLE 0
|
||||||
|
|
||||||
# disable some checks to allow to fly
|
# disable some checks to allow to fly
|
||||||
# - with usb
|
# - with usb
|
||||||
param set-default CBRK_USB_CHK 197848
|
param set-default CBRK_USB_CHK 197848
|
||||||
|
|||||||
@@ -15,6 +15,8 @@ set MIXER quad_x
|
|||||||
|
|
||||||
param set SYS_HITL 1
|
param set SYS_HITL 1
|
||||||
|
|
||||||
|
param set UAVCAN_ENABLE 0
|
||||||
|
|
||||||
param set-default CA_ROTOR_COUNT 4
|
param set-default CA_ROTOR_COUNT 4
|
||||||
param set-default CA_ROTOR0_PX 0.15
|
param set-default CA_ROTOR0_PX 0.15
|
||||||
param set-default CA_ROTOR0_PY 0.15
|
param set-default CA_ROTOR0_PY 0.15
|
||||||
|
|||||||
@@ -94,6 +94,8 @@ param set-default HIL_ACT_FUNC8 203
|
|||||||
|
|
||||||
param set SYS_HITL 1
|
param set SYS_HITL 1
|
||||||
|
|
||||||
|
param set UAVCAN_ENABLE 0
|
||||||
|
|
||||||
# disable some checks to allow to fly
|
# disable some checks to allow to fly
|
||||||
# - with usb
|
# - with usb
|
||||||
param set-default CBRK_USB_CHK 197848
|
param set-default CBRK_USB_CHK 197848
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ from pyulog import ULog
|
|||||||
from analysis.detectors import InAirDetector, PreconditionError
|
from analysis.detectors import InAirDetector, PreconditionError
|
||||||
from analysis.metrics import calculate_ecl_ekf_metrics
|
from analysis.metrics import calculate_ecl_ekf_metrics
|
||||||
from analysis.checks import perform_ecl_ekf_checks
|
from analysis.checks import perform_ecl_ekf_checks
|
||||||
from analysis.post_processing import get_estimator_check_flags
|
from analysis.post_processing import get_gps_check_fail_flags
|
||||||
|
|
||||||
def analyse_ekf(
|
def analyse_ekf(
|
||||||
ulog: ULog, check_levels: Dict[str, float], multi_instance: int = 0,
|
ulog: ULog, check_levels: Dict[str, float], multi_instance: int = 0,
|
||||||
@@ -40,6 +40,11 @@ def analyse_ekf(
|
|||||||
except:
|
except:
|
||||||
raise PreconditionError('could not find estimator_status instance', multi_instance)
|
raise PreconditionError('could not find estimator_status instance', multi_instance)
|
||||||
|
|
||||||
|
try:
|
||||||
|
estimator_status_flags = ulog.get_dataset('estimator_status_flags', multi_instance).data
|
||||||
|
except:
|
||||||
|
raise PreconditionError('could not find estimator_status_flags instance', multi_instance)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
_ = ulog.get_dataset('estimator_innovations', multi_instance).data
|
_ = ulog.get_dataset('estimator_innovations', multi_instance).data
|
||||||
except:
|
except:
|
||||||
@@ -61,14 +66,14 @@ def analyse_ekf(
|
|||||||
'in_air_transition_time': round(in_air.take_off + in_air.log_start, 2),
|
'in_air_transition_time': round(in_air.take_off + in_air.log_start, 2),
|
||||||
'on_ground_transition_time': round(in_air.landing + in_air.log_start, 2)}
|
'on_ground_transition_time': round(in_air.landing + in_air.log_start, 2)}
|
||||||
|
|
||||||
control_mode, innov_flags, gps_fail_flags = get_estimator_check_flags(estimator_status)
|
gps_fail_flags = get_gps_check_fail_flags(estimator_status)
|
||||||
|
|
||||||
sensor_checks, innov_fail_checks = find_checks_that_apply(
|
sensor_checks, innov_fail_checks = find_checks_that_apply(
|
||||||
control_mode, estimator_status,
|
estimator_status_flags, estimator_status,
|
||||||
pos_checks_when_sensors_not_fused=pos_checks_when_sensors_not_fused)
|
pos_checks_when_sensors_not_fused=pos_checks_when_sensors_not_fused)
|
||||||
|
|
||||||
metrics = calculate_ecl_ekf_metrics(
|
metrics = calculate_ecl_ekf_metrics(
|
||||||
ulog, innov_flags, innov_fail_checks, sensor_checks, in_air, in_air_no_ground_effects,
|
ulog, estimator_status_flags, innov_fail_checks, sensor_checks, in_air, in_air_no_ground_effects,
|
||||||
multi_instance, red_thresh=red_thresh, amb_thresh=amb_thresh)
|
multi_instance, red_thresh=red_thresh, amb_thresh=amb_thresh)
|
||||||
|
|
||||||
check_status, master_status = perform_ecl_ekf_checks(
|
check_status, master_status = perform_ecl_ekf_checks(
|
||||||
@@ -78,12 +83,12 @@ def analyse_ekf(
|
|||||||
|
|
||||||
|
|
||||||
def find_checks_that_apply(
|
def find_checks_that_apply(
|
||||||
control_mode: dict, estimator_status: dict, pos_checks_when_sensors_not_fused: bool = False) ->\
|
estimator_status_flags: dict, estimator_status: dict, pos_checks_when_sensors_not_fused: bool = False) ->\
|
||||||
Tuple[List[str], List[str]]:
|
Tuple[List[str], List[str]]:
|
||||||
"""
|
"""
|
||||||
finds the checks that apply and stores them in lists for the std checks and the innovation
|
finds the checks that apply and stores them in lists for the std checks and the innovation
|
||||||
fail checks.
|
fail checks.
|
||||||
:param control_mode:
|
:param estimator_status_flags:
|
||||||
:param estimator_status:
|
:param estimator_status:
|
||||||
:param b_pos_only_when_sensors_fused:
|
:param b_pos_only_when_sensors_fused:
|
||||||
:return: a tuple of two lists that contain strings for the std checks and for the innovation
|
:return: a tuple of two lists that contain strings for the std checks and for the innovation
|
||||||
@@ -97,7 +102,7 @@ def find_checks_that_apply(
|
|||||||
innov_fail_checks.append('posv')
|
innov_fail_checks.append('posv')
|
||||||
|
|
||||||
# Magnetometer Sensor Checks
|
# Magnetometer Sensor Checks
|
||||||
if (np.amax(control_mode['yaw_aligned']) > 0.5):
|
if (np.amax(estimator_status_flags['cs_yaw_align']) > 0.5):
|
||||||
sensor_checks.append('mag')
|
sensor_checks.append('mag')
|
||||||
|
|
||||||
innov_fail_checks.append('magx')
|
innov_fail_checks.append('magx')
|
||||||
@@ -106,13 +111,14 @@ def find_checks_that_apply(
|
|||||||
innov_fail_checks.append('yaw')
|
innov_fail_checks.append('yaw')
|
||||||
|
|
||||||
# Velocity Sensor Checks
|
# Velocity Sensor Checks
|
||||||
if (np.amax(control_mode['using_gps']) > 0.5):
|
if (np.amax(estimator_status_flags['cs_gps']) > 0.5):
|
||||||
sensor_checks.append('vel')
|
sensor_checks.append('vel')
|
||||||
innov_fail_checks.append('vel')
|
innov_fail_checks.append('velh')
|
||||||
|
innov_fail_checks.append('velv')
|
||||||
|
|
||||||
# Position Sensor Checks
|
# Position Sensor Checks
|
||||||
if (pos_checks_when_sensors_not_fused or (np.amax(control_mode['using_gps']) > 0.5)
|
if (pos_checks_when_sensors_not_fused or (np.amax(estimator_status_flags['cs_gps']) > 0.5)
|
||||||
or (np.amax(control_mode['using_evpos']) > 0.5)):
|
or (np.amax(estimator_status_flags['cs_ev_pos']) > 0.5)):
|
||||||
sensor_checks.append('pos')
|
sensor_checks.append('pos')
|
||||||
innov_fail_checks.append('posh')
|
innov_fail_checks.append('posh')
|
||||||
|
|
||||||
@@ -128,7 +134,7 @@ def find_checks_that_apply(
|
|||||||
innov_fail_checks.append('hagl')
|
innov_fail_checks.append('hagl')
|
||||||
|
|
||||||
# optical flow sensor checks
|
# optical flow sensor checks
|
||||||
if (np.amax(control_mode['using_optflow']) > 0.5):
|
if (np.amax(estimator_status_flags['cs_opt_flow']) > 0.5):
|
||||||
innov_fail_checks.append('ofx')
|
innov_fail_checks.append('ofx')
|
||||||
innov_fail_checks.append('ofy')
|
innov_fail_checks.append('ofy')
|
||||||
|
|
||||||
|
|||||||
@@ -123,7 +123,8 @@ def perform_sensor_innov_checks(
|
|||||||
('magy', 'magy_fail_percentage', 'mag'),
|
('magy', 'magy_fail_percentage', 'mag'),
|
||||||
('magz', 'magz_fail_percentage', 'mag'),
|
('magz', 'magz_fail_percentage', 'mag'),
|
||||||
('yaw', 'yaw_fail_percentage', 'yaw'),
|
('yaw', 'yaw_fail_percentage', 'yaw'),
|
||||||
('vel', 'vel_fail_percentage', 'vel'),
|
('velh', 'vel_fail_percentage', 'vel'),
|
||||||
|
('velv', 'vel_fail_percentage', 'vel'),
|
||||||
('posh', 'pos_fail_percentage', 'pos'),
|
('posh', 'pos_fail_percentage', 'pos'),
|
||||||
('tas', 'tas_fail_percentage', 'tas'),
|
('tas', 'tas_fail_percentage', 'tas'),
|
||||||
('hagl', 'hagl_fail_percentage', 'hagl'),
|
('hagl', 'hagl_fail_percentage', 'hagl'),
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ import numpy as np
|
|||||||
from analysis.detectors import InAirDetector
|
from analysis.detectors import InAirDetector
|
||||||
|
|
||||||
def calculate_ecl_ekf_metrics(
|
def calculate_ecl_ekf_metrics(
|
||||||
ulog: ULog, innov_flags: Dict[str, float], innov_fail_checks: List[str],
|
ulog: ULog, estimator_status_flags: Dict[str, float], innov_fail_checks: List[str],
|
||||||
sensor_checks: List[str], in_air: InAirDetector, in_air_no_ground_effects: InAirDetector,
|
sensor_checks: List[str], in_air: InAirDetector, in_air_no_ground_effects: InAirDetector,
|
||||||
multi_instance: int = 0, red_thresh: float = 1.0, amb_thresh: float = 0.5) -> Tuple[dict, dict, dict, dict]:
|
multi_instance: int = 0, red_thresh: float = 1.0, amb_thresh: float = 0.5) -> Tuple[dict, dict, dict, dict]:
|
||||||
|
|
||||||
@@ -20,7 +20,7 @@ def calculate_ecl_ekf_metrics(
|
|||||||
red_thresh=red_thresh, amb_thresh=amb_thresh)
|
red_thresh=red_thresh, amb_thresh=amb_thresh)
|
||||||
|
|
||||||
innov_fail_metrics = calculate_innov_fail_metrics(
|
innov_fail_metrics = calculate_innov_fail_metrics(
|
||||||
innov_flags, innov_fail_checks, in_air, in_air_no_ground_effects)
|
estimator_status_flags, innov_fail_checks, in_air, in_air_no_ground_effects)
|
||||||
|
|
||||||
imu_metrics = calculate_imu_metrics(ulog, multi_instance, in_air_no_ground_effects)
|
imu_metrics = calculate_imu_metrics(ulog, multi_instance, in_air_no_ground_effects)
|
||||||
|
|
||||||
@@ -90,10 +90,10 @@ def calculate_sensor_metrics(
|
|||||||
|
|
||||||
|
|
||||||
def calculate_innov_fail_metrics(
|
def calculate_innov_fail_metrics(
|
||||||
innov_flags: dict, innov_fail_checks: List[str], in_air: InAirDetector,
|
estimator_status_flags: dict, innov_fail_checks: List[str], in_air: InAirDetector,
|
||||||
in_air_no_ground_effects: InAirDetector) -> dict:
|
in_air_no_ground_effects: InAirDetector) -> dict:
|
||||||
"""
|
"""
|
||||||
:param innov_flags:
|
:param estimator_status_flags:
|
||||||
:param innov_fail_checks:
|
:param innov_fail_checks:
|
||||||
:param in_air:
|
:param in_air:
|
||||||
:param in_air_no_ground_effects:
|
:param in_air_no_ground_effects:
|
||||||
@@ -103,17 +103,18 @@ def calculate_innov_fail_metrics(
|
|||||||
innov_fail_metrics = dict()
|
innov_fail_metrics = dict()
|
||||||
|
|
||||||
# calculate innovation check fail metrics
|
# calculate innovation check fail metrics
|
||||||
for signal_id, signal, result in [('posv', 'posv_innov_fail', 'hgt_fail_percentage'),
|
for signal_id, signal, result in [('posv', 'reject_ver_pos', 'hgt_fail_percentage'),
|
||||||
('magx', 'magx_innov_fail', 'magx_fail_percentage'),
|
('magx', 'reject_mag_x', 'magx_fail_percentage'),
|
||||||
('magy', 'magy_innov_fail', 'magy_fail_percentage'),
|
('magy', 'reject_mag_y', 'magy_fail_percentage'),
|
||||||
('magz', 'magz_innov_fail', 'magz_fail_percentage'),
|
('magz', 'reject_mag_z', 'magz_fail_percentage'),
|
||||||
('yaw', 'yaw_innov_fail', 'yaw_fail_percentage'),
|
('yaw', 'reject_yaw', 'yaw_fail_percentage'),
|
||||||
('vel', 'vel_innov_fail', 'vel_fail_percentage'),
|
('velh', 'reject_hor_vel', 'vel_fail_percentage'),
|
||||||
('posh', 'posh_innov_fail', 'pos_fail_percentage'),
|
('velv', 'reject_ver_vel', 'vel_fail_percentage'),
|
||||||
('tas', 'tas_innov_fail', 'tas_fail_percentage'),
|
('posh', 'reject_hor_pos', 'pos_fail_percentage'),
|
||||||
('hagl', 'hagl_innov_fail', 'hagl_fail_percentage'),
|
('tas', 'reject_airspeed', 'tas_fail_percentage'),
|
||||||
('ofx', 'ofx_innov_fail', 'ofx_fail_percentage'),
|
('hagl', 'reject_hagl', 'hagl_fail_percentage'),
|
||||||
('ofy', 'ofy_innov_fail', 'ofy_fail_percentage')]:
|
('ofx', 'reject_optflow_x', 'ofx_fail_percentage'),
|
||||||
|
('ofy', 'reject_optflow_y', 'ofy_fail_percentage')]:
|
||||||
|
|
||||||
# only run innov fail checks, if they apply.
|
# only run innov fail checks, if they apply.
|
||||||
if signal_id in innov_fail_checks:
|
if signal_id in innov_fail_checks:
|
||||||
@@ -125,7 +126,7 @@ def calculate_innov_fail_metrics(
|
|||||||
in_air_detector = in_air
|
in_air_detector = in_air
|
||||||
|
|
||||||
innov_fail_metrics[result] = calculate_stat_from_signal(
|
innov_fail_metrics[result] = calculate_stat_from_signal(
|
||||||
innov_flags, 'estimator_status', signal, in_air_detector,
|
estimator_status_flags, 'estimator_status_flags', signal, in_air_detector,
|
||||||
lambda x: 100.0 * np.mean(x > 0.5))
|
lambda x: 100.0 * np.mean(x > 0.5))
|
||||||
|
|
||||||
return innov_fail_metrics
|
return innov_fail_metrics
|
||||||
@@ -152,7 +153,7 @@ def calculate_imu_metrics(ulog: ULog, multi_instance, in_air_no_ground_effects:
|
|||||||
|
|
||||||
if vehicle_imu_status_data['accel_device_id'][0] == estimator_status_data['accel_device_id'][0]:
|
if vehicle_imu_status_data['accel_device_id'][0] == estimator_status_data['accel_device_id'][0]:
|
||||||
|
|
||||||
for signal, result in [('delta_angle_coning_metric', 'imu_coning'),
|
for signal, result in [('gyro_coning_vibration', 'imu_coning'),
|
||||||
('gyro_vibration_metric', 'imu_hfgyro'),
|
('gyro_vibration_metric', 'imu_hfgyro'),
|
||||||
('accel_vibration_metric', 'imu_hfaccel')]:
|
('accel_vibration_metric', 'imu_hfaccel')]:
|
||||||
|
|
||||||
|
|||||||
@@ -7,115 +7,6 @@ from typing import Tuple
|
|||||||
|
|
||||||
import numpy as np
|
import numpy as np
|
||||||
|
|
||||||
|
|
||||||
def get_estimator_check_flags(estimator_status: dict) -> Tuple[dict, dict, dict]:
|
|
||||||
"""
|
|
||||||
:param estimator_status:
|
|
||||||
:return:
|
|
||||||
"""
|
|
||||||
control_mode = get_control_mode_flags(estimator_status)
|
|
||||||
innov_flags = get_innovation_check_flags(estimator_status)
|
|
||||||
gps_fail_flags = get_gps_check_fail_flags(estimator_status)
|
|
||||||
return control_mode, innov_flags, gps_fail_flags
|
|
||||||
|
|
||||||
|
|
||||||
def get_control_mode_flags(estimator_status: dict) -> dict:
|
|
||||||
"""
|
|
||||||
:param estimator_status:
|
|
||||||
:return:
|
|
||||||
"""
|
|
||||||
|
|
||||||
control_mode = dict()
|
|
||||||
# extract control mode metadata from estimator_status.control_mode_flags
|
|
||||||
# 0 - true if the filter tilt alignment is complete
|
|
||||||
# 1 - true if the filter yaw alignment is complete
|
|
||||||
# 2 - true if GPS measurements are being fused
|
|
||||||
# 3 - true if optical flow measurements are being fused
|
|
||||||
# 4 - true if a simple magnetic yaw heading is being fused
|
|
||||||
# 5 - true if 3-axis magnetometer measurement are being fused
|
|
||||||
# 6 - true if synthetic magnetic declination measurements are being fused
|
|
||||||
# 7 - true when the vehicle is airborne
|
|
||||||
# 8 - true when wind velocity is being estimated
|
|
||||||
# 9 - true when baro height is being fused as a primary height reference
|
|
||||||
# 10 - true when range finder height is being fused as a primary height reference
|
|
||||||
# 11 - true when range finder height is being fused as a primary height reference
|
|
||||||
# 12 - true when local position data from external vision is being fused
|
|
||||||
# 13 - true when yaw data from external vision measurements is being fused
|
|
||||||
# 14 - true when height data from external vision measurements is being fused
|
|
||||||
# 15 - true when synthetic sideslip measurements are being fused
|
|
||||||
# 16 - true true when the mag field does not match the expected strength
|
|
||||||
# 17 - true true when the vehicle is operating as a fixed wing vehicle
|
|
||||||
# 18 - true when the magnetometer has been declared faulty and is no longer being used
|
|
||||||
# 19 - true true when airspeed measurements are being fused
|
|
||||||
# 20 - true true when protection from ground effect induced static pressure rise is active
|
|
||||||
# 21 - true when rng data wasn't ready for more than 10s and new rng values haven't changed enough
|
|
||||||
# 22 - true when yaw (not ground course) data from a GPS receiver is being fused
|
|
||||||
# 23 - true when the in-flight mag field alignment has been completed
|
|
||||||
# 24 - true when local earth frame velocity data from external vision measurements are being fused
|
|
||||||
# 25 - true when we are using a synthesized measurement for the magnetometer Z component
|
|
||||||
control_mode['tilt_aligned'] = ((2 ** 0 & estimator_status['control_mode_flags']) > 0) * 1
|
|
||||||
control_mode['yaw_aligned'] = ((2 ** 1 & estimator_status['control_mode_flags']) > 0) * 1
|
|
||||||
control_mode['using_gps'] = ((2 ** 2 & estimator_status['control_mode_flags']) > 0) * 1
|
|
||||||
control_mode['using_optflow'] = ((2 ** 3 & estimator_status['control_mode_flags']) > 0) * 1
|
|
||||||
control_mode['using_magyaw'] = ((2 ** 4 & estimator_status['control_mode_flags']) > 0) * 1
|
|
||||||
control_mode['using_mag3d'] = ((2 ** 5 & estimator_status['control_mode_flags']) > 0) * 1
|
|
||||||
control_mode['using_magdecl'] = ((2 ** 6 & estimator_status['control_mode_flags']) > 0) * 1
|
|
||||||
control_mode['airborne'] = ((2 ** 7 & estimator_status['control_mode_flags']) > 0) * 1
|
|
||||||
control_mode['estimating_wind'] = ((2 ** 8 & estimator_status['control_mode_flags']) > 0) * 1
|
|
||||||
control_mode['using_barohgt'] = ((2 ** 9 & estimator_status['control_mode_flags']) > 0) * 1
|
|
||||||
control_mode['using_rnghgt'] = ((2 ** 10 & estimator_status['control_mode_flags']) > 0) * 1
|
|
||||||
control_mode['using_gpshgt'] = ((2 ** 11 & estimator_status['control_mode_flags']) > 0) * 1
|
|
||||||
control_mode['using_evpos'] = ((2 ** 12 & estimator_status['control_mode_flags']) > 0) * 1
|
|
||||||
control_mode['using_evyaw'] = ((2 ** 13 & estimator_status['control_mode_flags']) > 0) * 1
|
|
||||||
control_mode['using_evhgt'] = ((2 ** 14 & estimator_status['control_mode_flags']) > 0) * 1
|
|
||||||
control_mode['fuse_beta'] = ((2 ** 15 & estimator_status['control_mode_flags']) > 0) * 1
|
|
||||||
control_mode['mag_field_disturbed'] = ((2 ** 16 & estimator_status['control_mode_flags']) > 0) * 1
|
|
||||||
control_mode['fixed_wing'] = ((2 ** 17 & estimator_status['control_mode_flags']) > 0) * 1
|
|
||||||
control_mode['mag_fault'] = ((2 ** 18 & estimator_status['control_mode_flags']) > 0) * 1
|
|
||||||
control_mode['fuse_aspd'] = ((2 ** 19 & estimator_status['control_mode_flags']) > 0) * 1
|
|
||||||
control_mode['gnd_effect'] = ((2 ** 20 & estimator_status['control_mode_flags']) > 0) * 1
|
|
||||||
control_mode['rng_stuck'] = ((2 ** 21 & estimator_status['control_mode_flags']) > 0) * 1
|
|
||||||
control_mode['gps_yaw'] = ((2 ** 22 & estimator_status['control_mode_flags']) > 0) * 1
|
|
||||||
control_mode['mag_aligned_in_flight'] = ((2 ** 23 & estimator_status['control_mode_flags']) > 0) * 1
|
|
||||||
control_mode['ev_vel'] = ((2 ** 24 & estimator_status['control_mode_flags']) > 0) * 1
|
|
||||||
control_mode['synthetic_mag_z'] = ((2 ** 25 & estimator_status['control_mode_flags']) > 0) * 1
|
|
||||||
return control_mode
|
|
||||||
|
|
||||||
def get_innovation_check_flags(estimator_status: dict) -> dict:
|
|
||||||
"""
|
|
||||||
:param estimator_status:
|
|
||||||
:return:
|
|
||||||
"""
|
|
||||||
|
|
||||||
innov_flags = dict()
|
|
||||||
# innovation_check_flags summary
|
|
||||||
# 0 - true if velocity observations have been rejected
|
|
||||||
# 1 - true if horizontal position observations have been rejected
|
|
||||||
# 2 - true if true if vertical position observations have been rejected
|
|
||||||
# 3 - true if the X magnetometer observation has been rejected
|
|
||||||
# 4 - true if the Y magnetometer observation has been rejected
|
|
||||||
# 5 - true if the Z magnetometer observation has been rejected
|
|
||||||
# 6 - true if the yaw observation has been rejected
|
|
||||||
# 7 - true if the airspeed observation has been rejected
|
|
||||||
# 8 - true if synthetic sideslip observation has been rejected
|
|
||||||
# 9 - true if the height above ground observation has been rejected
|
|
||||||
# 10 - true if the X optical flow observation has been rejected
|
|
||||||
# 11 - true if the Y optical flow observation has been rejected
|
|
||||||
innov_flags['vel_innov_fail'] = ((2 ** 0 & estimator_status['innovation_check_flags']) > 0) * 1
|
|
||||||
innov_flags['posh_innov_fail'] = ((2 ** 1 & estimator_status['innovation_check_flags']) > 0) * 1
|
|
||||||
innov_flags['posv_innov_fail'] = ((2 ** 2 & estimator_status['innovation_check_flags']) > 0) * 1
|
|
||||||
innov_flags['magx_innov_fail'] = ((2 ** 3 & estimator_status['innovation_check_flags']) > 0) * 1
|
|
||||||
innov_flags['magy_innov_fail'] = ((2 ** 4 & estimator_status['innovation_check_flags']) > 0) * 1
|
|
||||||
innov_flags['magz_innov_fail'] = ((2 ** 5 & estimator_status['innovation_check_flags']) > 0) * 1
|
|
||||||
innov_flags['yaw_innov_fail'] = ((2 ** 6 & estimator_status['innovation_check_flags']) > 0) * 1
|
|
||||||
innov_flags['tas_innov_fail'] = ((2 ** 7 & estimator_status['innovation_check_flags']) > 0) * 1
|
|
||||||
innov_flags['sli_innov_fail'] = ((2 ** 8 & estimator_status['innovation_check_flags']) > 0) * 1
|
|
||||||
innov_flags['hagl_innov_fail'] = ((2 ** 9 & estimator_status['innovation_check_flags']) > 0) * 1
|
|
||||||
innov_flags['ofx_innov_fail'] = ((2 ** 10 & estimator_status['innovation_check_flags']) > 0) * 1
|
|
||||||
innov_flags['ofy_innov_fail'] = ((2 ** 11 & estimator_status['innovation_check_flags']) > 0) * 1
|
|
||||||
return innov_flags
|
|
||||||
|
|
||||||
|
|
||||||
def get_gps_check_fail_flags(estimator_status: dict) -> dict:
|
def get_gps_check_fail_flags(estimator_status: dict) -> dict:
|
||||||
"""
|
"""
|
||||||
:param estimator_status:
|
:param estimator_status:
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ import numpy as np
|
|||||||
from matplotlib.backends.backend_pdf import PdfPages
|
from matplotlib.backends.backend_pdf import PdfPages
|
||||||
from pyulog import ULog
|
from pyulog import ULog
|
||||||
|
|
||||||
from analysis.post_processing import magnetic_field_estimates_from_states, get_estimator_check_flags
|
from analysis.post_processing import magnetic_field_estimates_from_states, get_gps_check_fail_flags
|
||||||
from plotting.data_plots import TimeSeriesPlot, InnovationPlot, ControlModeSummaryPlot, \
|
from plotting.data_plots import TimeSeriesPlot, InnovationPlot, ControlModeSummaryPlot, \
|
||||||
CheckFlagsPlot
|
CheckFlagsPlot
|
||||||
from analysis.detectors import PreconditionError
|
from analysis.detectors import PreconditionError
|
||||||
@@ -33,6 +33,11 @@ def create_pdf_report(ulog: ULog, multi_instance: int, output_plot_filename: str
|
|||||||
except:
|
except:
|
||||||
raise PreconditionError('could not find estimator_status instance', multi_instance)
|
raise PreconditionError('could not find estimator_status instance', multi_instance)
|
||||||
|
|
||||||
|
try:
|
||||||
|
estimator_status_flags = ulog.get_dataset('estimator_status_flags', multi_instance).data
|
||||||
|
except:
|
||||||
|
raise PreconditionError('could not find estimator_status_flags instance', multi_instance)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
estimator_states = ulog.get_dataset('estimator_states', multi_instance).data
|
estimator_states = ulog.get_dataset('estimator_states', multi_instance).data
|
||||||
except:
|
except:
|
||||||
@@ -68,12 +73,13 @@ def create_pdf_report(ulog: ULog, multi_instance: int, output_plot_filename: str
|
|||||||
except:
|
except:
|
||||||
raise PreconditionError('could not find innovation data')
|
raise PreconditionError('could not find innovation data')
|
||||||
|
|
||||||
control_mode, innov_flags, gps_fail_flags = get_estimator_check_flags(estimator_status)
|
gps_fail_flags = get_gps_check_fail_flags(estimator_status)
|
||||||
|
|
||||||
status_time = 1e-6 * estimator_status['timestamp']
|
status_time = 1e-6 * estimator_status['timestamp']
|
||||||
|
status_flags_time = 1e-6 * estimator_status_flags['timestamp']
|
||||||
|
|
||||||
b_finishes_in_air, b_starts_in_air, in_air_duration, in_air_transition_time, \
|
b_finishes_in_air, b_starts_in_air, in_air_duration, in_air_transition_time, \
|
||||||
on_ground_transition_time = detect_airtime(control_mode, status_time)
|
on_ground_transition_time = detect_airtime(estimator_status_flags, status_flags_time)
|
||||||
|
|
||||||
with PdfPages(output_plot_filename) as pdf_pages:
|
with PdfPages(output_plot_filename) as pdf_pages:
|
||||||
|
|
||||||
@@ -173,9 +179,9 @@ def create_pdf_report(ulog: ULog, multi_instance: int, output_plot_filename: str
|
|||||||
|
|
||||||
# plot control mode summary A
|
# plot control mode summary A
|
||||||
data_plot = ControlModeSummaryPlot(
|
data_plot = ControlModeSummaryPlot(
|
||||||
status_time, control_mode, [['tilt_aligned', 'yaw_aligned'],
|
status_flags_time, estimator_status_flags, [['cs_tilt_align', 'cs_yaw_align'],
|
||||||
['using_gps', 'using_optflow', 'using_evpos'], ['using_barohgt', 'using_gpshgt',
|
['cs_gps', 'cs_opt_flow', 'cs_ev_pos'], ['cs_baro_hgt', 'cs_gps_hgt',
|
||||||
'using_rnghgt', 'using_evhgt'], ['using_magyaw', 'using_mag3d', 'using_magdecl']],
|
'cs_rng_hgt', 'cs_ev_hgt'], ['cs_mag_hdg', 'cs_mag_3d', 'cs_mag_dec']],
|
||||||
x_label='time (sec)', y_labels=['aligned', 'pos aiding', 'hgt aiding', 'mag aiding'],
|
x_label='time (sec)', y_labels=['aligned', 'pos aiding', 'hgt aiding', 'mag aiding'],
|
||||||
annotation_text=[['tilt alignment', 'yaw alignment'], ['GPS aiding', 'optical flow aiding',
|
annotation_text=[['tilt alignment', 'yaw alignment'], ['GPS aiding', 'optical flow aiding',
|
||||||
'external vision aiding'], ['Baro aiding', 'GPS aiding', 'rangefinder aiding',
|
'external vision aiding'], ['Baro aiding', 'GPS aiding', 'rangefinder aiding',
|
||||||
@@ -188,7 +194,7 @@ def create_pdf_report(ulog: ULog, multi_instance: int, output_plot_filename: str
|
|||||||
# plot control mode summary B
|
# plot control mode summary B
|
||||||
# construct additional annotations for the airborne plot
|
# construct additional annotations for the airborne plot
|
||||||
airborne_annotations = list()
|
airborne_annotations = list()
|
||||||
if np.amin(np.diff(control_mode['airborne'])) > -0.5:
|
if np.amin(np.diff(estimator_status_flags['cs_in_air'])) > -0.5:
|
||||||
airborne_annotations.append(
|
airborne_annotations.append(
|
||||||
(on_ground_transition_time, 'air to ground transition not detected'))
|
(on_ground_transition_time, 'air to ground transition not detected'))
|
||||||
else:
|
else:
|
||||||
@@ -197,7 +203,7 @@ def create_pdf_report(ulog: ULog, multi_instance: int, output_plot_filename: str
|
|||||||
if in_air_duration > 0.0:
|
if in_air_duration > 0.0:
|
||||||
airborne_annotations.append(((in_air_transition_time + on_ground_transition_time) / 2,
|
airborne_annotations.append(((in_air_transition_time + on_ground_transition_time) / 2,
|
||||||
'duration = {:.1f} sec'.format(in_air_duration)))
|
'duration = {:.1f} sec'.format(in_air_duration)))
|
||||||
if np.amax(np.diff(control_mode['airborne'])) < 0.5:
|
if np.amax(np.diff(estimator_status_flags['cs_in_air'])) < 0.5:
|
||||||
airborne_annotations.append(
|
airborne_annotations.append(
|
||||||
(in_air_transition_time, 'ground to air transition not detected'))
|
(in_air_transition_time, 'ground to air transition not detected'))
|
||||||
else:
|
else:
|
||||||
@@ -205,7 +211,7 @@ def create_pdf_report(ulog: ULog, multi_instance: int, output_plot_filename: str
|
|||||||
(in_air_transition_time, 'in-air at {:.1f} sec'.format(in_air_transition_time)))
|
(in_air_transition_time, 'in-air at {:.1f} sec'.format(in_air_transition_time)))
|
||||||
|
|
||||||
data_plot = ControlModeSummaryPlot(
|
data_plot = ControlModeSummaryPlot(
|
||||||
status_time, control_mode, [['airborne'], ['estimating_wind']],
|
status_flags_time, estimator_status_flags, [['cs_in_air'], ['cs_wind']],
|
||||||
x_label='time (sec)', y_labels=['airborne', 'estimating wind'], annotation_text=[[], []],
|
x_label='time (sec)', y_labels=['airborne', 'estimating wind'], annotation_text=[[], []],
|
||||||
additional_annotation=[airborne_annotations, []],
|
additional_annotation=[airborne_annotations, []],
|
||||||
plot_title='EKF Control Status - Figure B', pdf_handle=pdf_pages)
|
plot_title='EKF Control Status - Figure B', pdf_handle=pdf_pages)
|
||||||
@@ -214,15 +220,15 @@ def create_pdf_report(ulog: ULog, multi_instance: int, output_plot_filename: str
|
|||||||
|
|
||||||
# plot innovation_check_flags summary
|
# plot innovation_check_flags summary
|
||||||
data_plot = CheckFlagsPlot(
|
data_plot = CheckFlagsPlot(
|
||||||
status_time, innov_flags, [['vel_innov_fail', 'posh_innov_fail'], ['posv_innov_fail',
|
status_flags_time, estimator_status_flags, [['reject_hor_vel', 'reject_hor_pos'], ['reject_ver_vel', 'reject_ver_pos',
|
||||||
'hagl_innov_fail'],
|
'reject_hagl'],
|
||||||
['magx_innov_fail', 'magy_innov_fail', 'magz_innov_fail',
|
['reject_mag_x', 'reject_mag_y', 'reject_mag_z',
|
||||||
'yaw_innov_fail'], ['tas_innov_fail'], ['sli_innov_fail'],
|
'reject_yaw'], ['reject_airspeed'], ['reject_sideslip'],
|
||||||
['ofx_innov_fail',
|
['reject_optflow_x',
|
||||||
'ofy_innov_fail']], x_label='time (sec)',
|
'reject_optflow_y']], x_label='time (sec)',
|
||||||
y_labels=['failed', 'failed', 'failed', 'failed', 'failed', 'failed'],
|
y_labels=['failed', 'failed', 'failed', 'failed', 'failed', 'failed'],
|
||||||
y_lim=(-0.1, 1.1),
|
y_lim=(-0.1, 1.1),
|
||||||
legend=[['vel NED', 'pos NE'], ['hgt absolute', 'hgt above ground'],
|
legend=[['vel NE', 'pos NE'], ['vel D', 'hgt absolute', 'hgt above ground'],
|
||||||
['mag_x', 'mag_y', 'mag_z', 'yaw'], ['airspeed'], ['sideslip'],
|
['mag_x', 'mag_y', 'mag_z', 'yaw'], ['airspeed'], ['sideslip'],
|
||||||
['flow X', 'flow Y']],
|
['flow X', 'flow Y']],
|
||||||
plot_title='EKF Innovation Test Fails', annotate=False, pdf_handle=pdf_pages)
|
plot_title='EKF Innovation Test Fails', annotate=False, pdf_handle=pdf_pages)
|
||||||
@@ -344,33 +350,33 @@ def create_pdf_report(ulog: ULog, multi_instance: int, output_plot_filename: str
|
|||||||
data_plot.close()
|
data_plot.close()
|
||||||
|
|
||||||
|
|
||||||
def detect_airtime(control_mode, status_time):
|
def detect_airtime(estimator_status_flags, status_flags_time):
|
||||||
# define flags for starting and finishing in air
|
# define flags for starting and finishing in air
|
||||||
b_starts_in_air = False
|
b_starts_in_air = False
|
||||||
b_finishes_in_air = False
|
b_finishes_in_air = False
|
||||||
# calculate in-air transition time
|
# calculate in-air transition time
|
||||||
if (np.amin(control_mode['airborne']) < 0.5) and (np.amax(control_mode['airborne']) > 0.5):
|
if (np.amin(estimator_status_flags['cs_in_air']) < 0.5) and (np.amax(estimator_status_flags['cs_in_air']) > 0.5):
|
||||||
in_air_transtion_time_arg = np.argmax(np.diff(control_mode['airborne']))
|
in_air_transtion_time_arg = np.argmax(np.diff(estimator_status_flags['cs_in_air']))
|
||||||
in_air_transition_time = status_time[in_air_transtion_time_arg]
|
in_air_transition_time = status_flags_time[in_air_transtion_time_arg]
|
||||||
elif (np.amax(control_mode['airborne']) > 0.5):
|
elif (np.amax(estimator_status_flags['cs_in_air']) > 0.5):
|
||||||
in_air_transition_time = np.amin(status_time)
|
in_air_transition_time = np.amin(status_flags_time)
|
||||||
print('log starts while in-air at ' + str(round(in_air_transition_time, 1)) + ' sec')
|
print('log starts while in-air at ' + str(round(in_air_transition_time, 1)) + ' sec')
|
||||||
b_starts_in_air = True
|
b_starts_in_air = True
|
||||||
else:
|
else:
|
||||||
in_air_transition_time = float('NaN')
|
in_air_transition_time = float('NaN')
|
||||||
print('always on ground')
|
print('always on ground')
|
||||||
# calculate on-ground transition time
|
# calculate on-ground transition time
|
||||||
if (np.amin(np.diff(control_mode['airborne'])) < 0.0):
|
if (np.amin(np.diff(estimator_status_flags['cs_in_air'])) < 0.0):
|
||||||
on_ground_transition_time_arg = np.argmin(np.diff(control_mode['airborne']))
|
on_ground_transition_time_arg = np.argmin(np.diff(estimator_status_flags['cs_in_air']))
|
||||||
on_ground_transition_time = status_time[on_ground_transition_time_arg]
|
on_ground_transition_time = status_flags_time[on_ground_transition_time_arg]
|
||||||
elif (np.amax(control_mode['airborne']) > 0.5):
|
elif (np.amax(estimator_status_flags['cs_in_air']) > 0.5):
|
||||||
on_ground_transition_time = np.amax(status_time)
|
on_ground_transition_time = np.amax(status_flags_time)
|
||||||
print('log finishes while in-air at ' + str(round(on_ground_transition_time, 1)) + ' sec')
|
print('log finishes while in-air at ' + str(round(on_ground_transition_time, 1)) + ' sec')
|
||||||
b_finishes_in_air = True
|
b_finishes_in_air = True
|
||||||
else:
|
else:
|
||||||
on_ground_transition_time = float('NaN')
|
on_ground_transition_time = float('NaN')
|
||||||
print('always on ground')
|
print('always on ground')
|
||||||
if (np.amax(np.diff(control_mode['airborne'])) > 0.5) and (np.amin(np.diff(control_mode['airborne'])) < -0.5):
|
if (np.amax(np.diff(estimator_status_flags['cs_in_air'])) > 0.5) and (np.amin(np.diff(estimator_status_flags['cs_in_air'])) < -0.5):
|
||||||
if ((on_ground_transition_time - in_air_transition_time) > 0.0):
|
if ((on_ground_transition_time - in_air_transition_time) > 0.0):
|
||||||
in_air_duration = on_ground_transition_time - in_air_transition_time
|
in_air_duration = on_ground_transition_time - in_air_transition_time
|
||||||
else:
|
else:
|
||||||
|
|||||||
+1
-1
Submodule Tools/sitl_gazebo updated: 2cf56d0bf8...48440d7b5c
@@ -130,8 +130,7 @@ CONFIG_SCHED_LPWORKSTACKSIZE=1632
|
|||||||
CONFIG_SCHED_WAITPID=y
|
CONFIG_SCHED_WAITPID=y
|
||||||
CONFIG_SDCLONE_DISABLE=y
|
CONFIG_SDCLONE_DISABLE=y
|
||||||
CONFIG_SDIO_BLOCKSETUP=y
|
CONFIG_SDIO_BLOCKSETUP=y
|
||||||
CONFIG_SEM_NNESTPRIO=8
|
CONFIG_SEM_PREALLOCHOLDERS=32
|
||||||
CONFIG_SEM_PREALLOCHOLDERS=0
|
|
||||||
CONFIG_SERIAL_IFLOWCONTROL_WATERMARKS=y
|
CONFIG_SERIAL_IFLOWCONTROL_WATERMARKS=y
|
||||||
CONFIG_SERIAL_TERMIOS=y
|
CONFIG_SERIAL_TERMIOS=y
|
||||||
CONFIG_SIG_DEFAULT=y
|
CONFIG_SIG_DEFAULT=y
|
||||||
@@ -174,7 +173,7 @@ CONFIG_STM32_SPI1=y
|
|||||||
CONFIG_STM32_SPI2=y
|
CONFIG_STM32_SPI2=y
|
||||||
CONFIG_STM32_SPI4=y
|
CONFIG_STM32_SPI4=y
|
||||||
CONFIG_STM32_SPI4_DMA=y
|
CONFIG_STM32_SPI4_DMA=y
|
||||||
CONFIG_STM32_SPI4_DMA_BUFFER=1024
|
CONFIG_STM32_SPI4_DMA_BUFFER=512
|
||||||
CONFIG_STM32_SPI_DMA=y
|
CONFIG_STM32_SPI_DMA=y
|
||||||
CONFIG_STM32_SPI_DMATHRESHOLD=8
|
CONFIG_STM32_SPI_DMATHRESHOLD=8
|
||||||
CONFIG_STM32_TIM10=y
|
CONFIG_STM32_TIM10=y
|
||||||
|
|||||||
@@ -105,8 +105,7 @@ CONFIG_SCHED_LPWORK=y
|
|||||||
CONFIG_SCHED_LPWORKPRIORITY=50
|
CONFIG_SCHED_LPWORKPRIORITY=50
|
||||||
CONFIG_SCHED_LPWORKSTACKSIZE=1632
|
CONFIG_SCHED_LPWORKSTACKSIZE=1632
|
||||||
CONFIG_SCHED_WAITPID=y
|
CONFIG_SCHED_WAITPID=y
|
||||||
CONFIG_SEM_NNESTPRIO=8
|
CONFIG_SEM_PREALLOCHOLDERS=32
|
||||||
CONFIG_SEM_PREALLOCHOLDERS=0
|
|
||||||
CONFIG_SERIAL_TERMIOS=y
|
CONFIG_SERIAL_TERMIOS=y
|
||||||
CONFIG_SIG_DEFAULT=y
|
CONFIG_SIG_DEFAULT=y
|
||||||
CONFIG_SIG_SIGALRM_ACTION=y
|
CONFIG_SIG_SIGALRM_ACTION=y
|
||||||
|
|||||||
@@ -107,8 +107,7 @@ CONFIG_SCHED_LPWORK=y
|
|||||||
CONFIG_SCHED_LPWORKPRIORITY=50
|
CONFIG_SCHED_LPWORKPRIORITY=50
|
||||||
CONFIG_SCHED_LPWORKSTACKSIZE=1632
|
CONFIG_SCHED_LPWORKSTACKSIZE=1632
|
||||||
CONFIG_SCHED_WAITPID=y
|
CONFIG_SCHED_WAITPID=y
|
||||||
CONFIG_SEM_NNESTPRIO=8
|
CONFIG_SEM_PREALLOCHOLDERS=32
|
||||||
CONFIG_SEM_PREALLOCHOLDERS=0
|
|
||||||
CONFIG_SERIAL_TERMIOS=y
|
CONFIG_SERIAL_TERMIOS=y
|
||||||
CONFIG_SIG_DEFAULT=y
|
CONFIG_SIG_DEFAULT=y
|
||||||
CONFIG_SIG_SIGALRM_ACTION=y
|
CONFIG_SIG_SIGALRM_ACTION=y
|
||||||
|
|||||||
@@ -107,8 +107,7 @@ CONFIG_SCHED_LPWORK=y
|
|||||||
CONFIG_SCHED_LPWORKPRIORITY=50
|
CONFIG_SCHED_LPWORKPRIORITY=50
|
||||||
CONFIG_SCHED_LPWORKSTACKSIZE=1632
|
CONFIG_SCHED_LPWORKSTACKSIZE=1632
|
||||||
CONFIG_SCHED_WAITPID=y
|
CONFIG_SCHED_WAITPID=y
|
||||||
CONFIG_SEM_NNESTPRIO=8
|
CONFIG_SEM_PREALLOCHOLDERS=32
|
||||||
CONFIG_SEM_PREALLOCHOLDERS=0
|
|
||||||
CONFIG_SERIAL_TERMIOS=y
|
CONFIG_SERIAL_TERMIOS=y
|
||||||
CONFIG_SIG_DEFAULT=y
|
CONFIG_SIG_DEFAULT=y
|
||||||
CONFIG_SIG_SIGALRM_ACTION=y
|
CONFIG_SIG_SIGALRM_ACTION=y
|
||||||
|
|||||||
@@ -107,8 +107,7 @@ CONFIG_SCHED_LPWORK=y
|
|||||||
CONFIG_SCHED_LPWORKPRIORITY=50
|
CONFIG_SCHED_LPWORKPRIORITY=50
|
||||||
CONFIG_SCHED_LPWORKSTACKSIZE=1632
|
CONFIG_SCHED_LPWORKSTACKSIZE=1632
|
||||||
CONFIG_SCHED_WAITPID=y
|
CONFIG_SCHED_WAITPID=y
|
||||||
CONFIG_SEM_NNESTPRIO=8
|
CONFIG_SEM_PREALLOCHOLDERS=32
|
||||||
CONFIG_SEM_PREALLOCHOLDERS=0
|
|
||||||
CONFIG_SERIAL_TERMIOS=y
|
CONFIG_SERIAL_TERMIOS=y
|
||||||
CONFIG_SIG_DEFAULT=y
|
CONFIG_SIG_DEFAULT=y
|
||||||
CONFIG_SIG_SIGALRM_ACTION=y
|
CONFIG_SIG_SIGALRM_ACTION=y
|
||||||
|
|||||||
@@ -140,8 +140,7 @@ CONFIG_SCHED_WAITPID=y
|
|||||||
CONFIG_SDCLONE_DISABLE=y
|
CONFIG_SDCLONE_DISABLE=y
|
||||||
CONFIG_SDMMC1_SDIO_MODE=y
|
CONFIG_SDMMC1_SDIO_MODE=y
|
||||||
CONFIG_SDMMC1_SDIO_PULLUP=y
|
CONFIG_SDMMC1_SDIO_PULLUP=y
|
||||||
CONFIG_SEM_NNESTPRIO=8
|
CONFIG_SEM_PREALLOCHOLDERS=32
|
||||||
CONFIG_SEM_PREALLOCHOLDERS=0
|
|
||||||
CONFIG_SERIAL_IFLOWCONTROL_WATERMARKS=y
|
CONFIG_SERIAL_IFLOWCONTROL_WATERMARKS=y
|
||||||
CONFIG_SERIAL_TERMIOS=y
|
CONFIG_SERIAL_TERMIOS=y
|
||||||
CONFIG_SIG_DEFAULT=y
|
CONFIG_SIG_DEFAULT=y
|
||||||
|
|||||||
@@ -162,8 +162,7 @@ CONFIG_SCHED_WAITPID=y
|
|||||||
CONFIG_SDCLONE_DISABLE=y
|
CONFIG_SDCLONE_DISABLE=y
|
||||||
CONFIG_SDMMC1_SDIO_MODE=y
|
CONFIG_SDMMC1_SDIO_MODE=y
|
||||||
CONFIG_SDMMC1_SDIO_PULLUP=y
|
CONFIG_SDMMC1_SDIO_PULLUP=y
|
||||||
CONFIG_SEM_NNESTPRIO=8
|
CONFIG_SEM_PREALLOCHOLDERS=32
|
||||||
CONFIG_SEM_PREALLOCHOLDERS=0
|
|
||||||
CONFIG_SERIAL_TERMIOS=y
|
CONFIG_SERIAL_TERMIOS=y
|
||||||
CONFIG_SIG_DEFAULT=y
|
CONFIG_SIG_DEFAULT=y
|
||||||
CONFIG_SIG_SIGALRM_ACTION=y
|
CONFIG_SIG_SIGALRM_ACTION=y
|
||||||
|
|||||||
@@ -126,8 +126,7 @@ CONFIG_SCHED_LPWORKPRIORITY=50
|
|||||||
CONFIG_SCHED_LPWORKSTACKSIZE=1632
|
CONFIG_SCHED_LPWORKSTACKSIZE=1632
|
||||||
CONFIG_SCHED_WAITPID=y
|
CONFIG_SCHED_WAITPID=y
|
||||||
CONFIG_SDCLONE_DISABLE=y
|
CONFIG_SDCLONE_DISABLE=y
|
||||||
CONFIG_SEM_NNESTPRIO=8
|
CONFIG_SEM_PREALLOCHOLDERS=32
|
||||||
CONFIG_SEM_PREALLOCHOLDERS=0
|
|
||||||
CONFIG_SERIAL_TERMIOS=y
|
CONFIG_SERIAL_TERMIOS=y
|
||||||
CONFIG_SIG_DEFAULT=y
|
CONFIG_SIG_DEFAULT=y
|
||||||
CONFIG_SIG_SIGALRM_ACTION=y
|
CONFIG_SIG_SIGALRM_ACTION=y
|
||||||
|
|||||||
@@ -125,8 +125,7 @@ CONFIG_SCHED_LPWORKPRIORITY=50
|
|||||||
CONFIG_SCHED_LPWORKSTACKSIZE=1632
|
CONFIG_SCHED_LPWORKSTACKSIZE=1632
|
||||||
CONFIG_SCHED_WAITPID=y
|
CONFIG_SCHED_WAITPID=y
|
||||||
CONFIG_SDCLONE_DISABLE=y
|
CONFIG_SDCLONE_DISABLE=y
|
||||||
CONFIG_SEM_NNESTPRIO=8
|
CONFIG_SEM_PREALLOCHOLDERS=32
|
||||||
CONFIG_SEM_PREALLOCHOLDERS=0
|
|
||||||
CONFIG_SERIAL_TERMIOS=y
|
CONFIG_SERIAL_TERMIOS=y
|
||||||
CONFIG_SIG_DEFAULT=y
|
CONFIG_SIG_DEFAULT=y
|
||||||
CONFIG_SIG_SIGALRM_ACTION=y
|
CONFIG_SIG_SIGALRM_ACTION=y
|
||||||
|
|||||||
@@ -108,8 +108,7 @@ CONFIG_SCHED_LPWORK=y
|
|||||||
CONFIG_SCHED_LPWORKPRIORITY=50
|
CONFIG_SCHED_LPWORKPRIORITY=50
|
||||||
CONFIG_SCHED_LPWORKSTACKSIZE=1632
|
CONFIG_SCHED_LPWORKSTACKSIZE=1632
|
||||||
CONFIG_SCHED_WAITPID=y
|
CONFIG_SCHED_WAITPID=y
|
||||||
CONFIG_SEM_NNESTPRIO=8
|
CONFIG_SEM_PREALLOCHOLDERS=32
|
||||||
CONFIG_SEM_PREALLOCHOLDERS=0
|
|
||||||
CONFIG_SERIAL_TERMIOS=y
|
CONFIG_SERIAL_TERMIOS=y
|
||||||
CONFIG_SIG_DEFAULT=y
|
CONFIG_SIG_DEFAULT=y
|
||||||
CONFIG_SIG_SIGALRM_ACTION=y
|
CONFIG_SIG_SIGALRM_ACTION=y
|
||||||
|
|||||||
Binary file not shown.
@@ -139,8 +139,7 @@ CONFIG_SCHED_LPWORKSTACKSIZE=1632
|
|||||||
CONFIG_SCHED_WAITPID=y
|
CONFIG_SCHED_WAITPID=y
|
||||||
CONFIG_SDCLONE_DISABLE=y
|
CONFIG_SDCLONE_DISABLE=y
|
||||||
CONFIG_SDMMC1_SDIO_PULLUP=y
|
CONFIG_SDMMC1_SDIO_PULLUP=y
|
||||||
CONFIG_SEM_NNESTPRIO=8
|
CONFIG_SEM_PREALLOCHOLDERS=32
|
||||||
CONFIG_SEM_PREALLOCHOLDERS=0
|
|
||||||
CONFIG_SERIAL_IFLOWCONTROL_WATERMARKS=y
|
CONFIG_SERIAL_IFLOWCONTROL_WATERMARKS=y
|
||||||
CONFIG_SERIAL_TERMIOS=y
|
CONFIG_SERIAL_TERMIOS=y
|
||||||
CONFIG_SIG_DEFAULT=y
|
CONFIG_SIG_DEFAULT=y
|
||||||
|
|||||||
@@ -111,6 +111,7 @@ MEMORY
|
|||||||
{
|
{
|
||||||
ITCM_RAM (rwx) : ORIGIN = 0x00000000, LENGTH = 64K
|
ITCM_RAM (rwx) : ORIGIN = 0x00000000, LENGTH = 64K
|
||||||
FLASH (rx) : ORIGIN = 0x08020000, LENGTH = 1920K
|
FLASH (rx) : ORIGIN = 0x08020000, LENGTH = 1920K
|
||||||
|
|
||||||
DTCM1_RAM (rwx) : ORIGIN = 0x20000000, LENGTH = 64K
|
DTCM1_RAM (rwx) : ORIGIN = 0x20000000, LENGTH = 64K
|
||||||
DTCM2_RAM (rwx) : ORIGIN = 0x20010000, LENGTH = 64K
|
DTCM2_RAM (rwx) : ORIGIN = 0x20010000, LENGTH = 64K
|
||||||
AXI_SRAM (rwx) : ORIGIN = 0x24000000, LENGTH = 512K /* D1 domain AXI bus */
|
AXI_SRAM (rwx) : ORIGIN = 0x24000000, LENGTH = 512K /* D1 domain AXI bus */
|
||||||
@@ -186,7 +187,12 @@ SECTIONS
|
|||||||
*(.gnu.linkonce.d.*)
|
*(.gnu.linkonce.d.*)
|
||||||
CONSTRUCTORS
|
CONSTRUCTORS
|
||||||
_edata = ABSOLUTE(.);
|
_edata = ABSOLUTE(.);
|
||||||
} > AXI_SRAM AT > FLASH
|
|
||||||
|
/* Pad out last section as the STM32H7 Flash write size is 256 bits. 32 bytes */
|
||||||
|
. = ALIGN(16);
|
||||||
|
FILL(0xffff)
|
||||||
|
. += 16;
|
||||||
|
} > AXI_SRAM AT > FLASH = 0xffff
|
||||||
|
|
||||||
.bss : {
|
.bss : {
|
||||||
_sbss = ABSOLUTE(.);
|
_sbss = ABSOLUTE(.);
|
||||||
|
|||||||
Binary file not shown.
@@ -138,8 +138,7 @@ CONFIG_SCHED_LPWORKSTACKSIZE=1632
|
|||||||
CONFIG_SCHED_WAITPID=y
|
CONFIG_SCHED_WAITPID=y
|
||||||
CONFIG_SDCLONE_DISABLE=y
|
CONFIG_SDCLONE_DISABLE=y
|
||||||
CONFIG_SDMMC1_SDIO_PULLUP=y
|
CONFIG_SDMMC1_SDIO_PULLUP=y
|
||||||
CONFIG_SEM_NNESTPRIO=8
|
CONFIG_SEM_PREALLOCHOLDERS=32
|
||||||
CONFIG_SEM_PREALLOCHOLDERS=0
|
|
||||||
CONFIG_SERIAL_IFLOWCONTROL_WATERMARKS=y
|
CONFIG_SERIAL_IFLOWCONTROL_WATERMARKS=y
|
||||||
CONFIG_SERIAL_TERMIOS=y
|
CONFIG_SERIAL_TERMIOS=y
|
||||||
CONFIG_SIG_DEFAULT=y
|
CONFIG_SIG_DEFAULT=y
|
||||||
|
|||||||
@@ -111,6 +111,7 @@ MEMORY
|
|||||||
{
|
{
|
||||||
ITCM_RAM (rwx) : ORIGIN = 0x00000000, LENGTH = 64K
|
ITCM_RAM (rwx) : ORIGIN = 0x00000000, LENGTH = 64K
|
||||||
FLASH (rx) : ORIGIN = 0x08020000, LENGTH = 1920K
|
FLASH (rx) : ORIGIN = 0x08020000, LENGTH = 1920K
|
||||||
|
|
||||||
DTCM1_RAM (rwx) : ORIGIN = 0x20000000, LENGTH = 64K
|
DTCM1_RAM (rwx) : ORIGIN = 0x20000000, LENGTH = 64K
|
||||||
DTCM2_RAM (rwx) : ORIGIN = 0x20010000, LENGTH = 64K
|
DTCM2_RAM (rwx) : ORIGIN = 0x20010000, LENGTH = 64K
|
||||||
AXI_SRAM (rwx) : ORIGIN = 0x24000000, LENGTH = 512K /* D1 domain AXI bus */
|
AXI_SRAM (rwx) : ORIGIN = 0x24000000, LENGTH = 512K /* D1 domain AXI bus */
|
||||||
@@ -186,7 +187,12 @@ SECTIONS
|
|||||||
*(.gnu.linkonce.d.*)
|
*(.gnu.linkonce.d.*)
|
||||||
CONSTRUCTORS
|
CONSTRUCTORS
|
||||||
_edata = ABSOLUTE(.);
|
_edata = ABSOLUTE(.);
|
||||||
} > AXI_SRAM AT > FLASH
|
|
||||||
|
/* Pad out last section as the STM32H7 Flash write size is 256 bits. 32 bytes */
|
||||||
|
. = ALIGN(16);
|
||||||
|
FILL(0xffff)
|
||||||
|
. += 16;
|
||||||
|
} > AXI_SRAM AT > FLASH = 0xffff
|
||||||
|
|
||||||
.bss : {
|
.bss : {
|
||||||
_sbss = ABSOLUTE(.);
|
_sbss = ABSOLUTE(.);
|
||||||
|
|||||||
Binary file not shown.
@@ -140,8 +140,7 @@ CONFIG_SCHED_LPWORKSTACKSIZE=1632
|
|||||||
CONFIG_SCHED_WAITPID=y
|
CONFIG_SCHED_WAITPID=y
|
||||||
CONFIG_SDCLONE_DISABLE=y
|
CONFIG_SDCLONE_DISABLE=y
|
||||||
CONFIG_SDMMC1_SDIO_PULLUP=y
|
CONFIG_SDMMC1_SDIO_PULLUP=y
|
||||||
CONFIG_SEM_NNESTPRIO=8
|
CONFIG_SEM_PREALLOCHOLDERS=32
|
||||||
CONFIG_SEM_PREALLOCHOLDERS=0
|
|
||||||
CONFIG_SERIAL_IFLOWCONTROL_WATERMARKS=y
|
CONFIG_SERIAL_IFLOWCONTROL_WATERMARKS=y
|
||||||
CONFIG_SERIAL_TERMIOS=y
|
CONFIG_SERIAL_TERMIOS=y
|
||||||
CONFIG_SIG_DEFAULT=y
|
CONFIG_SIG_DEFAULT=y
|
||||||
|
|||||||
@@ -187,7 +187,12 @@ SECTIONS
|
|||||||
*(.gnu.linkonce.d.*)
|
*(.gnu.linkonce.d.*)
|
||||||
CONSTRUCTORS
|
CONSTRUCTORS
|
||||||
_edata = ABSOLUTE(.);
|
_edata = ABSOLUTE(.);
|
||||||
} > AXI_SRAM AT > FLASH
|
|
||||||
|
/* Pad out last section as the STM32H7 Flash write size is 256 bits. 32 bytes */
|
||||||
|
. = ALIGN(16);
|
||||||
|
FILL(0xffff)
|
||||||
|
. += 16;
|
||||||
|
} > AXI_SRAM AT > FLASH = 0xffff
|
||||||
|
|
||||||
.bss : {
|
.bss : {
|
||||||
_sbss = ABSOLUTE(.);
|
_sbss = ABSOLUTE(.);
|
||||||
|
|||||||
@@ -138,8 +138,7 @@ CONFIG_SCHED_LPWORKSTACKSIZE=1632
|
|||||||
CONFIG_SCHED_WAITPID=y
|
CONFIG_SCHED_WAITPID=y
|
||||||
CONFIG_SDCLONE_DISABLE=y
|
CONFIG_SDCLONE_DISABLE=y
|
||||||
CONFIG_SDMMC1_SDIO_PULLUP=y
|
CONFIG_SDMMC1_SDIO_PULLUP=y
|
||||||
CONFIG_SEM_NNESTPRIO=8
|
CONFIG_SEM_PREALLOCHOLDERS=32
|
||||||
CONFIG_SEM_PREALLOCHOLDERS=0
|
|
||||||
CONFIG_SERIAL_IFLOWCONTROL_WATERMARKS=y
|
CONFIG_SERIAL_IFLOWCONTROL_WATERMARKS=y
|
||||||
CONFIG_SERIAL_TERMIOS=y
|
CONFIG_SERIAL_TERMIOS=y
|
||||||
CONFIG_SIG_DEFAULT=y
|
CONFIG_SIG_DEFAULT=y
|
||||||
|
|||||||
@@ -141,8 +141,7 @@ CONFIG_SCHED_WAITPID=y
|
|||||||
CONFIG_SDCLONE_DISABLE=y
|
CONFIG_SDCLONE_DISABLE=y
|
||||||
CONFIG_SDMMC1_SDIO_MODE=y
|
CONFIG_SDMMC1_SDIO_MODE=y
|
||||||
CONFIG_SDMMC1_SDIO_PULLUP=y
|
CONFIG_SDMMC1_SDIO_PULLUP=y
|
||||||
CONFIG_SEM_NNESTPRIO=8
|
CONFIG_SEM_PREALLOCHOLDERS=32
|
||||||
CONFIG_SEM_PREALLOCHOLDERS=0
|
|
||||||
CONFIG_SERIAL_IFLOWCONTROL_WATERMARKS=y
|
CONFIG_SERIAL_IFLOWCONTROL_WATERMARKS=y
|
||||||
CONFIG_SERIAL_TERMIOS=y
|
CONFIG_SERIAL_TERMIOS=y
|
||||||
CONFIG_SIG_DEFAULT=y
|
CONFIG_SIG_DEFAULT=y
|
||||||
|
|||||||
@@ -120,8 +120,7 @@ CONFIG_SCHED_LPWORKPRIORITY=50
|
|||||||
CONFIG_SCHED_LPWORKSTACKSIZE=1632
|
CONFIG_SCHED_LPWORKSTACKSIZE=1632
|
||||||
CONFIG_SCHED_WAITPID=y
|
CONFIG_SCHED_WAITPID=y
|
||||||
CONFIG_SDCLONE_DISABLE=y
|
CONFIG_SDCLONE_DISABLE=y
|
||||||
CONFIG_SEM_NNESTPRIO=8
|
CONFIG_SEM_PREALLOCHOLDERS=32
|
||||||
CONFIG_SEM_PREALLOCHOLDERS=0
|
|
||||||
CONFIG_SERIAL_TERMIOS=y
|
CONFIG_SERIAL_TERMIOS=y
|
||||||
CONFIG_SIG_DEFAULT=y
|
CONFIG_SIG_DEFAULT=y
|
||||||
CONFIG_SIG_SIGALRM_ACTION=y
|
CONFIG_SIG_SIGALRM_ACTION=y
|
||||||
@@ -158,7 +157,7 @@ CONFIG_STM32_SERIALBRK_BSDCOMPAT=y
|
|||||||
CONFIG_STM32_SERIAL_DISABLE_REORDERING=y
|
CONFIG_STM32_SERIAL_DISABLE_REORDERING=y
|
||||||
CONFIG_STM32_SPI1=y
|
CONFIG_STM32_SPI1=y
|
||||||
CONFIG_STM32_SPI1_DMA=y
|
CONFIG_STM32_SPI1_DMA=y
|
||||||
CONFIG_STM32_SPI1_DMA_BUFFER=1024
|
CONFIG_STM32_SPI1_DMA_BUFFER=512
|
||||||
CONFIG_STM32_SPI2=y
|
CONFIG_STM32_SPI2=y
|
||||||
CONFIG_STM32_SPI2_DMA=y
|
CONFIG_STM32_SPI2_DMA=y
|
||||||
CONFIG_STM32_SPI3=y
|
CONFIG_STM32_SPI3=y
|
||||||
|
|||||||
@@ -122,8 +122,7 @@ CONFIG_SCHED_LPWORK=y
|
|||||||
CONFIG_SCHED_LPWORKPRIORITY=50
|
CONFIG_SCHED_LPWORKPRIORITY=50
|
||||||
CONFIG_SCHED_LPWORKSTACKSIZE=1632
|
CONFIG_SCHED_LPWORKSTACKSIZE=1632
|
||||||
CONFIG_SCHED_WAITPID=y
|
CONFIG_SCHED_WAITPID=y
|
||||||
CONFIG_SEM_NNESTPRIO=8
|
CONFIG_SEM_PREALLOCHOLDERS=32
|
||||||
CONFIG_SEM_PREALLOCHOLDERS=0
|
|
||||||
CONFIG_SERIAL_TERMIOS=y
|
CONFIG_SERIAL_TERMIOS=y
|
||||||
CONFIG_SIG_DEFAULT=y
|
CONFIG_SIG_DEFAULT=y
|
||||||
CONFIG_SIG_SIGALRM_ACTION=y
|
CONFIG_SIG_SIGALRM_ACTION=y
|
||||||
|
|||||||
@@ -108,8 +108,7 @@ CONFIG_SCHED_LPWORK=y
|
|||||||
CONFIG_SCHED_LPWORKPRIORITY=50
|
CONFIG_SCHED_LPWORKPRIORITY=50
|
||||||
CONFIG_SCHED_LPWORKSTACKSIZE=1632
|
CONFIG_SCHED_LPWORKSTACKSIZE=1632
|
||||||
CONFIG_SCHED_WAITPID=y
|
CONFIG_SCHED_WAITPID=y
|
||||||
CONFIG_SEM_NNESTPRIO=8
|
CONFIG_SEM_PREALLOCHOLDERS=32
|
||||||
CONFIG_SEM_PREALLOCHOLDERS=0
|
|
||||||
CONFIG_SERIAL_TERMIOS=y
|
CONFIG_SERIAL_TERMIOS=y
|
||||||
CONFIG_SIG_DEFAULT=y
|
CONFIG_SIG_DEFAULT=y
|
||||||
CONFIG_SIG_SIGALRM_ACTION=y
|
CONFIG_SIG_SIGALRM_ACTION=y
|
||||||
|
|||||||
Binary file not shown.
@@ -140,8 +140,7 @@ CONFIG_SCHED_LPWORKSTACKSIZE=1632
|
|||||||
CONFIG_SCHED_WAITPID=y
|
CONFIG_SCHED_WAITPID=y
|
||||||
CONFIG_SDCLONE_DISABLE=y
|
CONFIG_SDCLONE_DISABLE=y
|
||||||
CONFIG_SDMMC1_SDIO_PULLUP=y
|
CONFIG_SDMMC1_SDIO_PULLUP=y
|
||||||
CONFIG_SEM_NNESTPRIO=8
|
CONFIG_SEM_PREALLOCHOLDERS=32
|
||||||
CONFIG_SEM_PREALLOCHOLDERS=0
|
|
||||||
CONFIG_SERIAL_IFLOWCONTROL_WATERMARKS=y
|
CONFIG_SERIAL_IFLOWCONTROL_WATERMARKS=y
|
||||||
CONFIG_SERIAL_TERMIOS=y
|
CONFIG_SERIAL_TERMIOS=y
|
||||||
CONFIG_SIG_DEFAULT=y
|
CONFIG_SIG_DEFAULT=y
|
||||||
|
|||||||
@@ -109,16 +109,17 @@
|
|||||||
|
|
||||||
MEMORY
|
MEMORY
|
||||||
{
|
{
|
||||||
itcm (rwx) : ORIGIN = 0x00000000, LENGTH = 64K
|
ITCM_RAM (rwx) : ORIGIN = 0x00000000, LENGTH = 64K
|
||||||
flash (rx) : ORIGIN = 0x08020000, LENGTH = 1920K
|
FLASH (rx) : ORIGIN = 0x08020000, LENGTH = 1920K
|
||||||
dtcm1 (rwx) : ORIGIN = 0x20000000, LENGTH = 64K
|
|
||||||
dtcm2 (rwx) : ORIGIN = 0x20010000, LENGTH = 64K
|
DTCM1_RAM (rwx) : ORIGIN = 0x20000000, LENGTH = 64K
|
||||||
sram (rwx) : ORIGIN = 0x24000000, LENGTH = 512K
|
DTCM2_RAM (rwx) : ORIGIN = 0x20010000, LENGTH = 64K
|
||||||
sram1 (rwx) : ORIGIN = 0x30000000, LENGTH = 128K
|
AXI_SRAM (rwx) : ORIGIN = 0x24000000, LENGTH = 512K /* D1 domain AXI bus */
|
||||||
sram2 (rwx) : ORIGIN = 0x30020000, LENGTH = 128K
|
SRAM1 (rwx) : ORIGIN = 0x30000000, LENGTH = 128K /* D2 domain AHB bus */
|
||||||
sram3 (rwx) : ORIGIN = 0x30040000, LENGTH = 32K
|
SRAM2 (rwx) : ORIGIN = 0x30020000, LENGTH = 128K /* D2 domain AHB bus */
|
||||||
sram4 (rwx) : ORIGIN = 0x38000000, LENGTH = 64K
|
SRAM3 (rwx) : ORIGIN = 0x30040000, LENGTH = 32K /* D2 domain AHB bus */
|
||||||
bbram (rwx) : ORIGIN = 0x38800000, LENGTH = 4K
|
SRAM4 (rwx) : ORIGIN = 0x38000000, LENGTH = 64K /* D3 domain */
|
||||||
|
BKPRAM (rwx) : ORIGIN = 0x38800000, LENGTH = 4K
|
||||||
}
|
}
|
||||||
|
|
||||||
OUTPUT_ARCH(arm)
|
OUTPUT_ARCH(arm)
|
||||||
@@ -156,7 +157,7 @@ SECTIONS
|
|||||||
*(.gnu.linkonce.r.*)
|
*(.gnu.linkonce.r.*)
|
||||||
_etext = ABSOLUTE(.);
|
_etext = ABSOLUTE(.);
|
||||||
|
|
||||||
} > flash
|
} > FLASH
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Init functions (static constructors and the like)
|
* Init functions (static constructors and the like)
|
||||||
@@ -165,17 +166,17 @@ SECTIONS
|
|||||||
_sinit = ABSOLUTE(.);
|
_sinit = ABSOLUTE(.);
|
||||||
KEEP(*(.init_array .init_array.*))
|
KEEP(*(.init_array .init_array.*))
|
||||||
_einit = ABSOLUTE(.);
|
_einit = ABSOLUTE(.);
|
||||||
} > flash
|
} > FLASH
|
||||||
|
|
||||||
|
|
||||||
.ARM.extab : {
|
.ARM.extab : {
|
||||||
*(.ARM.extab*)
|
*(.ARM.extab*)
|
||||||
} > flash
|
} > FLASH
|
||||||
|
|
||||||
__exidx_start = ABSOLUTE(.);
|
__exidx_start = ABSOLUTE(.);
|
||||||
.ARM.exidx : {
|
.ARM.exidx : {
|
||||||
*(.ARM.exidx*)
|
*(.ARM.exidx*)
|
||||||
} > flash
|
} > FLASH
|
||||||
__exidx_end = ABSOLUTE(.);
|
__exidx_end = ABSOLUTE(.);
|
||||||
|
|
||||||
_eronly = ABSOLUTE(.);
|
_eronly = ABSOLUTE(.);
|
||||||
@@ -186,7 +187,12 @@ SECTIONS
|
|||||||
*(.gnu.linkonce.d.*)
|
*(.gnu.linkonce.d.*)
|
||||||
CONSTRUCTORS
|
CONSTRUCTORS
|
||||||
_edata = ABSOLUTE(.);
|
_edata = ABSOLUTE(.);
|
||||||
} > sram AT > flash
|
|
||||||
|
/* Pad out last section as the STM32H7 Flash write size is 256 bits. 32 bytes */
|
||||||
|
. = ALIGN(16);
|
||||||
|
FILL(0xffff)
|
||||||
|
. += 16;
|
||||||
|
} > AXI_SRAM AT > FLASH = 0xffff
|
||||||
|
|
||||||
.bss : {
|
.bss : {
|
||||||
_sbss = ABSOLUTE(.);
|
_sbss = ABSOLUTE(.);
|
||||||
@@ -195,7 +201,7 @@ SECTIONS
|
|||||||
*(COMMON)
|
*(COMMON)
|
||||||
. = ALIGN(4);
|
. = ALIGN(4);
|
||||||
_ebss = ABSOLUTE(.);
|
_ebss = ABSOLUTE(.);
|
||||||
} > sram
|
} > AXI_SRAM
|
||||||
|
|
||||||
/* Emit the the D3 power domain section for locating BDMA data */
|
/* Emit the the D3 power domain section for locating BDMA data */
|
||||||
|
|
||||||
@@ -204,7 +210,7 @@ SECTIONS
|
|||||||
*(.sram4)
|
*(.sram4)
|
||||||
. = ALIGN(4);
|
. = ALIGN(4);
|
||||||
_sram4_heap_start = ABSOLUTE(.);
|
_sram4_heap_start = ABSOLUTE(.);
|
||||||
} > sram4
|
} > SRAM4
|
||||||
|
|
||||||
/* Stabs debugging sections. */
|
/* Stabs debugging sections. */
|
||||||
.stab 0 : { *(.stab) }
|
.stab 0 : { *(.stab) }
|
||||||
|
|||||||
@@ -140,8 +140,7 @@ CONFIG_SCHED_LPWORKPRIORITY=50
|
|||||||
CONFIG_SCHED_LPWORKSTACKSIZE=1632
|
CONFIG_SCHED_LPWORKSTACKSIZE=1632
|
||||||
CONFIG_SCHED_WAITPID=y
|
CONFIG_SCHED_WAITPID=y
|
||||||
CONFIG_SDCLONE_DISABLE=y
|
CONFIG_SDCLONE_DISABLE=y
|
||||||
CONFIG_SEM_NNESTPRIO=8
|
CONFIG_SEM_PREALLOCHOLDERS=32
|
||||||
CONFIG_SEM_PREALLOCHOLDERS=0
|
|
||||||
CONFIG_SERIAL_TERMIOS=y
|
CONFIG_SERIAL_TERMIOS=y
|
||||||
CONFIG_SIG_DEFAULT=y
|
CONFIG_SIG_DEFAULT=y
|
||||||
CONFIG_SIG_SIGALRM_ACTION=y
|
CONFIG_SIG_SIGALRM_ACTION=y
|
||||||
|
|||||||
Binary file not shown.
@@ -139,8 +139,7 @@ CONFIG_SCHED_LPWORKPRIORITY=50
|
|||||||
CONFIG_SCHED_LPWORKSTACKSIZE=1632
|
CONFIG_SCHED_LPWORKSTACKSIZE=1632
|
||||||
CONFIG_SCHED_WAITPID=y
|
CONFIG_SCHED_WAITPID=y
|
||||||
CONFIG_SDCLONE_DISABLE=y
|
CONFIG_SDCLONE_DISABLE=y
|
||||||
CONFIG_SEM_NNESTPRIO=8
|
CONFIG_SEM_PREALLOCHOLDERS=32
|
||||||
CONFIG_SEM_PREALLOCHOLDERS=0
|
|
||||||
CONFIG_SERIAL_IFLOWCONTROL_WATERMARKS=y
|
CONFIG_SERIAL_IFLOWCONTROL_WATERMARKS=y
|
||||||
CONFIG_SERIAL_TERMIOS=y
|
CONFIG_SERIAL_TERMIOS=y
|
||||||
CONFIG_SIG_DEFAULT=y
|
CONFIG_SIG_DEFAULT=y
|
||||||
|
|||||||
@@ -109,16 +109,17 @@
|
|||||||
|
|
||||||
MEMORY
|
MEMORY
|
||||||
{
|
{
|
||||||
itcm (rwx) : ORIGIN = 0x00000000, LENGTH = 64K
|
ITCM_RAM (rwx) : ORIGIN = 0x00000000, LENGTH = 64K
|
||||||
flash (rx) : ORIGIN = 0x08020000, LENGTH = 1792K /* params in last sector */
|
FLASH (rx) : ORIGIN = 0x08020000, LENGTH = 1792K /* params in last sector */
|
||||||
dtcm1 (rwx) : ORIGIN = 0x20000000, LENGTH = 64K
|
|
||||||
dtcm2 (rwx) : ORIGIN = 0x20010000, LENGTH = 64K
|
DTCM1_RAM (rwx) : ORIGIN = 0x20000000, LENGTH = 64K
|
||||||
sram (rwx) : ORIGIN = 0x24000000, LENGTH = 512K
|
DTCM2_RAM (rwx) : ORIGIN = 0x20010000, LENGTH = 64K
|
||||||
sram1 (rwx) : ORIGIN = 0x30000000, LENGTH = 128K
|
AXI_SRAM (rwx) : ORIGIN = 0x24000000, LENGTH = 512K /* D1 domain AXI bus */
|
||||||
sram2 (rwx) : ORIGIN = 0x30020000, LENGTH = 128K
|
SRAM1 (rwx) : ORIGIN = 0x30000000, LENGTH = 128K /* D2 domain AHB bus */
|
||||||
sram3 (rwx) : ORIGIN = 0x30040000, LENGTH = 32K
|
SRAM2 (rwx) : ORIGIN = 0x30020000, LENGTH = 128K /* D2 domain AHB bus */
|
||||||
sram4 (rwx) : ORIGIN = 0x38000000, LENGTH = 64K
|
SRAM3 (rwx) : ORIGIN = 0x30040000, LENGTH = 32K /* D2 domain AHB bus */
|
||||||
bbram (rwx) : ORIGIN = 0x38800000, LENGTH = 4K
|
SRAM4 (rwx) : ORIGIN = 0x38000000, LENGTH = 64K /* D3 domain */
|
||||||
|
BKPRAM (rwx) : ORIGIN = 0x38800000, LENGTH = 4K
|
||||||
}
|
}
|
||||||
|
|
||||||
OUTPUT_ARCH(arm)
|
OUTPUT_ARCH(arm)
|
||||||
@@ -156,7 +157,7 @@ SECTIONS
|
|||||||
*(.gnu.linkonce.r.*)
|
*(.gnu.linkonce.r.*)
|
||||||
_etext = ABSOLUTE(.);
|
_etext = ABSOLUTE(.);
|
||||||
|
|
||||||
} > flash
|
} > FLASH
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Init functions (static constructors and the like)
|
* Init functions (static constructors and the like)
|
||||||
@@ -165,17 +166,17 @@ SECTIONS
|
|||||||
_sinit = ABSOLUTE(.);
|
_sinit = ABSOLUTE(.);
|
||||||
KEEP(*(.init_array .init_array.*))
|
KEEP(*(.init_array .init_array.*))
|
||||||
_einit = ABSOLUTE(.);
|
_einit = ABSOLUTE(.);
|
||||||
} > flash
|
} > FLASH
|
||||||
|
|
||||||
|
|
||||||
.ARM.extab : {
|
.ARM.extab : {
|
||||||
*(.ARM.extab*)
|
*(.ARM.extab*)
|
||||||
} > flash
|
} > FLASH
|
||||||
|
|
||||||
__exidx_start = ABSOLUTE(.);
|
__exidx_start = ABSOLUTE(.);
|
||||||
.ARM.exidx : {
|
.ARM.exidx : {
|
||||||
*(.ARM.exidx*)
|
*(.ARM.exidx*)
|
||||||
} > flash
|
} > FLASH
|
||||||
__exidx_end = ABSOLUTE(.);
|
__exidx_end = ABSOLUTE(.);
|
||||||
|
|
||||||
_eronly = ABSOLUTE(.);
|
_eronly = ABSOLUTE(.);
|
||||||
@@ -186,7 +187,12 @@ SECTIONS
|
|||||||
*(.gnu.linkonce.d.*)
|
*(.gnu.linkonce.d.*)
|
||||||
CONSTRUCTORS
|
CONSTRUCTORS
|
||||||
_edata = ABSOLUTE(.);
|
_edata = ABSOLUTE(.);
|
||||||
} > sram AT > flash
|
|
||||||
|
/* Pad out last section as the STM32H7 Flash write size is 256 bits. 32 bytes */
|
||||||
|
. = ALIGN(16);
|
||||||
|
FILL(0xffff)
|
||||||
|
. += 16;
|
||||||
|
} > AXI_SRAM AT > FLASH = 0xffff
|
||||||
|
|
||||||
.bss : {
|
.bss : {
|
||||||
_sbss = ABSOLUTE(.);
|
_sbss = ABSOLUTE(.);
|
||||||
@@ -195,7 +201,7 @@ SECTIONS
|
|||||||
*(COMMON)
|
*(COMMON)
|
||||||
. = ALIGN(4);
|
. = ALIGN(4);
|
||||||
_ebss = ABSOLUTE(.);
|
_ebss = ABSOLUTE(.);
|
||||||
} > sram
|
} > AXI_SRAM
|
||||||
|
|
||||||
/* Emit the the D3 power domain section for locating BDMA data */
|
/* Emit the the D3 power domain section for locating BDMA data */
|
||||||
|
|
||||||
@@ -204,7 +210,7 @@ SECTIONS
|
|||||||
*(.sram4)
|
*(.sram4)
|
||||||
. = ALIGN(4);
|
. = ALIGN(4);
|
||||||
_sram4_heap_start = ABSOLUTE(.);
|
_sram4_heap_start = ABSOLUTE(.);
|
||||||
} > sram4
|
} > SRAM4
|
||||||
|
|
||||||
/* Stabs debugging sections. */
|
/* Stabs debugging sections. */
|
||||||
.stab 0 : { *(.stab) }
|
.stab 0 : { *(.stab) }
|
||||||
|
|||||||
@@ -140,8 +140,7 @@ CONFIG_SCHED_WAITPID=y
|
|||||||
CONFIG_SDCLONE_DISABLE=y
|
CONFIG_SDCLONE_DISABLE=y
|
||||||
CONFIG_SDMMC1_SDIO_MODE=y
|
CONFIG_SDMMC1_SDIO_MODE=y
|
||||||
CONFIG_SDMMC1_SDIO_PULLUP=y
|
CONFIG_SDMMC1_SDIO_PULLUP=y
|
||||||
CONFIG_SEM_NNESTPRIO=8
|
CONFIG_SEM_PREALLOCHOLDERS=32
|
||||||
CONFIG_SEM_PREALLOCHOLDERS=0
|
|
||||||
CONFIG_SERIAL_IFLOWCONTROL_WATERMARKS=y
|
CONFIG_SERIAL_IFLOWCONTROL_WATERMARKS=y
|
||||||
CONFIG_SERIAL_TERMIOS=y
|
CONFIG_SERIAL_TERMIOS=y
|
||||||
CONFIG_SIG_DEFAULT=y
|
CONFIG_SIG_DEFAULT=y
|
||||||
|
|||||||
@@ -126,8 +126,7 @@ CONFIG_SCHED_LPWORK=y
|
|||||||
CONFIG_SCHED_LPWORKPRIORITY=50
|
CONFIG_SCHED_LPWORKPRIORITY=50
|
||||||
CONFIG_SCHED_LPWORKSTACKSIZE=1632
|
CONFIG_SCHED_LPWORKSTACKSIZE=1632
|
||||||
CONFIG_SCHED_WAITPID=y
|
CONFIG_SCHED_WAITPID=y
|
||||||
CONFIG_SEM_NNESTPRIO=8
|
CONFIG_SEM_PREALLOCHOLDERS=32
|
||||||
CONFIG_SEM_PREALLOCHOLDERS=0
|
|
||||||
CONFIG_SERIAL_PASSTHRU_UBLOX=y
|
CONFIG_SERIAL_PASSTHRU_UBLOX=y
|
||||||
CONFIG_SERIAL_TERMIOS=y
|
CONFIG_SERIAL_TERMIOS=y
|
||||||
CONFIG_SIG_DEFAULT=y
|
CONFIG_SIG_DEFAULT=y
|
||||||
|
|||||||
Binary file not shown.
@@ -130,8 +130,7 @@ CONFIG_SCHED_LPWORKSTACKSIZE=1632
|
|||||||
CONFIG_SCHED_WAITPID=y
|
CONFIG_SCHED_WAITPID=y
|
||||||
CONFIG_SDCLONE_DISABLE=y
|
CONFIG_SDCLONE_DISABLE=y
|
||||||
CONFIG_SDMMC1_SDIO_PULLUP=y
|
CONFIG_SDMMC1_SDIO_PULLUP=y
|
||||||
CONFIG_SEM_NNESTPRIO=8
|
CONFIG_SEM_PREALLOCHOLDERS=32
|
||||||
CONFIG_SEM_PREALLOCHOLDERS=0
|
|
||||||
CONFIG_SERIAL_IFLOWCONTROL_WATERMARKS=y
|
CONFIG_SERIAL_IFLOWCONTROL_WATERMARKS=y
|
||||||
CONFIG_SERIAL_TERMIOS=y
|
CONFIG_SERIAL_TERMIOS=y
|
||||||
CONFIG_SIG_DEFAULT=y
|
CONFIG_SIG_DEFAULT=y
|
||||||
|
|||||||
@@ -34,7 +34,7 @@
|
|||||||
*
|
*
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
/* The Durandal-v1 uses an STM32H743II has 2048Kb of main FLASH memory.
|
/* The board uses an STM32H743II and has 2048Kb of main FLASH memory.
|
||||||
* The flash memory is partitioned into a User Flash memory and a System
|
* The flash memory is partitioned into a User Flash memory and a System
|
||||||
* Flash memory. Each of these memories has two banks:
|
* Flash memory. Each of these memories has two banks:
|
||||||
*
|
*
|
||||||
@@ -59,8 +59,8 @@
|
|||||||
* 2) BOOT=1: Boot address defined by user option byte BOOT_ADD1[15:0].
|
* 2) BOOT=1: Boot address defined by user option byte BOOT_ADD1[15:0].
|
||||||
* ST programmed value: System bootloader at 0x1FF0:0000
|
* ST programmed value: System bootloader at 0x1FF0:0000
|
||||||
*
|
*
|
||||||
* The Durandal has a Swtich on board, the BOOT0 pin is at ground so by default,
|
* There's a switch on board, the BOOT0 pin is at ground so by default,
|
||||||
* the STM32 will boot to address 0x0800:0000 in FLASH unless the swiutch is
|
* the STM32 will boot to address 0x0800:0000 in FLASH unless the switch is
|
||||||
* drepresed, then the boot will be from 0x1FF0:0000
|
* drepresed, then the boot will be from 0x1FF0:0000
|
||||||
*
|
*
|
||||||
* The STM32H743ZI also has 1024Kb of data SRAM.
|
* The STM32H743ZI also has 1024Kb of data SRAM.
|
||||||
@@ -109,16 +109,17 @@
|
|||||||
|
|
||||||
MEMORY
|
MEMORY
|
||||||
{
|
{
|
||||||
itcm (rwx) : ORIGIN = 0x00000000, LENGTH = 64K
|
ITCM_RAM (rwx) : ORIGIN = 0x00000000, LENGTH = 64K
|
||||||
flash (rx) : ORIGIN = 0x08020000, LENGTH = 1920K
|
FLASH (rx) : ORIGIN = 0x08020000, LENGTH = 1920K
|
||||||
dtcm1 (rwx) : ORIGIN = 0x20000000, LENGTH = 64K
|
|
||||||
dtcm2 (rwx) : ORIGIN = 0x20010000, LENGTH = 64K
|
DTCM1_RAM (rwx) : ORIGIN = 0x20000000, LENGTH = 64K
|
||||||
sram (rwx) : ORIGIN = 0x24000000, LENGTH = 512K
|
DTCM2_RAM (rwx) : ORIGIN = 0x20010000, LENGTH = 64K
|
||||||
sram1 (rwx) : ORIGIN = 0x30000000, LENGTH = 128K
|
AXI_SRAM (rwx) : ORIGIN = 0x24000000, LENGTH = 512K /* D1 domain AXI bus */
|
||||||
sram2 (rwx) : ORIGIN = 0x30020000, LENGTH = 128K
|
SRAM1 (rwx) : ORIGIN = 0x30000000, LENGTH = 128K /* D2 domain AHB bus */
|
||||||
sram3 (rwx) : ORIGIN = 0x30040000, LENGTH = 32K
|
SRAM2 (rwx) : ORIGIN = 0x30020000, LENGTH = 128K /* D2 domain AHB bus */
|
||||||
sram4 (rwx) : ORIGIN = 0x38000000, LENGTH = 64K
|
SRAM3 (rwx) : ORIGIN = 0x30040000, LENGTH = 32K /* D2 domain AHB bus */
|
||||||
bbram (rwx) : ORIGIN = 0x38800000, LENGTH = 4K
|
SRAM4 (rwx) : ORIGIN = 0x38000000, LENGTH = 64K /* D3 domain */
|
||||||
|
BKPRAM (rwx) : ORIGIN = 0x38800000, LENGTH = 4K
|
||||||
}
|
}
|
||||||
|
|
||||||
OUTPUT_ARCH(arm)
|
OUTPUT_ARCH(arm)
|
||||||
@@ -156,7 +157,7 @@ SECTIONS
|
|||||||
*(.gnu.linkonce.r.*)
|
*(.gnu.linkonce.r.*)
|
||||||
_etext = ABSOLUTE(.);
|
_etext = ABSOLUTE(.);
|
||||||
|
|
||||||
} > flash
|
} > FLASH
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Init functions (static constructors and the like)
|
* Init functions (static constructors and the like)
|
||||||
@@ -165,17 +166,17 @@ SECTIONS
|
|||||||
_sinit = ABSOLUTE(.);
|
_sinit = ABSOLUTE(.);
|
||||||
KEEP(*(.init_array .init_array.*))
|
KEEP(*(.init_array .init_array.*))
|
||||||
_einit = ABSOLUTE(.);
|
_einit = ABSOLUTE(.);
|
||||||
} > flash
|
} > FLASH
|
||||||
|
|
||||||
|
|
||||||
.ARM.extab : {
|
.ARM.extab : {
|
||||||
*(.ARM.extab*)
|
*(.ARM.extab*)
|
||||||
} > flash
|
} > FLASH
|
||||||
|
|
||||||
__exidx_start = ABSOLUTE(.);
|
__exidx_start = ABSOLUTE(.);
|
||||||
.ARM.exidx : {
|
.ARM.exidx : {
|
||||||
*(.ARM.exidx*)
|
*(.ARM.exidx*)
|
||||||
} > flash
|
} > FLASH
|
||||||
__exidx_end = ABSOLUTE(.);
|
__exidx_end = ABSOLUTE(.);
|
||||||
|
|
||||||
_eronly = ABSOLUTE(.);
|
_eronly = ABSOLUTE(.);
|
||||||
@@ -186,7 +187,12 @@ SECTIONS
|
|||||||
*(.gnu.linkonce.d.*)
|
*(.gnu.linkonce.d.*)
|
||||||
CONSTRUCTORS
|
CONSTRUCTORS
|
||||||
_edata = ABSOLUTE(.);
|
_edata = ABSOLUTE(.);
|
||||||
} > sram AT > flash
|
|
||||||
|
/* Pad out last section as the STM32H7 Flash write size is 256 bits. 32 bytes */
|
||||||
|
. = ALIGN(16);
|
||||||
|
FILL(0xffff)
|
||||||
|
. += 16;
|
||||||
|
} > AXI_SRAM AT > FLASH = 0xffff
|
||||||
|
|
||||||
.bss : {
|
.bss : {
|
||||||
_sbss = ABSOLUTE(.);
|
_sbss = ABSOLUTE(.);
|
||||||
@@ -195,7 +201,7 @@ SECTIONS
|
|||||||
*(COMMON)
|
*(COMMON)
|
||||||
. = ALIGN(4);
|
. = ALIGN(4);
|
||||||
_ebss = ABSOLUTE(.);
|
_ebss = ABSOLUTE(.);
|
||||||
} > sram
|
} > AXI_SRAM
|
||||||
|
|
||||||
/* Emit the the D3 power domain section for locating BDMA data */
|
/* Emit the the D3 power domain section for locating BDMA data */
|
||||||
|
|
||||||
@@ -204,7 +210,7 @@ SECTIONS
|
|||||||
*(.sram4)
|
*(.sram4)
|
||||||
. = ALIGN(4);
|
. = ALIGN(4);
|
||||||
_sram4_heap_start = ABSOLUTE(.);
|
_sram4_heap_start = ABSOLUTE(.);
|
||||||
} > sram4
|
} > SRAM4
|
||||||
|
|
||||||
/* Stabs debugging sections. */
|
/* Stabs debugging sections. */
|
||||||
.stab 0 : { *(.stab) }
|
.stab 0 : { *(.stab) }
|
||||||
|
|||||||
@@ -138,8 +138,7 @@ CONFIG_SCHED_LPWORKSTACKSIZE=1632
|
|||||||
CONFIG_SCHED_WAITPID=y
|
CONFIG_SCHED_WAITPID=y
|
||||||
CONFIG_SDCLONE_DISABLE=y
|
CONFIG_SDCLONE_DISABLE=y
|
||||||
CONFIG_SDMMC2_SDIO_PULLUP=y
|
CONFIG_SDMMC2_SDIO_PULLUP=y
|
||||||
CONFIG_SEM_NNESTPRIO=8
|
CONFIG_SEM_PREALLOCHOLDERS=32
|
||||||
CONFIG_SEM_PREALLOCHOLDERS=0
|
|
||||||
CONFIG_SERIAL_IFLOWCONTROL_WATERMARKS=y
|
CONFIG_SERIAL_IFLOWCONTROL_WATERMARKS=y
|
||||||
CONFIG_SERIAL_TERMIOS=y
|
CONFIG_SERIAL_TERMIOS=y
|
||||||
CONFIG_SIG_DEFAULT=y
|
CONFIG_SIG_DEFAULT=y
|
||||||
|
|||||||
Binary file not shown.
@@ -140,8 +140,7 @@ CONFIG_SCHED_LPWORKSTACKSIZE=1632
|
|||||||
CONFIG_SCHED_WAITPID=y
|
CONFIG_SCHED_WAITPID=y
|
||||||
CONFIG_SDCLONE_DISABLE=y
|
CONFIG_SDCLONE_DISABLE=y
|
||||||
CONFIG_SDMMC2_SDIO_PULLUP=y
|
CONFIG_SDMMC2_SDIO_PULLUP=y
|
||||||
CONFIG_SEM_NNESTPRIO=8
|
CONFIG_SEM_PREALLOCHOLDERS=32
|
||||||
CONFIG_SEM_PREALLOCHOLDERS=0
|
|
||||||
CONFIG_SERIAL_IFLOWCONTROL_WATERMARKS=y
|
CONFIG_SERIAL_IFLOWCONTROL_WATERMARKS=y
|
||||||
CONFIG_SERIAL_TERMIOS=y
|
CONFIG_SERIAL_TERMIOS=y
|
||||||
CONFIG_SIG_DEFAULT=y
|
CONFIG_SIG_DEFAULT=y
|
||||||
|
|||||||
@@ -109,16 +109,17 @@
|
|||||||
|
|
||||||
MEMORY
|
MEMORY
|
||||||
{
|
{
|
||||||
itcm (rwx) : ORIGIN = 0x00000000, LENGTH = 64K
|
ITCM_RAM (rwx) : ORIGIN = 0x00000000, LENGTH = 64K
|
||||||
flash (rx) : ORIGIN = 0x08020000, LENGTH = 1920K
|
FLASH (rx) : ORIGIN = 0x08020000, LENGTH = 1920K
|
||||||
dtcm1 (rwx) : ORIGIN = 0x20000000, LENGTH = 64K
|
|
||||||
dtcm2 (rwx) : ORIGIN = 0x20010000, LENGTH = 64K
|
DTCM1_RAM (rwx) : ORIGIN = 0x20000000, LENGTH = 64K
|
||||||
sram (rwx) : ORIGIN = 0x24000000, LENGTH = 512K
|
DTCM2_RAM (rwx) : ORIGIN = 0x20010000, LENGTH = 64K
|
||||||
sram1 (rwx) : ORIGIN = 0x30000000, LENGTH = 128K
|
AXI_SRAM (rwx) : ORIGIN = 0x24000000, LENGTH = 512K /* D1 domain AXI bus */
|
||||||
sram2 (rwx) : ORIGIN = 0x30020000, LENGTH = 128K
|
SRAM1 (rwx) : ORIGIN = 0x30000000, LENGTH = 128K /* D2 domain AHB bus */
|
||||||
sram3 (rwx) : ORIGIN = 0x30040000, LENGTH = 32K
|
SRAM2 (rwx) : ORIGIN = 0x30020000, LENGTH = 128K /* D2 domain AHB bus */
|
||||||
sram4 (rwx) : ORIGIN = 0x38000000, LENGTH = 64K
|
SRAM3 (rwx) : ORIGIN = 0x30040000, LENGTH = 32K /* D2 domain AHB bus */
|
||||||
bbram (rwx) : ORIGIN = 0x38800000, LENGTH = 4K
|
SRAM4 (rwx) : ORIGIN = 0x38000000, LENGTH = 64K /* D3 domain */
|
||||||
|
BKPRAM (rwx) : ORIGIN = 0x38800000, LENGTH = 4K
|
||||||
}
|
}
|
||||||
|
|
||||||
OUTPUT_ARCH(arm)
|
OUTPUT_ARCH(arm)
|
||||||
@@ -157,7 +158,7 @@ SECTIONS
|
|||||||
*(.gnu.linkonce.r.*)
|
*(.gnu.linkonce.r.*)
|
||||||
_etext = ABSOLUTE(.);
|
_etext = ABSOLUTE(.);
|
||||||
|
|
||||||
} > flash
|
} > FLASH
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Init functions (static constructors and the like)
|
* Init functions (static constructors and the like)
|
||||||
@@ -166,17 +167,17 @@ SECTIONS
|
|||||||
_sinit = ABSOLUTE(.);
|
_sinit = ABSOLUTE(.);
|
||||||
KEEP(*(.init_array .init_array.*))
|
KEEP(*(.init_array .init_array.*))
|
||||||
_einit = ABSOLUTE(.);
|
_einit = ABSOLUTE(.);
|
||||||
} > flash
|
} > FLASH
|
||||||
|
|
||||||
|
|
||||||
.ARM.extab : {
|
.ARM.extab : {
|
||||||
*(.ARM.extab*)
|
*(.ARM.extab*)
|
||||||
} > flash
|
} > FLASH
|
||||||
|
|
||||||
__exidx_start = ABSOLUTE(.);
|
__exidx_start = ABSOLUTE(.);
|
||||||
.ARM.exidx : {
|
.ARM.exidx : {
|
||||||
*(.ARM.exidx*)
|
*(.ARM.exidx*)
|
||||||
} > flash
|
} > FLASH
|
||||||
__exidx_end = ABSOLUTE(.);
|
__exidx_end = ABSOLUTE(.);
|
||||||
|
|
||||||
_eronly = ABSOLUTE(.);
|
_eronly = ABSOLUTE(.);
|
||||||
@@ -187,7 +188,12 @@ SECTIONS
|
|||||||
*(.gnu.linkonce.d.*)
|
*(.gnu.linkonce.d.*)
|
||||||
CONSTRUCTORS
|
CONSTRUCTORS
|
||||||
_edata = ABSOLUTE(.);
|
_edata = ABSOLUTE(.);
|
||||||
} > sram AT > flash
|
|
||||||
|
/* Pad out last section as the STM32H7 Flash write size is 256 bits. 32 bytes */
|
||||||
|
. = ALIGN(16);
|
||||||
|
FILL(0xffff)
|
||||||
|
. += 16;
|
||||||
|
} > AXI_SRAM AT > FLASH = 0xffff
|
||||||
|
|
||||||
.bss : {
|
.bss : {
|
||||||
_sbss = ABSOLUTE(.);
|
_sbss = ABSOLUTE(.);
|
||||||
@@ -196,7 +202,7 @@ SECTIONS
|
|||||||
*(COMMON)
|
*(COMMON)
|
||||||
. = ALIGN(4);
|
. = ALIGN(4);
|
||||||
_ebss = ABSOLUTE(.);
|
_ebss = ABSOLUTE(.);
|
||||||
} > sram
|
} > AXI_SRAM
|
||||||
|
|
||||||
/* Emit the the D3 power domain section for locating BDMA data */
|
/* Emit the the D3 power domain section for locating BDMA data */
|
||||||
|
|
||||||
@@ -205,7 +211,7 @@ SECTIONS
|
|||||||
*(.sram4)
|
*(.sram4)
|
||||||
. = ALIGN(4);
|
. = ALIGN(4);
|
||||||
_sram4_heap_start = ABSOLUTE(.);
|
_sram4_heap_start = ABSOLUTE(.);
|
||||||
} > sram4
|
} > SRAM4
|
||||||
|
|
||||||
/* Stabs debugging sections. */
|
/* Stabs debugging sections. */
|
||||||
.stab 0 : { *(.stab) }
|
.stab 0 : { *(.stab) }
|
||||||
|
|||||||
Binary file not shown.
@@ -11,7 +11,7 @@
|
|||||||
# CONFIG_STM32H7_SYSCFG is not set
|
# CONFIG_STM32H7_SYSCFG is not set
|
||||||
CONFIG_ARCH="arm"
|
CONFIG_ARCH="arm"
|
||||||
CONFIG_ARCH_BOARD_CUSTOM=y
|
CONFIG_ARCH_BOARD_CUSTOM=y
|
||||||
CONFIG_ARCH_BOARD_CUSTOM_DIR="../nuttx-config"
|
CONFIG_ARCH_BOARD_CUSTOM_DIR="../../../../boards/mro/ctrl-zero-classic/nuttx-config"
|
||||||
CONFIG_ARCH_BOARD_CUSTOM_DIR_RELPATH=y
|
CONFIG_ARCH_BOARD_CUSTOM_DIR_RELPATH=y
|
||||||
CONFIG_ARCH_BOARD_CUSTOM_NAME="px4"
|
CONFIG_ARCH_BOARD_CUSTOM_NAME="px4"
|
||||||
CONFIG_ARCH_CHIP="stm32h7"
|
CONFIG_ARCH_CHIP="stm32h7"
|
||||||
|
|||||||
@@ -140,8 +140,7 @@ CONFIG_SCHED_LPWORKSTACKSIZE=1632
|
|||||||
CONFIG_SCHED_WAITPID=y
|
CONFIG_SCHED_WAITPID=y
|
||||||
CONFIG_SDCLONE_DISABLE=y
|
CONFIG_SDCLONE_DISABLE=y
|
||||||
CONFIG_SDMMC1_SDIO_PULLUP=y
|
CONFIG_SDMMC1_SDIO_PULLUP=y
|
||||||
CONFIG_SEM_NNESTPRIO=8
|
CONFIG_SEM_PREALLOCHOLDERS=32
|
||||||
CONFIG_SEM_PREALLOCHOLDERS=0
|
|
||||||
CONFIG_SERIAL_IFLOWCONTROL_WATERMARKS=y
|
CONFIG_SERIAL_IFLOWCONTROL_WATERMARKS=y
|
||||||
CONFIG_SERIAL_TERMIOS=y
|
CONFIG_SERIAL_TERMIOS=y
|
||||||
CONFIG_SIG_DEFAULT=y
|
CONFIG_SIG_DEFAULT=y
|
||||||
|
|||||||
@@ -187,7 +187,12 @@ SECTIONS
|
|||||||
*(.gnu.linkonce.d.*)
|
*(.gnu.linkonce.d.*)
|
||||||
CONSTRUCTORS
|
CONSTRUCTORS
|
||||||
_edata = ABSOLUTE(.);
|
_edata = ABSOLUTE(.);
|
||||||
} > AXI_SRAM AT > FLASH
|
|
||||||
|
/* Pad out last section as the STM32H7 Flash write size is 256 bits. 32 bytes */
|
||||||
|
. = ALIGN(16);
|
||||||
|
FILL(0xffff)
|
||||||
|
. += 16;
|
||||||
|
} > AXI_SRAM AT > FLASH = 0xffff
|
||||||
|
|
||||||
.bss : {
|
.bss : {
|
||||||
_sbss = ABSOLUTE(.);
|
_sbss = ABSOLUTE(.);
|
||||||
@@ -207,7 +212,6 @@ SECTIONS
|
|||||||
_sram4_heap_start = ABSOLUTE(.);
|
_sram4_heap_start = ABSOLUTE(.);
|
||||||
} > SRAM4
|
} > SRAM4
|
||||||
|
|
||||||
|
|
||||||
/* Stabs debugging sections. */
|
/* Stabs debugging sections. */
|
||||||
.stab 0 : { *(.stab) }
|
.stab 0 : { *(.stab) }
|
||||||
.stabstr 0 : { *(.stabstr) }
|
.stabstr 0 : { *(.stabstr) }
|
||||||
@@ -221,13 +225,4 @@ SECTIONS
|
|||||||
.debug_line 0 : { *(.debug_line) }
|
.debug_line 0 : { *(.debug_line) }
|
||||||
.debug_pubnames 0 : { *(.debug_pubnames) }
|
.debug_pubnames 0 : { *(.debug_pubnames) }
|
||||||
.debug_aranges 0 : { *(.debug_aranges) }
|
.debug_aranges 0 : { *(.debug_aranges) }
|
||||||
|
|
||||||
.ramfunc : {
|
|
||||||
_sramfuncs = .;
|
|
||||||
*(.ramfunc .ramfunc.*)
|
|
||||||
. = ALIGN(4);
|
|
||||||
_eramfuncs = .;
|
|
||||||
} > ITCM_RAM AT > FLASH
|
|
||||||
|
|
||||||
_framfuncs = LOADADDR(.ramfunc);
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -139,8 +139,7 @@ CONFIG_SCHED_WAITPID=y
|
|||||||
CONFIG_SDCLONE_DISABLE=y
|
CONFIG_SDCLONE_DISABLE=y
|
||||||
CONFIG_SDMMC1_SDIO_MODE=y
|
CONFIG_SDMMC1_SDIO_MODE=y
|
||||||
CONFIG_SDMMC1_SDIO_PULLUP=y
|
CONFIG_SDMMC1_SDIO_PULLUP=y
|
||||||
CONFIG_SEM_NNESTPRIO=8
|
CONFIG_SEM_PREALLOCHOLDERS=32
|
||||||
CONFIG_SEM_PREALLOCHOLDERS=0
|
|
||||||
CONFIG_SERIAL_IFLOWCONTROL_WATERMARKS=y
|
CONFIG_SERIAL_IFLOWCONTROL_WATERMARKS=y
|
||||||
CONFIG_SERIAL_TERMIOS=y
|
CONFIG_SERIAL_TERMIOS=y
|
||||||
CONFIG_SIG_DEFAULT=y
|
CONFIG_SIG_DEFAULT=y
|
||||||
|
|||||||
@@ -139,8 +139,7 @@ CONFIG_SCHED_WAITPID=y
|
|||||||
CONFIG_SDCLONE_DISABLE=y
|
CONFIG_SDCLONE_DISABLE=y
|
||||||
CONFIG_SDMMC1_SDIO_MODE=y
|
CONFIG_SDMMC1_SDIO_MODE=y
|
||||||
CONFIG_SDMMC1_SDIO_PULLUP=y
|
CONFIG_SDMMC1_SDIO_PULLUP=y
|
||||||
CONFIG_SEM_NNESTPRIO=8
|
CONFIG_SEM_PREALLOCHOLDERS=32
|
||||||
CONFIG_SEM_PREALLOCHOLDERS=0
|
|
||||||
CONFIG_SERIAL_IFLOWCONTROL_WATERMARKS=y
|
CONFIG_SERIAL_IFLOWCONTROL_WATERMARKS=y
|
||||||
CONFIG_SERIAL_TERMIOS=y
|
CONFIG_SERIAL_TERMIOS=y
|
||||||
CONFIG_SIG_DEFAULT=y
|
CONFIG_SIG_DEFAULT=y
|
||||||
|
|||||||
Binary file not shown.
@@ -141,8 +141,7 @@ CONFIG_SCHED_LPWORKSTACKSIZE=1632
|
|||||||
CONFIG_SCHED_WAITPID=y
|
CONFIG_SCHED_WAITPID=y
|
||||||
CONFIG_SDCLONE_DISABLE=y
|
CONFIG_SDCLONE_DISABLE=y
|
||||||
CONFIG_SDMMC1_SDIO_PULLUP=y
|
CONFIG_SDMMC1_SDIO_PULLUP=y
|
||||||
CONFIG_SEM_NNESTPRIO=8
|
CONFIG_SEM_PREALLOCHOLDERS=32
|
||||||
CONFIG_SEM_PREALLOCHOLDERS=0
|
|
||||||
CONFIG_SERIAL_IFLOWCONTROL_WATERMARKS=y
|
CONFIG_SERIAL_IFLOWCONTROL_WATERMARKS=y
|
||||||
CONFIG_SERIAL_TERMIOS=y
|
CONFIG_SERIAL_TERMIOS=y
|
||||||
CONFIG_SIG_DEFAULT=y
|
CONFIG_SIG_DEFAULT=y
|
||||||
|
|||||||
@@ -187,7 +187,12 @@ SECTIONS
|
|||||||
*(.gnu.linkonce.d.*)
|
*(.gnu.linkonce.d.*)
|
||||||
CONSTRUCTORS
|
CONSTRUCTORS
|
||||||
_edata = ABSOLUTE(.);
|
_edata = ABSOLUTE(.);
|
||||||
} > AXI_SRAM AT > FLASH
|
|
||||||
|
/* Pad out last section as the STM32H7 Flash write size is 256 bits. 32 bytes */
|
||||||
|
. = ALIGN(16);
|
||||||
|
FILL(0xffff)
|
||||||
|
. += 16;
|
||||||
|
} > AXI_SRAM AT > FLASH = 0xffff
|
||||||
|
|
||||||
.bss : {
|
.bss : {
|
||||||
_sbss = ABSOLUTE(.);
|
_sbss = ABSOLUTE(.);
|
||||||
@@ -199,6 +204,7 @@ SECTIONS
|
|||||||
} > AXI_SRAM
|
} > AXI_SRAM
|
||||||
|
|
||||||
/* Emit the the D3 power domain section for locating BDMA data */
|
/* Emit the the D3 power domain section for locating BDMA data */
|
||||||
|
|
||||||
.sram4_reserve (NOLOAD) :
|
.sram4_reserve (NOLOAD) :
|
||||||
{
|
{
|
||||||
*(.sram4)
|
*(.sram4)
|
||||||
@@ -206,7 +212,6 @@ SECTIONS
|
|||||||
_sram4_heap_start = ABSOLUTE(.);
|
_sram4_heap_start = ABSOLUTE(.);
|
||||||
} > SRAM4
|
} > SRAM4
|
||||||
|
|
||||||
|
|
||||||
/* Stabs debugging sections. */
|
/* Stabs debugging sections. */
|
||||||
.stab 0 : { *(.stab) }
|
.stab 0 : { *(.stab) }
|
||||||
.stabstr 0 : { *(.stabstr) }
|
.stabstr 0 : { *(.stabstr) }
|
||||||
@@ -220,13 +225,4 @@ SECTIONS
|
|||||||
.debug_line 0 : { *(.debug_line) }
|
.debug_line 0 : { *(.debug_line) }
|
||||||
.debug_pubnames 0 : { *(.debug_pubnames) }
|
.debug_pubnames 0 : { *(.debug_pubnames) }
|
||||||
.debug_aranges 0 : { *(.debug_aranges) }
|
.debug_aranges 0 : { *(.debug_aranges) }
|
||||||
|
|
||||||
.ramfunc : {
|
|
||||||
_sramfuncs = .;
|
|
||||||
*(.ramfunc .ramfunc.*)
|
|
||||||
. = ALIGN(4);
|
|
||||||
_eramfuncs = .;
|
|
||||||
} > ITCM_RAM AT > FLASH
|
|
||||||
|
|
||||||
_framfuncs = LOADADDR(.ramfunc);
|
|
||||||
}
|
}
|
||||||
|
|||||||
Binary file not shown.
@@ -141,8 +141,7 @@ CONFIG_SCHED_LPWORKSTACKSIZE=1632
|
|||||||
CONFIG_SCHED_WAITPID=y
|
CONFIG_SCHED_WAITPID=y
|
||||||
CONFIG_SDCLONE_DISABLE=y
|
CONFIG_SDCLONE_DISABLE=y
|
||||||
CONFIG_SDMMC1_SDIO_PULLUP=y
|
CONFIG_SDMMC1_SDIO_PULLUP=y
|
||||||
CONFIG_SEM_NNESTPRIO=8
|
CONFIG_SEM_PREALLOCHOLDERS=32
|
||||||
CONFIG_SEM_PREALLOCHOLDERS=0
|
|
||||||
CONFIG_SERIAL_IFLOWCONTROL_WATERMARKS=y
|
CONFIG_SERIAL_IFLOWCONTROL_WATERMARKS=y
|
||||||
CONFIG_SERIAL_TERMIOS=y
|
CONFIG_SERIAL_TERMIOS=y
|
||||||
CONFIG_SIG_DEFAULT=y
|
CONFIG_SIG_DEFAULT=y
|
||||||
|
|||||||
@@ -187,7 +187,12 @@ SECTIONS
|
|||||||
*(.gnu.linkonce.d.*)
|
*(.gnu.linkonce.d.*)
|
||||||
CONSTRUCTORS
|
CONSTRUCTORS
|
||||||
_edata = ABSOLUTE(.);
|
_edata = ABSOLUTE(.);
|
||||||
} > AXI_SRAM AT > FLASH
|
|
||||||
|
/* Pad out last section as the STM32H7 Flash write size is 256 bits. 32 bytes */
|
||||||
|
. = ALIGN(16);
|
||||||
|
FILL(0xffff)
|
||||||
|
. += 16;
|
||||||
|
} > AXI_SRAM AT > FLASH = 0xffff
|
||||||
|
|
||||||
.bss : {
|
.bss : {
|
||||||
_sbss = ABSOLUTE(.);
|
_sbss = ABSOLUTE(.);
|
||||||
@@ -199,6 +204,7 @@ SECTIONS
|
|||||||
} > AXI_SRAM
|
} > AXI_SRAM
|
||||||
|
|
||||||
/* Emit the the D3 power domain section for locating BDMA data */
|
/* Emit the the D3 power domain section for locating BDMA data */
|
||||||
|
|
||||||
.sram4_reserve (NOLOAD) :
|
.sram4_reserve (NOLOAD) :
|
||||||
{
|
{
|
||||||
*(.sram4)
|
*(.sram4)
|
||||||
@@ -206,7 +212,6 @@ SECTIONS
|
|||||||
_sram4_heap_start = ABSOLUTE(.);
|
_sram4_heap_start = ABSOLUTE(.);
|
||||||
} > SRAM4
|
} > SRAM4
|
||||||
|
|
||||||
|
|
||||||
/* Stabs debugging sections. */
|
/* Stabs debugging sections. */
|
||||||
.stab 0 : { *(.stab) }
|
.stab 0 : { *(.stab) }
|
||||||
.stabstr 0 : { *(.stabstr) }
|
.stabstr 0 : { *(.stabstr) }
|
||||||
@@ -220,13 +225,4 @@ SECTIONS
|
|||||||
.debug_line 0 : { *(.debug_line) }
|
.debug_line 0 : { *(.debug_line) }
|
||||||
.debug_pubnames 0 : { *(.debug_pubnames) }
|
.debug_pubnames 0 : { *(.debug_pubnames) }
|
||||||
.debug_aranges 0 : { *(.debug_aranges) }
|
.debug_aranges 0 : { *(.debug_aranges) }
|
||||||
|
|
||||||
.ramfunc : {
|
|
||||||
_sramfuncs = .;
|
|
||||||
*(.ramfunc .ramfunc.*)
|
|
||||||
. = ALIGN(4);
|
|
||||||
_eramfuncs = .;
|
|
||||||
} > ITCM_RAM AT > FLASH
|
|
||||||
|
|
||||||
_framfuncs = LOADADDR(.ramfunc);
|
|
||||||
}
|
}
|
||||||
|
|||||||
Binary file not shown.
@@ -139,8 +139,7 @@ CONFIG_SCHED_LPWORKSTACKSIZE=1632
|
|||||||
CONFIG_SCHED_WAITPID=y
|
CONFIG_SCHED_WAITPID=y
|
||||||
CONFIG_SDCLONE_DISABLE=y
|
CONFIG_SDCLONE_DISABLE=y
|
||||||
CONFIG_SDMMC1_SDIO_PULLUP=y
|
CONFIG_SDMMC1_SDIO_PULLUP=y
|
||||||
CONFIG_SEM_NNESTPRIO=8
|
CONFIG_SEM_PREALLOCHOLDERS=32
|
||||||
CONFIG_SEM_PREALLOCHOLDERS=0
|
|
||||||
CONFIG_SERIAL_IFLOWCONTROL_WATERMARKS=y
|
CONFIG_SERIAL_IFLOWCONTROL_WATERMARKS=y
|
||||||
CONFIG_SERIAL_TERMIOS=y
|
CONFIG_SERIAL_TERMIOS=y
|
||||||
CONFIG_SIG_DEFAULT=y
|
CONFIG_SIG_DEFAULT=y
|
||||||
|
|||||||
@@ -111,6 +111,7 @@ MEMORY
|
|||||||
{
|
{
|
||||||
ITCM_RAM (rwx) : ORIGIN = 0x00000000, LENGTH = 64K
|
ITCM_RAM (rwx) : ORIGIN = 0x00000000, LENGTH = 64K
|
||||||
FLASH (rx) : ORIGIN = 0x08020000, LENGTH = 1920K
|
FLASH (rx) : ORIGIN = 0x08020000, LENGTH = 1920K
|
||||||
|
|
||||||
DTCM1_RAM (rwx) : ORIGIN = 0x20000000, LENGTH = 64K
|
DTCM1_RAM (rwx) : ORIGIN = 0x20000000, LENGTH = 64K
|
||||||
DTCM2_RAM (rwx) : ORIGIN = 0x20010000, LENGTH = 64K
|
DTCM2_RAM (rwx) : ORIGIN = 0x20010000, LENGTH = 64K
|
||||||
AXI_SRAM (rwx) : ORIGIN = 0x24000000, LENGTH = 512K /* D1 domain AXI bus */
|
AXI_SRAM (rwx) : ORIGIN = 0x24000000, LENGTH = 512K /* D1 domain AXI bus */
|
||||||
@@ -186,7 +187,12 @@ SECTIONS
|
|||||||
*(.gnu.linkonce.d.*)
|
*(.gnu.linkonce.d.*)
|
||||||
CONSTRUCTORS
|
CONSTRUCTORS
|
||||||
_edata = ABSOLUTE(.);
|
_edata = ABSOLUTE(.);
|
||||||
} > AXI_SRAM AT > FLASH
|
|
||||||
|
/* Pad out last section as the STM32H7 Flash write size is 256 bits. 32 bytes */
|
||||||
|
. = ALIGN(16);
|
||||||
|
FILL(0xffff)
|
||||||
|
. += 16;
|
||||||
|
} > AXI_SRAM AT > FLASH = 0xffff
|
||||||
|
|
||||||
.bss : {
|
.bss : {
|
||||||
_sbss = ABSOLUTE(.);
|
_sbss = ABSOLUTE(.);
|
||||||
|
|||||||
@@ -139,8 +139,7 @@ CONFIG_SCHED_WAITPID=y
|
|||||||
CONFIG_SDCLONE_DISABLE=y
|
CONFIG_SDCLONE_DISABLE=y
|
||||||
CONFIG_SDMMC1_SDIO_MODE=y
|
CONFIG_SDMMC1_SDIO_MODE=y
|
||||||
CONFIG_SDMMC1_SDIO_PULLUP=y
|
CONFIG_SDMMC1_SDIO_PULLUP=y
|
||||||
CONFIG_SEM_NNESTPRIO=8
|
CONFIG_SEM_PREALLOCHOLDERS=32
|
||||||
CONFIG_SEM_PREALLOCHOLDERS=0
|
|
||||||
CONFIG_SERIAL_IFLOWCONTROL_WATERMARKS=y
|
CONFIG_SERIAL_IFLOWCONTROL_WATERMARKS=y
|
||||||
CONFIG_SERIAL_TERMIOS=y
|
CONFIG_SERIAL_TERMIOS=y
|
||||||
CONFIG_SIG_DEFAULT=y
|
CONFIG_SIG_DEFAULT=y
|
||||||
|
|||||||
@@ -131,8 +131,7 @@ CONFIG_SCHED_LPWORKSTACKSIZE=1632
|
|||||||
CONFIG_SCHED_WAITPID=y
|
CONFIG_SCHED_WAITPID=y
|
||||||
CONFIG_SDCLONE_DISABLE=y
|
CONFIG_SDCLONE_DISABLE=y
|
||||||
CONFIG_SDIO_BLOCKSETUP=y
|
CONFIG_SDIO_BLOCKSETUP=y
|
||||||
CONFIG_SEM_NNESTPRIO=8
|
CONFIG_SEM_PREALLOCHOLDERS=32
|
||||||
CONFIG_SEM_PREALLOCHOLDERS=0
|
|
||||||
CONFIG_SERIAL_IFLOWCONTROL_WATERMARKS=y
|
CONFIG_SERIAL_IFLOWCONTROL_WATERMARKS=y
|
||||||
CONFIG_SERIAL_TERMIOS=y
|
CONFIG_SERIAL_TERMIOS=y
|
||||||
CONFIG_SIG_DEFAULT=y
|
CONFIG_SIG_DEFAULT=y
|
||||||
@@ -172,7 +171,7 @@ CONFIG_STM32_SERIALBRK_BSDCOMPAT=y
|
|||||||
CONFIG_STM32_SERIAL_DISABLE_REORDERING=y
|
CONFIG_STM32_SERIAL_DISABLE_REORDERING=y
|
||||||
CONFIG_STM32_SPI1=y
|
CONFIG_STM32_SPI1=y
|
||||||
CONFIG_STM32_SPI1_DMA=y
|
CONFIG_STM32_SPI1_DMA=y
|
||||||
CONFIG_STM32_SPI1_DMA_BUFFER=1024
|
CONFIG_STM32_SPI1_DMA_BUFFER=512
|
||||||
CONFIG_STM32_SPI2=y
|
CONFIG_STM32_SPI2=y
|
||||||
CONFIG_STM32_SPI_DMA=y
|
CONFIG_STM32_SPI_DMA=y
|
||||||
CONFIG_STM32_SPI_DMATHRESHOLD=8
|
CONFIG_STM32_SPI_DMATHRESHOLD=8
|
||||||
|
|||||||
@@ -187,8 +187,7 @@ CONFIG_SCHED_LPWORKPRIORITY=50
|
|||||||
CONFIG_SCHED_LPWORKSTACKSIZE=1632
|
CONFIG_SCHED_LPWORKSTACKSIZE=1632
|
||||||
CONFIG_SCHED_WAITPID=y
|
CONFIG_SCHED_WAITPID=y
|
||||||
CONFIG_SDCLONE_DISABLE=y
|
CONFIG_SDCLONE_DISABLE=y
|
||||||
CONFIG_SEM_NNESTPRIO=8
|
CONFIG_SEM_PREALLOCHOLDERS=32
|
||||||
CONFIG_SEM_PREALLOCHOLDERS=0
|
|
||||||
CONFIG_SERIAL_IFLOWCONTROL_WATERMARKS=y
|
CONFIG_SERIAL_IFLOWCONTROL_WATERMARKS=y
|
||||||
CONFIG_SIG_DEFAULT=y
|
CONFIG_SIG_DEFAULT=y
|
||||||
CONFIG_SIG_SIGALRM_ACTION=y
|
CONFIG_SIG_SIGALRM_ACTION=y
|
||||||
|
|||||||
@@ -187,8 +187,7 @@ CONFIG_SCHED_LPWORKPRIORITY=50
|
|||||||
CONFIG_SCHED_LPWORKSTACKSIZE=1632
|
CONFIG_SCHED_LPWORKSTACKSIZE=1632
|
||||||
CONFIG_SCHED_WAITPID=y
|
CONFIG_SCHED_WAITPID=y
|
||||||
CONFIG_SDCLONE_DISABLE=y
|
CONFIG_SDCLONE_DISABLE=y
|
||||||
CONFIG_SEM_NNESTPRIO=8
|
CONFIG_SEM_PREALLOCHOLDERS=32
|
||||||
CONFIG_SEM_PREALLOCHOLDERS=0
|
|
||||||
CONFIG_SERIAL_IFLOWCONTROL_WATERMARKS=y
|
CONFIG_SERIAL_IFLOWCONTROL_WATERMARKS=y
|
||||||
CONFIG_SIG_DEFAULT=y
|
CONFIG_SIG_DEFAULT=y
|
||||||
CONFIG_SIG_SIGALRM_ACTION=y
|
CONFIG_SIG_SIGALRM_ACTION=y
|
||||||
|
|||||||
@@ -185,8 +185,7 @@ CONFIG_SCHED_LPWORKPRIORITY=50
|
|||||||
CONFIG_SCHED_LPWORKSTACKSIZE=1632
|
CONFIG_SCHED_LPWORKSTACKSIZE=1632
|
||||||
CONFIG_SCHED_WAITPID=y
|
CONFIG_SCHED_WAITPID=y
|
||||||
CONFIG_SDCLONE_DISABLE=y
|
CONFIG_SDCLONE_DISABLE=y
|
||||||
CONFIG_SEM_NNESTPRIO=8
|
CONFIG_SEM_PREALLOCHOLDERS=32
|
||||||
CONFIG_SEM_PREALLOCHOLDERS=0
|
|
||||||
CONFIG_SERIAL_IFLOWCONTROL_WATERMARKS=y
|
CONFIG_SERIAL_IFLOWCONTROL_WATERMARKS=y
|
||||||
CONFIG_SIG_DEFAULT=y
|
CONFIG_SIG_DEFAULT=y
|
||||||
CONFIG_SIG_SIGALRM_ACTION=y
|
CONFIG_SIG_SIGALRM_ACTION=y
|
||||||
|
|||||||
@@ -186,8 +186,7 @@ CONFIG_SCHED_LPWORKPRIORITY=50
|
|||||||
CONFIG_SCHED_LPWORKSTACKSIZE=1632
|
CONFIG_SCHED_LPWORKSTACKSIZE=1632
|
||||||
CONFIG_SCHED_WAITPID=y
|
CONFIG_SCHED_WAITPID=y
|
||||||
CONFIG_SDCLONE_DISABLE=y
|
CONFIG_SDCLONE_DISABLE=y
|
||||||
CONFIG_SEM_NNESTPRIO=8
|
CONFIG_SEM_PREALLOCHOLDERS=32
|
||||||
CONFIG_SEM_PREALLOCHOLDERS=0
|
|
||||||
CONFIG_SERIAL_IFLOWCONTROL_WATERMARKS=y
|
CONFIG_SERIAL_IFLOWCONTROL_WATERMARKS=y
|
||||||
CONFIG_SIG_DEFAULT=y
|
CONFIG_SIG_DEFAULT=y
|
||||||
CONFIG_SIG_SIGALRM_ACTION=y
|
CONFIG_SIG_SIGALRM_ACTION=y
|
||||||
|
|||||||
@@ -205,8 +205,7 @@ CONFIG_SCHED_LPWORKSTACKSIZE=1632
|
|||||||
CONFIG_SCHED_WAITPID=y
|
CONFIG_SCHED_WAITPID=y
|
||||||
CONFIG_SDCLONE_DISABLE=y
|
CONFIG_SDCLONE_DISABLE=y
|
||||||
CONFIG_SDIO_BLOCKSETUP=y
|
CONFIG_SDIO_BLOCKSETUP=y
|
||||||
CONFIG_SEM_NNESTPRIO=8
|
CONFIG_SEM_PREALLOCHOLDERS=32
|
||||||
CONFIG_SEM_PREALLOCHOLDERS=0
|
|
||||||
CONFIG_SERIAL_IFLOWCONTROL_WATERMARKS=y
|
CONFIG_SERIAL_IFLOWCONTROL_WATERMARKS=y
|
||||||
CONFIG_SERIAL_TERMIOS=y
|
CONFIG_SERIAL_TERMIOS=y
|
||||||
CONFIG_SIG_DEFAULT=y
|
CONFIG_SIG_DEFAULT=y
|
||||||
|
|||||||
@@ -115,8 +115,7 @@ CONFIG_SCHED_LPWORKPRIORITY=50
|
|||||||
CONFIG_SCHED_LPWORKSTACKSIZE=1632
|
CONFIG_SCHED_LPWORKSTACKSIZE=1632
|
||||||
CONFIG_SCHED_WAITPID=y
|
CONFIG_SCHED_WAITPID=y
|
||||||
CONFIG_SDCLONE_DISABLE=y
|
CONFIG_SDCLONE_DISABLE=y
|
||||||
CONFIG_SEM_NNESTPRIO=8
|
CONFIG_SEM_PREALLOCHOLDERS=32
|
||||||
CONFIG_SEM_PREALLOCHOLDERS=0
|
|
||||||
CONFIG_SERIAL_TERMIOS=y
|
CONFIG_SERIAL_TERMIOS=y
|
||||||
CONFIG_SIG_DEFAULT=y
|
CONFIG_SIG_DEFAULT=y
|
||||||
CONFIG_SIG_SIGALRM_ACTION=y
|
CONFIG_SIG_SIGALRM_ACTION=y
|
||||||
@@ -153,7 +152,7 @@ CONFIG_STM32_SERIALBRK_BSDCOMPAT=y
|
|||||||
CONFIG_STM32_SERIAL_DISABLE_REORDERING=y
|
CONFIG_STM32_SERIAL_DISABLE_REORDERING=y
|
||||||
CONFIG_STM32_SPI1=y
|
CONFIG_STM32_SPI1=y
|
||||||
CONFIG_STM32_SPI1_DMA=y
|
CONFIG_STM32_SPI1_DMA=y
|
||||||
CONFIG_STM32_SPI1_DMA_BUFFER=1024
|
CONFIG_STM32_SPI1_DMA_BUFFER=512
|
||||||
CONFIG_STM32_SPI2=y
|
CONFIG_STM32_SPI2=y
|
||||||
CONFIG_STM32_SPI2_DMA=y
|
CONFIG_STM32_SPI2_DMA=y
|
||||||
CONFIG_STM32_SPI3=y
|
CONFIG_STM32_SPI3=y
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
#
|
#
|
||||||
# PX4 FMUv2 specific board sensors init
|
# board specific sensors init
|
||||||
#------------------------------------------------------------------------------
|
#------------------------------------------------------------------------------
|
||||||
|
|
||||||
rgbled start -I
|
rgbled start -I
|
||||||
@@ -65,12 +65,6 @@ then
|
|||||||
# sensor heating is available, but we disable it for now
|
# sensor heating is available, but we disable it for now
|
||||||
param set-default SENS_EN_THERMAL 0
|
param set-default SENS_EN_THERMAL 0
|
||||||
|
|
||||||
# l3gd20 (external/isolated SPI4)
|
|
||||||
l3gd20 -s -b 4 -R 4 start
|
|
||||||
|
|
||||||
# lsm303d (external/isolated SPI4)
|
|
||||||
lsm303d -s -b 4 -R 6 start
|
|
||||||
|
|
||||||
# ms5611 (external/isolated SPI4)
|
# ms5611 (external/isolated SPI4)
|
||||||
ms5611 -s -b 4 start
|
ms5611 -s -b 4 start
|
||||||
|
|
||||||
@@ -89,6 +83,13 @@ then
|
|||||||
mpu9250 -s -b 1 start
|
mpu9250 -s -b 1 start
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# l3gd20 (external/isolated SPI4)
|
||||||
|
# low quality sensor disabled by default to save memory
|
||||||
|
#l3gd20 -s -b 4 -R 4 start
|
||||||
|
|
||||||
|
# lsm303d (external/isolated SPI4)
|
||||||
|
lsm303d -s -b 4 -R 6 start
|
||||||
|
|
||||||
else
|
else
|
||||||
# $BOARD_FMUV3 = 0 -> FMUv2
|
# $BOARD_FMUV3 = 0 -> FMUv2
|
||||||
|
|
||||||
|
|||||||
@@ -133,8 +133,7 @@ CONFIG_SCHED_LPWORKSTACKSIZE=1632
|
|||||||
CONFIG_SCHED_WAITPID=y
|
CONFIG_SCHED_WAITPID=y
|
||||||
CONFIG_SDCLONE_DISABLE=y
|
CONFIG_SDCLONE_DISABLE=y
|
||||||
CONFIG_SDIO_BLOCKSETUP=y
|
CONFIG_SDIO_BLOCKSETUP=y
|
||||||
CONFIG_SEM_NNESTPRIO=8
|
CONFIG_SEM_PREALLOCHOLDERS=32
|
||||||
CONFIG_SEM_PREALLOCHOLDERS=0
|
|
||||||
CONFIG_SERIAL_IFLOWCONTROL_WATERMARKS=y
|
CONFIG_SERIAL_IFLOWCONTROL_WATERMARKS=y
|
||||||
CONFIG_SERIAL_TERMIOS=y
|
CONFIG_SERIAL_TERMIOS=y
|
||||||
CONFIG_SIG_DEFAULT=y
|
CONFIG_SIG_DEFAULT=y
|
||||||
@@ -175,11 +174,11 @@ CONFIG_STM32_SERIALBRK_BSDCOMPAT=y
|
|||||||
CONFIG_STM32_SERIAL_DISABLE_REORDERING=y
|
CONFIG_STM32_SERIAL_DISABLE_REORDERING=y
|
||||||
CONFIG_STM32_SPI1=y
|
CONFIG_STM32_SPI1=y
|
||||||
CONFIG_STM32_SPI1_DMA=y
|
CONFIG_STM32_SPI1_DMA=y
|
||||||
CONFIG_STM32_SPI1_DMA_BUFFER=1024
|
CONFIG_STM32_SPI1_DMA_BUFFER=512
|
||||||
CONFIG_STM32_SPI2=y
|
CONFIG_STM32_SPI2=y
|
||||||
CONFIG_STM32_SPI4=y
|
CONFIG_STM32_SPI4=y
|
||||||
CONFIG_STM32_SPI4_DMA=y
|
CONFIG_STM32_SPI4_DMA=y
|
||||||
CONFIG_STM32_SPI4_DMA_BUFFER=1024
|
CONFIG_STM32_SPI4_DMA_BUFFER=512
|
||||||
CONFIG_STM32_SPI_DMA=y
|
CONFIG_STM32_SPI_DMA=y
|
||||||
CONFIG_STM32_SPI_DMATHRESHOLD=32
|
CONFIG_STM32_SPI_DMATHRESHOLD=32
|
||||||
CONFIG_STM32_TIM10=y
|
CONFIG_STM32_TIM10=y
|
||||||
|
|||||||
@@ -5,3 +5,4 @@
|
|||||||
|
|
||||||
param set-default BAT1_V_DIV 10.177939394
|
param set-default BAT1_V_DIV 10.177939394
|
||||||
param set-default BAT1_A_PER_V 15.391030303
|
param set-default BAT1_A_PER_V 15.391030303
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
#
|
#
|
||||||
# PX4 FMUv3 specific board sensors init
|
# board specific sensors init
|
||||||
#------------------------------------------------------------------------------
|
#------------------------------------------------------------------------------
|
||||||
|
|
||||||
rgbled start -I
|
rgbled start -I
|
||||||
@@ -65,12 +65,6 @@ then
|
|||||||
# sensor heating is available, but we disable it for now
|
# sensor heating is available, but we disable it for now
|
||||||
param set-default SENS_EN_THERMAL 0
|
param set-default SENS_EN_THERMAL 0
|
||||||
|
|
||||||
# l3gd20 (external/isolated SPI4)
|
|
||||||
l3gd20 -s -b 4 -R 4 start
|
|
||||||
|
|
||||||
# lsm303d (external/isolated SPI4)
|
|
||||||
lsm303d -s -b 4 -R 6 start
|
|
||||||
|
|
||||||
# ms5611 (external/isolated SPI4)
|
# ms5611 (external/isolated SPI4)
|
||||||
ms5611 -s -b 4 start
|
ms5611 -s -b 4 start
|
||||||
|
|
||||||
@@ -89,6 +83,13 @@ then
|
|||||||
mpu9250 -s -b 1 start
|
mpu9250 -s -b 1 start
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# l3gd20 (external/isolated SPI4)
|
||||||
|
# low quality sensor disabled by default to save memory
|
||||||
|
#l3gd20 -s -b 4 -R 4 start
|
||||||
|
|
||||||
|
# lsm303d (external/isolated SPI4)
|
||||||
|
lsm303d -s -b 4 -R 6 start
|
||||||
|
|
||||||
else
|
else
|
||||||
# $BOARD_FMUV3 = 0 -> FMUv2
|
# $BOARD_FMUV3 = 0 -> FMUv2
|
||||||
|
|
||||||
|
|||||||
@@ -130,8 +130,7 @@ CONFIG_SCHED_LPWORKSTACKSIZE=1632
|
|||||||
CONFIG_SCHED_WAITPID=y
|
CONFIG_SCHED_WAITPID=y
|
||||||
CONFIG_SDCLONE_DISABLE=y
|
CONFIG_SDCLONE_DISABLE=y
|
||||||
CONFIG_SDIO_BLOCKSETUP=y
|
CONFIG_SDIO_BLOCKSETUP=y
|
||||||
CONFIG_SEM_NNESTPRIO=8
|
CONFIG_SEM_PREALLOCHOLDERS=32
|
||||||
CONFIG_SEM_PREALLOCHOLDERS=0
|
|
||||||
CONFIG_SERIAL_IFLOWCONTROL_WATERMARKS=y
|
CONFIG_SERIAL_IFLOWCONTROL_WATERMARKS=y
|
||||||
CONFIG_SERIAL_TERMIOS=y
|
CONFIG_SERIAL_TERMIOS=y
|
||||||
CONFIG_SIG_DEFAULT=y
|
CONFIG_SIG_DEFAULT=y
|
||||||
@@ -172,11 +171,11 @@ CONFIG_STM32_SERIALBRK_BSDCOMPAT=y
|
|||||||
CONFIG_STM32_SERIAL_DISABLE_REORDERING=y
|
CONFIG_STM32_SERIAL_DISABLE_REORDERING=y
|
||||||
CONFIG_STM32_SPI1=y
|
CONFIG_STM32_SPI1=y
|
||||||
CONFIG_STM32_SPI1_DMA=y
|
CONFIG_STM32_SPI1_DMA=y
|
||||||
CONFIG_STM32_SPI1_DMA_BUFFER=1024
|
CONFIG_STM32_SPI1_DMA_BUFFER=512
|
||||||
CONFIG_STM32_SPI2=y
|
CONFIG_STM32_SPI2=y
|
||||||
CONFIG_STM32_SPI4=y
|
CONFIG_STM32_SPI4=y
|
||||||
CONFIG_STM32_SPI4_DMA=y
|
CONFIG_STM32_SPI4_DMA=y
|
||||||
CONFIG_STM32_SPI4_DMA_BUFFER=1024
|
CONFIG_STM32_SPI4_DMA_BUFFER=512
|
||||||
CONFIG_STM32_SPI_DMA=y
|
CONFIG_STM32_SPI_DMA=y
|
||||||
CONFIG_STM32_SPI_DMATHRESHOLD=32
|
CONFIG_STM32_SPI_DMATHRESHOLD=32
|
||||||
CONFIG_STM32_TIM10=y
|
CONFIG_STM32_TIM10=y
|
||||||
|
|||||||
@@ -130,8 +130,7 @@ CONFIG_SCHED_LPWORKSTACKSIZE=1632
|
|||||||
CONFIG_SCHED_WAITPID=y
|
CONFIG_SCHED_WAITPID=y
|
||||||
CONFIG_SDCLONE_DISABLE=y
|
CONFIG_SDCLONE_DISABLE=y
|
||||||
CONFIG_SDIO_BLOCKSETUP=y
|
CONFIG_SDIO_BLOCKSETUP=y
|
||||||
CONFIG_SEM_NNESTPRIO=8
|
CONFIG_SEM_PREALLOCHOLDERS=32
|
||||||
CONFIG_SEM_PREALLOCHOLDERS=0
|
|
||||||
CONFIG_SERIAL_IFLOWCONTROL_WATERMARKS=y
|
CONFIG_SERIAL_IFLOWCONTROL_WATERMARKS=y
|
||||||
CONFIG_SERIAL_TERMIOS=y
|
CONFIG_SERIAL_TERMIOS=y
|
||||||
CONFIG_SIG_DEFAULT=y
|
CONFIG_SIG_DEFAULT=y
|
||||||
@@ -171,7 +170,7 @@ CONFIG_STM32_SERIALBRK_BSDCOMPAT=y
|
|||||||
CONFIG_STM32_SERIAL_DISABLE_REORDERING=y
|
CONFIG_STM32_SERIAL_DISABLE_REORDERING=y
|
||||||
CONFIG_STM32_SPI1=y
|
CONFIG_STM32_SPI1=y
|
||||||
CONFIG_STM32_SPI1_DMA=y
|
CONFIG_STM32_SPI1_DMA=y
|
||||||
CONFIG_STM32_SPI1_DMA_BUFFER=1024
|
CONFIG_STM32_SPI1_DMA_BUFFER=512
|
||||||
CONFIG_STM32_SPI2=y
|
CONFIG_STM32_SPI2=y
|
||||||
CONFIG_STM32_SPI4=y
|
CONFIG_STM32_SPI4=y
|
||||||
CONFIG_STM32_SPI_DMA=y
|
CONFIG_STM32_SPI_DMA=y
|
||||||
|
|||||||
@@ -132,8 +132,7 @@ CONFIG_SCHED_LPWORKSTACKSIZE=1632
|
|||||||
CONFIG_SCHED_WAITPID=y
|
CONFIG_SCHED_WAITPID=y
|
||||||
CONFIG_SDCLONE_DISABLE=y
|
CONFIG_SDCLONE_DISABLE=y
|
||||||
CONFIG_SDIO_BLOCKSETUP=y
|
CONFIG_SDIO_BLOCKSETUP=y
|
||||||
CONFIG_SEM_NNESTPRIO=8
|
CONFIG_SEM_PREALLOCHOLDERS=32
|
||||||
CONFIG_SEM_PREALLOCHOLDERS=0
|
|
||||||
CONFIG_SERIAL_IFLOWCONTROL_WATERMARKS=y
|
CONFIG_SERIAL_IFLOWCONTROL_WATERMARKS=y
|
||||||
CONFIG_SERIAL_TERMIOS=y
|
CONFIG_SERIAL_TERMIOS=y
|
||||||
CONFIG_SIG_DEFAULT=y
|
CONFIG_SIG_DEFAULT=y
|
||||||
@@ -177,7 +176,7 @@ CONFIG_STM32_SERIALBRK_BSDCOMPAT=y
|
|||||||
CONFIG_STM32_SERIAL_DISABLE_REORDERING=y
|
CONFIG_STM32_SERIAL_DISABLE_REORDERING=y
|
||||||
CONFIG_STM32_SPI1=y
|
CONFIG_STM32_SPI1=y
|
||||||
CONFIG_STM32_SPI1_DMA=y
|
CONFIG_STM32_SPI1_DMA=y
|
||||||
CONFIG_STM32_SPI1_DMA_BUFFER=1024
|
CONFIG_STM32_SPI1_DMA_BUFFER=512
|
||||||
CONFIG_STM32_SPI2=y
|
CONFIG_STM32_SPI2=y
|
||||||
CONFIG_STM32_SPI5=y
|
CONFIG_STM32_SPI5=y
|
||||||
CONFIG_STM32_SPI6=y
|
CONFIG_STM32_SPI6=y
|
||||||
|
|||||||
@@ -142,8 +142,7 @@ CONFIG_SCHED_WAITPID=y
|
|||||||
CONFIG_SDCLONE_DISABLE=y
|
CONFIG_SDCLONE_DISABLE=y
|
||||||
CONFIG_SDMMC1_SDIO_MODE=y
|
CONFIG_SDMMC1_SDIO_MODE=y
|
||||||
CONFIG_SDMMC1_SDIO_PULLUP=y
|
CONFIG_SDMMC1_SDIO_PULLUP=y
|
||||||
CONFIG_SEM_NNESTPRIO=8
|
CONFIG_SEM_PREALLOCHOLDERS=32
|
||||||
CONFIG_SEM_PREALLOCHOLDERS=0
|
|
||||||
CONFIG_SERIAL_IFLOWCONTROL_WATERMARKS=y
|
CONFIG_SERIAL_IFLOWCONTROL_WATERMARKS=y
|
||||||
CONFIG_SERIAL_TERMIOS=y
|
CONFIG_SERIAL_TERMIOS=y
|
||||||
CONFIG_SIG_DEFAULT=y
|
CONFIG_SIG_DEFAULT=y
|
||||||
|
|||||||
@@ -188,7 +188,6 @@ CONFIG_SCHED_WAITPID=y
|
|||||||
CONFIG_SDCLONE_DISABLE=y
|
CONFIG_SDCLONE_DISABLE=y
|
||||||
CONFIG_SDMMC1_SDIO_MODE=y
|
CONFIG_SDMMC1_SDIO_MODE=y
|
||||||
CONFIG_SDMMC1_SDIO_PULLUP=y
|
CONFIG_SDMMC1_SDIO_PULLUP=y
|
||||||
CONFIG_SEM_NNESTPRIO=8
|
|
||||||
CONFIG_SEM_PREALLOCHOLDERS=32
|
CONFIG_SEM_PREALLOCHOLDERS=32
|
||||||
CONFIG_SERIAL_IFLOWCONTROL_WATERMARKS=y
|
CONFIG_SERIAL_IFLOWCONTROL_WATERMARKS=y
|
||||||
CONFIG_SERIAL_TERMIOS=y
|
CONFIG_SERIAL_TERMIOS=y
|
||||||
|
|||||||
@@ -139,8 +139,7 @@ CONFIG_SCHED_WAITPID=y
|
|||||||
CONFIG_SDCLONE_DISABLE=y
|
CONFIG_SDCLONE_DISABLE=y
|
||||||
CONFIG_SDMMC1_SDIO_MODE=y
|
CONFIG_SDMMC1_SDIO_MODE=y
|
||||||
CONFIG_SDMMC1_SDIO_PULLUP=y
|
CONFIG_SDMMC1_SDIO_PULLUP=y
|
||||||
CONFIG_SEM_NNESTPRIO=8
|
CONFIG_SEM_PREALLOCHOLDERS=32
|
||||||
CONFIG_SEM_PREALLOCHOLDERS=0
|
|
||||||
CONFIG_SERIAL_IFLOWCONTROL_WATERMARKS=y
|
CONFIG_SERIAL_IFLOWCONTROL_WATERMARKS=y
|
||||||
CONFIG_SERIAL_TERMIOS=y
|
CONFIG_SERIAL_TERMIOS=y
|
||||||
CONFIG_SIG_DEFAULT=y
|
CONFIG_SIG_DEFAULT=y
|
||||||
|
|||||||
@@ -146,8 +146,7 @@ CONFIG_SCHED_WAITPID=y
|
|||||||
CONFIG_SDCLONE_DISABLE=y
|
CONFIG_SDCLONE_DISABLE=y
|
||||||
CONFIG_SDMMC1_SDIO_MODE=y
|
CONFIG_SDMMC1_SDIO_MODE=y
|
||||||
CONFIG_SDMMC1_SDIO_PULLUP=y
|
CONFIG_SDMMC1_SDIO_PULLUP=y
|
||||||
CONFIG_SEM_NNESTPRIO=8
|
CONFIG_SEM_PREALLOCHOLDERS=32
|
||||||
CONFIG_SEM_PREALLOCHOLDERS=0
|
|
||||||
CONFIG_SERIAL_IFLOWCONTROL_WATERMARKS=y
|
CONFIG_SERIAL_IFLOWCONTROL_WATERMARKS=y
|
||||||
CONFIG_SERIAL_TERMIOS=y
|
CONFIG_SERIAL_TERMIOS=y
|
||||||
CONFIG_SIG_DEFAULT=y
|
CONFIG_SIG_DEFAULT=y
|
||||||
|
|||||||
@@ -141,8 +141,7 @@ CONFIG_SCHED_WAITPID=y
|
|||||||
CONFIG_SDCLONE_DISABLE=y
|
CONFIG_SDCLONE_DISABLE=y
|
||||||
CONFIG_SDMMC1_SDIO_MODE=y
|
CONFIG_SDMMC1_SDIO_MODE=y
|
||||||
CONFIG_SDMMC1_SDIO_PULLUP=y
|
CONFIG_SDMMC1_SDIO_PULLUP=y
|
||||||
CONFIG_SEM_NNESTPRIO=8
|
CONFIG_SEM_PREALLOCHOLDERS=32
|
||||||
CONFIG_SEM_PREALLOCHOLDERS=0
|
|
||||||
CONFIG_SERIAL_IFLOWCONTROL_WATERMARKS=y
|
CONFIG_SERIAL_IFLOWCONTROL_WATERMARKS=y
|
||||||
CONFIG_SERIAL_TERMIOS=y
|
CONFIG_SERIAL_TERMIOS=y
|
||||||
CONFIG_SIG_DEFAULT=y
|
CONFIG_SIG_DEFAULT=y
|
||||||
|
|||||||
@@ -142,8 +142,7 @@ CONFIG_SCHED_WAITPID=y
|
|||||||
CONFIG_SDCLONE_DISABLE=y
|
CONFIG_SDCLONE_DISABLE=y
|
||||||
CONFIG_SDMMC1_SDIO_MODE=y
|
CONFIG_SDMMC1_SDIO_MODE=y
|
||||||
CONFIG_SDMMC1_SDIO_PULLUP=y
|
CONFIG_SDMMC1_SDIO_PULLUP=y
|
||||||
CONFIG_SEM_NNESTPRIO=8
|
CONFIG_SEM_PREALLOCHOLDERS=32
|
||||||
CONFIG_SEM_PREALLOCHOLDERS=0
|
|
||||||
CONFIG_SERIAL_IFLOWCONTROL_WATERMARKS=y
|
CONFIG_SERIAL_IFLOWCONTROL_WATERMARKS=y
|
||||||
CONFIG_SERIAL_TERMIOS=y
|
CONFIG_SERIAL_TERMIOS=y
|
||||||
CONFIG_SIG_DEFAULT=y
|
CONFIG_SIG_DEFAULT=y
|
||||||
|
|||||||
@@ -170,8 +170,7 @@ CONFIG_SCHED_LPWORKSTACKSIZE=1632
|
|||||||
CONFIG_SCHED_WAITPID=y
|
CONFIG_SCHED_WAITPID=y
|
||||||
CONFIG_SDCLONE_DISABLE=y
|
CONFIG_SDCLONE_DISABLE=y
|
||||||
CONFIG_SDMMC2_SDIO_PULLUP=y
|
CONFIG_SDMMC2_SDIO_PULLUP=y
|
||||||
CONFIG_SEM_NNESTPRIO=8
|
CONFIG_SEM_PREALLOCHOLDERS=32
|
||||||
CONFIG_SEM_PREALLOCHOLDERS=0
|
|
||||||
CONFIG_SERIAL_IFLOWCONTROL_WATERMARKS=y
|
CONFIG_SERIAL_IFLOWCONTROL_WATERMARKS=y
|
||||||
CONFIG_SERIAL_TERMIOS=y
|
CONFIG_SERIAL_TERMIOS=y
|
||||||
CONFIG_SIG_DEFAULT=y
|
CONFIG_SIG_DEFAULT=y
|
||||||
|
|||||||
@@ -0,0 +1,3 @@
|
|||||||
|
CONFIG_BOARD_TOOLCHAIN="arm-none-eabi"
|
||||||
|
CONFIG_BOARD_ARCHITECTURE="cortex-m7"
|
||||||
|
CONFIG_BOARD_ROMFSROOT=""
|
||||||
@@ -0,0 +1,91 @@
|
|||||||
|
CONFIG_BOARD_TOOLCHAIN="arm-none-eabi"
|
||||||
|
CONFIG_BOARD_ARCHITECTURE="cortex-m7"
|
||||||
|
CONFIG_BOARD_SERIAL_GPS1="/dev/ttyS0"
|
||||||
|
CONFIG_BOARD_SERIAL_GPS2="/dev/ttyS6"
|
||||||
|
CONFIG_BOARD_SERIAL_TEL1="/dev/ttyS5"
|
||||||
|
CONFIG_BOARD_SERIAL_TEL2="/dev/ttyS3"
|
||||||
|
CONFIG_BOARD_SERIAL_TEL3="/dev/ttyS1"
|
||||||
|
CONFIG_DRIVERS_ADC_BOARD_ADC=y
|
||||||
|
CONFIG_COMMON_BAROMETERS=y
|
||||||
|
CONFIG_DRIVERS_BATT_SMBUS=y
|
||||||
|
CONFIG_DRIVERS_CAMERA_CAPTURE=y
|
||||||
|
CONFIG_DRIVERS_CAMERA_TRIGGER=y
|
||||||
|
CONFIG_COMMON_DIFFERENTIAL_PRESSURE=y
|
||||||
|
CONFIG_COMMON_DISTANCE_SENSOR=y
|
||||||
|
CONFIG_DRIVERS_DSHOT=y
|
||||||
|
CONFIG_DRIVERS_GPS=y
|
||||||
|
CONFIG_DRIVERS_HEATER=y
|
||||||
|
CONFIG_DRIVERS_IMU_BOSCH_BMI055=y
|
||||||
|
CONFIG_DRIVERS_IMU_INVENSENSE_ICM42688P=y
|
||||||
|
CONFIG_COMMON_LIGHT=y
|
||||||
|
CONFIG_COMMON_MAGNETOMETER=y
|
||||||
|
CONFIG_COMMON_OPTICAL_FLOW=y
|
||||||
|
CONFIG_DRIVERS_POWER_MONITOR_INA226=y
|
||||||
|
CONFIG_DRIVERS_POWER_MONITOR_INA228=y
|
||||||
|
CONFIG_DRIVERS_POWER_MONITOR_INA238=y
|
||||||
|
CONFIG_DRIVERS_PWM_OUT=y
|
||||||
|
CONFIG_DRIVERS_PWM_OUT_SIM=y
|
||||||
|
CONFIG_DRIVERS_PX4IO=y
|
||||||
|
CONFIG_COMMON_TELEMETRY=y
|
||||||
|
CONFIG_DRIVERS_TONE_ALARM=y
|
||||||
|
CONFIG_DRIVERS_UAVCAN=y
|
||||||
|
CONFIG_BOARD_UAVCAN_TIMER_OVERRIDE=2
|
||||||
|
CONFIG_MODULES_AIRSPEED_SELECTOR=y
|
||||||
|
CONFIG_MODULES_BATTERY_STATUS=y
|
||||||
|
CONFIG_MODULES_CAMERA_FEEDBACK=y
|
||||||
|
CONFIG_MODULES_COMMANDER=y
|
||||||
|
CONFIG_MODULES_CONTROL_ALLOCATOR=y
|
||||||
|
CONFIG_MODULES_DATAMAN=y
|
||||||
|
CONFIG_MODULES_EKF2=y
|
||||||
|
CONFIG_MODULES_ESC_BATTERY=y
|
||||||
|
CONFIG_MODULES_EVENTS=y
|
||||||
|
CONFIG_MODULES_FLIGHT_MODE_MANAGER=y
|
||||||
|
CONFIG_MODULES_FW_ATT_CONTROL=y
|
||||||
|
CONFIG_MODULES_FW_AUTOTUNE_ATTITUDE_CONTROL=y
|
||||||
|
CONFIG_MODULES_FW_POS_CONTROL_L1=y
|
||||||
|
CONFIG_MODULES_GIMBAL=y
|
||||||
|
CONFIG_MODULES_GYRO_CALIBRATION=y
|
||||||
|
CONFIG_MODULES_GYRO_FFT=y
|
||||||
|
CONFIG_MODULES_LAND_DETECTOR=y
|
||||||
|
CONFIG_MODULES_LANDING_TARGET_ESTIMATOR=y
|
||||||
|
CONFIG_MODULES_LOAD_MON=y
|
||||||
|
CONFIG_MODULES_LOGGER=y
|
||||||
|
CONFIG_MODULES_MAG_BIAS_ESTIMATOR=y
|
||||||
|
CONFIG_MODULES_MANUAL_CONTROL=y
|
||||||
|
CONFIG_MODULES_MAVLINK=y
|
||||||
|
CONFIG_MODULES_MC_ATT_CONTROL=y
|
||||||
|
CONFIG_MODULES_MC_AUTOTUNE_ATTITUDE_CONTROL=y
|
||||||
|
CONFIG_MODULES_MC_HOVER_THRUST_ESTIMATOR=y
|
||||||
|
CONFIG_MODULES_MC_POS_CONTROL=y
|
||||||
|
CONFIG_MODULES_MC_RATE_CONTROL=y
|
||||||
|
CONFIG_MODULES_NAVIGATOR=y
|
||||||
|
CONFIG_MODULES_RC_UPDATE=y
|
||||||
|
CONFIG_MODULES_ROVER_POS_CONTROL=y
|
||||||
|
CONFIG_MODULES_SENSORS=y
|
||||||
|
CONFIG_MODULES_SIH=y
|
||||||
|
CONFIG_MODULES_TEMPERATURE_COMPENSATION=y
|
||||||
|
CONFIG_MODULES_VTOL_ATT_CONTROL=y
|
||||||
|
CONFIG_SYSTEMCMDS_ACTUATOR_TEST=y
|
||||||
|
CONFIG_SYSTEMCMDS_BL_UPDATE=y
|
||||||
|
CONFIG_SYSTEMCMDS_DMESG=y
|
||||||
|
CONFIG_SYSTEMCMDS_HARDFAULT_LOG=y
|
||||||
|
CONFIG_SYSTEMCMDS_I2CDETECT=y
|
||||||
|
CONFIG_SYSTEMCMDS_LED_CONTROL=y
|
||||||
|
CONFIG_SYSTEMCMDS_MFT=y
|
||||||
|
CONFIG_SYSTEMCMDS_MIXER=y
|
||||||
|
CONFIG_SYSTEMCMDS_MOTOR_TEST=y
|
||||||
|
CONFIG_SYSTEMCMDS_MTD=y
|
||||||
|
CONFIG_SYSTEMCMDS_NSHTERM=y
|
||||||
|
CONFIG_SYSTEMCMDS_PARAM=y
|
||||||
|
CONFIG_SYSTEMCMDS_PERF=y
|
||||||
|
CONFIG_SYSTEMCMDS_PWM=y
|
||||||
|
CONFIG_SYSTEMCMDS_REBOOT=y
|
||||||
|
CONFIG_SYSTEMCMDS_SD_BENCH=y
|
||||||
|
CONFIG_SYSTEMCMDS_SERIAL_TEST=y
|
||||||
|
CONFIG_SYSTEMCMDS_SYSTEM_TIME=y
|
||||||
|
CONFIG_SYSTEMCMDS_TOP=y
|
||||||
|
CONFIG_SYSTEMCMDS_TOPIC_LISTENER=y
|
||||||
|
CONFIG_SYSTEMCMDS_TUNE_CONTROL=y
|
||||||
|
CONFIG_SYSTEMCMDS_UORB=y
|
||||||
|
CONFIG_SYSTEMCMDS_VER=y
|
||||||
|
CONFIG_SYSTEMCMDS_WORK_QUEUE=y
|
||||||
BIN
Binary file not shown.
BIN
Binary file not shown.
@@ -0,0 +1,13 @@
|
|||||||
|
{
|
||||||
|
"board_id": 56,
|
||||||
|
"magic": "PX4FWv1",
|
||||||
|
"description": "Firmware for the PX4FMUv6C board",
|
||||||
|
"image": "",
|
||||||
|
"build_time": 0,
|
||||||
|
"summary": "PX4FMUv6C",
|
||||||
|
"version": "0.1",
|
||||||
|
"image_size": 0,
|
||||||
|
"image_maxsize": 1966080,
|
||||||
|
"git_identity": "",
|
||||||
|
"board_revision": 0
|
||||||
|
}
|
||||||
@@ -0,0 +1,20 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
#
|
||||||
|
# board specific defaults
|
||||||
|
#------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
param set-default BAT1_V_DIV 18.1
|
||||||
|
param set-default BAT2_V_DIV 18.1
|
||||||
|
|
||||||
|
param set-default BAT1_A_PER_V 36.367515152
|
||||||
|
param set-default BAT2_A_PER_V 36.367515152
|
||||||
|
|
||||||
|
# Mavlink ethernet (CFG 1000)
|
||||||
|
param set-default MAV_2_CONFIG 1000
|
||||||
|
param set-default MAV_2_BROADCAST 1
|
||||||
|
param set-default MAV_2_MODE 0
|
||||||
|
param set-default MAV_2_RADIO_CTL 0
|
||||||
|
param set-default MAV_2_RATE 100000
|
||||||
|
param set-default MAV_2_REMOTE_PRT 14550
|
||||||
|
param set-default MAV_2_UDP_PRT 14550
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
#
|
||||||
|
# PX4 FMUv6C specific board sensors init
|
||||||
|
#------------------------------------------------------------------------------
|
||||||
|
board_adc start
|
||||||
|
|
||||||
|
# Internal SPI bus BMI055 accel/gyro
|
||||||
|
bmi055 -A -R 4 -s start
|
||||||
|
bmi055 -G -R 4 -s start
|
||||||
|
|
||||||
|
# Internal SPI bus ICM42688p
|
||||||
|
icm42688p -R 6 -s start
|
||||||
|
|
||||||
|
# Internal barometer on I2C4
|
||||||
|
ms5611 -I -b 4 -a 0x77 start
|
||||||
|
|
||||||
|
# Internal compass on IMU I2C4
|
||||||
|
ist8310 -I -b 4 -a 0xc start
|
||||||
|
|
||||||
|
# External compass on GPS/I2C1 (the 3rd external bus): standard Holybro Pixhawk 4 or CUAV V5 GPS/compass puck (with lights, safety button, and buzzer)
|
||||||
|
ist8310 -X -b 1 -R 10 start
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
#
|
||||||
|
# For a description of the syntax of this configuration file,
|
||||||
|
# see misc/tools/kconfig-language.txt.
|
||||||
|
#
|
||||||
|
config BOARD_HAS_PROBES
|
||||||
|
bool "Board provides GPIO or other Hardware for signaling to timing analyze."
|
||||||
|
default y
|
||||||
|
---help---
|
||||||
|
This board provides GPIO FMU-CH1-5, CAP1-6 as PROBE_1-11 to provide timing signals from selected drivers.
|
||||||
|
|
||||||
|
config BOARD_USE_PROBES
|
||||||
|
bool "Enable the use the board provided FMU-CH1-5, CAP1-6 as PROBE_1-11"
|
||||||
|
default n
|
||||||
|
depends on BOARD_HAS_PROBES
|
||||||
|
|
||||||
|
---help---
|
||||||
|
Select to use GPIO FMU-CH1-5, CAP1-6 to provide timing signals from selected drivers.
|
||||||
@@ -0,0 +1,96 @@
|
|||||||
|
#
|
||||||
|
# This file is autogenerated: PLEASE DO NOT EDIT IT.
|
||||||
|
#
|
||||||
|
# You can use "make menuconfig" to make any modifications to the installed .config file.
|
||||||
|
# You can then do "make savedefconfig" to generate a new defconfig file that includes your
|
||||||
|
# modifications.
|
||||||
|
#
|
||||||
|
# CONFIG_DEV_CONSOLE is not set
|
||||||
|
# CONFIG_DISABLE_PSEUDOFS_OPERATIONS is not set
|
||||||
|
# CONFIG_SPI_EXCHANGE is not set
|
||||||
|
# CONFIG_STM32H7_SYSCFG is not set
|
||||||
|
CONFIG_ARCH="arm"
|
||||||
|
CONFIG_ARCH_BOARD_CUSTOM=y
|
||||||
|
CONFIG_ARCH_BOARD_CUSTOM_DIR="../../../../boards/px4/fmu-v6c/nuttx-config"
|
||||||
|
CONFIG_ARCH_BOARD_CUSTOM_DIR_RELPATH=y
|
||||||
|
CONFIG_ARCH_BOARD_CUSTOM_NAME="px4"
|
||||||
|
CONFIG_ARCH_CHIP="stm32h7"
|
||||||
|
CONFIG_ARCH_CHIP_STM32H753II=y
|
||||||
|
CONFIG_ARCH_CHIP_STM32H7=y
|
||||||
|
CONFIG_ARCH_INTERRUPTSTACK=512
|
||||||
|
CONFIG_ARMV7M_BASEPRI_WAR=y
|
||||||
|
CONFIG_ARMV7M_ICACHE=y
|
||||||
|
CONFIG_ARMV7M_MEMCPY=y
|
||||||
|
CONFIG_ARMV7M_USEBASEPRI=y
|
||||||
|
CONFIG_BOARDCTL_RESET=y
|
||||||
|
CONFIG_BOARD_INITTHREAD_PRIORITY=254
|
||||||
|
CONFIG_BOARD_LATE_INITIALIZE=y
|
||||||
|
CONFIG_BOARD_LOOPSPERMSEC=95150
|
||||||
|
CONFIG_BOARD_RESET_ON_ASSERT=2
|
||||||
|
CONFIG_C99_BOOL8=y
|
||||||
|
CONFIG_CDCACM=y
|
||||||
|
CONFIG_CDCACM_IFLOWCONTROL=y
|
||||||
|
CONFIG_CDCACM_PRODUCTID=0x0038
|
||||||
|
CONFIG_CDCACM_PRODUCTSTR="PX4 BL FMU v6C.x"
|
||||||
|
CONFIG_CDCACM_RXBUFSIZE=600
|
||||||
|
CONFIG_CDCACM_TXBUFSIZE=12000
|
||||||
|
CONFIG_CDCACM_VENDORID=0x3185
|
||||||
|
CONFIG_CDCACM_VENDORSTR="Auterion"
|
||||||
|
CONFIG_CLOCK_MONOTONIC=y
|
||||||
|
CONFIG_DEBUG_FULLOPT=y
|
||||||
|
CONFIG_DEBUG_SYMBOLS=y
|
||||||
|
CONFIG_DEFAULT_SMALL=y
|
||||||
|
CONFIG_DISABLE_MQUEUE=y
|
||||||
|
CONFIG_DISABLE_PTHREAD=y
|
||||||
|
CONFIG_EXPERIMENTAL=y
|
||||||
|
CONFIG_FDCLONE_DISABLE=y
|
||||||
|
CONFIG_FDCLONE_STDIO=y
|
||||||
|
CONFIG_HAVE_CXX=y
|
||||||
|
CONFIG_HAVE_CXXINITIALIZE=y
|
||||||
|
CONFIG_IDLETHREAD_STACKSIZE=750
|
||||||
|
CONFIG_LIBC_FLOATINGPOINT=y
|
||||||
|
CONFIG_LIBC_LONG_LONG=y
|
||||||
|
CONFIG_LIBC_STRERROR=y
|
||||||
|
CONFIG_LIB_BOARDCTL=y
|
||||||
|
CONFIG_MEMSET_64BIT=y
|
||||||
|
CONFIG_MEMSET_OPTSPEED=y
|
||||||
|
CONFIG_PREALLOC_TIMERS=50
|
||||||
|
CONFIG_PTHREAD_STACK_MIN=512
|
||||||
|
CONFIG_RAM_SIZE=245760
|
||||||
|
CONFIG_RAM_START=0x20010000
|
||||||
|
CONFIG_RAW_BINARY=y
|
||||||
|
CONFIG_SDCLONE_DISABLE=y
|
||||||
|
CONFIG_SERIAL_TERMIOS=y
|
||||||
|
CONFIG_SIG_DEFAULT=y
|
||||||
|
CONFIG_SIG_SIGALRM_ACTION=y
|
||||||
|
CONFIG_SIG_SIGUSR1_ACTION=y
|
||||||
|
CONFIG_SIG_SIGUSR2_ACTION=y
|
||||||
|
CONFIG_SPI=y
|
||||||
|
CONFIG_STACK_COLORATION=y
|
||||||
|
CONFIG_START_DAY=30
|
||||||
|
CONFIG_START_MONTH=11
|
||||||
|
CONFIG_STDIO_BUFFER_SIZE=32
|
||||||
|
CONFIG_STM32H7_BKPSRAM=y
|
||||||
|
CONFIG_STM32H7_DMA1=y
|
||||||
|
CONFIG_STM32H7_DMA2=y
|
||||||
|
CONFIG_STM32H7_OTGFS=y
|
||||||
|
CONFIG_STM32H7_PROGMEM=y
|
||||||
|
CONFIG_STM32H7_SERIAL_DISABLE_REORDERING=y
|
||||||
|
CONFIG_STM32H7_TIM1=y
|
||||||
|
CONFIG_STM32H7_UART7=y
|
||||||
|
CONFIG_SYSTEMTICK_HOOK=y
|
||||||
|
CONFIG_SYSTEM_CDCACM=y
|
||||||
|
CONFIG_TASK_NAME_SIZE=24
|
||||||
|
CONFIG_TTY_SIGINT=y
|
||||||
|
CONFIG_TTY_SIGINT_CHAR=0x03
|
||||||
|
CONFIG_TTY_SIGTSTP=y
|
||||||
|
CONFIG_UART7_RXBUFSIZE=512
|
||||||
|
CONFIG_UART7_RXDMA=y
|
||||||
|
CONFIG_UART7_TXBUFSIZE=512
|
||||||
|
CONFIG_UART7_TXDMA=y
|
||||||
|
CONFIG_USBDEV=y
|
||||||
|
CONFIG_USBDEV_BUSPOWERED=y
|
||||||
|
CONFIG_USBDEV_MAXPOWER=500
|
||||||
|
CONFIG_USEC_PER_TICK=1000
|
||||||
|
CONFIG_USERMAIN_STACKSIZE=2944
|
||||||
|
CONFIG_USER_ENTRYPOINT="bootloader_main"
|
||||||
@@ -0,0 +1,505 @@
|
|||||||
|
/************************************************************************************
|
||||||
|
* nuttx-configs/px4_fmu-v6c/include/board.h
|
||||||
|
*
|
||||||
|
* Copyright (C) 2016-2019 Gregory Nutt. All rights reserved.
|
||||||
|
* Authors: David Sidrane <david.sidrane@nscdg.com>
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions
|
||||||
|
* are met:
|
||||||
|
*
|
||||||
|
* 1. Redistributions of source code must retain the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer.
|
||||||
|
* 2. Redistributions in binary form must reproduce the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer in
|
||||||
|
* the documentation and/or other materials provided with the
|
||||||
|
* distribution.
|
||||||
|
* 3. Neither the name NuttX nor the names of its contributors may be
|
||||||
|
* used to endorse or promote products derived from this software
|
||||||
|
* without specific prior written permission.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||||
|
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||||
|
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||||
|
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||||
|
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||||
|
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||||
|
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
||||||
|
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
|
||||||
|
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||||
|
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||||
|
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||||
|
* POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*
|
||||||
|
************************************************************************************/
|
||||||
|
#ifndef __NUTTX_CONFIG_PX4_FMU_V6C_INCLUDE_BOARD_H
|
||||||
|
#define __NUTTX_CONFIG_PX4_FMU_V6C_INCLUDE_BOARD_H
|
||||||
|
|
||||||
|
/************************************************************************************
|
||||||
|
* Included Files
|
||||||
|
************************************************************************************/
|
||||||
|
|
||||||
|
#include "board_dma_map.h"
|
||||||
|
|
||||||
|
#include <nuttx/config.h>
|
||||||
|
|
||||||
|
#ifndef __ASSEMBLY__
|
||||||
|
# include <stdint.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include "stm32_rcc.h"
|
||||||
|
#include "stm32_sdmmc.h"
|
||||||
|
|
||||||
|
/************************************************************************************
|
||||||
|
* Pre-processor Definitions
|
||||||
|
************************************************************************************/
|
||||||
|
|
||||||
|
/* Clocking *************************************************************************/
|
||||||
|
/* The px4_fmu-v6C board provides the following clock sources:
|
||||||
|
*
|
||||||
|
* X1: 16 MHz crystal for HSE
|
||||||
|
*
|
||||||
|
* So we have these clock source available within the STM32
|
||||||
|
*
|
||||||
|
* HSI: 16 MHz RC factory-trimmed
|
||||||
|
* HSE: 16 MHz crystal for HSE
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define STM32_BOARD_XTAL 16000000ul
|
||||||
|
|
||||||
|
#define STM32_HSI_FREQUENCY 16000000ul
|
||||||
|
#define STM32_LSI_FREQUENCY 32000
|
||||||
|
#define STM32_HSE_FREQUENCY STM32_BOARD_XTAL
|
||||||
|
#define STM32_LSE_FREQUENCY 32768
|
||||||
|
|
||||||
|
/* Main PLL Configuration.
|
||||||
|
*
|
||||||
|
* PLL source is HSE = 16,000,000
|
||||||
|
*
|
||||||
|
* PLL_VCOx = (STM32_HSE_FREQUENCY / PLLM) * PLLN
|
||||||
|
* Subject to:
|
||||||
|
*
|
||||||
|
* 1 <= PLLM <= 63
|
||||||
|
* 4 <= PLLN <= 512
|
||||||
|
* 150 MHz <= PLL_VCOL <= 420MHz
|
||||||
|
* 192 MHz <= PLL_VCOH <= 836MHz
|
||||||
|
*
|
||||||
|
* SYSCLK = PLL_VCO / PLLP
|
||||||
|
* CPUCLK = SYSCLK / D1CPRE
|
||||||
|
* Subject to
|
||||||
|
*
|
||||||
|
* PLLP1 = {2, 4, 6, 8, ..., 128}
|
||||||
|
* PLLP2,3 = {2, 3, 4, ..., 128}
|
||||||
|
* CPUCLK <= 480 MHz
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define STM32_BOARD_USEHSE
|
||||||
|
|
||||||
|
#define STM32_PLLCFG_PLLSRC RCC_PLLCKSELR_PLLSRC_HSE
|
||||||
|
|
||||||
|
/* PLL1, wide 4 - 8 MHz input, enable DIVP, DIVQ, DIVR
|
||||||
|
*
|
||||||
|
* PLL1_VCO = (16,000,000 / 1) * 60 = 960 MHz
|
||||||
|
*
|
||||||
|
* PLL1P = PLL1_VCO/2 = 960 MHz / 2 = 480 MHz
|
||||||
|
* PLL1Q = PLL1_VCO/4 = 960 MHz / 4 = 240 MHz
|
||||||
|
* PLL1R = PLL1_VCO/8 = 960 MHz / 8 = 120 MHz
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define STM32_PLLCFG_PLL1CFG (RCC_PLLCFGR_PLL1VCOSEL_WIDE | \
|
||||||
|
RCC_PLLCFGR_PLL1RGE_4_8_MHZ | \
|
||||||
|
RCC_PLLCFGR_DIVP1EN | \
|
||||||
|
RCC_PLLCFGR_DIVQ1EN | \
|
||||||
|
RCC_PLLCFGR_DIVR1EN)
|
||||||
|
#define STM32_PLLCFG_PLL1M RCC_PLLCKSELR_DIVM1(1)
|
||||||
|
#define STM32_PLLCFG_PLL1N RCC_PLL1DIVR_N1(60)
|
||||||
|
#define STM32_PLLCFG_PLL1P RCC_PLL1DIVR_P1(2)
|
||||||
|
#define STM32_PLLCFG_PLL1Q RCC_PLL1DIVR_Q1(4)
|
||||||
|
#define STM32_PLLCFG_PLL1R RCC_PLL1DIVR_R1(8)
|
||||||
|
|
||||||
|
#define STM32_VCO1_FREQUENCY ((STM32_HSE_FREQUENCY / 1) * 60)
|
||||||
|
#define STM32_PLL1P_FREQUENCY (STM32_VCO1_FREQUENCY / 2)
|
||||||
|
#define STM32_PLL1Q_FREQUENCY (STM32_VCO1_FREQUENCY / 4)
|
||||||
|
#define STM32_PLL1R_FREQUENCY (STM32_VCO1_FREQUENCY / 8)
|
||||||
|
|
||||||
|
/* PLL2 */
|
||||||
|
|
||||||
|
#define STM32_PLLCFG_PLL2CFG (RCC_PLLCFGR_PLL2VCOSEL_WIDE | \
|
||||||
|
RCC_PLLCFGR_PLL2RGE_4_8_MHZ | \
|
||||||
|
RCC_PLLCFGR_DIVP2EN | \
|
||||||
|
RCC_PLLCFGR_DIVQ2EN | \
|
||||||
|
RCC_PLLCFGR_DIVR2EN)
|
||||||
|
#define STM32_PLLCFG_PLL2M RCC_PLLCKSELR_DIVM2(4)
|
||||||
|
#define STM32_PLLCFG_PLL2N RCC_PLL2DIVR_N2(48)
|
||||||
|
#define STM32_PLLCFG_PLL2P RCC_PLL2DIVR_P2(2)
|
||||||
|
#define STM32_PLLCFG_PLL2Q RCC_PLL2DIVR_Q2(2)
|
||||||
|
#define STM32_PLLCFG_PLL2R RCC_PLL2DIVR_R2(2)
|
||||||
|
|
||||||
|
#define STM32_VCO2_FREQUENCY ((STM32_HSE_FREQUENCY / 4) * 48)
|
||||||
|
#define STM32_PLL2P_FREQUENCY (STM32_VCO2_FREQUENCY / 2)
|
||||||
|
#define STM32_PLL2Q_FREQUENCY (STM32_VCO2_FREQUENCY / 2)
|
||||||
|
#define STM32_PLL2R_FREQUENCY (STM32_VCO2_FREQUENCY / 2)
|
||||||
|
|
||||||
|
/* PLL3 */
|
||||||
|
|
||||||
|
#define STM32_PLLCFG_PLL3CFG (RCC_PLLCFGR_PLL3VCOSEL_WIDE | \
|
||||||
|
RCC_PLLCFGR_PLL3RGE_4_8_MHZ | \
|
||||||
|
RCC_PLLCFGR_DIVQ3EN)
|
||||||
|
#define STM32_PLLCFG_PLL3M RCC_PLLCKSELR_DIVM3(4)
|
||||||
|
#define STM32_PLLCFG_PLL3N RCC_PLL3DIVR_N3(48)
|
||||||
|
#define STM32_PLLCFG_PLL3P RCC_PLL3DIVR_P3(2)
|
||||||
|
#define STM32_PLLCFG_PLL3Q RCC_PLL3DIVR_Q3(4)
|
||||||
|
#define STM32_PLLCFG_PLL3R RCC_PLL3DIVR_R3(2)
|
||||||
|
|
||||||
|
#define STM32_VCO3_FREQUENCY ((STM32_HSE_FREQUENCY / 4) * 48)
|
||||||
|
#define STM32_PLL3P_FREQUENCY (STM32_VCO3_FREQUENCY / 2)
|
||||||
|
#define STM32_PLL3Q_FREQUENCY (STM32_VCO3_FREQUENCY / 4)
|
||||||
|
#define STM32_PLL3R_FREQUENCY (STM32_VCO3_FREQUENCY / 2)
|
||||||
|
|
||||||
|
/* SYSCLK = PLL1P = 480MHz
|
||||||
|
* CPUCLK = SYSCLK / 1 = 480 MHz
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define STM32_RCC_D1CFGR_D1CPRE (RCC_D1CFGR_D1CPRE_SYSCLK)
|
||||||
|
#define STM32_SYSCLK_FREQUENCY (STM32_PLL1P_FREQUENCY)
|
||||||
|
#define STM32_CPUCLK_FREQUENCY (STM32_SYSCLK_FREQUENCY / 1)
|
||||||
|
|
||||||
|
/* Configure Clock Assignments */
|
||||||
|
|
||||||
|
/* AHB clock (HCLK) is SYSCLK/2 (240 MHz max)
|
||||||
|
* HCLK1 = HCLK2 = HCLK3 = HCLK4 = 240
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define STM32_RCC_D1CFGR_HPRE RCC_D1CFGR_HPRE_SYSCLKd2 /* HCLK = SYSCLK / 2 */
|
||||||
|
#define STM32_ACLK_FREQUENCY (STM32_CPUCLK_FREQUENCY / 2) /* ACLK in D1, HCLK3 in D1 */
|
||||||
|
#define STM32_HCLK_FREQUENCY (STM32_CPUCLK_FREQUENCY / 2) /* HCLK in D2, HCLK4 in D3 */
|
||||||
|
#define STM32_BOARD_HCLK STM32_HCLK_FREQUENCY /* same as above, to satisfy compiler */
|
||||||
|
|
||||||
|
/* APB1 clock (PCLK1) is HCLK/2 (120 MHz) */
|
||||||
|
|
||||||
|
#define STM32_RCC_D2CFGR_D2PPRE1 RCC_D2CFGR_D2PPRE1_HCLKd2 /* PCLK1 = HCLK / 2 */
|
||||||
|
#define STM32_PCLK1_FREQUENCY (STM32_HCLK_FREQUENCY/2)
|
||||||
|
|
||||||
|
/* APB2 clock (PCLK2) is HCLK/2 (120 MHz) */
|
||||||
|
|
||||||
|
#define STM32_RCC_D2CFGR_D2PPRE2 RCC_D2CFGR_D2PPRE2_HCLKd2 /* PCLK2 = HCLK / 2 */
|
||||||
|
#define STM32_PCLK2_FREQUENCY (STM32_HCLK_FREQUENCY/2)
|
||||||
|
|
||||||
|
/* APB3 clock (PCLK3) is HCLK/2 (120 MHz) */
|
||||||
|
|
||||||
|
#define STM32_RCC_D1CFGR_D1PPRE RCC_D1CFGR_D1PPRE_HCLKd2 /* PCLK3 = HCLK / 2 */
|
||||||
|
#define STM32_PCLK3_FREQUENCY (STM32_HCLK_FREQUENCY/2)
|
||||||
|
|
||||||
|
/* APB4 clock (PCLK4) is HCLK/4 (120 MHz) */
|
||||||
|
|
||||||
|
#define STM32_RCC_D3CFGR_D3PPRE RCC_D3CFGR_D3PPRE_HCLKd2 /* PCLK4 = HCLK / 2 */
|
||||||
|
#define STM32_PCLK4_FREQUENCY (STM32_HCLK_FREQUENCY/2)
|
||||||
|
|
||||||
|
/* Timer clock frequencies */
|
||||||
|
|
||||||
|
/* Timers driven from APB1 will be twice PCLK1 */
|
||||||
|
|
||||||
|
#define STM32_APB1_TIM2_CLKIN (2*STM32_PCLK1_FREQUENCY)
|
||||||
|
#define STM32_APB1_TIM3_CLKIN (2*STM32_PCLK1_FREQUENCY)
|
||||||
|
#define STM32_APB1_TIM4_CLKIN (2*STM32_PCLK1_FREQUENCY)
|
||||||
|
#define STM32_APB1_TIM5_CLKIN (2*STM32_PCLK1_FREQUENCY)
|
||||||
|
#define STM32_APB1_TIM6_CLKIN (2*STM32_PCLK1_FREQUENCY)
|
||||||
|
#define STM32_APB1_TIM7_CLKIN (2*STM32_PCLK1_FREQUENCY)
|
||||||
|
#define STM32_APB1_TIM12_CLKIN (2*STM32_PCLK1_FREQUENCY)
|
||||||
|
#define STM32_APB1_TIM13_CLKIN (2*STM32_PCLK1_FREQUENCY)
|
||||||
|
#define STM32_APB1_TIM14_CLKIN (2*STM32_PCLK1_FREQUENCY)
|
||||||
|
|
||||||
|
/* Timers driven from APB2 will be twice PCLK2 */
|
||||||
|
|
||||||
|
#define STM32_APB2_TIM1_CLKIN (2*STM32_PCLK2_FREQUENCY)
|
||||||
|
#define STM32_APB2_TIM8_CLKIN (2*STM32_PCLK2_FREQUENCY)
|
||||||
|
#define STM32_APB2_TIM15_CLKIN (2*STM32_PCLK2_FREQUENCY)
|
||||||
|
#define STM32_APB2_TIM16_CLKIN (2*STM32_PCLK2_FREQUENCY)
|
||||||
|
#define STM32_APB2_TIM17_CLKIN (2*STM32_PCLK2_FREQUENCY)
|
||||||
|
|
||||||
|
/* Kernel Clock Configuration
|
||||||
|
*
|
||||||
|
* Note: look at Table 54 in ST Manual
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* I2C123 clock source */
|
||||||
|
|
||||||
|
#define STM32_RCC_D2CCIP2R_I2C123SRC RCC_D2CCIP2R_I2C123SEL_HSI
|
||||||
|
|
||||||
|
/* I2C4 clock source */
|
||||||
|
|
||||||
|
#define STM32_RCC_D3CCIPR_I2C4SRC RCC_D3CCIPR_I2C4SEL_HSI
|
||||||
|
|
||||||
|
/* SPI123 clock source */
|
||||||
|
|
||||||
|
#define STM32_RCC_D2CCIP1R_SPI123SRC RCC_D2CCIP1R_SPI123SEL_PLL2
|
||||||
|
|
||||||
|
/* SPI45 clock source */
|
||||||
|
|
||||||
|
#define STM32_RCC_D2CCIP1R_SPI45SRC RCC_D2CCIP1R_SPI45SEL_PLL2
|
||||||
|
|
||||||
|
/* SPI6 clock source */
|
||||||
|
|
||||||
|
#define STM32_RCC_D3CCIPR_SPI6SRC RCC_D3CCIPR_SPI6SEL_PLL2
|
||||||
|
|
||||||
|
/* USB 1 and 2 clock source */
|
||||||
|
|
||||||
|
#define STM32_RCC_D2CCIP2R_USBSRC RCC_D2CCIP2R_USBSEL_PLL3
|
||||||
|
|
||||||
|
/* ADC 1 2 3 clock source */
|
||||||
|
|
||||||
|
#define STM32_RCC_D3CCIPR_ADCSEL RCC_D3CCIPR_ADCSEL_PLL2
|
||||||
|
|
||||||
|
/* FDCAN 1 2 clock source */
|
||||||
|
|
||||||
|
#define STM32_RCC_D2CCIP1R_FDCANSEL RCC_D2CCIP1R_FDCANSEL_HSE /* FDCAN 1 2 clock source */
|
||||||
|
|
||||||
|
#define STM32_FDCANCLK STM32_HSE_FREQUENCY
|
||||||
|
|
||||||
|
/* FLASH wait states
|
||||||
|
*
|
||||||
|
* ------------ ---------- -----------
|
||||||
|
* Vcore MAX ACLK WAIT STATES
|
||||||
|
* ------------ ---------- -----------
|
||||||
|
* 1.15-1.26 V 70 MHz 0
|
||||||
|
* (VOS1 level) 140 MHz 1
|
||||||
|
* 210 MHz 2
|
||||||
|
* 1.05-1.15 V 55 MHz 0
|
||||||
|
* (VOS2 level) 110 MHz 1
|
||||||
|
* 165 MHz 2
|
||||||
|
* 220 MHz 3
|
||||||
|
* 0.95-1.05 V 45 MHz 0
|
||||||
|
* (VOS3 level) 90 MHz 1
|
||||||
|
* 135 MHz 2
|
||||||
|
* 180 MHz 3
|
||||||
|
* 225 MHz 4
|
||||||
|
* ------------ ---------- -----------
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define BOARD_FLASH_WAITSTATES 2
|
||||||
|
|
||||||
|
/* SDMMC definitions ********************************************************/
|
||||||
|
|
||||||
|
/* Init 400kHz, freq = PLL1Q/(2*div) div = PLL1Q/(2*freq) */
|
||||||
|
|
||||||
|
#define STM32_SDMMC_INIT_CLKDIV (300 << STM32_SDMMC_CLKCR_CLKDIV_SHIFT)
|
||||||
|
|
||||||
|
/* 25 MHz Max for now, 25 mHZ = PLL1Q/(2*div), div = PLL1Q/(2*freq)
|
||||||
|
* div = 4.8 = 240 / 50, So round up to 5 for default speed 24 MB/s
|
||||||
|
*/
|
||||||
|
|
||||||
|
#if defined(CONFIG_STM32H7_SDMMC_XDMA) || defined(CONFIG_STM32H7_SDMMC_IDMA)
|
||||||
|
# define STM32_SDMMC_MMCXFR_CLKDIV (5 << STM32_SDMMC_CLKCR_CLKDIV_SHIFT)
|
||||||
|
#else
|
||||||
|
# define STM32_SDMMC_MMCXFR_CLKDIV (100 << STM32_SDMMC_CLKCR_CLKDIV_SHIFT)
|
||||||
|
#endif
|
||||||
|
#if defined(CONFIG_STM32H7_SDMMC_XDMA) || defined(CONFIG_STM32H7_SDMMC_IDMA)
|
||||||
|
# define STM32_SDMMC_SDXFR_CLKDIV (5 << STM32_SDMMC_CLKCR_CLKDIV_SHIFT)
|
||||||
|
#else
|
||||||
|
# define STM32_SDMMC_SDXFR_CLKDIV (100 << STM32_SDMMC_CLKCR_CLKDIV_SHIFT)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define STM32_SDMMC_CLKCR_EDGE STM32_SDMMC_CLKCR_NEGEDGE
|
||||||
|
|
||||||
|
/* LED definitions ******************************************************************/
|
||||||
|
/* The PX4 FMUV6C board has three, LED_GREEN a Green LED, LED_BLUE a Blue LED and
|
||||||
|
* LED_RED a Red LED, that can be controlled by software.
|
||||||
|
*
|
||||||
|
* If CONFIG_ARCH_LEDS is not defined, then the user can control the LEDs in any way.
|
||||||
|
* The following definitions are used to access individual LEDs.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* LED index values for use with board_userled() */
|
||||||
|
|
||||||
|
/* LED definitions ******************************************************************/
|
||||||
|
/* The px4_fmu-v6c board has three, LED_GREEN a Green LED, LED_BLUE a Blue LED and
|
||||||
|
* LED_RED a Red LED, that can be controlled by software.
|
||||||
|
*
|
||||||
|
* If CONFIG_ARCH_LEDS is not defined, then the user can control the LEDs in any way.
|
||||||
|
* The following definitions are used to access individual LEDs.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* LED index values for use with board_userled() */
|
||||||
|
|
||||||
|
#define BOARD_LED1 0
|
||||||
|
#define BOARD_LED2 1
|
||||||
|
#define BOARD_LED3 2
|
||||||
|
#define BOARD_NLEDS 3
|
||||||
|
|
||||||
|
#define BOARD_LED_RED BOARD_LED1
|
||||||
|
#define BOARD_LED_GREEN BOARD_LED2
|
||||||
|
#define BOARD_LED_BLUE BOARD_LED3
|
||||||
|
|
||||||
|
/* LED bits for use with board_userled_all() */
|
||||||
|
|
||||||
|
#define BOARD_LED1_BIT (1 << BOARD_LED1)
|
||||||
|
#define BOARD_LED2_BIT (1 << BOARD_LED2)
|
||||||
|
#define BOARD_LED3_BIT (1 << BOARD_LED3)
|
||||||
|
|
||||||
|
/* If CONFIG_ARCH_LEDS is defined, the usage by the board port is defined in
|
||||||
|
* include/board.h and src/stm32_leds.c. The LEDs are used to encode OS-related
|
||||||
|
* events as follows:
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* SYMBOL Meaning LED state
|
||||||
|
* Red Green Blue
|
||||||
|
* ---------------------- -------------------------- ------ ------ ----*/
|
||||||
|
|
||||||
|
#define LED_STARTED 0 /* NuttX has been started OFF OFF OFF */
|
||||||
|
#define LED_HEAPALLOCATE 1 /* Heap has been allocated OFF OFF ON */
|
||||||
|
#define LED_IRQSENABLED 2 /* Interrupts enabled OFF ON OFF */
|
||||||
|
#define LED_STACKCREATED 3 /* Idle stack created OFF ON ON */
|
||||||
|
#define LED_INIRQ 4 /* In an interrupt N/C N/C GLOW */
|
||||||
|
#define LED_SIGNAL 5 /* In a signal handler N/C GLOW N/C */
|
||||||
|
#define LED_ASSERTION 6 /* An assertion failed GLOW N/C GLOW */
|
||||||
|
#define LED_PANIC 7 /* The system has crashed Blink OFF N/C */
|
||||||
|
#define LED_IDLE 8 /* MCU is is sleep mode ON OFF OFF */
|
||||||
|
|
||||||
|
/* Thus if the Green LED is statically on, NuttX has successfully booted and
|
||||||
|
* is, apparently, running normally. If the Red LED is flashing at
|
||||||
|
* approximately 2Hz, then a fatal error has been detected and the system
|
||||||
|
* has halted.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* Alternate function pin selections ************************************************/
|
||||||
|
|
||||||
|
#define GPIO_USART1_RX GPIO_USART1_RX_2 /* PA10 */
|
||||||
|
#define GPIO_USART1_TX GPIO_USART1_TX_3 /* PB6 */
|
||||||
|
|
||||||
|
#define GPIO_USART2_RX GPIO_USART2_RX_1 /* PA3 */
|
||||||
|
#define GPIO_USART2_TX GPIO_USART2_TX_2 /* PD5 */
|
||||||
|
|
||||||
|
#define GPIO_USART3_RX GPIO_USART3_RX_3 /* PD9 */
|
||||||
|
#define GPIO_USART3_TX GPIO_USART3_TX_3 /* PD8 */
|
||||||
|
|
||||||
|
#define GPIO_UART5_RX GPIO_UART5_RX_3 /* PD2 */
|
||||||
|
#define GPIO_UART5_TX GPIO_UART5_TX_3 /* PC12 */
|
||||||
|
// GPIO_UART5_RTS no remap /* PC8 */
|
||||||
|
// GPIO_UART5_CTS No remap /* PC9 */
|
||||||
|
|
||||||
|
#define GPIO_USART6_RX GPIO_USART6_RX_1 /* PC7 */
|
||||||
|
#define GPIO_USART6_TX GPIO_USART6_TX_1 /* PC6 */
|
||||||
|
|
||||||
|
#define GPIO_UART7_RX GPIO_UART7_RX_3 /* PE7 */
|
||||||
|
#define GPIO_UART7_TX GPIO_UART7_TX_3 /* PE8 */
|
||||||
|
#define GPIO_UART7_RTS GPIO_UART7_RTS_1 /* PE9 */
|
||||||
|
#define GPIO_UART7_CTS GPIO_UART7_CTS_1 /* PE10 */
|
||||||
|
|
||||||
|
#define GPIO_UART8_RX GPIO_UART8_RX_1 /* PE0 */
|
||||||
|
#define GPIO_UART8_TX GPIO_UART8_TX_1 /* PE1 */
|
||||||
|
|
||||||
|
|
||||||
|
/* CAN
|
||||||
|
*
|
||||||
|
* CAN1 is routed to transceiver.
|
||||||
|
* CAN2 is routed to transceiver.
|
||||||
|
*/
|
||||||
|
#define GPIO_CAN1_RX GPIO_CAN1_RX_3 /* PD0 */
|
||||||
|
#define GPIO_CAN1_TX GPIO_CAN1_TX_3 /* PD1 */
|
||||||
|
#define GPIO_CAN2_RX GPIO_CAN2_RX_2 /* PB5 */
|
||||||
|
#define GPIO_CAN2_TX GPIO_CAN2_TX_1 /* PB13 */
|
||||||
|
|
||||||
|
/* SPI
|
||||||
|
* SPI1 is sensors
|
||||||
|
* SPI2 is FRAM
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define ADJ_SLEW_RATE(p) (((p) & ~GPIO_SPEED_MASK) | (GPIO_SPEED_2MHz))
|
||||||
|
|
||||||
|
#define GPIO_SPI1_MISO GPIO_SPI1_MISO_1 /* PA6 */
|
||||||
|
#define GPIO_SPI1_MOSI GPIO_SPI1_MOSI_1 /* PA7 */
|
||||||
|
#define GPIO_SPI1_SCK ADJ_SLEW_RATE(GPIO_SPI1_SCK_1) /* PA5 */
|
||||||
|
|
||||||
|
#define GPIO_SPI2_MISO GPIO_SPI2_MISO_2 /* PC2 */
|
||||||
|
#define GPIO_SPI2_MOSI GPIO_SPI2_MOSI_3 /* PC3 */
|
||||||
|
#define GPIO_SPI2_SCK ADJ_SLEW_RATE(GPIO_SPI2_SCK_5) /* PD3 */
|
||||||
|
|
||||||
|
/* I2C
|
||||||
|
*
|
||||||
|
* The optional _GPIO configurations allow the I2C driver to manually
|
||||||
|
* reset the bus to clear stuck slaves. They match the pin configuration,
|
||||||
|
* but are normally-high GPIOs.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define GPIO_I2C1_SCL GPIO_I2C1_SCL_2 /* PB8 */
|
||||||
|
#define GPIO_I2C1_SDA GPIO_I2C1_SDA_1 /* PB7 */
|
||||||
|
|
||||||
|
#define GPIO_I2C1_SCL_GPIO (GPIO_OUTPUT | GPIO_OPENDRAIN |GPIO_SPEED_50MHz | GPIO_OUTPUT_SET | GPIO_PORTB | GPIO_PIN8)
|
||||||
|
#define GPIO_I2C1_SDA_GPIO (GPIO_OUTPUT | GPIO_OPENDRAIN |GPIO_SPEED_50MHz | GPIO_OUTPUT_SET | GPIO_PORTB | GPIO_PIN7)
|
||||||
|
|
||||||
|
#define GPIO_I2C2_SCL GPIO_I2C2_SCL_1 /* PB10 */
|
||||||
|
#define GPIO_I2C2_SDA GPIO_I2C2_SDA_1 /* PB11*/
|
||||||
|
|
||||||
|
#define GPIO_I2C2_SCL_GPIO (GPIO_OUTPUT | GPIO_OPENDRAIN |GPIO_SPEED_50MHz | GPIO_OUTPUT_SET | GPIO_PORTB | GPIO_PIN10)
|
||||||
|
#define GPIO_I2C2_SDA_GPIO (GPIO_OUTPUT | GPIO_OPENDRAIN |GPIO_SPEED_50MHz | GPIO_OUTPUT_SET | GPIO_PORTB | GPIO_PIN11)
|
||||||
|
|
||||||
|
#define GPIO_I2C4_SCL GPIO_I2C4_SCL_1 /* PD12 */
|
||||||
|
#define GPIO_I2C4_SDA GPIO_I2C4_SDA_1 /* PD13 */
|
||||||
|
|
||||||
|
#define GPIO_I2C4_SCL_GPIO (GPIO_OUTPUT | GPIO_OPENDRAIN | GPIO_SPEED_50MHz | GPIO_OUTPUT_SET | GPIO_PORTD | GPIO_PIN12)
|
||||||
|
#define GPIO_I2C4_SDA_GPIO (GPIO_OUTPUT | GPIO_OPENDRAIN | GPIO_SPEED_50MHz | GPIO_OUTPUT_SET | GPIO_PORTD | GPIO_PIN13)
|
||||||
|
|
||||||
|
/* SDMMC2
|
||||||
|
*
|
||||||
|
* VDD 3.3
|
||||||
|
* GND
|
||||||
|
* SDMMC2_CK PD6
|
||||||
|
* SDMMC2_CMD PD7
|
||||||
|
* SDMMC2_D0 PB14
|
||||||
|
* SDMMC2_D1 PB15
|
||||||
|
* SDMMC2_D2 PB3
|
||||||
|
* SDMMC2_D3 PB4
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define GPIO_SDMMC2_CK GPIO_SDMMC2_CK_1 /* PD6 */
|
||||||
|
#define GPIO_SDMMC2_CMD GPIO_SDMMC2_CMD_1 /* PD7 */
|
||||||
|
// GPIO_SDMMC2_D0 No Remap /* PB14 */
|
||||||
|
// GPIO_SDMMC2_D1 No Remap /* PB15 */
|
||||||
|
#define GPIO_SDMMC2_D2 GPIO_SDMMC2_D2_2 /* PB3 */
|
||||||
|
// GPIO_SDMMC2_D3 No Remap /* PB4 */
|
||||||
|
|
||||||
|
/* USB
|
||||||
|
*
|
||||||
|
* OTG_FS_DM PA11
|
||||||
|
* OTG_FS_DP PA12
|
||||||
|
* VBUS PA9
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
/* Board provides GPIO or other Hardware for signaling to timing analyzer */
|
||||||
|
|
||||||
|
#if defined(CONFIG_BOARD_USE_PROBES)
|
||||||
|
# include "stm32_gpio.h"
|
||||||
|
# define PROBE_N(n) (1<<((n)-1))
|
||||||
|
# define PROBE_1 (GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_2MHz|GPIO_OUTPUT_CLEAR|GPIO_PORTA|GPIO_PIN8) /* PA8 AUX1 */
|
||||||
|
# define PROBE_2 (GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_2MHz|GPIO_OUTPUT_CLEAR|GPIO_PORTE|GPIO_PIN11) /* PE11 AUX2 */
|
||||||
|
# define PROBE_3 (GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_2MHz|GPIO_OUTPUT_CLEAR|GPIO_PORTE|GPIO_PIN13) /* PE13 AUX3 */
|
||||||
|
# define PROBE_4 (GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_2MHz|GPIO_OUTPUT_CLEAR|GPIO_PORTE|GPIO_PIN14) /* PE14 AUX4 */
|
||||||
|
# define PROBE_5 (GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_2MHz|GPIO_OUTPUT_CLEAR|GPIO_PORTD|GPIO_PIN14) /* PD14 AUX5 */
|
||||||
|
# define PROBE_6 (GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_2MHz|GPIO_OUTPUT_CLEAR|GPIO_PORTD|GPIO_PIN15) /* PD15 AUX6 */
|
||||||
|
# define PROBE_7 (GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_2MHz|GPIO_OUTPUT_CLEAR|GPIO_PORTA|GPIO_PIN0) /* PA0 AUX7 */
|
||||||
|
# define PROBE_8 (GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_2MHz|GPIO_OUTPUT_CLEAR|GPIO_PORTA|GPIO_PIN2) /* PA1 AUX8 */
|
||||||
|
|
||||||
|
# define PROBE_INIT(mask) \
|
||||||
|
do { \
|
||||||
|
if ((mask)& PROBE_N(1)) { stm32_configgpio(PROBE_1); } \
|
||||||
|
if ((mask)& PROBE_N(2)) { stm32_configgpio(PROBE_2); } \
|
||||||
|
if ((mask)& PROBE_N(3)) { stm32_configgpio(PROBE_3); } \
|
||||||
|
if ((mask)& PROBE_N(4)) { stm32_configgpio(PROBE_4); } \
|
||||||
|
if ((mask)& PROBE_N(5)) { stm32_configgpio(PROBE_5); } \
|
||||||
|
if ((mask)& PROBE_N(6)) { stm32_configgpio(PROBE_6); } \
|
||||||
|
if ((mask)& PROBE_N(7)) { stm32_configgpio(PROBE_7); } \
|
||||||
|
if ((mask)& PROBE_N(8)) { stm32_configgpio(PROBE_8); } \
|
||||||
|
} while(0)
|
||||||
|
|
||||||
|
# define PROBE(n,s) do {stm32_gpiowrite(PROBE_##n,(s));}while(0)
|
||||||
|
# define PROBE_MARK(n) PROBE(n,false);PROBE(n,true)
|
||||||
|
#else
|
||||||
|
# define PROBE_INIT(mask)
|
||||||
|
# define PROBE(n,s)
|
||||||
|
# define PROBE_MARK(n)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /*__NUTTX_CONFIG_PX4_FMU_V6C_INCLUDE_BOARD_H */
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user