mirror of
https://github.com/betaflight/betaflight.git
synced 2025-07-18 05:45:31 +03:00
Adding DMA ownership for ADC, LED STRIP, USART and MOTOR
This commit is contained in:
parent
9ec798a6f5
commit
8dc3bee80d
23 changed files with 212 additions and 90 deletions
|
@ -50,6 +50,7 @@ uint8_t cliMode = 0;
|
|||
#include "drivers/flash.h"
|
||||
#include "drivers/io.h"
|
||||
#include "drivers/io_impl.h"
|
||||
#include "drivers/dma.h"
|
||||
#include "drivers/timer.h"
|
||||
#include "drivers/pwm_rx.h"
|
||||
#include "drivers/sdcard.h"
|
||||
|
@ -1242,12 +1243,12 @@ static void printSerial(uint8_t dumpMask, master_t *defaultConfig)
|
|||
serialConfig_t *serialConfigDefault;
|
||||
bool equalsDefault;
|
||||
for (uint32_t i = 0; i < SERIAL_PORT_COUNT; i++) {
|
||||
serialConfig = &masterConfig.serialConfig;
|
||||
serialConfig = &masterConfig.serialConfig;
|
||||
if (!serialIsPortAvailable(serialConfig->portConfigs[i].identifier)) {
|
||||
continue;
|
||||
};
|
||||
serialConfigDefault = &defaultConfig->serialConfig;
|
||||
equalsDefault = serialConfig->portConfigs[i].identifier == serialConfigDefault->portConfigs[i].identifier
|
||||
serialConfigDefault = &defaultConfig->serialConfig;
|
||||
equalsDefault = serialConfig->portConfigs[i].identifier == serialConfigDefault->portConfigs[i].identifier
|
||||
&& serialConfig->portConfigs[i].functionMask == serialConfigDefault->portConfigs[i].functionMask
|
||||
&& serialConfig->portConfigs[i].msp_baudrateIndex == serialConfigDefault->portConfigs[i].msp_baudrateIndex
|
||||
&& serialConfig->portConfigs[i].gps_baudrateIndex == serialConfigDefault->portConfigs[i].gps_baudrateIndex
|
||||
|
@ -1961,11 +1962,11 @@ static void cliServo(char *cmdline)
|
|||
static void printServoMix(uint8_t dumpMask, master_t *defaultConfig)
|
||||
{
|
||||
for (uint32_t i = 0; i < MAX_SERVO_RULES; i++) {
|
||||
servoMixer_t customServoMixer = masterConfig.customServoMixer[i];
|
||||
servoMixer_t customServoMixerDefault = defaultConfig->customServoMixer[i];
|
||||
servoMixer_t customServoMixer = masterConfig.customServoMixer[i];
|
||||
servoMixer_t customServoMixerDefault = defaultConfig->customServoMixer[i];
|
||||
if (customServoMixer.rate == 0) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
bool equalsDefault = customServoMixer.targetChannel == customServoMixerDefault.targetChannel
|
||||
&& customServoMixer.inputSource == customServoMixerDefault.inputSource
|
||||
|
@ -1975,7 +1976,7 @@ static void printServoMix(uint8_t dumpMask, master_t *defaultConfig)
|
|||
&& customServoMixer.max == customServoMixerDefault.max
|
||||
&& customServoMixer.box == customServoMixerDefault.box;
|
||||
|
||||
const char *format = "smix %d %d %d %d %d %d %d %d\r\n";
|
||||
const char *format = "smix %d %d %d %d %d %d %d %d\r\n";
|
||||
cliDefaultPrintf(dumpMask, equalsDefault, format,
|
||||
i,
|
||||
customServoMixerDefault.targetChannel,
|
||||
|
@ -1998,7 +1999,7 @@ static void printServoMix(uint8_t dumpMask, master_t *defaultConfig)
|
|||
);
|
||||
}
|
||||
|
||||
cliPrint("\r\n");
|
||||
cliPrint("\r\n");
|
||||
|
||||
// print servo directions
|
||||
for (uint32_t i = 0; i < MAX_SUPPORTED_SERVOS; i++) {
|
||||
|
@ -2026,7 +2027,7 @@ static void cliServoMix(char *cmdline)
|
|||
len = strlen(cmdline);
|
||||
|
||||
if (len == 0) {
|
||||
printServoMix(DUMP_MASTER, NULL);
|
||||
printServoMix(DUMP_MASTER, NULL);
|
||||
} else if (strncasecmp(cmdline, "reset", 5) == 0) {
|
||||
// erase custom mixer
|
||||
memset(masterConfig.customServoMixer, 0, sizeof(masterConfig.customServoMixer));
|
||||
|
@ -2371,7 +2372,7 @@ static void cliVtx(char *cmdline)
|
|||
static void printName(uint8_t dumpMask)
|
||||
{
|
||||
bool equalsDefault = strlen(masterConfig.name) == 0;
|
||||
cliDumpPrintf(dumpMask, equalsDefault, "name %s\r\n", equalsDefault ? emptyName : masterConfig.name);
|
||||
cliDumpPrintf(dumpMask, equalsDefault, "name %s\r\n", equalsDefault ? emptyName : masterConfig.name);
|
||||
}
|
||||
|
||||
static void cliName(char *cmdline)
|
||||
|
@ -2599,7 +2600,7 @@ static void cliMap(char *cmdline)
|
|||
parseRcChannels(cmdline, &masterConfig.rxConfig);
|
||||
}
|
||||
cliPrint("Map: ");
|
||||
uint32_t i;
|
||||
uint32_t i;
|
||||
for (i = 0; i < 8; i++)
|
||||
out[masterConfig.rxConfig.rcmap[i]] = rcChannelLetters[i];
|
||||
out[i] = '\0';
|
||||
|
@ -3834,7 +3835,7 @@ static void cliResource(char *cmdline)
|
|||
#ifndef CLI_MINIMAL_VERBOSITY
|
||||
cliPrintf("Currently active IO resource assignments:\r\n(reboot to update)\r\n----------------------\r\n");
|
||||
#endif
|
||||
for (uint32_t i = 0; i < DEFIO_IO_USED_COUNT; i++) {
|
||||
for (int i = 0; i < DEFIO_IO_USED_COUNT; i++) {
|
||||
const char* owner;
|
||||
owner = ownerNames[ioRecs[i].owner];
|
||||
|
||||
|
@ -3847,6 +3848,21 @@ static void cliResource(char *cmdline)
|
|||
cliPrintf("%c%02d: %s %s\r\n", IO_GPIOPortIdx(ioRecs + i) + 'A', IO_GPIOPinIdx(ioRecs + i), owner, resource);
|
||||
}
|
||||
}
|
||||
|
||||
cliPrintf("\r\n\r\nCurrently active DMA:\r\n");
|
||||
for (int i = 0; i < DMA_MAX_DESCRIPTORS; i++) {
|
||||
const char* owner;
|
||||
owner = ownerNames[dmaGetOwner(i)];
|
||||
|
||||
cliPrintf(DMA_OUTPUT_STRING, i / DMA_MOD_VALUE + 1, (i % DMA_MOD_VALUE) + DMA_MOD_OFFSET);
|
||||
uint8_t resourceIndex = dmaGetResourceIndex(i);
|
||||
if (resourceIndex > 0) {
|
||||
cliPrintf(" %s%d\r\n", owner, resourceIndex);
|
||||
} else {
|
||||
cliPrintf(" %s\r\n", owner);
|
||||
}
|
||||
}
|
||||
|
||||
#ifndef CLI_MINIMAL_VERBOSITY
|
||||
cliPrintf("\r\nUse: 'resource' to see how to change resources.\r\n");
|
||||
#endif
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue