Hilscher netX microcontroller driver  V0.0.5.0
Documentation of the netX driver package
gpio_app_Type Struct Reference

gpio_app (gpio_app) More...

#include <netx90_app.h>

Collaboration diagram for gpio_app_Type:
Collaboration graph

Data Fields

union {
   __IOM uint32_t   gpio_app_cfg [8]
 
   struct {
      __IOM uint32_t   mode: 4
 
      __IOM uint32_t   inv: 1
 
      __IOM uint32_t   count_ref: 2
 
      __IOM uint32_t   blink_len: 5
 
      __IOM uint32_t   blink_once: 1
 
      __IOM uint32_t   bf_align0: 19
 
   }   gpio_app_cfg_b [8]
 
}; 
 
union {
   __IOM uint32_t   gpio_app_tc [8]
 
   struct {
      __IOM uint32_t   val: 32
 
   }   gpio_app_tc_b [8]
 
}; 
 
union {
   __IOM uint32_t   gpio_app_counter_ctrl [3]
 
   struct {
      __IOM uint32_t   run: 1
 
      __IOM uint32_t   sym_nasym: 1
 
      __IOM uint32_t   irq_en: 1
 
      __IOM uint32_t   sel_event: 1
 
      __IOM uint32_t   once: 1
 
      __IOM uint32_t   event_act: 2
 
      __IOM uint32_t   gpio_ref: 3
 
      __IOM uint32_t   bf_align0: 22
 
   }   gpio_app_counter_ctrl_b [3]
 
}; 
 
union {
   __IOM uint32_t   gpio_app_counter_max [3]
 
   struct {
      __IOM uint32_t   val: 32
 
   }   gpio_app_counter_max_b [3]
 
}; 
 
union {
   __IOM uint32_t   gpio_app_counter_cnt [3]
 
   struct {
      __IOM uint32_t   val: 32
 
   }   gpio_app_counter_cnt_b [3]
 
}; 
 
union {
   __IOM uint32_t   gpio_app_line
 
   struct {
      __IOM uint32_t   val: 8
 
      __IOM uint32_t   bf_align0: 24
 
   }   gpio_app_line_b
 
}; 
 
union {
   __IM uint32_t   gpio_app_in
 
   struct {
      __IM uint32_t   val: 8
 
      __IM uint32_t   bf_align0: 24
 
   }   gpio_app_in_b
 
}; 
 
union {
   __IOM uint32_t   gpio_app_irq_raw
 
   struct {
      __IOM uint32_t   gpio_app0: 1
 
      __IOM uint32_t   gpio_app1: 1
 
      __IOM uint32_t   gpio_app2: 1
 
      __IOM uint32_t   gpio_app3: 1
 
      __IOM uint32_t   gpio_app4: 1
 
      __IOM uint32_t   gpio_app5: 1
 
      __IOM uint32_t   gpio_app6: 1
 
      __IOM uint32_t   gpio_app7: 1
 
      __IOM uint32_t   bf_align0: 24
 
   }   gpio_app_irq_raw_b
 
}; 
 
union {
   __IM uint32_t   gpio_app_irq_masked
 
   struct {
      __IM uint32_t   gpio_app0: 1
 
      __IM uint32_t   gpio_app1: 1
 
      __IM uint32_t   gpio_app2: 1
 
      __IM uint32_t   gpio_app3: 1
 
      __IM uint32_t   gpio_app4: 1
 
      __IM uint32_t   gpio_app5: 1
 
      __IM uint32_t   gpio_app6: 1
 
      __IM uint32_t   gpio_app7: 1
 
      __IM uint32_t   bf_align0: 24
 
   }   gpio_app_irq_masked_b
 
}; 
 
union {
   __IOM uint32_t   gpio_app_irq_mask_set
 
   struct {
      __IOM uint32_t   gpio_app0: 1
 
      __IOM uint32_t   gpio_app1: 1
 
      __IOM uint32_t   gpio_app2: 1
 
      __IOM uint32_t   gpio_app3: 1
 
      __IOM uint32_t   gpio_app4: 1
 
      __IOM uint32_t   gpio_app5: 1
 
      __IOM uint32_t   gpio_app6: 1
 
      __IOM uint32_t   gpio_app7: 1
 
      __IOM uint32_t   bf_align0: 24
 
   }   gpio_app_irq_mask_set_b
 
}; 
 
union {
   __IOM uint32_t   gpio_app_irq_mask_rst
 
