1
0
Fork 0
mirror of https://github.com/betaflight/betaflight.git synced 2025-07-16 04:45:24 +03:00

Rename FAST_RAM to FAST_DATA

This commit is contained in:
Sam Lane 2020-08-23 08:49:26 +01:00
parent da9bb85843
commit 4c99ad743d
32 changed files with 158 additions and 158 deletions

View file

@ -1,5 +1,5 @@
checks: check-target-independence \ checks: check-target-independence \
check-fastram-usage-correctness \ check-fastdata-usage-correctness \
check-platform-included \ check-platform-included \
check-unified-target-naming check-unified-target-naming
@ -13,17 +13,17 @@ check-target-independence:
fi; \ fi; \
done done
check-fastram-usage-correctness: check-fastdata-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*[,;]"); \ $(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 \ 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}"; \ echo "$${NON_TRIVIALLY_INITIALIZED}"; \
exit 1; \ exit 1; \
fi; \ fi; \
TRIVIALLY_INITIALIZED=$$(grep -Ern "\W?FAST_RAM\W.*;" src/main/ | grep -v "="); \ TRIVIALLY_INITIALIZED=$$(grep -Ern "\W?FAST_DATA\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*[,;]"); \ 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 \ 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}"; \ echo "$${TRIVIALLY_INITIALIZED}\n$${EXPLICITLY_TRIVIALLY_INITIALIZED}"; \
exit 1; \ exit 1; \
fi fi

View file

