@@ -65,6 +65,19 @@ uintptr_t pios_user_fs_id;
6565uint32_t pios_ws2811_id ;
6666#endif
6767
68+ static HwDiscoveryF4BareSettingsData boardHwSettings ;
69+
70+ static void hwDiscoveryF4BareSettingsUpdatedCb (__attribute__((unused )) UAVObjEvent * ev )
71+ {
72+ HwDiscoveryF4BareSettingsData currentBoardHwSettings ;
73+
74+ HwDiscoveryF4BareSettingsGet (& currentBoardHwSettings );
75+
76+ if (memcmp (& currentBoardHwSettings , & boardHwSettings , sizeof (HwDiscoveryF4BareSettingsData )) != 0 ) {
77+ ExtendedAlarmsSet (SYSTEMALARMS_ALARM_BOOTFAULT , SYSTEMALARMS_ALARM_CRITICAL , SYSTEMALARMS_EXTENDEDALARMSTATUS_REBOOTREQUIRED , 0 );
78+ }
79+ }
80+
6881static const PIOS_BOARD_IO_UART_Function flexiio_function_map [] = {
6982 [HWSETTINGS_RM_RCVRPORT_PPMTELEMETRY ] = PIOS_BOARD_IO_UART_TELEMETRY ,
7083 [HWSETTINGS_RM_RCVRPORT_PPMDEBUGCONSOLE ] = PIOS_BOARD_IO_UART_DEBUGCONSOLE ,
@@ -196,25 +209,20 @@ void PIOS_Board_Init(void)
196209 UAVObjInitialize ();
197210 SETTINGS_INITIALISE_ALL ;
198211
199- HwPikoBLXSettingsInitialize ();
200- HwSPRacingF3EVOSettingsInitialize ();
201- HwSPRacingF3SettingsInitialize ();
202- HwTinyFISHSettingsInitialize ();
203-
204- HwDiscoveryF4BareSettingsInitialize ();
212+ HwDiscoveryF4BareSettingsConnectCallback (hwDiscoveryF4BareSettingsUpdatedCb );
213+ HwDiscoveryF4BareSettingsGet (& boardHwSettings );
205214
206- uint16_t boardId ;
207- HwDiscoveryF4BareSettingsBoardIdGet ( & boardId );
215+ if ( boardHwSettings . BoardType != 0 ) {
216+ FirmwareIAPObjInitialize ( );
208217
209- FirmwareIAPObjInitialize ();
218+ FirmwareIAPObjData iap ;
219+ FirmwareIAPObjGet (& iap );
210220
211- FirmwareIAPObjData iap ;
212- FirmwareIAPObjGet ( & iap ) ;
221+ iap . BoardType = boardHwSettings . BoardType ;
222+ iap . BoardRevision = boardHwSettings . BoardRevision ;
213223
214- iap .BoardType = boardId >> 8 ;
215- iap .BoardRevision = boardId & 0xff ;
216-
217- FirmwareIAPObjSet (& iap );
224+ FirmwareIAPObjSet (& iap );
225+ }
218226
219227 /* Initialize the alarms library */
220228 AlarmsInitialize ();
0 commit comments