| Safe Haskell | Safe-Inferred | 
|---|---|
| Language | Haskell2010 | 
Data.SVD.Util
Contents
Synopsis
- addReservedFields :: Device -> Device
 - procFields :: Register -> [Field]
 - continuityCheck :: Register -> Bool
 - checkDeviceRegisterContinuity :: Device -> Either String Device
 - mapPeriphs :: (Peripheral -> b) -> Device -> [b]
 - mapRegs :: (Register -> b) -> Peripheral -> [b]
 - mapFields :: (Field -> b) -> Register -> [b]
 - mapDevFields :: (Field -> b) -> Device -> [b]
 - getPeriphByGroup :: String -> Device -> Peripheral
 - getPeriph :: String -> Device -> Peripheral
 - getPeriphMay :: String -> Device -> Maybe Peripheral
 - getPeriphRegMay :: String -> Peripheral -> Maybe Register
 - getPeriphFollow :: String -> Device -> Either String Peripheral
 - getPeriphRegs :: String -> Device -> Either String [Register]
 - getPeriphReg :: String -> String -> Device -> Either String Register
 - getPeriphRegAddr :: String -> String -> Device -> Either String Int
 - getPeriphRegFields :: String -> String -> Device -> Either String [Field]
 - getRegFields :: String -> String -> Device -> [Field]
 - getFieldVal :: (Bits a, Num a) => a -> Field -> a
 - getFieldValues :: (Bits a, Num a) => a -> [Field] -> [(a, Field)]
 - getProcdFieldValues :: (Bits a, Num a) => a -> Register -> [(a, Field)]
 - anyReservedSet :: (Eq a, Num a) => [(a, Field)] -> Bool
 - filterSet :: (Eq a, Num a) => [(a, Field)] -> [(a, Field)]
 - getDevMemMap :: Device -> [(String, String)]
 - registerNames :: String -> Device -> [String]
 - fieldNames :: String -> String -> Device -> [String]
 - sortDeviceByAddresses :: Device -> Device
 - sortDeviceByNames :: Device -> Device
 - fillMissingInterrupts :: [Interrupt] -> [Interrupt]
 
Documentation
addReservedFields :: Device -> Device Source #
Fill in reserved fields for whole Device
procFields :: Register -> [Field] Source #
Find holes in registers and create corresponding reserved fields for these
First finds missing bits and then merges them to single reserved field
continuityCheck :: Register -> Bool Source #
Walk processed register fields top to bottom checking that the register is exactly n bits long
checkDeviceRegisterContinuity :: Device -> Either String Device Source #
Check all devices registers for continuity
mapPeriphs :: (Peripheral -> b) -> Device -> [b] Source #
mapRegs :: (Register -> b) -> Peripheral -> [b] Source #
mapDevFields :: (Field -> b) -> Device -> [b] Source #
getPeriphByGroup :: String -> Device -> Peripheral Source #
Get peripheral by groupName
getPeriphMay :: String -> Device -> Maybe Peripheral Source #
Get peripheral by name iff found, Nothing otherwise
getPeriphRegMay :: String -> Peripheral -> Maybe Register Source #
Get register of the peripheral by their names iff found, Nothing otherwise
getPeriphFollow :: String -> Device -> Either String Peripheral Source #
Get peripheral by name or its parent peripheral if it's a derived peripheral (for example USART2 is typically derived from USART1)
getPeriphRegs :: String -> Device -> Either String [Register] Source #
Get registers of the peripheral
getPeriphReg :: String -> String -> Device -> Either String Register Source #
Get specific register of the peripheral Follows derived from.
getPeriphRegAddr :: String -> String -> Device -> Either String Int Source #
Get address of the specific register of the peripheral with pName
Get fields of the specific register of the peripheral with pName
getFieldVal :: (Bits a, Num a) => a -> Field -> a Source #
Get value of specific Field according to input x
getFieldValues :: (Bits a, Num a) => a -> [Field] -> [(a, Field)] Source #
Decode integer x according to Fields fs
getProcdFieldValues :: (Bits a, Num a) => a -> Register -> [(a, Field)] Source #
Same as getFieldValues but with processed fields (reserved fields included)
anyReservedSet :: (Eq a, Num a) => [(a, Field)] -> Bool Source #
Check if any reserved field has value other than 0
filterSet :: (Eq a, Num a) => [(a, Field)] -> [(a, Field)] Source #
Filter fields with non zero value
getDevMemMap :: Device -> [(String, String)] Source #
Get memory map of the device according to its perhiperal addresses
Sorting
sortDeviceByAddresses :: Device -> Device Source #
Sort everything by memory address
sortDeviceByNames :: Device -> Device Source #
Sort everything by name
Interrupts
fillMissingInterrupts :: [Interrupt] -> [Interrupt] Source #