@ -156,7 +156,7 @@ SECTIONS
/* used during startup to initialized fastram_data */ /* used during startup to initialized fastram_data */
_sfastram_idata = LOADADDR(.fastram_data); _sfastram_idata = LOADADDR(.fastram_data);
/* Initialized FAST_RAM section for unsuspecting developers */ /* Initialized FAST_DATA section for unsuspecting developers */
.fastram_data : .fastram_data :
{ {
. = ALIGN(4); . = ALIGN(4);

View file

@ -197,7 +197,7 @@ SECTIONS
/* used during startup to initialized fastram_data */ /* used during startup to initialized fastram_data */
_sfastram_idata = LOADADDR(.fastram_data); _sfastram_idata = LOADADDR(.fastram_data);
/* Initialized FAST_RAM section for unsuspecting developers */ /* Initialized FAST_DATA section for unsuspecting developers */
.fastram_data : .fastram_data :
{ {
. = ALIGN(4); . = ALIGN(4);

View file

@ -165,7 +165,7 @@ SECTIONS
/* used during startup to initialized fastram_data */ /* used during startup to initialized fastram_data */
_sfastram_idata = LOADADDR(.fastram_data); _sfastram_idata = LOADADDR(.fastram_data);
/* Initialized FAST_RAM section for unsuspecting developers */ /* Initialized FAST_DATA section for unsuspecting developers */
.fastram_data : .fastram_data :
{ {
. = ALIGN(4); . = ALIGN(4);

View file

@ -131,7 +131,7 @@ SECTIONS
/* used during startup to initialized fastram_data */ /* used during startup to initialized fastram_data */
_sfastram_idata = LOADADDR(.fastram_data); _sfastram_idata = LOADADDR(.fastram_data);
/* Initialized FAST_RAM section for unsuspecting developers */ /* Initialized FAST_DATA section for unsuspecting developers */
.fastram_data : .fastram_data :
{ {
. = ALIGN(4); . = ALIGN(4);

View file

@ -190,7 +190,7 @@ SECTIONS
/* used during startup to initialized fastram_data */ /* used during startup to initialized fastram_data */
_sfastram_idata = LOADADDR(.fastram_data); _sfastram_idata = LOADADDR(.fastram_data);
/* Initialized FAST_RAM section for unsuspecting developers */ /* Initialized FAST_DATA section for unsuspecting developers */
.fastram_data : .fastram_data :
{ {
. = ALIGN(4); . = ALIGN(4);

View file

@ -41,7 +41,7 @@
adcOperatingConfig_t adcOperatingConfig[ADC_CHANNEL_COUNT]; adcOperatingConfig_t adcOperatingConfig[ADC_CHANNEL_COUNT];
#if defined(STM32F7) #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 #else
volatile uint16_t adcValues[ADC_CHANNEL_COUNT]; volatile uint16_t adcValues[ADC_CHANNEL_COUNT];
#endif #endif

View file

@ -132,7 +132,7 @@ FAST_CODE uint16_t prepareDshotPacket(dshotProtocolControl_t *pcb)
} }
#ifdef USE_DSHOT_TELEMETRY #ifdef USE_DSHOT_TELEMETRY
FAST_RAM_ZERO_INIT dshotTelemetryState_t dshotTelemetryState; FAST_DATA_ZERO_INIT dshotTelemetryState_t dshotTelemetryState;
uint16_t getDshotTelemetry(uint8_t index) uint16_t getDshotTelemetry(uint8_t index)
{ {
@ -142,7 +142,7 @@ uint16_t getDshotTelemetry(uint8_t index)
#endif #endif
#ifdef USE_DSHOT_TELEMETRY_STATS #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) void updateDshotTelemetryQuality(dshotTelemetryQuality_t *qualityStats, bool packetValid, timeMs_t currentTimeMs)
{ {

View file

@ -54,15 +54,15 @@
#define dbgPinLo(x) #define dbgPinLo(x)
#endif #endif
FAST_RAM_ZERO_INIT bbPacer_t bbPacers[MAX_MOTOR_PACERS]; // TIM1 or TIM8 FAST_DATA_ZERO_INIT bbPacer_t bbPacers[MAX_MOTOR_PACERS]; // TIM1 or TIM8
FAST_RAM_ZERO_INIT int usedMotorPacers = 0; FAST_DATA_ZERO_INIT int usedMotorPacers = 0;
FAST_RAM_ZERO_INIT bbPort_t bbPorts[MAX_SUPPORTED_MOTOR_PORTS]; FAST_DATA_ZERO_INIT bbPort_t bbPorts[MAX_SUPPORTED_MOTOR_PORTS];
FAST_RAM_ZERO_INIT int usedMotorPorts; 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; dshotBitbangStatus_e bbStatus;
// For MCUs that use MPU to control DMA coherency, there might be a performance hit // 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_OUTPUT_BUFFER_ATTRIBUTE
#define BB_INPUT_BUFFER_ATTRIBUTE #define BB_INPUT_BUFFER_ATTRIBUTE
#elif defined(STM32F7) #elif defined(STM32F7)
#define BB_OUTPUT_BUFFER_ATTRIBUTE FAST_RAM_ZERO_INIT #define BB_OUTPUT_BUFFER_ATTRIBUTE FAST_DATA_ZERO_INIT
#define BB_INPUT_BUFFER_ATTRIBUTE FAST_RAM_ZERO_INIT #define BB_INPUT_BUFFER_ATTRIBUTE FAST_DATA_ZERO_INIT
#elif defined(STM32H7) #elif defined(STM32H7)
#define BB_OUTPUT_BUFFER_ATTRIBUTE DMA_RAM #define BB_OUTPUT_BUFFER_ATTRIBUTE DMA_RAM
#define BB_INPUT_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]; BB_INPUT_BUFFER_ATTRIBUTE uint16_t bbInputBuffer[DSHOT_BITBANG_PORT_INPUT_BUFFER_LENGTH * MAX_SUPPORTED_MOTOR_PORTS];
uint8_t bbPuPdMode; uint8_t bbPuPdMode;
FAST_RAM_ZERO_INIT timeUs_t dshotFrameUs; FAST_DATA_ZERO_INIT timeUs_t dshotFrameUs;
const timerHardware_t bbTimerHardware[] = { const timerHardware_t bbTimerHardware[] = {
@ -104,8 +104,8 @@ const timerHardware_t bbTimerHardware[] = {
#endif #endif
}; };
static FAST_RAM_ZERO_INIT motorDevice_t bbDevice; static FAST_DATA_ZERO_INIT motorDevice_t bbDevice;
static FAST_RAM_ZERO_INIT timeUs_t lastSendUs; static FAST_DATA_ZERO_INIT timeUs_t lastSendUs;
static motorPwmProtocolTypes_e motorPwmProtocol; static motorPwmProtocolTypes_e motorPwmProtocol;

View file

@ -174,13 +174,13 @@ typedef struct bbMotor_s {
} bbMotor_t; } bbMotor_t;
#define MAX_MOTOR_PACERS 4 #define MAX_MOTOR_PACERS 4
extern FAST_RAM_ZERO_INIT bbPacer_t bbPacers[MAX_MOTOR_PACERS]; // TIM1 or TIM8 extern FAST_DATA_ZERO_INIT bbPacer_t bbPacers[MAX_MOTOR_PACERS]; // TIM1 or TIM8
extern FAST_RAM_ZERO_INIT int usedMotorPacers; extern FAST_DATA_ZERO_INIT int usedMotorPacers;
extern FAST_RAM_ZERO_INIT bbPort_t bbPorts[MAX_SUPPORTED_MOTOR_PORTS]; extern FAST_DATA_ZERO_INIT bbPort_t bbPorts[MAX_SUPPORTED_MOTOR_PORTS];
extern FAST_RAM_ZERO_INIT int usedMotorPorts; 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; extern uint8_t bbPuPdMode;

View file

@ -45,13 +45,13 @@ DSHOT_DMA_BUFFER_ATTRIBUTE DSHOT_DMA_BUFFER_UNIT dshotBurstDmaBuffer[MAX_DMA_TIM
#endif #endif
#ifdef USE_DSHOT_DMAR #ifdef USE_DSHOT_DMAR
FAST_RAM_ZERO_INIT bool useBurstDshot = false; FAST_DATA_ZERO_INIT bool useBurstDshot = false;
#endif #endif
#ifdef USE_DSHOT_TELEMETRY #ifdef USE_DSHOT_TELEMETRY
FAST_RAM_ZERO_INIT bool useDshotTelemetry = false; FAST_DATA_ZERO_INIT bool useDshotTelemetry = false;
#endif #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) FAST_CODE uint8_t loadDmaBufferDshot(uint32_t *dmaBuffer, int stride, uint16_t packet)
{ {
@ -149,7 +149,7 @@ static motorVTable_t dshotPwmVTable = {
.shutdown = dshotPwmShutdown, .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) motorDevice_t *dshotPwmDevInit(const motorDevConfig_t *motorConfig, uint16_t idlePulse, uint8_t motorCount, bool useUnsyncedPwm)
{ {

View file

@ -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 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 loadDmaBufferDshot(uint32_t *dmaBuffer, int stride, uint16_t packet);
uint8_t loadDmaBufferProshot(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) #elif defined(STM32G4)
#define DSHOT_DMA_BUFFER_ATTRIBUTE DMA_RAM_W #define DSHOT_DMA_BUFFER_ATTRIBUTE DMA_RAM_W
#elif defined(STM32F7) #elif defined(STM32F7)
#define DSHOT_DMA_BUFFER_ATTRIBUTE FAST_RAM_ZERO_INIT #define DSHOT_DMA_BUFFER_ATTRIBUTE FAST_DATA_ZERO_INIT
#else #else
#define DSHOT_DMA_BUFFER_ATTRIBUTE // None #define DSHOT_DMA_BUFFER_ATTRIBUTE // None
#endif #endif

View file

@ -47,7 +47,7 @@
#if defined(STM32F1) || defined(STM32F3) #if defined(STM32F1) || defined(STM32F3)
uint8_t ledStripDMABuffer[WS2811_DMA_BUFFER_SIZE]; uint8_t ledStripDMABuffer[WS2811_DMA_BUFFER_SIZE];
#elif defined(STM32F7) #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) #elif defined(STM32H7)
DMA_RAM uint32_t ledStripDMABuffer[WS2811_DMA_BUFFER_SIZE]; DMA_RAM uint32_t ledStripDMABuffer[WS2811_DMA_BUFFER_SIZE];
#else #else

View file

@ -42,7 +42,7 @@
#include "motor.h" #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 motorProtocolEnabled = false;
static bool motorProtocolDshot = false; static bool motorProtocolDshot = false;

View file

@ -35,7 +35,7 @@
#include "pg/motor.h" #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) 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; *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) static void pwmWriteUnused(uint8_t index, float value)
{ {

View file

@ -55,7 +55,7 @@ typedef struct {
IO_t io; IO_t io;
} pwmOutputPort_t; } 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; struct motorDevConfig_s;
motorDevice_t *motorPwmDevInit(const struct motorDevConfig_s *motorDevConfig, uint16_t idlePulse, uint8_t motorCount, bool useUnsyncedPwm); motorDevice_t *motorPwmDevInit(const struct motorDevConfig_s *motorDevConfig, uint16_t idlePulse, uint8_t motorCount, bool useUnsyncedPwm);

View file

@ -50,10 +50,10 @@
#include "pwm_output_dshot_shared.h" #include "pwm_output_dshot_shared.h"
FAST_RAM_ZERO_INIT uint8_t dmaMotorTimerCount = 0; FAST_DATA_ZERO_INIT uint8_t dmaMotorTimerCount = 0;
#ifdef STM32F7 #ifdef STM32F7
FAST_RAM_ZERO_INIT motorDmaTimer_t dmaMotorTimers[MAX_DMA_TIMERS]; FAST_DATA_ZERO_INIT motorDmaTimer_t dmaMotorTimers[MAX_DMA_TIMERS];
FAST_RAM_ZERO_INIT motorDmaOutput_t dmaMotors[MAX_SUPPORTED_MOTORS]; FAST_DATA_ZERO_INIT motorDmaOutput_t dmaMotors[MAX_SUPPORTED_MOTORS];
#else #else
motorDmaTimer_t dmaMotorTimers[MAX_DMA_TIMERS]; motorDmaTimer_t dmaMotorTimers[MAX_DMA_TIMERS];
motorDmaOutput_t dmaMotors[MAX_SUPPORTED_MOTORS]; motorDmaOutput_t dmaMotors[MAX_SUPPORTED_MOTORS];
@ -62,9 +62,9 @@ motorDmaOutput_t dmaMotors[MAX_SUPPORTED_MOTORS];
#ifdef USE_DSHOT_TELEMETRY #ifdef USE_DSHOT_TELEMETRY
// TODO remove once debugging no longer needed // 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 #endif
motorDmaOutput_t *getMotorDmaOutput(uint8_t index) motorDmaOutput_t *getMotorDmaOutput(uint8_t index)

View file

@ -25,10 +25,10 @@
#include <string.h> #include <string.h>
#endif #endif
extern FAST_RAM_ZERO_INIT uint8_t dmaMotorTimerCount; extern FAST_DATA_ZERO_INIT uint8_t dmaMotorTimerCount;
#if defined(STM32F7) || defined(STM32H7) #if defined(STM32F7) || defined(STM32H7)
extern FAST_RAM_ZERO_INIT motorDmaTimer_t dmaMotorTimers[MAX_DMA_TIMERS]; extern FAST_DATA_ZERO_INIT motorDmaTimer_t dmaMotorTimers[MAX_DMA_TIMERS];
extern FAST_RAM_ZERO_INIT motorDmaOutput_t dmaMotors[MAX_SUPPORTED_MOTORS]; extern FAST_DATA_ZERO_INIT motorDmaOutput_t dmaMotors[MAX_SUPPORTED_MOTORS];
#else #else
extern motorDmaTimer_t dmaMotorTimers[MAX_DMA_TIMERS]; extern motorDmaTimer_t dmaMotorTimers[MAX_DMA_TIMERS];
extern motorDmaOutput_t dmaMotors[MAX_SUPPORTED_MOTORS]; extern motorDmaOutput_t dmaMotors[MAX_SUPPORTED_MOTORS];
@ -38,14 +38,14 @@ extern motorDmaOutput_t dmaMotors[MAX_SUPPORTED_MOTORS];
extern uint32_t readDoneCount; extern uint32_t readDoneCount;
// TODO remove once debugging no longer needed // 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 { typedef struct dshotDMAHandlerCycleCounters_s {
uint32_t irqAt; uint32_t irqAt;
uint32_t changeDirectionCompletedAt; uint32_t changeDirectionCompletedAt;
} dshotDMAHandlerCycleCounters_t; } dshotDMAHandlerCycleCounters_t;
FAST_RAM_ZERO_INIT extern dshotDMAHandlerCycleCounters_t dshotDMAHandlerCycleCounters; FAST_DATA_ZERO_INIT extern dshotDMAHandlerCycleCounters_t dshotDMAHandlerCycleCounters;
#endif #endif

View file

@ -52,8 +52,8 @@
#define UART_TX_BUFFER_ATTRIBUTE DMA_RAM_W // SRAM MPU NOT_BUFFERABLE #define UART_TX_BUFFER_ATTRIBUTE DMA_RAM_W // SRAM MPU NOT_BUFFERABLE
#define UART_RX_BUFFER_ATTRIBUTE DMA_RAM_R // SRAM MPU NOT CACHABLE #define UART_RX_BUFFER_ATTRIBUTE DMA_RAM_R // SRAM MPU NOT CACHABLE
#elif defined(STM32F7) #elif defined(STM32F7)
#define UART_TX_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_RAM_ZERO_INIT // DTCM RAM #define UART_RX_BUFFER_ATTRIBUTE FAST_DATA_ZERO_INIT // DTCM RAM
#elif defined(STM32F4) || defined(STM32F3) || defined(STM32F1) #elif defined(STM32F4) || defined(STM32F3) || defined(STM32F1)
#define UART_TX_BUFFER_ATTRIBUTE // NONE #define UART_TX_BUFFER_ATTRIBUTE // NONE
#define UART_RX_BUFFER_ATTRIBUTE // NONE #define UART_RX_BUFFER_ATTRIBUTE // NONE

View file

@ -41,8 +41,8 @@
#include "drivers/serial_uart.h" #include "drivers/serial_uart.h"
#include "drivers/serial_uart_impl.h" #include "drivers/serial_uart_impl.h"
FAST_RAM_ZERO_INIT uartDevice_t uartDevice[UARTDEV_COUNT]; // Only those configured in target.h FAST_DATA_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 *uartDevmap[UARTDEV_COUNT_MAX]; // Full array
void uartPinConfigure(const serialPinConfig_t *pSerialPinConfig) void uartPinConfigure(const serialPinConfig_t *pSerialPinConfig)
{ {

View file

@ -264,8 +264,8 @@ void initialiseMemorySections(void)
memcpy(&ccm_code_start, &ccm_code, (size_t) (&ccm_code_end - &ccm_code_start)); memcpy(&ccm_code_start, &ccm_code, (size_t) (&ccm_code_end - &ccm_code_start));
#endif #endif
#ifdef USE_FAST_RAM #ifdef USE_FAST_DATA
/* Load FAST_RAM variable intializers into DTCM RAM */ /* Load FAST_DATA variable intializers into DTCM RAM */
extern uint8_t _sfastram_data; extern uint8_t _sfastram_data;
extern uint8_t _efastram_data; extern uint8_t _efastram_data;
extern uint8_t _sfastram_idata; extern uint8_t _sfastram_idata;

View file

@ -144,7 +144,7 @@ enum {
int16_t magHold; int16_t magHold;
#endif #endif
static FAST_RAM_ZERO_INIT uint8_t pidUpdateCounter; static FAST_DATA_ZERO_INIT uint8_t pidUpdateCounter;
static bool flipOverAfterCrashActive = false; static bool flipOverAfterCrashActive = false;

View file

@ -74,8 +74,8 @@ static bool isRxDataNew = false;
static float rcCommandDivider = 500.0f; static float rcCommandDivider = 500.0f;
static float rcCommandYawDivider = 500.0f; static float rcCommandYawDivider = 500.0f;
FAST_RAM_ZERO_INIT uint8_t interpolationChannels; FAST_DATA_ZERO_INIT uint8_t interpolationChannels;
static FAST_RAM_ZERO_INIT uint32_t rcFrameNumber; static FAST_DATA_ZERO_INIT uint32_t rcFrameNumber;
enum { enum {
ROLL_FLAG = 1 << ROLL, ROLL_FLAG = 1 << ROLL,
@ -96,7 +96,7 @@ enum {
#define RC_SMOOTHING_RX_RATE_MAX_US 50000 // 50ms or 20hz #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 #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 #endif // USE_RC_SMOOTHING_FILTER
uint32_t getRcFrameNumber() uint32_t getRcFrameNumber()
@ -315,9 +315,9 @@ static void checkForThrottleErrorResetState(uint16_t rxRefreshRate)
static FAST_CODE uint8_t processRcInterpolation(void) static FAST_CODE uint8_t processRcInterpolation(void)
{ {
static FAST_RAM_ZERO_INIT float rcCommandInterp[4]; static FAST_DATA_ZERO_INIT float rcCommandInterp[4];
static FAST_RAM_ZERO_INIT float rcStepSize[4]; static FAST_DATA_ZERO_INIT float rcStepSize[4];
static FAST_RAM_ZERO_INIT int16_t rcInterpolationStepCount; static FAST_DATA_ZERO_INIT int16_t rcInterpolationStepCount;
uint16_t rxRefreshRate; uint16_t rxRefreshRate;
uint8_t updatedChannel = 0; uint8_t updatedChannel = 0;
@ -518,10 +518,10 @@ FAST_CODE_NOINLINE bool rcSmoothingAutoCalculate(void)
static FAST_CODE uint8_t processRcSmoothingFilter(void) static FAST_CODE uint8_t processRcSmoothingFilter(void)
{ {
uint8_t updatedChannel = 0; uint8_t updatedChannel = 0;
static FAST_RAM_ZERO_INIT float lastRxData[4]; static FAST_DATA_ZERO_INIT float lastRxData[4];
static FAST_RAM_ZERO_INIT bool initialized; static FAST_DATA_ZERO_INIT bool initialized;
static FAST_RAM_ZERO_INIT timeMs_t validRxFrameTimeMs; static FAST_DATA_ZERO_INIT timeMs_t validRxFrameTimeMs;
static FAST_RAM_ZERO_INIT bool calculateCutoffs; static FAST_DATA_ZERO_INIT bool calculateCutoffs;
// first call initialization // first call initialization
if (!initialized) { if (!initialized) {

View file

@ -86,20 +86,20 @@
#define DYN_NOTCH_CALC_TICKS (XYZ_AXIS_COUNT * 4) // 4 steps per axis #define DYN_NOTCH_CALC_TICKS (XYZ_AXIS_COUNT * 4) // 4 steps per axis
#define DYN_NOTCH_OSD_MIN_THROTTLE 20 #define DYN_NOTCH_OSD_MIN_THROTTLE 20
static uint16_t FAST_RAM_ZERO_INIT fftSamplingRateHz; static uint16_t FAST_DATA_ZERO_INIT fftSamplingRateHz;
static float FAST_RAM_ZERO_INIT fftResolution; static float FAST_DATA_ZERO_INIT fftResolution;
static uint8_t FAST_RAM_ZERO_INIT fftStartBin; static uint8_t FAST_DATA_ZERO_INIT fftStartBin;
static float FAST_RAM_ZERO_INIT dynNotchQ; static float FAST_DATA_ZERO_INIT dynNotchQ;
static float FAST_RAM_ZERO_INIT dynNotch1Ctr; static float FAST_DATA_ZERO_INIT dynNotch1Ctr;
static float FAST_RAM_ZERO_INIT dynNotch2Ctr; static float FAST_DATA_ZERO_INIT dynNotch2Ctr;
static uint16_t FAST_RAM_ZERO_INIT dynNotchMinHz; static uint16_t FAST_DATA_ZERO_INIT dynNotchMinHz;
static uint16_t FAST_RAM_ZERO_INIT dynNotchMaxHz; static uint16_t FAST_DATA_ZERO_INIT dynNotchMaxHz;
static bool FAST_RAM dualNotch = true; static bool FAST_DATA dualNotch = true;
static uint16_t FAST_RAM_ZERO_INIT dynNotchMaxFFT; static uint16_t FAST_DATA_ZERO_INIT dynNotchMaxFFT;
static float FAST_RAM_ZERO_INIT smoothFactor; static float FAST_DATA_ZERO_INIT smoothFactor;
static uint8_t FAST_RAM_ZERO_INIT samples; static uint8_t FAST_DATA_ZERO_INIT samples;
// Hanning window, see https://en.wikipedia.org/wiki/Window_function#Hann_.28Hanning.29_window // 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) void gyroDataAnalyseInit(uint32_t targetLooptimeUs)
{ {

View file

@ -79,10 +79,10 @@ PG_REGISTER_ARRAY(motorMixer_t, MAX_SUPPORTED_MOTORS, customMotorMixer, PG_MOTOR
#define PWM_RANGE_MID 1500 #define PWM_RANGE_MID 1500
static FAST_RAM_ZERO_INIT uint8_t motorCount; static FAST_DATA_ZERO_INIT uint8_t motorCount;
static FAST_RAM_ZERO_INIT float motorMixRange; 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]; float motor_disarmed[MAX_SUPPORTED_MOTORS];
mixerMode_e currentMixerMode; mixerMode_e currentMixerMode;
@ -92,7 +92,7 @@ static motorMixer_t currentMixer[MAX_SUPPORTED_MOTORS];
static motorMixer_t launchControlMixer[MAX_SUPPORTED_MOTORS]; static motorMixer_t launchControlMixer[MAX_SUPPORTED_MOTORS];
#endif #endif
static FAST_RAM_ZERO_INIT int throttleAngleCorrection; static FAST_DATA_ZERO_INIT int throttleAngleCorrection;
static const motorMixer_t mixerQuadX[] = { static const motorMixer_t mixerQuadX[] = {
{ 1.0f, -1.0f, 1.0f, -1.0f }, // REAR_R { 1.0f, -1.0f, 1.0f, -1.0f }, // REAR_R
@ -284,21 +284,21 @@ const mixer_t mixers[] = {
}; };
#endif // !USE_QUAD_MIXER_ONLY #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_DATA_ZERO_INIT float disarmMotorOutput, deadbandMotor3dHigh, deadbandMotor3dLow;
static FAST_RAM_ZERO_INIT float rcCommandThrottleRange; static FAST_DATA_ZERO_INIT float rcCommandThrottleRange;
#ifdef USE_DYN_IDLE #ifdef USE_DYN_IDLE
static FAST_RAM_ZERO_INIT float idleMaxIncrease; static FAST_DATA_ZERO_INIT float idleMaxIncrease;
static FAST_RAM_ZERO_INIT float idleThrottleOffset; static FAST_DATA_ZERO_INIT float idleThrottleOffset;
static FAST_RAM_ZERO_INIT float idleMinMotorRps; static FAST_DATA_ZERO_INIT float idleMinMotorRps;
static FAST_RAM_ZERO_INIT float idleP; static FAST_DATA_ZERO_INIT float idleP;
static FAST_RAM_ZERO_INIT float oldMinRps; static FAST_DATA_ZERO_INIT float oldMinRps;
#endif #endif
#if defined(USE_BATTERY_VOLTAGE_SAG_COMPENSATION) #if defined(USE_BATTERY_VOLTAGE_SAG_COMPENSATION)
static FAST_RAM_ZERO_INIT float vbatSagCompensationFactor; static FAST_DATA_ZERO_INIT float vbatSagCompensationFactor;
static FAST_RAM_ZERO_INIT float vbatFull; static FAST_DATA_ZERO_INIT float vbatFull;
static FAST_RAM_ZERO_INIT float vbatRangeToCompensate; static FAST_DATA_ZERO_INIT float vbatRangeToCompensate;
#endif #endif
uint8_t getMotorCount(void) uint8_t getMotorCount(void)
@ -498,13 +498,13 @@ void stopMotors(void)
delay(50); // give the timers and ESCs a chance to react. delay(50); // give the timers and ESCs a chance to react.
} }
static FAST_RAM_ZERO_INIT float throttle = 0; static FAST_DATA_ZERO_INIT float throttle = 0;
static FAST_RAM_ZERO_INIT float mixerThrottle = 0; static FAST_DATA_ZERO_INIT float mixerThrottle = 0;
static FAST_RAM_ZERO_INIT float motorOutputMin; static FAST_DATA_ZERO_INIT float motorOutputMin;
static FAST_RAM_ZERO_INIT float motorRangeMin; static FAST_DATA_ZERO_INIT float motorRangeMin;
static FAST_RAM_ZERO_INIT float motorRangeMax; static FAST_DATA_ZERO_INIT float motorRangeMax;
static FAST_RAM_ZERO_INIT float motorOutputRange; static FAST_DATA_ZERO_INIT float motorOutputRange;
static FAST_RAM_ZERO_INIT int8_t motorOutputMixSign; static FAST_DATA_ZERO_INIT int8_t motorOutputMixSign;
static void calculateThrottleAndCurrentMotorEndpoints(timeUs_t currentTimeUs) static void calculateThrottleAndCurrentMotorEndpoints(timeUs_t currentTimeUs)

View file

@ -74,16 +74,16 @@ const char pidNames[] =
"LEVEL;" "LEVEL;"
"MAG;"; "MAG;";
FAST_RAM_ZERO_INIT uint32_t targetPidLooptime; FAST_DATA_ZERO_INIT uint32_t targetPidLooptime;
FAST_RAM_ZERO_INIT pidAxisData_t pidData[XYZ_AXIS_COUNT]; FAST_DATA_ZERO_INIT pidAxisData_t pidData[XYZ_AXIS_COUNT];
FAST_RAM_ZERO_INIT pidRuntime_t pidRuntime; FAST_DATA_ZERO_INIT pidRuntime_t pidRuntime;
#if defined(USE_ABSOLUTE_CONTROL) #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 #endif
#if defined(USE_THROTTLE_BOOST) #if defined(USE_THROTTLE_BOOST)
FAST_RAM_ZERO_INIT float throttleBoost; FAST_DATA_ZERO_INIT float throttleBoost;
pt1Filter_t throttleLpf; pt1Filter_t throttleLpf;
#endif #endif
@ -772,7 +772,7 @@ void FAST_CODE pidController(const pidProfile_t *pidProfile, timeUs_t currentTim
{ {
static float previousGyroRateDterm[XYZ_AXIS_COUNT]; static float previousGyroRateDterm[XYZ_AXIS_COUNT];
#ifdef USE_INTERPOLATED_SP #ifdef USE_INTERPOLATED_SP
static FAST_RAM_ZERO_INIT uint32_t lastFrameNumber; static FAST_DATA_ZERO_INIT uint32_t lastFrameNumber;
#endif #endif
static float previousRawGyroRateDterm[XYZ_AXIS_COUNT]; static float previousRawGyroRateDterm[XYZ_AXIS_COUNT];

View file

@ -63,20 +63,20 @@ typedef struct rpmNotchFilter_s
biquadFilter_t notch[XYZ_AXIS_COUNT][MAX_SUPPORTED_MOTORS][RPM_FILTER_MAXHARMONICS]; biquadFilter_t notch[XYZ_AXIS_COUNT][MAX_SUPPORTED_MOTORS][RPM_FILTER_MAXHARMONICS];
} rpmNotchFilter_t; } rpmNotchFilter_t;
FAST_RAM_ZERO_INIT static float erpmToHz; FAST_DATA_ZERO_INIT static float erpmToHz;
FAST_RAM_ZERO_INIT static float filteredMotorErpm[MAX_SUPPORTED_MOTORS]; FAST_DATA_ZERO_INIT static float filteredMotorErpm[MAX_SUPPORTED_MOTORS];
FAST_RAM_ZERO_INIT static float minMotorFrequency; FAST_DATA_ZERO_INIT static float minMotorFrequency;
FAST_RAM_ZERO_INIT static uint8_t numberFilters; FAST_DATA_ZERO_INIT static uint8_t numberFilters;
FAST_RAM_ZERO_INIT static uint8_t numberRpmNotchFilters; FAST_DATA_ZERO_INIT static uint8_t numberRpmNotchFilters;
FAST_RAM_ZERO_INIT static uint8_t filterUpdatesPerIteration; FAST_DATA_ZERO_INIT static uint8_t filterUpdatesPerIteration;
FAST_RAM_ZERO_INIT static float pidLooptime; FAST_DATA_ZERO_INIT static float pidLooptime;
FAST_RAM_ZERO_INIT static rpmNotchFilter_t filters[2]; FAST_DATA_ZERO_INIT static rpmNotchFilter_t filters[2];
FAST_RAM_ZERO_INIT static rpmNotchFilter_t* gyroFilter; FAST_DATA_ZERO_INIT static rpmNotchFilter_t* gyroFilter;
FAST_RAM_ZERO_INIT static uint8_t currentMotor; FAST_DATA_ZERO_INIT static uint8_t currentMotor;
FAST_RAM_ZERO_INIT static uint8_t currentHarmonic; FAST_DATA_ZERO_INIT static uint8_t currentHarmonic;
FAST_RAM_ZERO_INIT static uint8_t currentFilterNumber; FAST_DATA_ZERO_INIT static uint8_t currentFilterNumber;
FAST_RAM static rpmNotchFilter_t* currentFilter = &filters[0]; FAST_DATA static rpmNotchFilter_t* currentFilter = &filters[0];
@ -160,7 +160,7 @@ float rpmFilterGyro(int axis, float value)
return applyFilter(gyroFilter, axis, 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() FAST_CODE_NOINLINE void rpmFilterUpdate()
{ {

View file

@ -49,23 +49,23 @@
// 2 - time spent in scheduler // 2 - time spent in scheduler
// 3 - time spent executing check function // 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_DATA_ZERO_INIT uint32_t totalWaitingTasks;
static FAST_RAM_ZERO_INIT uint32_t totalWaitingTasksSamples; static FAST_DATA_ZERO_INIT uint32_t totalWaitingTasksSamples;
static FAST_RAM_ZERO_INIT bool calculateTaskStatistics; static FAST_DATA_ZERO_INIT bool calculateTaskStatistics;
FAST_RAM_ZERO_INIT uint16_t averageSystemLoadPercent = 0; FAST_DATA_ZERO_INIT uint16_t averageSystemLoadPercent = 0;
static FAST_RAM_ZERO_INIT int taskQueuePos = 0; static FAST_DATA_ZERO_INIT int taskQueuePos = 0;
STATIC_UNIT_TESTED FAST_RAM_ZERO_INIT int taskQueueSize = 0; STATIC_UNIT_TESTED FAST_DATA_ZERO_INIT int taskQueueSize = 0;
static FAST_RAM int periodCalculationBasisOffset = offsetof(task_t, lastExecutedAtUs); static FAST_DATA int periodCalculationBasisOffset = offsetof(task_t, lastExecutedAtUs);
static FAST_RAM_ZERO_INIT bool gyroEnabled; static FAST_DATA_ZERO_INIT bool gyroEnabled;
// No need for a linked list for the queue, since items are only inserted at startup // 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) void queueClear(void)
{ {

View file

@ -88,7 +88,7 @@
#define CALIBRATING_ACC_CYCLES 400 #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) void resetRollAndPitchTrims(rollAndPitchTrims_t *rollAndPitchTrims)
{ {

View file

@ -62,27 +62,27 @@
#define USE_GYRO_SLEW_LIMITER #define USE_GYRO_SLEW_LIMITER
#endif #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 #ifdef USE_GYRO_OVERFLOW_CHECK
static FAST_RAM_ZERO_INIT timeUs_t overflowTimeUs; static FAST_DATA_ZERO_INIT timeUs_t overflowTimeUs;
#endif #endif
#ifdef USE_YAW_SPIN_RECOVERY #ifdef USE_YAW_SPIN_RECOVERY
static FAST_RAM_ZERO_INIT bool yawSpinRecoveryEnabled; static FAST_DATA_ZERO_INIT bool yawSpinRecoveryEnabled;
static FAST_RAM_ZERO_INIT int yawSpinRecoveryThreshold; static FAST_DATA_ZERO_INIT int yawSpinRecoveryThreshold;
static FAST_RAM_ZERO_INIT bool yawSpinDetected; static FAST_DATA_ZERO_INIT bool yawSpinDetected;
static FAST_RAM_ZERO_INIT timeUs_t yawSpinTimeUs; static FAST_DATA_ZERO_INIT timeUs_t yawSpinTimeUs;
#endif #endif
static FAST_RAM_ZERO_INIT float accumulatedMeasurements[XYZ_AXIS_COUNT]; static FAST_DATA_ZERO_INIT float accumulatedMeasurements[XYZ_AXIS_COUNT];
static FAST_RAM_ZERO_INIT float gyroPrevious[XYZ_AXIS_COUNT]; static FAST_DATA_ZERO_INIT float gyroPrevious[XYZ_AXIS_COUNT];
static FAST_RAM_ZERO_INIT int accumulatedMeasurementCount; 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; static bool firstArmingCalibrationWasStarted = false;

View file

@ -50,7 +50,7 @@
#ifdef STM32F4 #ifdef STM32F4
#define USE_SRAM2 #define USE_SRAM2
#if defined(STM32F40_41xxx) #if defined(STM32F40_41xxx)
#define USE_FAST_RAM #define USE_FAST_DATA
#endif #endif
#define USE_DSHOT #define USE_DSHOT
#define USE_DSHOT_BITBANG #define USE_DSHOT_BITBANG
@ -82,7 +82,7 @@
#ifdef STM32F7 #ifdef STM32F7
#define USE_SRAM2 #define USE_SRAM2
#define USE_ITCM_RAM #define USE_ITCM_RAM
#define USE_FAST_RAM #define USE_FAST_DATA
#define USE_DSHOT #define USE_DSHOT
#define USE_DSHOT_BITBANG #define USE_DSHOT_BITBANG
#define USE_DSHOT_TELEMETRY #define USE_DSHOT_TELEMETRY
@ -108,7 +108,7 @@
#ifdef STM32H7 #ifdef STM32H7
#define USE_ITCM_RAM #define USE_ITCM_RAM
#define USE_FAST_RAM #define USE_FAST_DATA
#define USE_DSHOT #define USE_DSHOT
#define USE_DSHOT_TELEMETRY #define USE_DSHOT_TELEMETRY
#define USE_DSHOT_TELEMETRY_STATS #define USE_DSHOT_TELEMETRY_STATS
@ -162,13 +162,13 @@
#define CCM_CODE #define CCM_CODE
#endif #endif
#ifdef USE_FAST_RAM #ifdef USE_FAST_DATA
#define FAST_RAM_ZERO_INIT __attribute__ ((section(".fastram_bss"), aligned(4))) #define FAST_DATA_ZERO_INIT __attribute__ ((section(".fastram_bss"), aligned(4)))
#define FAST_RAM __attribute__ ((section(".fastram_data"), aligned(4))) #define FAST_DATA __attribute__ ((section(".fastram_data"), aligned(4)))
#else #else
#define FAST_RAM_ZERO_INIT #define FAST_DATA_ZERO_INIT
#define FAST_RAM #define FAST_DATA
#endif // USE_FAST_RAM #endif // USE_FAST_DATA
#if defined(STM32F4) || defined (STM32H7) #if defined(STM32F4) || defined (STM32H7)
// Data in RAM which is guaranteed to not be reset on hot reboot // Data in RAM which is guaranteed to not be reset on hot reboot

View file

@ -29,8 +29,8 @@
#define NOINLINE #define NOINLINE
#define FAST_CODE #define FAST_CODE
#define FAST_CODE_NOINLINE #define FAST_CODE_NOINLINE
#define FAST_RAM_ZERO_INIT #define FAST_DATA_ZERO_INIT
#define FAST_RAM #define FAST_DATA
#define PID_PROFILE_COUNT 3 #define PID_PROFILE_COUNT 3
#define CONTROL_RATE_PROFILE_COUNT 6 #define CONTROL_RATE_PROFILE_COUNT 6