   struct {
      __IOM uint32_t   gpio_app0: 1
 
      __IOM uint32_t   gpio_app1: 1
 
      __IOM uint32_t   gpio_app2: 1
 
      __IOM uint32_t   gpio_app3: 1
 
      __IOM uint32_t   gpio_app4: 1
 
      __IOM uint32_t   gpio_app5: 1
 
      __IOM uint32_t   gpio_app6: 1
 
      __IOM uint32_t   gpio_app7: 1
 
      __IOM uint32_t   bf_align0: 24
 
   }   gpio_app_irq_mask_rst_b
 
}; 
 
union {
   __IOM uint32_t   gpio_app_cnt_irq_raw
 
   struct {
      __IOM uint32_t   cnt0: 1
 
      __IOM uint32_t   cnt1: 1
 
      __IOM uint32_t   cnt2: 1
 
      __IOM uint32_t   bf_align0: 29
 
   }   gpio_app_cnt_irq_raw_b
 
}; 
 
union {
   __IM uint32_t   gpio_app_cnt_irq_masked
 
   struct {
      __IM uint32_t   cnt0: 1
 
      __IM uint32_t   cnt1: 1
 
      __IM uint32_t   cnt2: 1
 
      __IM uint32_t   bf_align0: 29
 
   }   gpio_app_cnt_irq_masked_b
 
}; 
 
union {
   __IOM uint32_t   gpio_app_cnt_irq_mask_set
 
   struct {
      __IOM uint32_t   cnt0: 1
 
      __IOM uint32_t   cnt1: 1
 
      __IOM uint32_t   cnt2: 1
 
      __IOM uint32_t   bf_align0: 29
 
   }   gpio_app_cnt_irq_mask_set_b
 
}; 
 
union {
   __IOM uint32_t   gpio_app_cnt_irq_mask_rst
 
   struct {
      __IOM uint32_t   cnt0: 1
 
      __IOM uint32_t   cnt1: 1
 
      __IOM uint32_t   cnt2: 1
 
      __IOM uint32_t   bf_align0: 29
 
   }   gpio_app_cnt_irq_mask_rst_b
 
}; 
 

Detailed Description

gpio_app (gpio_app)

Definition at line 24606 of file netx90_app.h.

Field Documentation

union { ... }

< (@ 0xFF801400) gpio_app Structure

union { ... }
union { ... }
union { ... }
union { ... }
union { ... }
union { ... }
union { ... }
union { ... }
union { ... }
union { ... }
union { ... }
union { ... }
union { ... }
union { ... }
__IOM uint32_t gpio_app_Type::bf_align0

[31..13] bitField alignment value for aeabi compatibility

[31..10] bitField alignment value for aeabi compatibility

[31..8] bitField alignment value for aeabi compatibility

[31..3] bitField alignment value for aeabi compatibility

Definition at line 24631 of file netx90_app.h.

__IM uint32_t gpio_app_Type::bf_align0

[31..8] bitField alignment value for aeabi compatibility

[31..3] bitField alignment value for aeabi compatibility

Definition at line 24719 of file netx90_app.h.

__IOM uint32_t gpio_app_Type::blink_len

[11..7] Length of blink sequence minus 1 (blink mode only) 00000: use bit 0 of gpio_app_tc 00001: use bits 0..1 of gpio_app_tc 00010: use bits 0..2 of gpio_app_tc ... 11111: use bits 0..31 of gpio_app_tc

Definition at line 24626 of file netx90_app.h.

__IOM uint32_t gpio_app_Type::blink_once

[12..12] Run blink sequence only once (blink mode only)

Definition at line 24630 of file netx90_app.h.

__IOM uint32_t gpio_app_Type::cnt0

[0..0] Interrupt bit for counter0

Definition at line 24829 of file netx90_app.h.

__IM uint32_t gpio_app_Type::cnt0

[0..0] Interrupt bit for counter0

Definition at line 24846 of file netx90_app.h.

__IOM uint32_t gpio_app_Type::cnt1

[1..1] Interrupt bit for counter1

Definition at line 24830 of file netx90_app.h.

__IM uint32_t gpio_app_Type::cnt1

[1..1] Interrupt bit for counter1

Definition at line 24847 of file netx90_app.h.

__IOM uint32_t gpio_app_Type::cnt2

[2..2] Interrupt bit for counter2

Definition at line 24831 of file netx90_app.h.

__IM uint32_t gpio_app_Type::cnt2

