2021-04-04 21:04:12 +01:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
|
|
#include <cstdint>
|
2022-09-06 17:17:43 +01:00
|
|
|
#include <string>
|
2021-04-04 21:04:12 +01:00
|
|
|
#include <map>
|
|
|
|
|
|
|
|
|
|
#include "TargetPinDescriptor.hpp"
|
|
|
|
|
|
|
|
|
|
namespace Bloom::Targets
|
|
|
|
|
{
|
2022-09-06 17:17:43 +01:00
|
|
|
enum class TargetPackage: std::uint8_t
|
2021-05-25 21:50:17 +01:00
|
|
|
{
|
2021-04-04 21:04:12 +01:00
|
|
|
UNKNOWN,
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Quad flat package (QFP)
|
|
|
|
|
*/
|
|
|
|
|
QFP,
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Dual inline package (DIP)
|
|
|
|
|
*/
|
|
|
|
|
DIP,
|
|
|
|
|
|
|
|
|
|
/**
|
2021-06-20 22:55:48 +01:00
|
|
|
* "Small outline integrated circuit" package (SOIC).
|
2021-04-04 21:04:12 +01:00
|
|
|
*
|
|
|
|
|
* Because of the similarities between SOIC and DIP, Insight treats SOIC packages as DIP packages. That is,
|
|
|
|
|
* it uses the same package widget.
|
|
|
|
|
*/
|
|
|
|
|
SOIC,
|
|
|
|
|
|
2021-06-20 22:55:48 +01:00
|
|
|
/**
|
|
|
|
|
* "Shrink small outline" package (SSOP)
|
|
|
|
|
*
|
|
|
|
|
* Because of the similarities between this and DIP, Insight treats SSOP packages as DIP packages. That is,
|
|
|
|
|
* it uses the same package widget.
|
|
|
|
|
*/
|
|
|
|
|
SSOP,
|
|
|
|
|
|
2021-04-04 21:04:12 +01:00
|
|
|
/**
|
|
|
|
|
* Quad flat no-lead (QFN) package
|
2021-06-20 22:55:48 +01:00
|
|
|
*
|
|
|
|
|
* Because of the similarities between this and QFP, Insight treats QFN packages as QFP.
|
2021-04-04 21:04:12 +01:00
|
|
|
*/
|
|
|
|
|
QFN,
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
struct TargetVariant
|
|
|
|
|
{
|
|
|
|
|
int id;
|
|
|
|
|
std::string name;
|
|
|
|
|
std::string packageName;
|
|
|
|
|
TargetPackage package = TargetPackage::UNKNOWN;
|
|
|
|
|
std::map<int, TargetPinDescriptor> pinDescriptorsByNumber;
|
2021-06-20 22:57:09 +01:00
|
|
|
|
|
|
|
|
bool operator == (const TargetVariant& variant) const {
|
|
|
|
|
return this->name == variant.name
|
|
|
|
|
&& this->packageName == variant.packageName
|
|
|
|
|
&& this->package == variant.package
|
|
|
|
|
&& this->pinDescriptorsByNumber == variant.pinDescriptorsByNumber;
|
|
|
|
|
}
|
2021-04-04 21:04:12 +01:00
|
|
|
};
|
|
|
|
|
}
|