2.1 Hardware abstraction layer
[Core module]

The Hardware abstraction layer module is described through the following subsections:

This module provides a hardware abstraction layer which give access to processor and platform specific resources. These are mostly processor system primitives and related language types.

This module does not handle access to devices like timers, uarts or even interrupt controllers. Those are handled by device drivers and the Devices support library module.

The following topics are covered:

  • Atomic memory operations primitives, provided by the hexo/atomic.h header.

  • Bit operations, provided by the hexo/bit.h header.

  • Execution context management stuff, provided by the hexo/context.h header.

  • Startup and misc cpu related functions, provided by the hexo/cpu.h header.

  • Integer values byte-swaping and endian stuff, provided by the hexo/endian.h header.

  • C enum reflection, provided by the hexo/enum.h header.

  • Common error codes definitions, provided by the hexo/error.h header.

  • Write access to memory mapped flash, provided by the hexo/flash.h header.

  • Io and memory address spaces functions access, provided by the hexo/iospace.h header.

  • Inter-processor interrupts, provided by the hexo/ipi.h header.

  • Processor local and context local, language global variables features, provided by the hexo/local.h header.

  • Spinlock stuff, provided by the hexo/lock.h header.

  • Serializing operations and memory barrier primitives, provided by the hexo/ordering.h header.

  • Standard integer types definitions, provided by the hexo/types.h header.

  • Interrupts, exceptions and syscall events management, provided by the interrupt.h header.

  • Various build system related defs, provided by the hexo/decls.h header.

Valid XHTML 1.0 StrictGenerated by diaxen on Thu Aug 4 15:44:05 2022 using MkDoc