mirror of
https://github.com/iNavFlight/inav.git
synced 2025-07-23 16:25:26 +03:00
Second iteration of makinf F7 fast
This commit is contained in:
parent
2f226f829a
commit
7faeb47532
8 changed files with 16 additions and 16 deletions
|
@ -520,10 +520,10 @@ static blackboxGpsState_t gpsHistory;
|
|||
static blackboxSlowState_t slowHistory;
|
||||
|
||||
// Keep a history of length 2, plus a buffer for MW to store the new values into
|
||||
static blackboxMainState_t blackboxHistoryRing[3];
|
||||
static EXTENDED_FASTRAM blackboxMainState_t blackboxHistoryRing[3];
|
||||
|
||||
// These point into blackboxHistoryRing, use them to know where to store history of a given age (0, 1 or 2 generations old)
|
||||
static blackboxMainState_t* blackboxHistory[3];
|
||||
static EXTENDED_FASTRAM blackboxMainState_t* blackboxHistory[3];
|
||||
|
||||
static bool blackboxModeActivationConditionPresent = false;
|
||||
|
||||
|
|
|
@ -637,7 +637,7 @@ void processRx(timeUs_t currentTimeUs)
|
|||
}
|
||||
|
||||
// Function for loop trigger
|
||||
void taskGyro(timeUs_t currentTimeUs) {
|
||||
void FAST_CODE NOINLINE taskGyro(timeUs_t currentTimeUs) {
|
||||
// getTaskDeltaTime() returns delta time frozen at the moment of entering the scheduler. currentTime is frozen at the very same point.
|
||||
// To make busy-waiting timeout work we need to account for time spent within busy-waiting loop
|
||||
const timeDelta_t currentDeltaTime = getTaskDeltaTime(TASK_SELF);
|
||||
|
|
|
@ -24,11 +24,11 @@
|
|||
|
||||
#include "io/beeper.h"
|
||||
|
||||
uint32_t armingFlags = 0;
|
||||
uint32_t stateFlags = 0;
|
||||
uint32_t flightModeFlags = 0;
|
||||
EXTENDED_FASTRAM uint32_t armingFlags = 0;
|
||||
EXTENDED_FASTRAM uint32_t stateFlags = 0;
|
||||
EXTENDED_FASTRAM uint32_t flightModeFlags = 0;
|
||||
|
||||
static uint32_t enabledSensors = 0;
|
||||
static EXTENDED_FASTRAM uint32_t enabledSensors = 0;
|
||||
|
||||
#if !defined(CLI_MINIMAL_VERBOSITY)
|
||||
const char *armingDisableFlagNames[]= {
|
||||
|
@ -80,7 +80,7 @@ uint32_t disableFlightMode(flightModeFlags_e mask)
|
|||
return flightModeFlags;
|
||||
}
|
||||
|
||||
bool sensors(uint32_t mask)
|
||||
bool FAST_CODE NOINLINE sensors(uint32_t mask)
|
||||
{
|
||||
return enabledSensors & mask;
|
||||
}
|
||||
|
|
|
@ -531,7 +531,7 @@ static void FAST_CODE pidApplyFixedWingRateController(pidState_t *pidState, flig
|
|||
#endif
|
||||
}
|
||||
|
||||
static void pidApplyMulticopterRateController(pidState_t *pidState, flight_dynamics_index_t axis)
|
||||
static void FAST_CODE pidApplyMulticopterRateController(pidState_t *pidState, flight_dynamics_index_t axis)
|
||||
{
|
||||
const float rateError = pidState->rateTarget - pidState->gyroRate;
|
||||
|
||||
|
|
|
@ -3168,7 +3168,7 @@ bool navigationRTHAllowsLanding(void)
|
|||
(allow == NAV_RTH_ALLOW_LANDING_FS_ONLY && FLIGHT_MODE(FAILSAFE_MODE));
|
||||
}
|
||||
|
||||
bool isNavLaunchEnabled(void)
|
||||
bool FAST_CODE isNavLaunchEnabled(void)
|
||||
{
|
||||
return IS_RC_MODE_ACTIVE(BOXNAVLAUNCH) || feature(FEATURE_FW_LAUNCH);
|
||||
}
|
||||
|
|
|
@ -70,7 +70,7 @@ typedef struct FixedWingLaunchState_s {
|
|||
bool motorControlAllowed;
|
||||
} FixedWingLaunchState_t;
|
||||
|
||||
static FixedWingLaunchState_t launchState;
|
||||
static EXTENDED_FASTRAM FixedWingLaunchState_t launchState;
|
||||
|
||||
#define COS_MAX_LAUNCH_ANGLE 0.70710678f // cos(45), just to be safe
|
||||
#define SWING_LAUNCH_MIN_ROTATION_RATE DEGREES_TO_RADIANS(100) // expect minimum 100dps rotation rate
|
||||
|
@ -106,7 +106,7 @@ void resetFixedWingLaunchController(timeUs_t currentTimeUs)
|
|||
launchState.motorControlAllowed = false;
|
||||
}
|
||||
|
||||
bool isFixedWingLaunchDetected(void)
|
||||
bool FAST_CODE isFixedWingLaunchDetected(void)
|
||||
{
|
||||
return launchState.launchDetected;
|
||||
}
|
||||
|
@ -117,7 +117,7 @@ void enableFixedWingLaunchController(timeUs_t currentTimeUs)
|
|||
launchState.motorControlAllowed = true;
|
||||
}
|
||||
|
||||
bool isFixedWingLaunchFinishedOrAborted(void)
|
||||
bool FAST_CODE isFixedWingLaunchFinishedOrAborted(void)
|
||||
{
|
||||
return launchState.launchFinished;
|
||||
}
|
||||
|
|
|
@ -784,7 +784,7 @@ void initializePositionEstimator(void)
|
|||
* Update estimator
|
||||
* Update rate: loop rate (>100Hz)
|
||||
*/
|
||||
void updatePositionEstimator(void)
|
||||
void FAST_CODE NOINLINE updatePositionEstimator(void)
|
||||
{
|
||||
static bool isInitialized = false;
|
||||
|
||||
|
|
|
@ -178,7 +178,7 @@ void setTaskEnabled(cfTaskId_e taskId, bool enabled)
|
|||
}
|
||||
}
|
||||
|
||||
timeDelta_t getTaskDeltaTime(cfTaskId_e taskId)
|
||||
timeDelta_t FAST_CODE NOINLINE getTaskDeltaTime(cfTaskId_e taskId)
|
||||
{
|
||||
if (taskId == TASK_SELF) {
|
||||
return currentTask->taskLatestDeltaTime;
|
||||
|
@ -212,7 +212,7 @@ void schedulerInit(void)
|
|||
queueAdd(&cfTasks[TASK_SYSTEM]);
|
||||
}
|
||||
|
||||
void scheduler(void)
|
||||
void FAST_CODE NOINLINE scheduler(void)
|
||||
{
|
||||
// Cache currentTime
|
||||
const timeUs_t currentTimeUs = micros();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue