![]() |
![]() |
Specification of the Rx Address Segment Value Register. More...
#include <hyplnk.h>
Data Fields | |
uint32_t | raw |
[ro] Raw image of register on read; actual value on write | |
uint16_t | rxSegVal |
[rw] Segment address value (base address) | |
uint8_t | rxLenVal |
[rw] Selects segment size |
Specification of the Rx Address Segment Value Register.
There is an array of 64 segment value registers. The particular segment value register accessed via hyplnkRXSegValReg_s is specified in hyplnkRXSegIdxReg_s::rxSegIdx.
After the segment index is extracted from the incoming address based on hyplnkRXAddrSelReg_s::rxSegSel, the index is dereferenced through this table to get a base address and length.
The local address (which will be presented through the SES or SMS MPAX) is constructed by:
((rxSegVal << 16) | RxAddress) & ((1 << (1 + rxLenVal)) - 1)
uint8_t hyplnkRXSegValReg_s::rxLenVal |
[rw] Selects segment size
Field size: 5 bits
rxLenVal | Segment Size |
---|---|
0-7 | 0 |
8 | 0x0 0000 0200 |
9 | 0x0 0000 0400 |
10 | 0x0 0000 0800 |
11 | 0x0 0000 1000 |
12 | 0x0 0000 2000 |
13 | 0x0 0000 4000 |
14 | 0x0 0000 8000 |
15 | 0x0 0001 0000 |
16 | 0x0 0002 0000 |
17 | 0x0 0004 0000 |
18 | 0x0 0008 0000 |
19 | 0x0 0010 0000 |
20 | 0x0 0020 0000 |
21 | 0x0 0040 0000 |
22 | 0x0 0080 0000 |
23 | 0x0 0100 0000 |
24 | 0x0 0200 0000 |
25 | 0x0 0400 0000 |
26 | 0x0 0800 0000 |
27 | 0x0 1000 0000 |
28 | 0x0 2000 0000 |
29 | 0x0 4000 0000 |
30 | 0x0 8000 0000 |
31 | 0x1 0000 0000 |
uint16_t hyplnkRXSegValReg_s::rxSegVal |
[rw] Segment address value (base address)
Field size: 16 bits