Kiibohd Controller
Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
Это архивный репозиторий. Вы можете его клонировать или просматривать файлы, но не вносить изменения или открывать задачи/запросы на слияние.

aliased_bitband.h 1.1KB

12345678910111213141516171819202122232425262728293031323334353637
  1. #ifndef __aliased_bitband_h
  2. #define __aliased_bitband_h
  3. // Aliased Regions for single bit (0th) register access
  4. // Chapter 4: Memory Map (Table 4-1)
  5. // TODO
  6. // - Not all tested, and not all sections added
  7. // 0x2200 0000 - 0x23FF FFFF - Aliased to SRAM_U bitband
  8. // TODO
  9. // 0x4200 0000 - 0x43FF FFFF - Aliased to AIPS and GPIO bitband
  10. #define GPIO_BITBAND_ADDR(reg, bit) (((uint32_t)&(reg) - 0x40000000) * 32 + (bit) * 4 + 0x42000000)
  11. #define GPIO_BITBAND_PTR(reg, bit) ((uint32_t *)GPIO_BITBAND_ADDR((reg), (bit)))
  12. // XXX - Only MODREG is tested to work...
  13. #define GPIO_BITBAND_OUTREG(reg, bit) *((uint32_t *)GPIO_BITBAND_ADDR((reg), (bit)) + 0)
  14. #define GPIO_BITBAND_SETREG(reg, bit) *((uint32_t *)GPIO_BITBAND_ADDR((reg), (bit)) + 32)
  15. #define GPIO_BITBAND_CLRREG(reg, bit) *((uint32_t *)GPIO_BITBAND_ADDR((reg), (bit)) + 64)
  16. #define GPIO_BITBAND_TOGREG(reg, bit) *((uint32_t *)GPIO_BITBAND_ADDR((reg), (bit)) + 96)
  17. #define GPIO_BITBAND_INPREG(reg, bit) *((uint32_t *)GPIO_BITBAND_ADDR((reg), (bit)) + 128)
  18. #define GPIO_BITBAND_MODREG(reg, bit) *((uint32_t *)GPIO_BITBAND_ADDR((reg), (bit)) + 160)
  19. #endif