<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: LPC2132 fiq setup branches to prefetch_abort_irq in LPC Microcontrollers</title>
    <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC2132-fiq-setup-branches-to-prefetch-abort-irq/m-p/626120#M24593</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Got it solved. Modified Makefile so that fiq_irq is not compiled with "-mthumb -mthumb-interwork".&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Fri, 09 Dec 2016 18:49:24 GMT</pubDate>
    <dc:creator>rons</dc:creator>
    <dc:date>2016-12-09T18:49:24Z</dc:date>
    <item>
      <title>LPC2132 fiq setup branches to prefetch_abort_irq</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC2132-fiq-setup-branches-to-prefetch-abort-irq/m-p/626119#M24592</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;STRONG&gt;Issue with LPC2132FBD64: unable to get fiq&amp;nbsp; to work. &lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;My main program calls TIMER1_Init() and I get kicked into the prefetch_abort_irq(). &lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;I have also tried the vectored irq method (not shown but the changes are minimal) and I get kicked into the software_irq().&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;If the timer is not enabled to interrupt on match the processor (T1MCR_MR0I) the while loop displays the timer counter register. I know it is counting correctly. &lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;I have worked with the lpc2148 and lpc1768 with no problems.&amp;nbsp; I was wondering if the notations in the manual about the LPC2132/01 being a upgrade to the LPC2132 would matter. It looks like the date code on my LPC2132 is "07".&lt;BR /&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;-------------------------------------------------------------------------------------&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;_start:&lt;BR /&gt; b reset /* reset */&lt;BR /&gt; b undef_instruction_irq /* undefined instruction */&lt;BR /&gt; b software_irq /* software interrupt */&lt;BR /&gt; b prefetch_abort_irq /* prefetch abort */&lt;BR /&gt; b data_abort_irq /* data abort */&lt;BR /&gt; nop /* reserved for the bootloader checksum */&lt;BR /&gt; ldr pc, [pc, #-0x0ff0] /* IRQ */&lt;BR /&gt; b fiq_irq /* FIQ */&lt;BR /&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;-------------------------------------------------------------------------------------&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;#define T1IR_MR0_INTERRUPT 0x01&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;void fiq_irq(void)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; timer1_ticks++;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; T1IR = T1IR_MR0_INTERRUPT;&lt;BR /&gt;}&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;-------------------------------------------------------------------------------------&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;void software_irq(void)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LED_Blink(0x02);&lt;BR /&gt;}&lt;BR /&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;-------------------------------------------------------------------------------------&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;void prefetch_abort_irq(void)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LED_Blink(0x03);&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;-------------------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;#define MEMMAP_MAP_INT_VECTORS_IN_FLASH 0x01&lt;/P&gt;&lt;P&gt;void MEMMAP_Init(void)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MEMMAP = MEMMAP_MAP_INT_VECTORS_IN_FLASH;&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;-------------------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;#define SCS_GPIO0M_HIGH_SPEED&amp;nbsp;&amp;nbsp; 0x00000001&lt;BR /&gt;#define SCS_GPIO1M_HIGH_SPEED&amp;nbsp;&amp;nbsp; 0x00000002&lt;/P&gt;&lt;P&gt;void GPIO_Init(void)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Enable high speed GPIO on port 0 &amp;amp; 1 */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SCS = SCS_GPIO1M_HIGH_SPEED | SCS_GPIO0M_HIGH_SPEED;&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;-------------------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;void LED_Write(uint8_t num)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FIO0PIN0 = ~num;&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void LED_Blink(uint8_t num)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while(1)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LED_Write(num);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; delay(250);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LED_Write(0);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; delay(250);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void LED_Init(void)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FIO0DIR0 = 0xFF;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FIO0SET0 = 0xFF; &lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;-------------------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;#define REG8(x)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (*((volatile uint8_t*) (x)))&lt;BR /&gt;#define REG16(x)&amp;nbsp;&amp;nbsp; (*((volatile uint16_t*) (x)))&lt;BR /&gt;#define REG32(x)&amp;nbsp;&amp;nbsp; (*((volatile uint32_t*) (x)))&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;#define PCONP_PCTIM1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00000004&lt;/P&gt;&lt;P&gt;#define CCLK&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 60000000&lt;/P&gt;&lt;P&gt;#define TIMER1_RATE &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 100&lt;/P&gt;&lt;P&gt;#define T1CTCR_MODE_TIMER&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00&lt;/P&gt;&lt;P&gt;#define T1MCR_MR0I&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x0001&lt;BR /&gt;#define T1MCR_MR0R&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x0002&lt;/P&gt;&lt;P&gt;#define VICIntSelect_TIMER1 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 0x00000020&lt;/P&gt;&lt;P&gt;#define T1TCR_COUNTER_ENABLE 0x01&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;#define T1TC&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; REG32(0xE0008008)&lt;/P&gt;&lt;P&gt;#define T1PR&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; REG32(0xE000800C)&lt;BR /&gt;#define T1PC&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; REG32(0xE0008010)&lt;BR /&gt;#define T1MCR&amp;nbsp; REG16(0xE0008014) &lt;BR /&gt;#define T1MR0&amp;nbsp;&amp;nbsp; REG32(0xE0008018)&lt;/P&gt;&lt;P&gt;#define T1CTCR&amp;nbsp; REG8(0xE0008070)&lt;/P&gt;&lt;P&gt;#define VICIntSelect REG32(0xFFFFF00C)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void TIMER1_Init(void)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Turn on power to timer */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PCONP |= PCONP_PCTIM1;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Clear counters */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; T1PR = 0;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; T1PC = 0;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; T1MR0 = CCLK / TIMER1_RATE;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; T1CTCR = T1CTCR_MODE_TIMER; /* timer mode */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; T1MCR = T1MCR_MR0I | T1MCR_MR0R; /* interrupt on match */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; VICIntSelect |= VICIntSelect_TIMER1; /* FIRQ category */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; T1TCR = T1TCR_COUNTER_ENABLE; /* enable for counting */&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;-------------------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;int main(void)&lt;BR /&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint8_t count;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; MEMMAP_Init();&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; GPIO_Init();&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LED_Init();&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; TIMER1_Init();&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; while (1)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (count = 0; count &amp;lt; 0x100; count++)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LED_Write(T1TC);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; delay(100);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;}&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 27 Nov 2016 20:57:09 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/LPC2132-fiq-setup-branches-to-prefetch-abort-irq/m-p/626119#M24592</guid>
      <dc:creator>rons</dc:creator>
      <dc:date>2016-11-27T20:57:09Z</dc:date>
    </item>
    <item>
      <title>Re: LPC2132 fiq setup branches to prefetch_abort_irq</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC2132-fiq-setup-branches-to-prefetch-abort-irq/m-p/626120#M24593</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Got it solved. Modified Makefile so that fiq_irq is not compiled with "-mthumb -mthumb-interwork".&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 09 Dec 2016 18:49:24 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/LPC2132-fiq-setup-branches-to-prefetch-abort-irq/m-p/626120#M24593</guid>
      <dc:creator>rons</dc:creator>
      <dc:date>2016-12-09T18:49:24Z</dc:date>
    </item>
    <item>
      <title>Re: LPC2132 fiq setup branches to prefetch_abort_irq</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC2132-fiq-setup-branches-to-prefetch-abort-irq/m-p/626121#M24594</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Sudjian,&lt;/P&gt;&lt;P&gt;Thanks for sharing your solution with the Community!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best regards!&lt;/P&gt;&lt;P&gt;/Carlos&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 14 Dec 2016 21:41:57 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/LPC2132-fiq-setup-branches-to-prefetch-abort-irq/m-p/626121#M24594</guid>
      <dc:creator>CarlosCasillas</dc:creator>
      <dc:date>2016-12-14T21:41:57Z</dc:date>
    </item>
  </channel>
</rss>

