]> code.bitgloo.com Git - clyne/funreg.git/summary
 
descriptionFunctional memory-mapped register access in modern C++
ownerClyne Sullivan
last changeWed, 5 Feb 2025 20:53:00 +0000 (15:53 -0500)

funreg: Functional Register I/O using modern C++

funreg provides a functional approach to interacting with registers. The library includes support for memory-mapped registers; however, other types of registers can be supported through creating a simple access interface.

A unique feature of this library is its ability to handle multiple register operations with a single function call; these operations will be merged together so that the register is only read and written once.

Registers may also be organized into groups. These groups can similarly receive a list of operations, which will be directed the to the appropriate registers for the same single-read-single-write process.

For example, LEDs can be controlled by a microcontroller with a single call:

cpp LEDS::modify<LED1::set, LED2::clear, LED3::set>();

...no matter if the LEDs use different registers, or if any of them are controlled by an external circuit rather than a built-in IO peripheral.

See GUIDE.md for a walk-through of the available functionality.

Feature overview

Requirements

shortlog
2025-02-05 Clyne Sullivanbetter svd parsing master
2025-02-05 Clyne Sullivanadd stm32 example
2025-02-05 Clyne Sullivanadd svd2funreg readme
2025-02-05 Clyne Sullivandisable RegisterMaskValue for now
2025-02-05 Clyne Sullivanadd svd2funreg
2022-08-11 ClyneMerge pull request 'external-register' (#1) from extern...
2022-08-10 Clyne Sullivanupdate documentation 1/head
2022-08-09 Clyne Sullivanadd guide; couple small fixes
2022-08-08 Clyne Sullivanexternal i/o implemented
2022-08-07 Clyne Sullivandraft; make reg access generic
2022-08-07 Clyne SullivanAdd funreg.hpp
2022-08-07 ClyneInitial commit
heads
6 months ago master
3 years ago error-checking