data-stm32-0.1.0.0: src/Data/CMX/Types.hs
module Data.CMX.Types where
import qualified Data.Set as Set
type Kb = Int
type Mhz = Int
data MCU = MCU {
mcuCore :: String
, mcuFamily :: String
, mcuHasPowerPad :: Bool
, mcuIoType :: String
, mcuDie :: String
, mcuLine :: String
, mcuPackage :: String
, mcuRefName :: String
, mcuFrequency :: Maybe Mhz
, mcuNumberOfIO :: Int
, mcuDbVersion :: String
, mcuRamVariants :: [Kb]
, mcuFlashVariants :: [Kb]
, mcuCcmRam :: Maybe Kb
, mcuLimits :: [Limit]
, mcuIps :: Set.Set IP
, mcuPins :: Set.Set Pin
} deriving (Eq, Ord, Show)
data LimitType = Min | Max | Lowest | Run
deriving (Eq, Ord, Show)
data LimitUnit = Voltage | Current | Temperature
deriving (Eq, Ord, Show)
data Limit = Limit {
limitType :: LimitType
, limitUnit :: LimitUnit
, limitVal :: Float
}
deriving (Eq, Ord, Show)
data IP = IP {
ipName :: String
, ipVersion :: String
, ipConfigFile :: String
, ipClockEnableMode :: String
, ipInstanceName :: String
} deriving (Eq, Ord, Show)
data Pin = Pin {
pinName :: String
, pinType :: String
, pinPosition :: String
, pinSignals :: [Signal]
} deriving (Eq, Ord, Show)
data Signal = Signal {
sigName :: String
, sigIOModes :: String
} deriving (Eq, Ord, Show)