[2..2] Interrupt bit for counter2

Definition at line 24848 of file netx90_app.h.

__IOM uint32_t gpio_app_Type::count_ref

[6..5] counter reference 00: counter 0 01: counter 1 10: counter 2 11: sys_time (global system time)

Definition at line 24624 of file netx90_app.h.

__IOM uint32_t gpio_app_Type::event_act

[6..5] Define action of selected external event (dependent on sel_event, gpio_ref) 00: count every clock cycle, ignore external events 01: count only external events (edge or level according to bit sel_event) 10: enable watchdog mode of counter (external event will be reset without IRQ, overflow generates IRQ). 11: enable automatic run mode (external event sets run bit, used for DC-DC PWM in combination with bit once=1)

Definition at line 24668 of file netx90_app.h.

__IOM uint32_t gpio_app_Type::gpio_app0

[0..0] Interrupt bit for GPIO_APP0

Definition at line 24734 of file netx90_app.h.

__IM uint32_t gpio_app_Type::gpio_app0

[0..0] Interrupt bit for GPIO_APP0

Definition at line 24754 of file netx90_app.h.

__IOM uint32_t gpio_app_Type::gpio_app1

[1..1] Interrupt bit for GPIO_APP1

Definition at line 24735 of file netx90_app.h.

__IM uint32_t gpio_app_Type::gpio_app1

[1..1] Interrupt bit for GPIO_APP1

Definition at line 24755 of file netx90_app.h.

__IOM uint32_t gpio_app_Type::gpio_app2

[2..2] Interrupt bit for GPIO_APP2

Definition at line 24736 of file netx90_app.h.

__IM uint32_t gpio_app_Type::gpio_app2

[2..2] Interrupt bit for GPIO_APP2

Definition at line 24756 of file netx90_app.h.

__IOM uint32_t gpio_app_Type::gpio_app3

[3..3] Interrupt bit for GPIO_APP3

Definition at line 24737 of file netx90_app.h.

__IM uint32_t gpio_app_Type::gpio_app3

[3..3] Interrupt bit for GPIO_APP3

Definition at line 24757 of file netx90_app.h.

__IOM uint32_t gpio_app_Type::gpio_app4

[4..4] Interrupt bit for GPIO_APP4

Definition at line 24738 of file netx90_app.h.

__IM uint32_t gpio_app_Type::gpio_app4

[4..4] Interrupt bit for GPIO_APP4

Definition at line 24758 of file netx90_app.h.

__IOM uint32_t gpio_app_Type::gpio_app5

[5..5] Interrupt bit for GPIO_APP5

Definition at line 24739 of file netx90_app.h.

__IM uint32_t gpio_app_Type::gpio_app5

[5..5] Interrupt bit for GPIO_APP5

Definition at line 24759 of file netx90_app.h.

__IOM uint32_t gpio_app_Type::gpio_app6

[6..6] Interrupt bit for GPIO_APP6

Definition at line 24740 of file netx90_app.h.

__IM uint32_t gpio_app_Type::gpio_app6

[6..6] Interrupt bit for GPIO_APP6

Definition at line 24760 of file netx90_app.h.

__IOM uint32_t gpio_app_Type::gpio_app7

[7..7] Interrupt bit for GPIO_APP7

Definition at line 24741 of file netx90_app.h.

__IM uint32_t gpio_app_Type::gpio_app7

[7..7] Interrupt bit for GPIO_APP7

Definition at line 24761 of file netx90_app.h.

__IOM uint32_t gpio_app_Type::gpio_app_cfg[8]

(@ 0x00000000) GPIO_APP pin 0 config register: This register is accessible via address areas inlogic_app and xpic_app_system.

Definition at line 24609 of file netx90_app.h.

struct { ... } gpio_app_Type::gpio_app_cfg_b[8]
__IOM uint32_t gpio_app_Type::gpio_app_cnt_irq_mask_rst

(@ 0x00000088) Counter interrupt mask reset: This reset mask serves to disable the interrupt requests for the corresponding interrupt sources. Like cnt_irq_msk_set, this address exists for the following address areas: inlogic_app, xpic_app_system. Write access with '1' resets the interrupt mask bit (disables the interrupt request for the corresponding interrupt source). Write access with '0' does not influence this bit. Read access shows the current interrupt mask.

Definition at line 24876 of file netx90_app.h.

