mirror of
https://github.com/UpsilonNumworks/Upsilon.git
synced 2026-03-29 11:39:58 +02:00
[ion/device/regs] Use macros to configure the registers
This commit is contained in:
@@ -1,21 +1,12 @@
|
||||
#ifndef ION_DEVICE_N0100_REGS_CONFIG_USART_H
|
||||
#define ION_DEVICE_N0100_REGS_CONFIG_USART_H
|
||||
|
||||
namespace Ion {
|
||||
namespace Device {
|
||||
namespace USART {
|
||||
namespace Config {
|
||||
#define REGS_USART_SR_OFFSET 0x00
|
||||
#define REGS_USART_RDR_OFFSET 0x04
|
||||
#define REGS_USART_TDR_OFFSET 0x04
|
||||
#define REGS_USART_BRR_OFFSET 0x08
|
||||
#define REGS_USART_CR1_OFFSET 0x0C
|
||||
|
||||
constexpr static int SROffset = 0x00;
|
||||
constexpr static int RDROffset = 0x04;
|
||||
constexpr static int TDROffset = 0x04;
|
||||
constexpr static int BRROffset = 0x08;
|
||||
constexpr static int CR1Offset = 0x0C;
|
||||
constexpr static int UEOffset = 13;
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
#define REGS_USART_CR1_UE_BIT 13
|
||||
|
||||
#endif
|
||||
|
||||
@@ -1,21 +1,12 @@
|
||||
#ifndef ION_DEVICE_N0101_REGS_CONFIG_USART_H
|
||||
#define ION_DEVICE_N0101_REGS_CONFIG_USART_H
|
||||
|
||||
namespace Ion {
|
||||
namespace Device {
|
||||
namespace USART {
|
||||
namespace Config {
|
||||
#define REGS_USART_SR_OFFSET 0x1C
|
||||
#define REGS_USART_RDR_OFFSET 0x24
|
||||
#define REGS_USART_TDR_OFFSET 0x28
|
||||
#define REGS_USART_BRR_OFFSET 0x0C
|
||||
#define REGS_USART_CR1_OFFSET 0x00
|
||||
|
||||
constexpr static int SROffset = 0x1C;
|
||||
constexpr static int RDROffset = 0x24;
|
||||
constexpr static int TDROffset = 0x28;
|
||||
constexpr static int BRROffset = 0x0C;
|
||||
constexpr static int CR1Offset = 0x00;
|
||||
constexpr static int UEOffset = 0;
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
#define REGS_USART_CR1_UE_BIT 0
|
||||
|
||||
#endif
|
||||
|
||||
@@ -40,18 +40,18 @@ public:
|
||||
|
||||
class CR1 : Register32 {
|
||||
public:
|
||||
REGS_BOOL_FIELD(UE, Ion::Device::USART::Config::UEOffset);
|
||||
REGS_BOOL_FIELD(UE, REGS_USART_CR1_UE_BIT);
|
||||
REGS_BOOL_FIELD(TE, 3);
|
||||
REGS_BOOL_FIELD(RE, 2);
|
||||
};
|
||||
|
||||
constexpr USART(int i) : m_index(i) {}
|
||||
constexpr operator int() const { return m_index; }
|
||||
REGS_REGISTER_AT(SR, Ion::Device::USART::Config::SROffset);
|
||||
REGS_REGISTER_AT(RDR, Ion::Device::USART::Config::RDROffset);
|
||||
REGS_REGISTER_AT(TDR, Ion::Device::USART::Config::TDROffset);
|
||||
REGS_REGISTER_AT(BRR, Ion::Device::USART::Config::BRROffset);
|
||||
REGS_REGISTER_AT(CR1, Ion::Device::USART::Config::CR1Offset);
|
||||
REGS_REGISTER_AT(SR, REGS_USART_SR_OFFSET);
|
||||
REGS_REGISTER_AT(RDR, REGS_USART_RDR_OFFSET);
|
||||
REGS_REGISTER_AT(TDR, REGS_USART_TDR_OFFSET);
|
||||
REGS_REGISTER_AT(BRR, REGS_USART_BRR_OFFSET);
|
||||
REGS_REGISTER_AT(CR1, REGS_USART_CR1_OFFSET);
|
||||
private:
|
||||
constexpr uint32_t Base() const {
|
||||
return ((uint32_t []){0x40011000, 0x40004400, 0x40004800, 0x40004C00, 0x40005000, 0x40011400})[m_index-1];
|
||||
|
||||
Reference in New Issue
Block a user