awr2544_pac/mss_vim_r5a/
intvector_143.rs1#[doc = "Register `INTVECTOR_143` reader"]
2pub type R = crate::R<Intvector143Spec>;
3#[doc = "Register `INTVECTOR_143` writer"]
4pub type W = crate::W<Intvector143Spec>;
5#[doc = "Field `RES20` reader - 1:0\\]
6Reserved. Read as 0. The lower 2 bits of the 32-bit vector address are always 0. Vector addresses must be 32-bit aligned."]
7pub type Res20R = crate::FieldReader;
8#[doc = "Field `RES20` writer - 1:0\\]
9Reserved. Read as 0. The lower 2 bits of the 32-bit vector address are always 0. Vector addresses must be 32-bit aligned."]
10pub type Res20W<'a, REG> = crate::FieldWriter<'a, REG, 2>;
11#[doc = "Field `ADDR` reader - 31:2\\]
12This is the 32-bit Vector Address associated with interrupt Q. It is the address that will be reflected in the IRQ Vector Address (Base Address + 0x18) or FIQ Vector Address (Base Address + 0x1C) and the VECADDR pin when interrupt Q is the active interrupt. Internally, these values are kept in a RAM. The FIQ and IRQ state machines have priority access to this RAM. Writes to this register will be piped internally, but further writes to the MMR interface may be stalled until this write has a chance to complete in the RAM. The new Vector Address will not take effect until this write completes to the RAM. In order to tell if this write has completed, software may read this register back. That read will not be able to complete unless the write has landed. Reads to this register will stall the MMR interface until the read is able to be completed at the RAM."]
13pub type AddrR = crate::FieldReader<u32>;
14#[doc = "Field `ADDR` writer - 31:2\\]
15This is the 32-bit Vector Address associated with interrupt Q. It is the address that will be reflected in the IRQ Vector Address (Base Address + 0x18) or FIQ Vector Address (Base Address + 0x1C) and the VECADDR pin when interrupt Q is the active interrupt. Internally, these values are kept in a RAM. The FIQ and IRQ state machines have priority access to this RAM. Writes to this register will be piped internally, but further writes to the MMR interface may be stalled until this write has a chance to complete in the RAM. The new Vector Address will not take effect until this write completes to the RAM. In order to tell if this write has completed, software may read this register back. That read will not be able to complete unless the write has landed. Reads to this register will stall the MMR interface until the read is able to be completed at the RAM."]
16pub type AddrW<'a, REG> = crate::FieldWriter<'a, REG, 30, u32>;
17impl R {
18    #[doc = "Bits 0:1 - 1:0\\]
19Reserved. Read as 0. The lower 2 bits of the 32-bit vector address are always 0. Vector addresses must be 32-bit aligned."]
20    #[inline(always)]
21    pub fn res20(&self) -> Res20R {
22        Res20R::new((self.bits & 3) as u8)
23    }
24    #[doc = "Bits 2:31 - 31:2\\]
25This is the 32-bit Vector Address associated with interrupt Q. It is the address that will be reflected in the IRQ Vector Address (Base Address + 0x18) or FIQ Vector Address (Base Address + 0x1C) and the VECADDR pin when interrupt Q is the active interrupt. Internally, these values are kept in a RAM. The FIQ and IRQ state machines have priority access to this RAM. Writes to this register will be piped internally, but further writes to the MMR interface may be stalled until this write has a chance to complete in the RAM. The new Vector Address will not take effect until this write completes to the RAM. In order to tell if this write has completed, software may read this register back. That read will not be able to complete unless the write has landed. Reads to this register will stall the MMR interface until the read is able to be completed at the RAM."]
26    #[inline(always)]
27    pub fn addr(&self) -> AddrR {
28        AddrR::new((self.bits >> 2) & 0x3fff_ffff)
29    }
30}
31impl W {
32    #[doc = "Bits 0:1 - 1:0\\]
33Reserved. Read as 0. The lower 2 bits of the 32-bit vector address are always 0. Vector addresses must be 32-bit aligned."]
34    #[inline(always)]
35    #[must_use]
36    pub fn res20(&mut self) -> Res20W<Intvector143Spec> {
37        Res20W::new(self, 0)
38    }
39    #[doc = "Bits 2:31 - 31:2\\]
40This is the 32-bit Vector Address associated with interrupt Q. It is the address that will be reflected in the IRQ Vector Address (Base Address + 0x18) or FIQ Vector Address (Base Address + 0x1C) and the VECADDR pin when interrupt Q is the active interrupt. Internally, these values are kept in a RAM. The FIQ and IRQ state machines have priority access to this RAM. Writes to this register will be piped internally, but further writes to the MMR interface may be stalled until this write has a chance to complete in the RAM. The new Vector Address will not take effect until this write completes to the RAM. In order to tell if this write has completed, software may read this register back. That read will not be able to complete unless the write has landed. Reads to this register will stall the MMR interface until the read is able to be completed at the RAM."]
41    #[inline(always)]
42    #[must_use]
43    pub fn addr(&mut self) -> AddrW<Intvector143Spec> {
44        AddrW::new(self, 2)
45    }
46}
47#[doc = "Interrupt Q Vector Register (Q is 0 to 255 , Q= M+1 x 32) h2000 + Q x h147\n\nYou can [`read`](crate::Reg::read) this register and get [`intvector_143::R`](R). You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`intvector_143::W`](W). You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."]
48pub struct Intvector143Spec;
49impl crate::RegisterSpec for Intvector143Spec {
50    type Ux = u32;
51}
52#[doc = "`read()` method returns [`intvector_143::R`](R) reader structure"]
53impl crate::Readable for Intvector143Spec {}
54#[doc = "`write(|w| ..)` method takes [`intvector_143::W`](W) writer structure"]
55impl crate::Writable for Intvector143Spec {
56    type Safety = crate::Unsafe;
57    const ZERO_TO_MODIFY_FIELDS_BITMAP: u32 = 0;
58    const ONE_TO_MODIFY_FIELDS_BITMAP: u32 = 0;
59}
60#[doc = "`reset()` method sets INTVECTOR_143 to value 0"]
61impl crate::Resettable for Intvector143Spec {
62    const RESET_VALUE: u32 = 0;
63}