struct { ... } gpio_app_Type::gpio_app_cnt_irq_mask_rst_b
__IOM uint32_t gpio_app_Type::gpio_app_cnt_irq_mask_set

(@ 0x00000084) Counter interrupt mask set: The interrupt mask register exists 2x for the different system busses (address areas) it is connected to. This allows 2 CPUs to work in parallel on this module: ARM_APP, xPIC_APP. The inlogic_app IRQ mask enables interrupt requests for ARM_APP. The xpic_app_system IRQ mask enables interrupt requests for xPIC_APP. Since different software tasks might change its bits, the IRQ mask register is not writable directly, but by set and reset masks: Write access wi

Definition at line 24854 of file netx90_app.h.

struct { ... } gpio_app_Type::gpio_app_cnt_irq_mask_set_b
__IM uint32_t gpio_app_Type::gpio_app_cnt_irq_masked

(@ 0x00000080) Counter masked IRQ register: Read access shows the status of masked IRQs (cnt_irq_raw AND cnt_irq_mask). This register exists 2x for the different system busses (address areas) it is connected to. This allows 2 CPUs to work in parallel on this module: ARM_APP, xPIC_APP.

Definition at line 24837 of file netx90_app.h.

struct { ... } gpio_app_Type::gpio_app_cnt_irq_masked_b
__IOM uint32_t gpio_app_Type::gpio_app_cnt_irq_raw

(@ 0x0000007C) Counter raw IRQ register: Read access shows the status of unmasked IRQs. IRQs are set automatically and reset by writing to this register: Write access with '1' resets the corresponding IRQ. Write access with '0' does not influence this bit. This register is accessible via address areas inlogic_app and xpic_app_system.

Definition at line 24820 of file netx90_app.h.

struct { ... } gpio_app_Type::gpio_app_cnt_irq_raw_b
__IOM uint32_t gpio_app_Type::gpio_app_counter_cnt[3]

(@ 0x00000058) GPIO_APP counter0 current value: This register is accessible via address areas inlogic_app and xpic_app_system.

Definition at line 24693 of file netx90_app.h.

struct { ... } gpio_app_Type::gpio_app_counter_cnt_b[3]
__IOM uint32_t gpio_app_Type::gpio_app_counter_ctrl[3]

(@ 0x00000040) GPIO_APP counter0 control register: This register is accessible via address areas inlogic_app and xpic_app_system.

Definition at line 24654 of file netx90_app.h.

struct { ... } gpio_app_Type::gpio_app_counter_ctrl_b[3]
__IOM uint32_t gpio_app_Type::gpio_app_counter_max[3]

(@ 0x0000004C) GPIO_APP counter0 max value: This register is accessible via address areas inlogic_app and xpic_app_system.

Definition at line 24682 of file netx90_app.h.

struct { ... } gpio_app_Type::gpio_app_counter_max_b[3]
__IM uint32_t gpio_app_Type::gpio_app_in

(@ 0x00000068) GPIO_APP latched inputs register: This register is accessible via address areas inlogic_app and xpic_app_system.

Definition at line 24713 of file netx90_app.h.

struct { ... } gpio_app_Type::gpio_app_in_b
__IOM uint32_t gpio_app_Type::gpio_app_irq_mask_rst

(@ 0x00000078) GPIO_APP interrupt mask reset: This reset mask serves to disable the interrupt requests for the corresponding interrupt sources. Like irq_msk_set, this address exists for the following address areas: inlogic_app, xpic_app_system. Write access with '1' resets the interrupt mask bit (disables the interrupt request for the corresponding interrupt source). Write access with '0' does not influence this bit. Read access shows the current interrupt mask.

Definition at line 24794 of file netx90_app.h.

struct { ... } gpio_app_Type::gpio_app_irq_mask_rst_b
__IOM uint32_t gpio_app_Type::gpio_app_irq_mask_set

(@ 0x00000074) GPIO_APP interrupt mask set: The interrupt mask register exists 2x for the different system busses (address areas) it is connected to. This allows 2 CPUs to work in parallel on this module: ARM_APP, xPIC_APP. The inlogic_app IRQ mask enables interrupt requests for ARM_APP. The xpic_app_system IRQ mask enables interrupt requests for xPIC_APP. Since different software tasks might change its bits, the IRQ mask register is not writable directly, but by set and reset masks: Write access w

Definition at line 24767 of file netx90_app.h.

struct { ... } gpio_app_Type::gpio_app_irq_mask_set_b
__IM uint32_t gpio_app_Type::gpio_app_irq_masked

