Skip to content
Snippets Groups Projects
Commit 0d063740 authored by 488_MP-4's avatar 488_MP-4
Browse files

Started commenting hardware specific code

parent 58c1d2e9
No related branches found
No related tags found
4 merge requests!109Final sdmay24-32 merge to master,!104adding cflib to this branch,!101adding baremetal programs,!97Uboot compiler will
......@@ -31,86 +31,94 @@
static const platformConfig_t* active_config = 0;
int platformInit(void) {
int nrOfConfigs = 0;
const platformConfig_t* configs = platformGetListOfConfigurations(&nrOfConfigs);
int err = platformInitConfiguration(configs, nrOfConfigs);
if (err != 0)
{
// This firmware is not compatible, abort init
return 1;
}
platformInitHardware();
return 0;
//COMMENTED FIRMWARE
// int nrOfConfigs = 0;
// const platformConfig_t* configs = platformGetListOfConfigurations(&nrOfConfigs);
// int err = platformInitConfiguration(configs, nrOfConfigs);
// if (err != 0)
// {
// // This firmware is not compatible, abort init
// return 1;
// }
// platformInitHardware();
// return 0;
}
int platformParseDeviceTypeString(const char* deviceTypeString, char* deviceType) {
if (deviceTypeString[0] != '0' || deviceTypeString[1] != ';') {
return 1;
}
const int start = 2;
const int last = start + PLATFORM_DEVICE_TYPE_MAX_LEN - 1;
int end = 0;
for (end = start; end <= last; end++) {
if (deviceTypeString[end] == '\0' || deviceTypeString[end] == ';') {
break;
}
}
if (end > last) {
return 1;
}
int length = end - start;
memcpy(deviceType, &deviceTypeString[start], length);
deviceType[length] = '\0';
return 0;
//COMMENTED FIRMWARE
// if (deviceTypeString[0] != '0' || deviceTypeString[1] != ';') {
// return 1;
// }
// const int start = 2;
// const int last = start + PLATFORM_DEVICE_TYPE_MAX_LEN - 1;
// int end = 0;
// for (end = start; end <= last; end++) {
// if (deviceTypeString[end] == '\0' || deviceTypeString[end] == ';') {
// break;
// }
// }
// if (end > last) {
// return 1;
// }
// int length = end - start;
// memcpy(deviceType, &deviceTypeString[start], length);
// deviceType[length] = '\0';
// return 0;
}
int platformInitConfiguration(const platformConfig_t* configs, const int nrOfConfigs) {
#ifndef DEVICE_TYPE_STRING_FORCE
char deviceTypeString[PLATFORM_DEVICE_TYPE_STRING_MAX_LEN];
char deviceType[PLATFORM_DEVICE_TYPE_MAX_LEN];
platformGetDeviceTypeString(deviceTypeString);
platformParseDeviceTypeString(deviceTypeString, deviceType);
#else
#define xstr(s) str(s)
#define str(s) #s
char* deviceType = xstr(DEVICE_TYPE_STRING_FORCE);
#endif
for (int i = 0; i < nrOfConfigs; i++) {
const platformConfig_t* config = &configs[i];
if (strcmp(config->deviceType, deviceType) == 0) {
active_config = config;
return 0;
}
}
return 1;
//COMMENTED FIRMWARE
// #ifndef DEVICE_TYPE_STRING_FORCE
// char deviceTypeString[PLATFORM_DEVICE_TYPE_STRING_MAX_LEN];
// char deviceType[PLATFORM_DEVICE_TYPE_MAX_LEN];
// platformGetDeviceTypeString(deviceTypeString);
// platformParseDeviceTypeString(deviceTypeString, deviceType);
// #else
// #define xstr(s) str(s)
// #define str(s) #s
// char* deviceType = xstr(DEVICE_TYPE_STRING_FORCE);
// #endif
// for (int i = 0; i < nrOfConfigs; i++) {
// const platformConfig_t* config = &configs[i];
// if (strcmp(config->deviceType, deviceType) == 0) {
// active_config = config;
// return 0;
// }
// }
// return 1;
}
const char* platformConfigGetDeviceType() {
return active_config->deviceType;
//COMMENTED FIRMWARE
// return active_config->deviceType;
}
const char* platformConfigGetDeviceTypeName() {
return active_config->deviceTypeName;
//COMMENTED FIRMWARE
// return active_config->deviceTypeName;
}
SensorImplementation_t platformConfigGetSensorImplementation() {
return active_config->sensorImplementation;
//COMMENTED FIRMWARE
// return active_config->sensorImplementation;
}
bool platformConfigPhysicalLayoutAntennasAreClose() {
return active_config->physicalLayoutAntennasAreClose;
//COMMENTED FIRMWARE
// return active_config->physicalLayoutAntennasAreClose;
}
const MotorPerifDef** platformConfigGetMotorMapping() {
return active_config->motorMap;
//COMMENTED FIRMWARE
// return active_config->motorMap;
}
......@@ -37,28 +37,28 @@ static platformConfig_t configs[] = {
{
.deviceType = "CF20",
.deviceTypeName = "Crazyflie 2.0",
.sensorImplementation = SensorImplementation_mpu9250_lps25h,
// .sensorImplementation = SensorImplementation_mpu9250_lps25h,
.physicalLayoutAntennasAreClose = true,
.motorMap = motorMapDefaultBrushed,
},
{
.deviceType = "CF21",
.deviceTypeName = "Crazyflie 2.1",
.sensorImplementation = SensorImplementation_bmi088_bmp388,
// .sensorImplementation = SensorImplementation_bmi088_bmp388,
.physicalLayoutAntennasAreClose = false,
.motorMap = motorMapDefaultBrushed,
},
{ // Old ID of Crzyflie Bolt
.deviceType = "RZ10",
.deviceTypeName = "Crazyflie Bolt",
.sensorImplementation = SensorImplementation_bmi088_spi_bmp388,
// .sensorImplementation = SensorImplementation_bmi088_spi_bmp388,
.physicalLayoutAntennasAreClose = false,
.motorMap = motorMapBoltBrushless,
},
{
.deviceType = "CB10",
.deviceTypeName = "Crazyflie Bolt",
.sensorImplementation = SensorImplementation_bmi088_spi_bmp388,
// .sensorImplementation = SensorImplementation_bmi088_spi_bmp388,
.physicalLayoutAntennasAreClose = false,
.motorMap = motorMapBoltBrushless,
}
......@@ -70,11 +70,12 @@ const platformConfig_t* platformGetListOfConfigurations(int* nrOfConfigs) {
}
void platformInitHardware() {
//Low level init: Clock and Interrupt controller
nvicInit();
//COMMENTED FIRMWARE
// //Low level init: Clock and Interrupt controller
// nvicInit();
//EXTI interrupts
extiInit();
// //EXTI interrupts
// extiInit();
}
......
......@@ -38,33 +38,35 @@
#define DEFAULT_PLATFORM_STRING "0;CF20"
#ifndef UNIT_TEST_MODE
static char* getAddressOfOtpMemoryBlock(int blockNr) {
return (char*)(0x1fff7800 + blockNr * 0x20);
}
#else
// This function is replaced by a mock in unit tests
char* getAddressOfOtpMemoryBlock(const int blockNr);
#endif
//COMMENTED FIRMWARE
// #ifndef UNIT_TEST_MODE
// static char* getAddressOfOtpMemoryBlock(int blockNr) {
// return (char*)(0x1fff7800 + blockNr * 0x20);
// }
// #else
// // This function is replaced by a mock in unit tests
// char* getAddressOfOtpMemoryBlock(const int blockNr);
// #endif
void platformGetDeviceTypeString(char* deviceTypeString) {
char* block = 0;
//COMMENTED FIRMWARE
// char* block = 0;
for (int i = 0; i < PLATFORM_INFO_OTP_NR_OF_BLOCKS; i++) {
char* candidateBlock = getAddressOfOtpMemoryBlock(i);
if (candidateBlock[0] != 0) {
block = candidateBlock;
break;
}
}
// for (int i = 0; i < PLATFORM_INFO_OTP_NR_OF_BLOCKS; i++) {
// char* candidateBlock = getAddressOfOtpMemoryBlock(i);
// if (candidateBlock[0] != 0) {
// block = candidateBlock;
// break;
// }
// }
if (!block || ((unsigned char)block[0]) == 0xff) {
block = DEFAULT_PLATFORM_STRING;
}
// if (!block || ((unsigned char)block[0]) == 0xff) {
// block = DEFAULT_PLATFORM_STRING;
// }
strncpy(deviceTypeString, block, PLATFORM_INFO_OTP_BLOCK_LEN);
deviceTypeString[PLATFORM_INFO_OTP_BLOCK_LEN] = '\0';
// strncpy(deviceTypeString, block, PLATFORM_INFO_OTP_BLOCK_LEN);
// deviceTypeString[PLATFORM_INFO_OTP_BLOCK_LEN] = '\0';
}
......@@ -37,29 +37,32 @@ static platformConfig_t configs[] = {
{
.deviceType = "RR10",
.deviceTypeName = "Roadrunner 1.0",
.sensorImplementation = SensorImplementation_bmi088_bmp388,
// .sensorImplementation = SensorImplementation_bmi088_bmp388,
.physicalLayoutAntennasAreClose = false,
.motorMap = motorMapNoMotors,
},
};
const platformConfig_t* platformGetListOfConfigurations(int* nrOfConfigs) {
*nrOfConfigs = sizeof(configs) / sizeof(platformConfig_t);
return configs;
//COMMENTED FIRMWARE
// *nrOfConfigs = sizeof(configs) / sizeof(platformConfig_t);
// return configs;
}
void platformInitHardware() {
//Low level init: Clock and Interrupt controller
nvicInit();
//COMMENTED FIRMWARE
// //Low level init: Clock and Interrupt controller
// nvicInit();
//EXTI interrupts
extiInit();
// //EXTI interrupts
// extiInit();
}
// Config functions ------------------------
const char* platformConfigGetPlatformName() {
return "tag";
//COMMENTED FIRMWARE
// return "tag";
}
......@@ -38,8 +38,9 @@
void platformSetLowInterferenceRadioMode(void) {
// Decrease the nRF51 Tx power to reduce interference
radiolinkSetPowerDbm(PLATFORM_NRF51_LOW_INTERFERENCE_TX_POWER_DBM);
DEBUG_PRINT("Low interference mode. NRF51 TX power offset by %ddb.\r\n", PLATFORM_NRF51_LOW_INTERFERENCE_TX_POWER_DBM);
//COMMENTED FIRMWARE
// // Decrease the nRF51 Tx power to reduce interference
// radiolinkSetPowerDbm(PLATFORM_NRF51_LOW_INTERFERENCE_TX_POWER_DBM);
// DEBUG_PRINT("Low interference mode. NRF51 TX power offset by %ddb.\r\n", PLATFORM_NRF51_LOW_INTERFERENCE_TX_POWER_DBM);
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment