mirror of
https://github.com/intrepidcs/libicsneo.git
synced 2026-11-04 12:59:07 +01:00
Device: RAD-Gigastar and RAD-Gigastar 2: Fix bootloader pipeline
This commit is contained in:
committed by
Kyle Schwarz
parent
f4836f279f
commit
3932b54947
@@ -87,9 +87,32 @@ public:
|
||||
}
|
||||
|
||||
BootloaderPipeline pipeline;
|
||||
auto compVersions = getComponentVersions();
|
||||
for(size_t i = 0; i < chipVersions.size(); i++) {
|
||||
const auto& version = chipVersions[i];
|
||||
pipeline.add<FlashPhase>(version.id, BootloaderCommunication::RADMultiChip, i == 0);
|
||||
auto it = compVersions.begin();
|
||||
std::vector<ComponentVersion> sameIdComponents;
|
||||
while(it != compVersions.end()) {
|
||||
it = std::find_if(it, compVersions.end(), [&version](const auto& component) {
|
||||
return (ChipID)component.identifier == version.id;
|
||||
});
|
||||
if (it != compVersions.end()) {
|
||||
sameIdComponents.push_back(*it);
|
||||
it++;
|
||||
}
|
||||
}
|
||||
if (sameIdComponents.size() > 1) {
|
||||
std::vector<ComponentVersion> tempCompVersions;
|
||||
for (const auto& component : compVersions) {
|
||||
if ((ChipID)component.identifier != version.id || component.expansionSlot != sameIdComponents[0].expansionSlot) {
|
||||
tempCompVersions.push_back(component);
|
||||
}
|
||||
}
|
||||
compVersions = std::move(tempCompVersions);
|
||||
}
|
||||
if (!sameIdComponents.empty()) {
|
||||
pipeline.add<FlashPhase>(version.id, BootloaderCommunication::RADMultiChip, i == 0, true, true, sameIdComponents[0].expansionSlot);
|
||||
}
|
||||
}
|
||||
pipeline.add<EnterApplicationPhase>(mainChipID);
|
||||
pipeline.add<WaitPhase>(std::chrono::milliseconds(3000));
|
||||
|
||||
@@ -171,9 +171,32 @@ public:
|
||||
}
|
||||
|
||||
BootloaderPipeline pipeline;
|
||||
auto compVersions = getComponentVersions();
|
||||
for(size_t i = 0; i < chipVersions.size(); i++) {
|
||||
const auto& version = chipVersions[i];
|
||||
pipeline.add<FlashPhase>(version.id, BootloaderCommunication::RADMultiChip, i == 0);
|
||||
auto it = compVersions.begin();
|
||||
std::vector<ComponentVersion> sameIdComponents;
|
||||
while(it != compVersions.end()) {
|
||||
it = std::find_if(it, compVersions.end(), [&version](const auto& component) {
|
||||
return (ChipID)component.identifier == version.id;
|
||||
});
|
||||
if (it != compVersions.end()) {
|
||||
sameIdComponents.push_back(*it);
|
||||
it++;
|
||||
}
|
||||
}
|
||||
if (sameIdComponents.size() > 1) {
|
||||
std::vector<ComponentVersion> tempCompVersions;
|
||||
for (const auto& component : compVersions) {
|
||||
if ((ChipID)component.identifier != version.id || component.expansionSlot != sameIdComponents[0].expansionSlot) {
|
||||
tempCompVersions.push_back(component);
|
||||
}
|
||||
}
|
||||
compVersions = std::move(tempCompVersions);
|
||||
}
|
||||
if (!sameIdComponents.empty()) {
|
||||
pipeline.add<FlashPhase>(version.id, BootloaderCommunication::RADMultiChip, i == 0, true, true, sameIdComponents[0].expansionSlot);
|
||||
}
|
||||
}
|
||||
pipeline.add<EnterApplicationPhase>(mainChipID);
|
||||
pipeline.add<WaitPhase>(std::chrono::milliseconds(3000));
|
||||
|
||||
Reference in New Issue
Block a user