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 @@ ...@@ -31,86 +31,94 @@
static const platformConfig_t* active_config = 0; static const platformConfig_t* active_config = 0;
int platformInit(void) { int platformInit(void) {
int nrOfConfigs = 0; //COMMENTED FIRMWARE
const platformConfig_t* configs = platformGetListOfConfigurations(&nrOfConfigs); // int nrOfConfigs = 0;
// const platformConfig_t* configs = platformGetListOfConfigurations(&nrOfConfigs);
int err = platformInitConfiguration(configs, nrOfConfigs);
if (err != 0) // int err = platformInitConfiguration(configs, nrOfConfigs);
{ // if (err != 0)
// This firmware is not compatible, abort init // {
return 1; // // This firmware is not compatible, abort init
} // return 1;
// }
platformInitHardware();
return 0; // platformInitHardware();
// return 0;
} }
int platformParseDeviceTypeString(const char* deviceTypeString, char* deviceType) { int platformParseDeviceTypeString(const char* deviceTypeString, char* deviceType) {
if (deviceTypeString[0] != '0' || deviceTypeString[1] != ';') { //COMMENTED FIRMWARE
return 1; // if (deviceTypeString[0] != '0' || deviceTypeString[1] != ';') {
} // return 1;
// }
const int start = 2;
const int last = start + PLATFORM_DEVICE_TYPE_MAX_LEN - 1; // const int start = 2;
int end = 0; // const int last = start + PLATFORM_DEVICE_TYPE_MAX_LEN - 1;
for (end = start; end <= last; end++) { // int end = 0;
if (deviceTypeString[end] == '\0' || deviceTypeString[end] == ';') { // for (end = start; end <= last; end++) {
break; // if (deviceTypeString[end] == '\0' || deviceTypeString[end] == ';') {
} // break;
} // }
// }
if (end > last) {
return 1; // if (end > last) {
} // return 1;
// }
int length = end - start;
memcpy(deviceType, &deviceTypeString[start], length); // int length = end - start;
deviceType[length] = '\0'; // memcpy(deviceType, &deviceTypeString[start], length);
return 0; // deviceType[length] = '\0';
// return 0;
} }
int platformInitConfiguration(const platformConfig_t* configs, const int nrOfConfigs) { int platformInitConfiguration(const platformConfig_t* configs, const int nrOfConfigs) {
#ifndef DEVICE_TYPE_STRING_FORCE //COMMENTED FIRMWARE
char deviceTypeString[PLATFORM_DEVICE_TYPE_STRING_MAX_LEN]; // #ifndef DEVICE_TYPE_STRING_FORCE
char deviceType[PLATFORM_DEVICE_TYPE_MAX_LEN]; // char deviceTypeString[PLATFORM_DEVICE_TYPE_STRING_MAX_LEN];
// char deviceType[PLATFORM_DEVICE_TYPE_MAX_LEN];
platformGetDeviceTypeString(deviceTypeString);
platformParseDeviceTypeString(deviceTypeString, deviceType); // platformGetDeviceTypeString(deviceTypeString);
#else // platformParseDeviceTypeString(deviceTypeString, deviceType);
#define xstr(s) str(s) // #else
#define str(s) #s // #define xstr(s) str(s)
// #define str(s) #s
char* deviceType = xstr(DEVICE_TYPE_STRING_FORCE);
#endif // char* deviceType = xstr(DEVICE_TYPE_STRING_FORCE);
// #endif
for (int i = 0; i < nrOfConfigs; i++) {
const platformConfig_t* config = &configs[i]; // for (int i = 0; i < nrOfConfigs; i++) {
if (strcmp(config->deviceType, deviceType) == 0) { // const platformConfig_t* config = &configs[i];
active_config = config; // if (strcmp(config->deviceType, deviceType) == 0) {
return 0; // active_config = config;
} // return 0;
} // }
// }
return 1;
// return 1;
} }
const char* platformConfigGetDeviceType() { const char* platformConfigGetDeviceType() {
return active_config->deviceType; //COMMENTED FIRMWARE
// return active_config->deviceType;
} }
const char* platformConfigGetDeviceTypeName() { const char* platformConfigGetDeviceTypeName() {
return active_config->deviceTypeName; //COMMENTED FIRMWARE
// return active_config->deviceTypeName;
} }
SensorImplementation_t platformConfigGetSensorImplementation() { SensorImplementation_t platformConfigGetSensorImplementation() {
return active_config->sensorImplementation; //COMMENTED FIRMWARE
// return active_config->sensorImplementation;
} }
bool platformConfigPhysicalLayoutAntennasAreClose() { bool platformConfigPhysicalLayoutAntennasAreClose() {
return active_config->physicalLayoutAntennasAreClose; //COMMENTED FIRMWARE
// return active_config->physicalLayoutAntennasAreClose;
} }
const MotorPerifDef** platformConfigGetMotorMapping() { const MotorPerifDef** platformConfigGetMotorMapping() {
return active_config->motorMap; //COMMENTED FIRMWARE
// return active_config->motorMap;
} }
...@@ -37,28 +37,28 @@ static platformConfig_t configs[] = { ...@@ -37,28 +37,28 @@ static platformConfig_t configs[] = {
{ {
.deviceType = "CF20", .deviceType = "CF20",
.deviceTypeName = "Crazyflie 2.0", .deviceTypeName = "Crazyflie 2.0",
.sensorImplementation = SensorImplementation_mpu9250_lps25h, // .sensorImplementation = SensorImplementation_mpu9250_lps25h,
.physicalLayoutAntennasAreClose = true, .physicalLayoutAntennasAreClose = true,
.motorMap = motorMapDefaultBrushed, .motorMap = motorMapDefaultBrushed,
}, },
{ {
.deviceType = "CF21", .deviceType = "CF21",
.deviceTypeName = "Crazyflie 2.1", .deviceTypeName = "Crazyflie 2.1",
.sensorImplementation = SensorImplementation_bmi088_bmp388, // .sensorImplementation = SensorImplementation_bmi088_bmp388,
.physicalLayoutAntennasAreClose = false, .physicalLayoutAntennasAreClose = false,
.motorMap = motorMapDefaultBrushed, .motorMap = motorMapDefaultBrushed,
}, },
{ // Old ID of Crzyflie Bolt { // Old ID of Crzyflie Bolt
.deviceType = "RZ10", .deviceType = "RZ10",
.deviceTypeName = "Crazyflie Bolt", .deviceTypeName = "Crazyflie Bolt",
.sensorImplementation = SensorImplementation_bmi088_spi_bmp388, // .sensorImplementation = SensorImplementation_bmi088_spi_bmp388,
.physicalLayoutAntennasAreClose = false, .physicalLayoutAntennasAreClose = false,
.motorMap = motorMapBoltBrushless, .motorMap = motorMapBoltBrushless,
}, },
{ {
.deviceType = "CB10", .deviceType = "CB10",
.deviceTypeName = "Crazyflie Bolt", .deviceTypeName = "Crazyflie Bolt",
.sensorImplementation = SensorImplementation_bmi088_spi_bmp388, // .sensorImplementation = SensorImplementation_bmi088_spi_bmp388,
.physicalLayoutAntennasAreClose = false, .physicalLayoutAntennasAreClose = false,
.motorMap = motorMapBoltBrushless, .motorMap = motorMapBoltBrushless,
} }
...@@ -70,11 +70,12 @@ const platformConfig_t* platformGetListOfConfigurations(int* nrOfConfigs) { ...@@ -70,11 +70,12 @@ const platformConfig_t* platformGetListOfConfigurations(int* nrOfConfigs) {
} }
void platformInitHardware() { void platformInitHardware() {
//Low level init: Clock and Interrupt controller //COMMENTED FIRMWARE
nvicInit(); // //Low level init: Clock and Interrupt controller
// nvicInit();
//EXTI interrupts // //EXTI interrupts
extiInit(); // extiInit();
} }
......
...@@ -38,33 +38,35 @@ ...@@ -38,33 +38,35 @@
#define DEFAULT_PLATFORM_STRING "0;CF20" #define DEFAULT_PLATFORM_STRING "0;CF20"
#ifndef UNIT_TEST_MODE //COMMENTED FIRMWARE
static char* getAddressOfOtpMemoryBlock(int blockNr) { // #ifndef UNIT_TEST_MODE
return (char*)(0x1fff7800 + blockNr * 0x20); // static char* getAddressOfOtpMemoryBlock(int blockNr) {
} // return (char*)(0x1fff7800 + blockNr * 0x20);
#else // }
// This function is replaced by a mock in unit tests // #else
char* getAddressOfOtpMemoryBlock(const int blockNr); // // This function is replaced by a mock in unit tests
#endif // char* getAddressOfOtpMemoryBlock(const int blockNr);
// #endif
void platformGetDeviceTypeString(char* deviceTypeString) { void platformGetDeviceTypeString(char* deviceTypeString) {
char* block = 0; //COMMENTED FIRMWARE
// char* block = 0;
for (int i = 0; i < PLATFORM_INFO_OTP_NR_OF_BLOCKS; i++) { // for (int i = 0; i < PLATFORM_INFO_OTP_NR_OF_BLOCKS; i++) {
char* candidateBlock = getAddressOfOtpMemoryBlock(i); // char* candidateBlock = getAddressOfOtpMemoryBlock(i);
if (candidateBlock[0] != 0) { // if (candidateBlock[0] != 0) {
block = candidateBlock; // block = candidateBlock;
break; // break;
} // }
} // }
if (!block || ((unsigned char)block[0]) == 0xff) { // if (!block || ((unsigned char)block[0]) == 0xff) {
block = DEFAULT_PLATFORM_STRING; // block = DEFAULT_PLATFORM_STRING;
} // }
strncpy(deviceTypeString, block, PLATFORM_INFO_OTP_BLOCK_LEN); // strncpy(deviceTypeString, block, PLATFORM_INFO_OTP_BLOCK_LEN);
deviceTypeString[PLATFORM_INFO_OTP_BLOCK_LEN] = '\0'; // deviceTypeString[PLATFORM_INFO_OTP_BLOCK_LEN] = '\0';
} }
...@@ -37,29 +37,32 @@ static platformConfig_t configs[] = { ...@@ -37,29 +37,32 @@ static platformConfig_t configs[] = {
{ {
.deviceType = "RR10", .deviceType = "RR10",
.deviceTypeName = "Roadrunner 1.0", .deviceTypeName = "Roadrunner 1.0",
.sensorImplementation = SensorImplementation_bmi088_bmp388, // .sensorImplementation = SensorImplementation_bmi088_bmp388,
.physicalLayoutAntennasAreClose = false, .physicalLayoutAntennasAreClose = false,
.motorMap = motorMapNoMotors, .motorMap = motorMapNoMotors,
}, },
}; };
const platformConfig_t* platformGetListOfConfigurations(int* nrOfConfigs) { const platformConfig_t* platformGetListOfConfigurations(int* nrOfConfigs) {
*nrOfConfigs = sizeof(configs) / sizeof(platformConfig_t); //COMMENTED FIRMWARE
return configs; // *nrOfConfigs = sizeof(configs) / sizeof(platformConfig_t);
// return configs;
} }
void platformInitHardware() { void platformInitHardware() {
//Low level init: Clock and Interrupt controller //COMMENTED FIRMWARE
nvicInit(); // //Low level init: Clock and Interrupt controller
// nvicInit();
//EXTI interrupts // //EXTI interrupts
extiInit(); // extiInit();
} }
// Config functions ------------------------ // Config functions ------------------------
const char* platformConfigGetPlatformName() { const char* platformConfigGetPlatformName() {
return "tag"; //COMMENTED FIRMWARE
// return "tag";
} }
...@@ -38,8 +38,9 @@ ...@@ -38,8 +38,9 @@
void platformSetLowInterferenceRadioMode(void) { void platformSetLowInterferenceRadioMode(void) {
// Decrease the nRF51 Tx power to reduce interference //COMMENTED FIRMWARE
radiolinkSetPowerDbm(PLATFORM_NRF51_LOW_INTERFERENCE_TX_POWER_DBM); // // Decrease the nRF51 Tx power to reduce interference
DEBUG_PRINT("Low interference mode. NRF51 TX power offset by %ddb.\r\n", PLATFORM_NRF51_LOW_INTERFERENCE_TX_POWER_DBM); // 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