(@ 0x00000070) GPIO_APP masked IRQ register: This register exists 2x for the different system busses (address areas) it is connected to. This allows 2 CPUs to work in parallel on this module: ARM_APP, xPIC_APP.

Definition at line 24747 of file netx90_app.h.

struct { ... } gpio_app_Type::gpio_app_irq_masked_b
__IOM uint32_t gpio_app_Type::gpio_app_irq_raw

(@ 0x0000006C) GPIO_APP raw IRQ register: Read access shows the status of unmasked IRQs. IRQs are set automatically and reset by writing to this register: Write access with '1' resets the corresponding IRQ. Write access with '0' does not influence this bit. This register is accessible via address areas inlogic_app and xpic_app_system.

Definition at line 24724 of file netx90_app.h.

struct { ... } gpio_app_Type::gpio_app_irq_raw_b
__IOM uint32_t gpio_app_Type::gpio_app_line

(@ 0x00000064) GPIO_APP line register This register is accessible via address areas inlogic_app and xpic_app_system.

Definition at line 24703 of file netx90_app.h.

struct { ... } gpio_app_Type::gpio_app_line_b
__IOM uint32_t gpio_app_Type::gpio_app_tc[8]

(@ 0x00000020) GPIO_APP pin 0 threshold or capture register: This register is accessible via address areas inlogic_app and xpic_app_system.

Definition at line 24636 of file netx90_app.h.

struct { ... } gpio_app_Type::gpio_app_tc_b[8]
__IOM uint32_t gpio_app_Type::gpio_ref

[9..7] gpio reference (0 - 7)

Definition at line 24676 of file netx90_app.h.

__IOM uint32_t gpio_app_Type::inv

[4..4] 1: invert input/output value 0: do not invert input/output

Definition at line 24623 of file netx90_app.h.

__IOM uint32_t gpio_app_Type::irq_en

[2..2] 1: enable interrupt request on sel_event 0: disable interrupt request

Definition at line 24661 of file netx90_app.h.

__IOM uint32_t gpio_app_Type::mode

[3..0] defines the gp input or output mode - depends on io_cfg Input modes: 0000: read mode 0001: capture continued at rising edge (allows gpio_app_irq on each capture) 0010: capture once at rising edge (reset gpio_app_irq to capture again) 0011: capture once at high level (reset gpio_app_irq to capture again) Output modes: 0100: set to 0 0101: set to 1 0110: set to gpio_app_line[0] 0111: pwm mode, direct threshold update (might cause hazards on output) 1000: blink mode Multi pin modes: 1111: pwm2-mode with thres

Definition at line 24614 of file netx90_app.h.

__IOM uint32_t gpio_app_Type::once

[4..4] 1: count once (reset run bit after 1 period) 0: count continuously

Definition at line 24666 of file netx90_app.h.

__IOM uint32_t gpio_app_Type::run

[0..0] 1: start counter, counter is running 0: stop counter

Definition at line 24659 of file netx90_app.h.

__IOM uint32_t gpio_app_Type::sel_event

[3..3] select external event 0: high level, invert gpio in register gpio_app_cfg to select low level 1: pos. edge, invert gpio in register gpio_app_cfg to select neg. edge

Definition at line 24663 of file netx90_app.h.

__IOM uint32_t gpio_app_Type::sym_nasym

[1..1] 1: symmetric mode (triangle) 0: asymmetric mode (sawtooth)

Definition at line 24660 of file netx90_app.h.

__IOM uint32_t gpio_app_Type::val

[31..0] Threshold/Capture register: PWM mode (threshold): { | The counter threshold value equals the number of inactive clock cycles per period (cycles with pwm=0). Therefore it is interpreted differently in symmetrical and asymmetrical counter mode: Asymmetrical mode (sawtooth): pwm = (counter >= gpio_app_tc) Symmetrical mode (triangle) : Counter is compared with gpio_app_tc[31:1], gpio_app_tc[0] extends the inactive phase by 1 clock cycle only while counting up. This allows running a 10 ns resolution even in sym

[31..0] Asymmetric mode: Counting period in cc + 1 Symmetric mode: Counting period in cc

[31..0] current counter value

[7..0] gpio_app output values

Definition at line 24641 of file netx90_app.h.

__IM uint32_t gpio_app_Type::val

[7..0] gpio_app input values

Definition at line 24718 of file netx90_app.h.


The documentation for this struct was generated from the following file: