NEORV32 API Reference
The NEORV32 RISC-V Processor
Loading...
Searching...
No Matches
neorv32_gptmr.h
Go to the documentation of this file.
1// ================================================================================ //
2// The NEORV32 RISC-V Processor - https://github.com/stnolting/neorv32 //
3// Copyright (c) NEORV32 contributors. //
4// Copyright (c) 2020 - 2025 Stephan Nolting. All rights reserved. //
5// Licensed under the BSD-3-Clause license, see LICENSE for details. //
6// SPDX-License-Identifier: BSD-3-Clause //
7// ================================================================================ //
8
14#ifndef NEORV32_GPTMR_H
15#define NEORV32_GPTMR_H
16
17#include <stdint.h>
18
19
20/**********************************************************************/
25typedef volatile struct __attribute__((packed,aligned(4))) {
26 union {
27 uint32_t WORD;
28 struct {
29 uint16_t ENABLE;
30 uint16_t MODE;
31 };
32 } CSR0;
33 union {
34 uint32_t WORD;
35 struct {
36 uint16_t IRQ;
37 uint16_t PRSC;
38 };
39 } CSR1;
40 const uint32_t reserved[30];
41 struct {
42 uint32_t CNT;
43 uint32_t THR;
44 } SLICE[16];
46
48#define NEORV32_GPTMR ((neorv32_gptmr_t*) (NEORV32_GPTMR_BASE))
52/**********************************************************************/
58void neorv32_gptmr_setup(int prsc);
59void neorv32_gptmr_enable_single(int sel);
61void neorv32_gptmr_enable_mask(uint16_t mask);
62void neorv32_gptmr_disable_mask(uint16_t mask);
63void neorv32_gptmr_configure(int sel, uint32_t cnt, uint32_t thr, int mode);
64int neorv32_gptmr_irq_get(void);
65void neorv32_gptmr_irq_ack(int sel);
69#endif // NEORV32_GPTMR_H
void neorv32_gptmr_setup(int prsc)
Definition neorv32_gptmr.c:56
void neorv32_gptmr_enable_single(int sel)
Definition neorv32_gptmr.c:79
void neorv32_gptmr_disable_mask(uint16_t mask)
Definition neorv32_gptmr.c:112
void neorv32_gptmr_configure(int sel, uint32_t cnt, uint32_t thr, int mode)
Definition neorv32_gptmr.c:126
void neorv32_gptmr_irq_ack(int sel)
Definition neorv32_gptmr.c:171
void neorv32_gptmr_disable_single(int sel)
Definition neorv32_gptmr.c:90
int neorv32_gptmr_get_num_slices(void)
Definition neorv32_gptmr.c:33
void neorv32_gptmr_enable_mask(uint16_t mask)
Definition neorv32_gptmr.c:101
int neorv32_gptmr_available(void)
Definition neorv32_gptmr.c:22
int neorv32_gptmr_irq_get(void)
Definition neorv32_gptmr.c:145
Definition neorv32_gptmr.h:25
uint16_t ENABLE
Definition neorv32_gptmr.h:29
uint32_t THR
Definition neorv32_gptmr.h:43
uint32_t CNT
Definition neorv32_gptmr.h:42
uint32_t WORD
Definition neorv32_gptmr.h:27
uint16_t PRSC
Definition neorv32_gptmr.h:37
uint16_t MODE
Definition neorv32_gptmr.h:30
uint16_t IRQ
Definition neorv32_gptmr.h:36