Rename FAST_RAM to FAST_DATA
This commit is contained in:
parent
da9bb85843
commit
4c99ad743d
|
@ -1,5 +1,5 @@
|
|||
checks: check-target-independence \
|
||||
check-fastram-usage-correctness \
|
||||
check-fastdata-usage-correctness \
|
||||
check-platform-included \
|
||||
check-unified-target-naming
|
||||
|
||||
|
@ -13,17 +13,17 @@ check-target-independence:
|
|||
fi; \
|
||||
done
|
||||
|
||||
check-fastram-usage-correctness:
|
||||
$(V1) NON_TRIVIALLY_INITIALIZED=$$(grep -Ern "\W?FAST_RAM_ZERO_INIT\W.*=.*" src/main/ | grep -Ev "=\s*(false|NULL|0(\.0*f?)?)\s*[,;]"); \
|
||||
check-fastdata-usage-correctness:
|
||||
$(V1) NON_TRIVIALLY_INITIALIZED=$$(grep -Ern "\W?FAST_DATA_ZERO_INIT\W.*=.*" src/main/ | grep -Ev "=\s*(false|NULL|0(\.0*f?)?)\s*[,;]"); \
|
||||
if [ "$${NON_TRIVIALLY_INITIALIZED}" != "" ]; then \
|
||||
echo "Non-trivially initialized FAST_RAM_ZERO_INIT variables found, use FAST_RAM instead:"; \
|
||||
echo "Non-trivially initialized FAST_DATA_ZERO_INIT variables found, use FAST_DATA instead:"; \
|
||||
echo "$${NON_TRIVIALLY_INITIALIZED}"; \
|
||||
exit 1; \
|
||||
fi; \
|
||||
TRIVIALLY_INITIALIZED=$$(grep -Ern "\W?FAST_RAM\W.*;" src/main/ | grep -v "="); \
|
||||
EXPLICITLY_TRIVIALLY_INITIALIZED=$$(grep -Ern "\W?FAST_RAM\W.*;" src/main/ | grep -E "=\s*(false|NULL|0(\.0*f?)?)\s*[,;]"); \
|
||||
TRIVIALLY_INITIALIZED=$$(grep -Ern "\W?FAST_DATA\W.*;" src/main/ | grep -v "="); \
|
||||
EXPLICITLY_TRIVIALLY_INITIALIZED=$$(grep -Ern "\W?FAST_DATA\W.*;" src/main/ | grep -E "=\s*(false|NULL|0(\.0*f?)?)\s*[,;]"); \
|
||||
if [ "$${TRIVIALLY_INITIALIZED}$${EXPLICITLY_TRIVIALLY_INITIALIZED}" != "" ]; then \
|
||||
echo "Trivially initialized FAST_RAM variables found, use FAST_RAM_ZERO_INIT instead to save FLASH:"; \
|
||||
echo "Trivially initialized FAST_DATA variables found, use FAST_DATA_ZERO_INIT instead to save FLASH:"; \
|
||||
echo "$${TRIVIALLY_INITIALIZED}\n$${EXPLICITLY_TRIVIALLY_INITIALIZED}"; \
|
||||
exit 1; \
|
||||
fi
|
||||
|
|
|
@ -156,7 +156,7 @@ SECTIONS
|
|||
/* used during startup to initialized fastram_data */
|
||||
_sfastram_idata = LOADADDR(.fastram_data);
|
||||
|
||||
/* Initialized FAST_RAM section for unsuspecting developers */
|
||||
/* Initialized FAST_DATA section for unsuspecting developers */
|
||||
.fastram_data :
|
||||
{
|
||||
. = ALIGN(4);
|
||||
|
|
|
@ -197,7 +197,7 @@ SECTIONS
|
|||
/* used during startup to initialized fastram_data */
|
||||
_sfastram_idata = LOADADDR(.fastram_data);
|
||||
|
||||
/* Initialized FAST_RAM section for unsuspecting developers */
|
||||
/* Initialized FAST_DATA section for unsuspecting developers */
|
||||
.fastram_data :
|
||||
{
|
||||
. = ALIGN(4);
|
||||
|
|
|
@ -165,7 +165,7 @@ SECTIONS
|
|||
/* used during startup to initialized fastram_data */
|
||||
_sfastram_idata = LOADADDR(.fastram_data);
|
||||
|
||||
/* Initialized FAST_RAM section for unsuspecting developers */
|
||||
/* Initialized FAST_DATA section for unsuspecting developers */
|
||||
.fastram_data :
|
||||
{
|
||||
. = ALIGN(4);
|
||||
|
|
|
@ -131,7 +131,7 @@ SECTIONS
|
|||
/* used during startup to initialized fastram_data */
|
||||
_sfastram_idata = LOADADDR(.fastram_data);
|
||||
|
||||
/* Initialized FAST_RAM section for unsuspecting developers */
|
||||
/* Initialized FAST_DATA section for unsuspecting developers */
|
||||
.fastram_data :
|
||||
{
|
||||
. = ALIGN(4);
|
||||
|
|
|
@ -190,7 +190,7 @@ SECTIONS
|
|||
/* used during startup to initialized fastram_data */
|
||||
_sfastram_idata = LOADADDR(.fastram_data);
|
||||
|
||||
/* Initialized FAST_RAM section for unsuspecting developers */
|
||||
/* Initialized FAST_DATA section for unsuspecting developers */
|
||||
.fastram_data :
|
||||
{
|
||||
. = ALIGN(4);
|
||||
|
|
|
@ -41,7 +41,7 @@
|
|||
adcOperatingConfig_t adcOperatingConfig[ADC_CHANNEL_COUNT];
|
||||
|
||||
#if defined(STM32F7)
|
||||
volatile FAST_RAM_ZERO_INIT uint16_t adcValues[ADC_CHANNEL_COUNT];
|
||||
volatile FAST_DATA_ZERO_INIT uint16_t adcValues[ADC_CHANNEL_COUNT];
|
||||
#else
|
||||
volatile uint16_t adcValues[ADC_CHANNEL_COUNT];
|
||||
#endif
|
||||
|
|
|
@ -132,7 +132,7 @@ FAST_CODE uint16_t prepareDshotPacket(dshotProtocolControl_t *pcb)
|
|||
}
|
||||
|
||||
#ifdef USE_DSHOT_TELEMETRY
|
||||
FAST_RAM_ZERO_INIT dshotTelemetryState_t dshotTelemetryState;
|
||||
FAST_DATA_ZERO_INIT dshotTelemetryState_t dshotTelemetryState;
|
||||
|
||||
uint16_t getDshotTelemetry(uint8_t index)
|
||||
{
|
||||
|
@ -142,7 +142,7 @@ uint16_t getDshotTelemetry(uint8_t index)
|
|||
#endif
|
||||
|
||||
#ifdef USE_DSHOT_TELEMETRY_STATS
|
||||
FAST_RAM_ZERO_INIT dshotTelemetryQuality_t dshotTelemetryQuality[MAX_SUPPORTED_MOTORS];
|
||||
FAST_DATA_ZERO_INIT dshotTelemetryQuality_t dshotTelemetryQuality[MAX_SUPPORTED_MOTORS];
|
||||
|
||||
void updateDshotTelemetryQuality(dshotTelemetryQuality_t *qualityStats, bool packetValid, timeMs_t currentTimeMs)
|
||||
{
|
||||
|
|
|
@ -54,15 +54,15 @@
|
|||
#define dbgPinLo(x)
|
||||
#endif
|
||||
|
||||
FAST_RAM_ZERO_INIT bbPacer_t bbPacers[MAX_MOTOR_PACERS]; // TIM1 or TIM8
|
||||
FAST_RAM_ZERO_INIT int usedMotorPacers = 0;
|
||||
FAST_DATA_ZERO_INIT bbPacer_t bbPacers[MAX_MOTOR_PACERS]; // TIM1 or TIM8
|
||||
FAST_DATA_ZERO_INIT int usedMotorPacers = 0;
|
||||
|
||||
FAST_RAM_ZERO_INIT bbPort_t bbPorts[MAX_SUPPORTED_MOTOR_PORTS];
|
||||
FAST_RAM_ZERO_INIT int usedMotorPorts;
|
||||
FAST_DATA_ZERO_INIT bbPort_t bbPorts[MAX_SUPPORTED_MOTOR_PORTS];
|
||||
FAST_DATA_ZERO_INIT int usedMotorPorts;
|
||||
|
||||
FAST_RAM_ZERO_INIT bbMotor_t bbMotors[MAX_SUPPORTED_MOTORS];
|
||||
FAST_DATA_ZERO_INIT bbMotor_t bbMotors[MAX_SUPPORTED_MOTORS];
|
||||
|
||||
static FAST_RAM_ZERO_INIT int motorCount;
|
||||
static FAST_DATA_ZERO_INIT int motorCount;
|
||||
dshotBitbangStatus_e bbStatus;
|
||||
|
||||
// For MCUs that use MPU to control DMA coherency, there might be a performance hit
|
||||
|
@ -74,8 +74,8 @@ dshotBitbangStatus_e bbStatus;
|
|||
#define BB_OUTPUT_BUFFER_ATTRIBUTE
|
||||
#define BB_INPUT_BUFFER_ATTRIBUTE
|
||||
#elif defined(STM32F7)
|
||||
#define BB_OUTPUT_BUFFER_ATTRIBUTE FAST_RAM_ZERO_INIT
|
||||
#define BB_INPUT_BUFFER_ATTRIBUTE FAST_RAM_ZERO_INIT
|
||||
#define BB_OUTPUT_BUFFER_ATTRIBUTE FAST_DATA_ZERO_INIT
|
||||
#define BB_INPUT_BUFFER_ATTRIBUTE FAST_DATA_ZERO_INIT
|
||||
#elif defined(STM32H7)
|
||||
#define BB_OUTPUT_BUFFER_ATTRIBUTE DMA_RAM
|
||||
#define BB_INPUT_BUFFER_ATTRIBUTE DMA_RAM
|
||||
|
@ -85,7 +85,7 @@ BB_OUTPUT_BUFFER_ATTRIBUTE uint32_t bbOutputBuffer[MOTOR_DSHOT_BUFFER_SIZE * MAX
|
|||
BB_INPUT_BUFFER_ATTRIBUTE uint16_t bbInputBuffer[DSHOT_BITBANG_PORT_INPUT_BUFFER_LENGTH * MAX_SUPPORTED_MOTOR_PORTS];
|
||||
|
||||
uint8_t bbPuPdMode;
|
||||
FAST_RAM_ZERO_INIT timeUs_t dshotFrameUs;
|
||||
FAST_DATA_ZERO_INIT timeUs_t dshotFrameUs;
|
||||
|
||||
|
||||
const timerHardware_t bbTimerHardware[] = {
|
||||
|
@ -104,8 +104,8 @@ const timerHardware_t bbTimerHardware[] = {
|
|||
#endif
|
||||
};
|
||||
|
||||
static FAST_RAM_ZERO_INIT motorDevice_t bbDevice;
|
||||
static FAST_RAM_ZERO_INIT timeUs_t lastSendUs;
|
||||
static FAST_DATA_ZERO_INIT motorDevice_t bbDevice;
|
||||
static FAST_DATA_ZERO_INIT timeUs_t lastSendUs;
|
||||
|
||||
static motorPwmProtocolTypes_e motorPwmProtocol;
|
||||
|
||||
|
|
|
@ -174,13 +174,13 @@ typedef struct bbMotor_s {
|
|||
} bbMotor_t;
|
||||
|
||||
#define MAX_MOTOR_PACERS 4
|
||||
extern FAST_RAM_ZERO_INIT bbPacer_t bbPacers[MAX_MOTOR_PACERS]; // TIM1 or TIM8
|
||||
extern FAST_RAM_ZERO_INIT int usedMotorPacers;
|
||||
extern FAST_DATA_ZERO_INIT bbPacer_t bbPacers[MAX_MOTOR_PACERS]; // TIM1 or TIM8
|
||||
extern FAST_DATA_ZERO_INIT int usedMotorPacers;
|
||||
|
||||
extern FAST_RAM_ZERO_INIT bbPort_t bbPorts[MAX_SUPPORTED_MOTOR_PORTS];
|
||||
extern FAST_RAM_ZERO_INIT int usedMotorPorts;
|
||||
extern FAST_DATA_ZERO_INIT bbPort_t bbPorts[MAX_SUPPORTED_MOTOR_PORTS];
|
||||
extern FAST_DATA_ZERO_INIT int usedMotorPorts;
|
||||
|
||||
extern FAST_RAM_ZERO_INIT bbMotor_t bbMotors[MAX_SUPPORTED_MOTORS];
|
||||
extern FAST_DATA_ZERO_INIT bbMotor_t bbMotors[MAX_SUPPORTED_MOTORS];
|
||||
|
||||
extern uint8_t bbPuPdMode;
|
||||
|
||||
|
|
|
@ -45,13 +45,13 @@ DSHOT_DMA_BUFFER_ATTRIBUTE DSHOT_DMA_BUFFER_UNIT dshotBurstDmaBuffer[MAX_DMA_TIM
|
|||
#endif
|
||||
|
||||
#ifdef USE_DSHOT_DMAR
|
||||
FAST_RAM_ZERO_INIT bool useBurstDshot = false;
|
||||
FAST_DATA_ZERO_INIT bool useBurstDshot = false;
|
||||
#endif
|
||||
#ifdef USE_DSHOT_TELEMETRY
|
||||
FAST_RAM_ZERO_INIT bool useDshotTelemetry = false;
|
||||
FAST_DATA_ZERO_INIT bool useDshotTelemetry = false;
|
||||
#endif
|
||||
|
||||
FAST_RAM_ZERO_INIT loadDmaBufferFn *loadDmaBuffer;
|
||||
FAST_DATA_ZERO_INIT loadDmaBufferFn *loadDmaBuffer;
|
||||
|
||||
FAST_CODE uint8_t loadDmaBufferDshot(uint32_t *dmaBuffer, int stride, uint16_t packet)
|
||||
{
|
||||
|
@ -149,7 +149,7 @@ static motorVTable_t dshotPwmVTable = {
|
|||
.shutdown = dshotPwmShutdown,
|
||||
};
|
||||
|
||||
FAST_RAM_ZERO_INIT motorDevice_t dshotPwmDevice;
|
||||
FAST_DATA_ZERO_INIT motorDevice_t dshotPwmDevice;
|
||||
|
||||
motorDevice_t *dshotPwmDevInit(const motorDevConfig_t *motorConfig, uint16_t idlePulse, uint8_t motorCount, bool useUnsyncedPwm)
|
||||
{
|
||||
|
|
|
@ -42,7 +42,7 @@
|
|||
|
||||
|
||||
typedef uint8_t loadDmaBufferFn(uint32_t *dmaBuffer, int stride, uint16_t packet); // function pointer used to encode a digital motor value into the DMA buffer representation
|
||||
extern FAST_RAM_ZERO_INIT loadDmaBufferFn *loadDmaBuffer;
|
||||
extern FAST_DATA_ZERO_INIT loadDmaBufferFn *loadDmaBuffer;
|
||||
uint8_t loadDmaBufferDshot(uint32_t *dmaBuffer, int stride, uint16_t packet);
|
||||
uint8_t loadDmaBufferProshot(uint32_t *dmaBuffer, int stride, uint16_t packet);
|
||||
|
||||
|
@ -66,7 +66,7 @@ motorDevice_t *dshotPwmDevInit(const struct motorDevConfig_s *motorConfig, uint1
|
|||
#elif defined(STM32G4)
|
||||
#define DSHOT_DMA_BUFFER_ATTRIBUTE DMA_RAM_W
|
||||
#elif defined(STM32F7)
|
||||
#define DSHOT_DMA_BUFFER_ATTRIBUTE FAST_RAM_ZERO_INIT
|
||||
#define DSHOT_DMA_BUFFER_ATTRIBUTE FAST_DATA_ZERO_INIT
|
||||
#else
|
||||
#define DSHOT_DMA_BUFFER_ATTRIBUTE // None
|
||||
#endif
|
||||
|
|
|
@ -47,7 +47,7 @@
|
|||
#if defined(STM32F1) || defined(STM32F3)
|
||||
uint8_t ledStripDMABuffer[WS2811_DMA_BUFFER_SIZE];
|
||||
#elif defined(STM32F7)
|
||||
FAST_RAM_ZERO_INIT uint32_t ledStripDMABuffer[WS2811_DMA_BUFFER_SIZE];
|
||||
FAST_DATA_ZERO_INIT uint32_t ledStripDMABuffer[WS2811_DMA_BUFFER_SIZE];
|
||||
#elif defined(STM32H7)
|
||||
DMA_RAM uint32_t ledStripDMABuffer[WS2811_DMA_BUFFER_SIZE];
|
||||
#else
|
||||
|
|
|
@ -42,7 +42,7 @@
|
|||
|
||||
#include "motor.h"
|
||||
|
||||
static FAST_RAM_ZERO_INIT motorDevice_t *motorDevice;
|
||||
static FAST_DATA_ZERO_INIT motorDevice_t *motorDevice;
|
||||
|
||||
static bool motorProtocolEnabled = false;
|
||||
static bool motorProtocolDshot = false;
|
||||
|
|
|
@ -35,7 +35,7 @@
|
|||
|
||||
#include "pg/motor.h"
|
||||
|
||||
FAST_RAM_ZERO_INIT pwmOutputPort_t motors[MAX_SUPPORTED_MOTORS];
|
||||
FAST_DATA_ZERO_INIT pwmOutputPort_t motors[MAX_SUPPORTED_MOTORS];
|
||||
|
||||
static void pwmOCConfig(TIM_TypeDef *tim, uint8_t channel, uint16_t value, uint8_t output)
|
||||
{
|
||||
|
@ -108,7 +108,7 @@ void pwmOutConfig(timerChannel_t *channel, const timerHardware_t *timerHardware,
|
|||
*channel->ccr = 0;
|
||||
}
|
||||
|
||||
static FAST_RAM_ZERO_INIT motorDevice_t motorPwmDevice;
|
||||
static FAST_DATA_ZERO_INIT motorDevice_t motorPwmDevice;
|
||||
|
||||
static void pwmWriteUnused(uint8_t index, float value)
|
||||
{
|
||||
|
|
|
@ -55,7 +55,7 @@ typedef struct {
|
|||
IO_t io;
|
||||
} pwmOutputPort_t;
|
||||
|
||||
extern FAST_RAM_ZERO_INIT pwmOutputPort_t motors[MAX_SUPPORTED_MOTORS];
|
||||
extern FAST_DATA_ZERO_INIT pwmOutputPort_t motors[MAX_SUPPORTED_MOTORS];
|
||||
|
||||
struct motorDevConfig_s;
|
||||
motorDevice_t *motorPwmDevInit(const struct motorDevConfig_s *motorDevConfig, uint16_t idlePulse, uint8_t motorCount, bool useUnsyncedPwm);
|
||||
|
|
|
@ -50,10 +50,10 @@
|
|||
|
||||
#include "pwm_output_dshot_shared.h"
|
||||
|
||||
FAST_RAM_ZERO_INIT uint8_t dmaMotorTimerCount = 0;
|
||||
FAST_DATA_ZERO_INIT uint8_t dmaMotorTimerCount = 0;
|
||||
#ifdef STM32F7
|
||||
FAST_RAM_ZERO_INIT motorDmaTimer_t dmaMotorTimers[MAX_DMA_TIMERS];
|
||||
FAST_RAM_ZERO_INIT motorDmaOutput_t dmaMotors[MAX_SUPPORTED_MOTORS];
|
||||
FAST_DATA_ZERO_INIT motorDmaTimer_t dmaMotorTimers[MAX_DMA_TIMERS];
|
||||
FAST_DATA_ZERO_INIT motorDmaOutput_t dmaMotors[MAX_SUPPORTED_MOTORS];
|
||||
#else
|
||||
motorDmaTimer_t dmaMotorTimers[MAX_DMA_TIMERS];
|
||||
motorDmaOutput_t dmaMotors[MAX_SUPPORTED_MOTORS];
|
||||
|
@ -62,9 +62,9 @@ motorDmaOutput_t dmaMotors[MAX_SUPPORTED_MOTORS];
|
|||
#ifdef USE_DSHOT_TELEMETRY
|
||||
|
||||
// TODO remove once debugging no longer needed
|
||||
FAST_RAM_ZERO_INIT uint32_t inputStampUs;
|
||||
FAST_DATA_ZERO_INIT uint32_t inputStampUs;
|
||||
|
||||
FAST_RAM_ZERO_INIT dshotDMAHandlerCycleCounters_t dshotDMAHandlerCycleCounters;
|
||||
FAST_DATA_ZERO_INIT dshotDMAHandlerCycleCounters_t dshotDMAHandlerCycleCounters;
|
||||
#endif
|
||||
|
||||
motorDmaOutput_t *getMotorDmaOutput(uint8_t index)
|
||||
|
|
|
@ -25,10 +25,10 @@
|
|||
#include <string.h>
|
||||
#endif
|
||||
|
||||
extern FAST_RAM_ZERO_INIT uint8_t dmaMotorTimerCount;
|
||||
extern FAST_DATA_ZERO_INIT uint8_t dmaMotorTimerCount;
|
||||
#if defined(STM32F7) || defined(STM32H7)
|
||||
extern FAST_RAM_ZERO_INIT motorDmaTimer_t dmaMotorTimers[MAX_DMA_TIMERS];
|
||||
extern FAST_RAM_ZERO_INIT motorDmaOutput_t dmaMotors[MAX_SUPPORTED_MOTORS];
|
||||
extern FAST_DATA_ZERO_INIT motorDmaTimer_t dmaMotorTimers[MAX_DMA_TIMERS];
|
||||
extern FAST_DATA_ZERO_INIT motorDmaOutput_t dmaMotors[MAX_SUPPORTED_MOTORS];
|
||||
#else
|
||||
extern motorDmaTimer_t dmaMotorTimers[MAX_DMA_TIMERS];
|
||||
extern motorDmaOutput_t dmaMotors[MAX_SUPPORTED_MOTORS];
|
||||
|
@ -38,14 +38,14 @@ extern motorDmaOutput_t dmaMotors[MAX_SUPPORTED_MOTORS];
|
|||
extern uint32_t readDoneCount;
|
||||
|
||||
// TODO remove once debugging no longer needed
|
||||
FAST_RAM_ZERO_INIT extern uint32_t inputStampUs;
|
||||
FAST_DATA_ZERO_INIT extern uint32_t inputStampUs;
|
||||
|
||||
typedef struct dshotDMAHandlerCycleCounters_s {
|
||||
uint32_t irqAt;
|
||||
uint32_t changeDirectionCompletedAt;
|
||||
} dshotDMAHandlerCycleCounters_t;
|
||||
|
||||
FAST_RAM_ZERO_INIT extern dshotDMAHandlerCycleCounters_t dshotDMAHandlerCycleCounters;
|
||||
FAST_DATA_ZERO_INIT extern dshotDMAHandlerCycleCounters_t dshotDMAHandlerCycleCounters;
|
||||
|
||||
#endif
|
||||
|
||||
|
|
|
@ -52,8 +52,8 @@
|
|||
#define UART_TX_BUFFER_ATTRIBUTE DMA_RAM_W // SRAM MPU NOT_BUFFERABLE
|
||||
#define UART_RX_BUFFER_ATTRIBUTE DMA_RAM_R // SRAM MPU NOT CACHABLE
|
||||
#elif defined(STM32F7)
|
||||
#define UART_TX_BUFFER_ATTRIBUTE FAST_RAM_ZERO_INIT // DTCM RAM
|
||||
#define UART_RX_BUFFER_ATTRIBUTE FAST_RAM_ZERO_INIT // DTCM RAM
|
||||
#define UART_TX_BUFFER_ATTRIBUTE FAST_DATA_ZERO_INIT // DTCM RAM
|
||||
#define UART_RX_BUFFER_ATTRIBUTE FAST_DATA_ZERO_INIT // DTCM RAM
|
||||
#elif defined(STM32F4) || defined(STM32F3) || defined(STM32F1)
|
||||
#define UART_TX_BUFFER_ATTRIBUTE // NONE
|
||||
#define UART_RX_BUFFER_ATTRIBUTE // NONE
|
||||
|
|
|
@ -41,8 +41,8 @@
|
|||
#include "drivers/serial_uart.h"
|
||||
#include "drivers/serial_uart_impl.h"
|
||||
|
||||
FAST_RAM_ZERO_INIT uartDevice_t uartDevice[UARTDEV_COUNT]; // Only those configured in target.h
|
||||
FAST_RAM_ZERO_INIT uartDevice_t *uartDevmap[UARTDEV_COUNT_MAX]; // Full array
|
||||
FAST_DATA_ZERO_INIT uartDevice_t uartDevice[UARTDEV_COUNT]; // Only those configured in target.h
|
||||
FAST_DATA_ZERO_INIT uartDevice_t *uartDevmap[UARTDEV_COUNT_MAX]; // Full array
|
||||
|
||||
void uartPinConfigure(const serialPinConfig_t *pSerialPinConfig)
|
||||
{
|
||||
|
|
|
@ -264,8 +264,8 @@ void initialiseMemorySections(void)
|
|||
memcpy(&ccm_code_start, &ccm_code, (size_t) (&ccm_code_end - &ccm_code_start));
|
||||
#endif
|
||||
|
||||
#ifdef USE_FAST_RAM
|
||||
/* Load FAST_RAM variable intializers into DTCM RAM */
|
||||
#ifdef USE_FAST_DATA
|
||||
/* Load FAST_DATA variable intializers into DTCM RAM */
|
||||
extern uint8_t _sfastram_data;
|
||||
extern uint8_t _efastram_data;
|
||||
extern uint8_t _sfastram_idata;
|
||||
|
|
|
@ -144,7 +144,7 @@ enum {
|
|||
int16_t magHold;
|
||||
#endif
|
||||
|
||||
static FAST_RAM_ZERO_INIT uint8_t pidUpdateCounter;
|
||||
static FAST_DATA_ZERO_INIT uint8_t pidUpdateCounter;
|
||||
|
||||
static bool flipOverAfterCrashActive = false;
|
||||
|
||||
|
|
|
@ -74,8 +74,8 @@ static bool isRxDataNew = false;
|
|||
static float rcCommandDivider = 500.0f;
|
||||
static float rcCommandYawDivider = 500.0f;
|
||||
|
||||
FAST_RAM_ZERO_INIT uint8_t interpolationChannels;
|
||||
static FAST_RAM_ZERO_INIT uint32_t rcFrameNumber;
|
||||
FAST_DATA_ZERO_INIT uint8_t interpolationChannels;
|
||||
static FAST_DATA_ZERO_INIT uint32_t rcFrameNumber;
|
||||
|
||||
enum {
|
||||
ROLL_FLAG = 1 << ROLL,
|
||||
|
@ -96,7 +96,7 @@ enum {
|
|||
#define RC_SMOOTHING_RX_RATE_MAX_US 50000 // 50ms or 20hz
|
||||
#define RC_SMOOTHING_INTERPOLATED_FEEDFORWARD_DERIVATIVE_PT1_HZ 100 // The value to use for "auto" when interpolated feedforward is enabled
|
||||
|
||||
static FAST_RAM_ZERO_INIT rcSmoothingFilter_t rcSmoothingData;
|
||||
static FAST_DATA_ZERO_INIT rcSmoothingFilter_t rcSmoothingData;
|
||||
#endif // USE_RC_SMOOTHING_FILTER
|
||||
|
||||
uint32_t getRcFrameNumber()
|
||||
|
@ -315,9 +315,9 @@ static void checkForThrottleErrorResetState(uint16_t rxRefreshRate)
|
|||
|
||||
static FAST_CODE uint8_t processRcInterpolation(void)
|
||||
{
|
||||
static FAST_RAM_ZERO_INIT float rcCommandInterp[4];
|
||||
static FAST_RAM_ZERO_INIT float rcStepSize[4];
|
||||
static FAST_RAM_ZERO_INIT int16_t rcInterpolationStepCount;
|
||||
static FAST_DATA_ZERO_INIT float rcCommandInterp[4];
|
||||
static FAST_DATA_ZERO_INIT float rcStepSize[4];
|
||||
static FAST_DATA_ZERO_INIT int16_t rcInterpolationStepCount;
|
||||
|
||||
uint16_t rxRefreshRate;
|
||||
uint8_t updatedChannel = 0;
|
||||
|
@ -518,10 +518,10 @@ FAST_CODE_NOINLINE bool rcSmoothingAutoCalculate(void)
|
|||
static FAST_CODE uint8_t processRcSmoothingFilter(void)
|
||||
{
|
||||
uint8_t updatedChannel = 0;
|
||||
static FAST_RAM_ZERO_INIT float lastRxData[4];
|
||||
static FAST_RAM_ZERO_INIT bool initialized;
|
||||
static FAST_RAM_ZERO_INIT timeMs_t validRxFrameTimeMs;
|
||||
static FAST_RAM_ZERO_INIT bool calculateCutoffs;
|
||||
static FAST_DATA_ZERO_INIT float lastRxData[4];
|
||||
static FAST_DATA_ZERO_INIT bool initialized;
|
||||
static FAST_DATA_ZERO_INIT timeMs_t validRxFrameTimeMs;
|
||||
static FAST_DATA_ZERO_INIT bool calculateCutoffs;
|
||||
|
||||
// first call initialization
|
||||
if (!initialized) {
|
||||
|
|
|
@ -86,20 +86,20 @@
|
|||
#define DYN_NOTCH_CALC_TICKS (XYZ_AXIS_COUNT * 4) // 4 steps per axis
|
||||
#define DYN_NOTCH_OSD_MIN_THROTTLE 20
|
||||
|
||||
static uint16_t FAST_RAM_ZERO_INIT fftSamplingRateHz;
|
||||
static float FAST_RAM_ZERO_INIT fftResolution;
|
||||
static uint8_t FAST_RAM_ZERO_INIT fftStartBin;
|
||||
static float FAST_RAM_ZERO_INIT dynNotchQ;
|
||||
static float FAST_RAM_ZERO_INIT dynNotch1Ctr;
|
||||
static float FAST_RAM_ZERO_INIT dynNotch2Ctr;
|
||||
static uint16_t FAST_RAM_ZERO_INIT dynNotchMinHz;
|
||||
static uint16_t FAST_RAM_ZERO_INIT dynNotchMaxHz;
|
||||
static bool FAST_RAM dualNotch = true;
|
||||
static uint16_t FAST_RAM_ZERO_INIT dynNotchMaxFFT;
|
||||
static float FAST_RAM_ZERO_INIT smoothFactor;
|
||||
static uint8_t FAST_RAM_ZERO_INIT samples;
|
||||
static uint16_t FAST_DATA_ZERO_INIT fftSamplingRateHz;
|
||||
static float FAST_DATA_ZERO_INIT fftResolution;
|
||||
static uint8_t FAST_DATA_ZERO_INIT fftStartBin;
|
||||
static float FAST_DATA_ZERO_INIT dynNotchQ;
|
||||
static float FAST_DATA_ZERO_INIT dynNotch1Ctr;
|
||||
static float FAST_DATA_ZERO_INIT dynNotch2Ctr;
|
||||
static uint16_t FAST_DATA_ZERO_INIT dynNotchMinHz;
|
||||
static uint16_t FAST_DATA_ZERO_INIT dynNotchMaxHz;
|
||||
static bool FAST_DATA dualNotch = true;
|
||||
static uint16_t FAST_DATA_ZERO_INIT dynNotchMaxFFT;
|
||||
static float FAST_DATA_ZERO_INIT smoothFactor;
|
||||
static uint8_t FAST_DATA_ZERO_INIT samples;
|
||||
// Hanning window, see https://en.wikipedia.org/wiki/Window_function#Hann_.28Hanning.29_window
|
||||
static FAST_RAM_ZERO_INIT float hanningWindow[FFT_WINDOW_SIZE];
|
||||
static FAST_DATA_ZERO_INIT float hanningWindow[FFT_WINDOW_SIZE];
|
||||
|
||||
void gyroDataAnalyseInit(uint32_t targetLooptimeUs)
|
||||
{
|
||||
|
|
|
@ -79,10 +79,10 @@ PG_REGISTER_ARRAY(motorMixer_t, MAX_SUPPORTED_MOTORS, customMotorMixer, PG_MOTOR
|
|||
|
||||
#define PWM_RANGE_MID 1500
|
||||
|
||||
static FAST_RAM_ZERO_INIT uint8_t motorCount;
|
||||
static FAST_RAM_ZERO_INIT float motorMixRange;
|
||||
static FAST_DATA_ZERO_INIT uint8_t motorCount;
|
||||
static FAST_DATA_ZERO_INIT float motorMixRange;
|
||||
|
||||
float FAST_RAM_ZERO_INIT motor[MAX_SUPPORTED_MOTORS];
|
||||
float FAST_DATA_ZERO_INIT motor[MAX_SUPPORTED_MOTORS];
|
||||
float motor_disarmed[MAX_SUPPORTED_MOTORS];
|
||||
|
||||
mixerMode_e currentMixerMode;
|
||||
|
@ -92,7 +92,7 @@ static motorMixer_t currentMixer[MAX_SUPPORTED_MOTORS];
|
|||
static motorMixer_t launchControlMixer[MAX_SUPPORTED_MOTORS];
|
||||
#endif
|
||||
|
||||
static FAST_RAM_ZERO_INIT int throttleAngleCorrection;
|
||||
static FAST_DATA_ZERO_INIT int throttleAngleCorrection;
|
||||
|
||||
static const motorMixer_t mixerQuadX[] = {
|
||||
{ 1.0f, -1.0f, 1.0f, -1.0f }, // REAR_R
|
||||
|
@ -284,21 +284,21 @@ const mixer_t mixers[] = {
|
|||
};
|
||||
#endif // !USE_QUAD_MIXER_ONLY
|
||||
|
||||
FAST_RAM_ZERO_INIT float motorOutputHigh, motorOutputLow;
|
||||
FAST_DATA_ZERO_INIT float motorOutputHigh, motorOutputLow;
|
||||
|
||||
static FAST_RAM_ZERO_INIT float disarmMotorOutput, deadbandMotor3dHigh, deadbandMotor3dLow;
|
||||
static FAST_RAM_ZERO_INIT float rcCommandThrottleRange;
|
||||
static FAST_DATA_ZERO_INIT float disarmMotorOutput, deadbandMotor3dHigh, deadbandMotor3dLow;
|
||||
static FAST_DATA_ZERO_INIT float rcCommandThrottleRange;
|
||||
#ifdef USE_DYN_IDLE
|
||||
static FAST_RAM_ZERO_INIT float idleMaxIncrease;
|
||||
static FAST_RAM_ZERO_INIT float idleThrottleOffset;
|
||||
static FAST_RAM_ZERO_INIT float idleMinMotorRps;
|
||||
static FAST_RAM_ZERO_INIT float idleP;
|
||||
static FAST_RAM_ZERO_INIT float oldMinRps;
|
||||
static FAST_DATA_ZERO_INIT float idleMaxIncrease;
|
||||
static FAST_DATA_ZERO_INIT float idleThrottleOffset;
|
||||
static FAST_DATA_ZERO_INIT float idleMinMotorRps;
|
||||
static FAST_DATA_ZERO_INIT float idleP;
|
||||
static FAST_DATA_ZERO_INIT float oldMinRps;
|
||||
#endif
|
||||
#if defined(USE_BATTERY_VOLTAGE_SAG_COMPENSATION)
|
||||
static FAST_RAM_ZERO_INIT float vbatSagCompensationFactor;
|
||||
static FAST_RAM_ZERO_INIT float vbatFull;
|
||||
static FAST_RAM_ZERO_INIT float vbatRangeToCompensate;
|
||||
static FAST_DATA_ZERO_INIT float vbatSagCompensationFactor;
|
||||
static FAST_DATA_ZERO_INIT float vbatFull;
|
||||
static FAST_DATA_ZERO_INIT float vbatRangeToCompensate;
|
||||
#endif
|
||||
|
||||
uint8_t getMotorCount(void)
|
||||
|
@ -498,13 +498,13 @@ void stopMotors(void)
|
|||
delay(50); // give the timers and ESCs a chance to react.
|
||||
}
|
||||
|
||||
static FAST_RAM_ZERO_INIT float throttle = 0;
|
||||
static FAST_RAM_ZERO_INIT float mixerThrottle = 0;
|
||||
static FAST_RAM_ZERO_INIT float motorOutputMin;
|
||||
static FAST_RAM_ZERO_INIT float motorRangeMin;
|
||||
static FAST_RAM_ZERO_INIT float motorRangeMax;
|
||||
static FAST_RAM_ZERO_INIT float motorOutputRange;
|
||||
static FAST_RAM_ZERO_INIT int8_t motorOutputMixSign;
|
||||
static FAST_DATA_ZERO_INIT float throttle = 0;
|
||||
static FAST_DATA_ZERO_INIT float mixerThrottle = 0;
|
||||
static FAST_DATA_ZERO_INIT float motorOutputMin;
|
||||
static FAST_DATA_ZERO_INIT float motorRangeMin;
|
||||
static FAST_DATA_ZERO_INIT float motorRangeMax;
|
||||
static FAST_DATA_ZERO_INIT float motorOutputRange;
|
||||
static FAST_DATA_ZERO_INIT int8_t motorOutputMixSign;
|
||||
|
||||
|
||||
static void calculateThrottleAndCurrentMotorEndpoints(timeUs_t currentTimeUs)
|
||||
|
|
|
@ -74,16 +74,16 @@ const char pidNames[] =
|
|||
"LEVEL;"
|
||||
"MAG;";
|
||||
|
||||
FAST_RAM_ZERO_INIT uint32_t targetPidLooptime;
|
||||
FAST_RAM_ZERO_INIT pidAxisData_t pidData[XYZ_AXIS_COUNT];
|
||||
FAST_RAM_ZERO_INIT pidRuntime_t pidRuntime;
|
||||
FAST_DATA_ZERO_INIT uint32_t targetPidLooptime;
|
||||
FAST_DATA_ZERO_INIT pidAxisData_t pidData[XYZ_AXIS_COUNT];
|
||||
FAST_DATA_ZERO_INIT pidRuntime_t pidRuntime;
|
||||
|
||||
#if defined(USE_ABSOLUTE_CONTROL)
|
||||
STATIC_UNIT_TESTED FAST_RAM_ZERO_INIT float axisError[XYZ_AXIS_COUNT];
|
||||
STATIC_UNIT_TESTED FAST_DATA_ZERO_INIT float axisError[XYZ_AXIS_COUNT];
|
||||
#endif
|
||||
|
||||
#if defined(USE_THROTTLE_BOOST)
|
||||
FAST_RAM_ZERO_INIT float throttleBoost;
|
||||
FAST_DATA_ZERO_INIT float throttleBoost;
|
||||
pt1Filter_t throttleLpf;
|
||||
#endif
|
||||
|
||||
|
@ -772,7 +772,7 @@ void FAST_CODE pidController(const pidProfile_t *pidProfile, timeUs_t currentTim
|
|||
{
|
||||
static float previousGyroRateDterm[XYZ_AXIS_COUNT];
|
||||
#ifdef USE_INTERPOLATED_SP
|
||||
static FAST_RAM_ZERO_INIT uint32_t lastFrameNumber;
|
||||
static FAST_DATA_ZERO_INIT uint32_t lastFrameNumber;
|
||||
#endif
|
||||
static float previousRawGyroRateDterm[XYZ_AXIS_COUNT];
|
||||
|
||||
|
|
|
@ -63,20 +63,20 @@ typedef struct rpmNotchFilter_s
|
|||
biquadFilter_t notch[XYZ_AXIS_COUNT][MAX_SUPPORTED_MOTORS][RPM_FILTER_MAXHARMONICS];
|
||||
} rpmNotchFilter_t;
|
||||
|
||||
FAST_RAM_ZERO_INIT static float erpmToHz;
|
||||
FAST_RAM_ZERO_INIT static float filteredMotorErpm[MAX_SUPPORTED_MOTORS];
|
||||
FAST_RAM_ZERO_INIT static float minMotorFrequency;
|
||||
FAST_RAM_ZERO_INIT static uint8_t numberFilters;
|
||||
FAST_RAM_ZERO_INIT static uint8_t numberRpmNotchFilters;
|
||||
FAST_RAM_ZERO_INIT static uint8_t filterUpdatesPerIteration;
|
||||
FAST_RAM_ZERO_INIT static float pidLooptime;
|
||||
FAST_RAM_ZERO_INIT static rpmNotchFilter_t filters[2];
|
||||
FAST_RAM_ZERO_INIT static rpmNotchFilter_t* gyroFilter;
|
||||
FAST_DATA_ZERO_INIT static float erpmToHz;
|
||||
FAST_DATA_ZERO_INIT static float filteredMotorErpm[MAX_SUPPORTED_MOTORS];
|
||||
FAST_DATA_ZERO_INIT static float minMotorFrequency;
|
||||
FAST_DATA_ZERO_INIT static uint8_t numberFilters;
|
||||
FAST_DATA_ZERO_INIT static uint8_t numberRpmNotchFilters;
|
||||
FAST_DATA_ZERO_INIT static uint8_t filterUpdatesPerIteration;
|
||||
FAST_DATA_ZERO_INIT static float pidLooptime;
|
||||
FAST_DATA_ZERO_INIT static rpmNotchFilter_t filters[2];
|
||||
FAST_DATA_ZERO_INIT static rpmNotchFilter_t* gyroFilter;
|
||||
|
||||
FAST_RAM_ZERO_INIT static uint8_t currentMotor;
|
||||
FAST_RAM_ZERO_INIT static uint8_t currentHarmonic;
|
||||
FAST_RAM_ZERO_INIT static uint8_t currentFilterNumber;
|
||||
FAST_RAM static rpmNotchFilter_t* currentFilter = &filters[0];
|
||||
FAST_DATA_ZERO_INIT static uint8_t currentMotor;
|
||||
FAST_DATA_ZERO_INIT static uint8_t currentHarmonic;
|
||||
FAST_DATA_ZERO_INIT static uint8_t currentFilterNumber;
|
||||
FAST_DATA static rpmNotchFilter_t* currentFilter = &filters[0];
|
||||
|
||||
|
||||
|
||||
|
@ -160,7 +160,7 @@ float rpmFilterGyro(int axis, float value)
|
|||
return applyFilter(gyroFilter, axis, value);
|
||||
}
|
||||
|
||||
FAST_RAM_ZERO_INIT static float motorFrequency[MAX_SUPPORTED_MOTORS];
|
||||
FAST_DATA_ZERO_INIT static float motorFrequency[MAX_SUPPORTED_MOTORS];
|
||||
|
||||
FAST_CODE_NOINLINE void rpmFilterUpdate()
|
||||
{
|
||||
|
|
|
@ -49,23 +49,23 @@
|
|||
// 2 - time spent in scheduler
|
||||
// 3 - time spent executing check function
|
||||
|
||||
static FAST_RAM_ZERO_INIT task_t *currentTask = NULL;
|
||||
static FAST_DATA_ZERO_INIT task_t *currentTask = NULL;
|
||||
|
||||
static FAST_RAM_ZERO_INIT uint32_t totalWaitingTasks;
|
||||
static FAST_RAM_ZERO_INIT uint32_t totalWaitingTasksSamples;
|
||||
static FAST_DATA_ZERO_INIT uint32_t totalWaitingTasks;
|
||||
static FAST_DATA_ZERO_INIT uint32_t totalWaitingTasksSamples;
|
||||
|
||||
static FAST_RAM_ZERO_INIT bool calculateTaskStatistics;
|
||||
FAST_RAM_ZERO_INIT uint16_t averageSystemLoadPercent = 0;
|
||||
static FAST_DATA_ZERO_INIT bool calculateTaskStatistics;
|
||||
FAST_DATA_ZERO_INIT uint16_t averageSystemLoadPercent = 0;
|
||||
|
||||
static FAST_RAM_ZERO_INIT int taskQueuePos = 0;
|
||||
STATIC_UNIT_TESTED FAST_RAM_ZERO_INIT int taskQueueSize = 0;
|
||||
static FAST_DATA_ZERO_INIT int taskQueuePos = 0;
|
||||
STATIC_UNIT_TESTED FAST_DATA_ZERO_INIT int taskQueueSize = 0;
|
||||
|
||||
static FAST_RAM int periodCalculationBasisOffset = offsetof(task_t, lastExecutedAtUs);
|
||||
static FAST_RAM_ZERO_INIT bool gyroEnabled;
|
||||
static FAST_DATA int periodCalculationBasisOffset = offsetof(task_t, lastExecutedAtUs);
|
||||
static FAST_DATA_ZERO_INIT bool gyroEnabled;
|
||||
|
||||
// No need for a linked list for the queue, since items are only inserted at startup
|
||||
|
||||
STATIC_UNIT_TESTED FAST_RAM_ZERO_INIT task_t* taskQueueArray[TASK_COUNT + 1]; // extra item for NULL pointer at end of queue
|
||||
STATIC_UNIT_TESTED FAST_DATA_ZERO_INIT task_t* taskQueueArray[TASK_COUNT + 1]; // extra item for NULL pointer at end of queue
|
||||
|
||||
void queueClear(void)
|
||||
{
|
||||
|
|
|
@ -88,7 +88,7 @@
|
|||
|
||||
#define CALIBRATING_ACC_CYCLES 400
|
||||
|
||||
FAST_RAM_ZERO_INIT acc_t acc; // acc access functions
|
||||
FAST_DATA_ZERO_INIT acc_t acc; // acc access functions
|
||||
|
||||
void resetRollAndPitchTrims(rollAndPitchTrims_t *rollAndPitchTrims)
|
||||
{
|
||||
|
|
|
@ -62,27 +62,27 @@
|
|||
#define USE_GYRO_SLEW_LIMITER
|
||||
#endif
|
||||
|
||||
FAST_RAM_ZERO_INIT gyro_t gyro;
|
||||
FAST_DATA_ZERO_INIT gyro_t gyro;
|
||||
|
||||
static FAST_RAM_ZERO_INIT bool overflowDetected;
|
||||
static FAST_DATA_ZERO_INIT bool overflowDetected;
|
||||
#ifdef USE_GYRO_OVERFLOW_CHECK
|
||||
static FAST_RAM_ZERO_INIT timeUs_t overflowTimeUs;
|
||||
static FAST_DATA_ZERO_INIT timeUs_t overflowTimeUs;
|
||||
#endif
|
||||
|
||||
#ifdef USE_YAW_SPIN_RECOVERY
|
||||
static FAST_RAM_ZERO_INIT bool yawSpinRecoveryEnabled;
|
||||
static FAST_RAM_ZERO_INIT int yawSpinRecoveryThreshold;
|
||||
static FAST_RAM_ZERO_INIT bool yawSpinDetected;
|
||||
static FAST_RAM_ZERO_INIT timeUs_t yawSpinTimeUs;
|
||||
static FAST_DATA_ZERO_INIT bool yawSpinRecoveryEnabled;
|
||||
static FAST_DATA_ZERO_INIT int yawSpinRecoveryThreshold;
|
||||
static FAST_DATA_ZERO_INIT bool yawSpinDetected;
|
||||
static FAST_DATA_ZERO_INIT timeUs_t yawSpinTimeUs;
|
||||
#endif
|
||||
|
||||
static FAST_RAM_ZERO_INIT float accumulatedMeasurements[XYZ_AXIS_COUNT];
|
||||
static FAST_RAM_ZERO_INIT float gyroPrevious[XYZ_AXIS_COUNT];
|
||||
static FAST_RAM_ZERO_INIT int accumulatedMeasurementCount;
|
||||
static FAST_DATA_ZERO_INIT float accumulatedMeasurements[XYZ_AXIS_COUNT];
|
||||
static FAST_DATA_ZERO_INIT float gyroPrevious[XYZ_AXIS_COUNT];
|
||||
static FAST_DATA_ZERO_INIT int accumulatedMeasurementCount;
|
||||
|
||||
static FAST_RAM_ZERO_INIT int16_t gyroSensorTemperature;
|
||||
static FAST_DATA_ZERO_INIT int16_t gyroSensorTemperature;
|
||||
|
||||
FAST_RAM uint8_t activePidLoopDenom = 1;
|
||||
FAST_DATA uint8_t activePidLoopDenom = 1;
|
||||
|
||||
static bool firstArmingCalibrationWasStarted = false;
|
||||
|
||||
|
|
|
@ -50,7 +50,7 @@
|
|||
#ifdef STM32F4
|
||||
#define USE_SRAM2
|
||||
#if defined(STM32F40_41xxx)
|
||||
#define USE_FAST_RAM
|
||||
#define USE_FAST_DATA
|
||||
#endif
|
||||
#define USE_DSHOT
|
||||
#define USE_DSHOT_BITBANG
|
||||
|
@ -82,7 +82,7 @@
|
|||
#ifdef STM32F7
|
||||
#define USE_SRAM2
|
||||
#define USE_ITCM_RAM
|
||||
#define USE_FAST_RAM
|
||||
#define USE_FAST_DATA
|
||||
#define USE_DSHOT
|
||||
#define USE_DSHOT_BITBANG
|
||||
#define USE_DSHOT_TELEMETRY
|
||||
|
@ -108,7 +108,7 @@
|
|||
|
||||
#ifdef STM32H7
|
||||
#define USE_ITCM_RAM
|
||||
#define USE_FAST_RAM
|
||||
#define USE_FAST_DATA
|
||||
#define USE_DSHOT
|
||||
#define USE_DSHOT_TELEMETRY
|
||||
#define USE_DSHOT_TELEMETRY_STATS
|
||||
|
@ -162,13 +162,13 @@
|
|||
#define CCM_CODE
|
||||
#endif
|
||||
|
||||
#ifdef USE_FAST_RAM
|
||||
#define FAST_RAM_ZERO_INIT __attribute__ ((section(".fastram_bss"), aligned(4)))
|
||||
#define FAST_RAM __attribute__ ((section(".fastram_data"), aligned(4)))
|
||||
#ifdef USE_FAST_DATA
|
||||
#define FAST_DATA_ZERO_INIT __attribute__ ((section(".fastram_bss"), aligned(4)))
|
||||
#define FAST_DATA __attribute__ ((section(".fastram_data"), aligned(4)))
|
||||
#else
|
||||
#define FAST_RAM_ZERO_INIT
|
||||
#define FAST_RAM
|
||||
#endif // USE_FAST_RAM
|
||||
#define FAST_DATA_ZERO_INIT
|
||||
#define FAST_DATA
|
||||
#endif // USE_FAST_DATA
|
||||
|
||||
#if defined(STM32F4) || defined (STM32H7)
|
||||
// Data in RAM which is guaranteed to not be reset on hot reboot
|
||||
|
|
|
@ -29,8 +29,8 @@
|
|||
#define NOINLINE
|
||||
#define FAST_CODE
|
||||
#define FAST_CODE_NOINLINE
|
||||
#define FAST_RAM_ZERO_INIT
|
||||
#define FAST_RAM
|
||||
#define FAST_DATA_ZERO_INIT
|
||||
#define FAST_DATA
|
||||
|
||||
#define PID_PROFILE_COUNT 3
|
||||
#define CONTROL_RATE_PROFILE_COUNT 6
|
||||
|
|
Loading…
Reference in New Issue