<div dir="ltr">Hello all <div><br></div><div>I want to add a new interrupt in my program , </div><div>i check the rtems sample folder in order to see how to add one ,i found the rtems-irq.c file and i did as the file says but im using a leon 3 and theirs it says: error Example not intended for LEON3 CPU.</div><div>my question's are:</div><div>firs how to call an interrupt in leon3 after i put it inside the ISR table, (i know that in some OS you just write asm {INT #} in order to invoke the interrupt).</div><div><br></div><div>second i need some explain for the lines :</div><div>*(unsigned long *) (0x80000090) = 0xc;<br></div><div>*(unsigned long *) (0x80000098) = 0xc;<br></div><div>in code below  because i don't quit understand it ( maybe it's invoke the interrupt but how does it relate to the handleExternalIrq) .</div><div><br></div><div>i add the rtems-irq.c bellow" </div><div>--------------------------------------------------------------------------</div><div><div>#include <rtems.h></div><div>/* configuration information */</div><div><br></div><div>#define CONFIGURE_INIT</div><div><br></div><div>#include <bsp.h> /* for device driver prototypes */</div><div><br></div><div>rtems_task Init (rtems_task_argument argument);</div><div>rtems_isr handleExternalIrq (rtems_vector_number vector);</div><div><br></div><div>#define CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER</div><div>#define CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER</div><div><br></div><div>#define CONFIGURE_MAXIMUM_TASKS             4</div><div><br></div><div>#define CONFIGURE_RTEMS_INIT_TASKS_TABLE</div><div><br></div><div>#define CONFIGURE_EXTRA_TASK_STACKS         (3 * RTEMS_MINIMUM_STACK_SIZE)</div><div><br></div><div>#include <rtems/confdefs.h></div><div><br></div><div>#include <stdlib.h></div><div>#include <stdio.h></div><div><br></div><div>rtems_task</div><div>Init</div><div>(</div><div>    rtems_task_argument argument</div><div>)</div><div>{</div><div>    rtems_status_code status;</div><div>    rtems_isr_entry old_handle;</div><div><br></div><div>    status = rtems_interrupt_catch (handleExternalIrq, 0x12, &old_handle);</div><div>    status = rtems_interrupt_catch (handleExternalIrq, 0x13, &old_handle);</div><div><br></div><div>#ifdef __erc32__</div><div>    *(unsigned long *) (0x1f8004c) = 0x7ff0;</div><div>    *(unsigned long *) (0x1f800d0) = 0x80000;</div><div>    *(unsigned long *) (0x1f80054) = 0x0c;</div><div>#elif defined(LEON2)</div><div>    *(unsigned long *) (0x80000090) = 0xc;</div><div>    *(unsigned long *) (0x80000098) = 0xc;</div><div>#elif defined(LEON3)</div><div>#error Example not intended for LEON3 CPU</div><div>#endif</div><div>    exit(0);</div><div>}</div><div><br></div><div>rtems_isr</div><div>handleExternalIrq</div><div>(</div><div>    rtems_vector_number vector</div><div>)</div><div>{</div><div>    printf ("External interrupt received with vector 0x%x\n", vector);</div><div>}<span style="white-space:pre">      </span></div><div><br></div><div><br></div><div>----------------------------------------------------------------</div><div><br></div><div>thanks a lot for the helpers ! </div><div><br></div><div>Yaron .</div><div><br></div><div><br></div><div><br></div>--<div class="gmail_signature"><div dir="ltr"><div><div dir="ltr"><span><div dir="ltr" style="margin-left:0pt"><table style="border:none;border-collapse:collapse"><colgroup><col width="278"><col width="322"></colgroup><tbody><tr style="height:27px"><td colspan="2" style="border-width:0px;border-style:solid;border-color:rgb(0,0,0);vertical-align:top;padding:7px"><p dir="ltr" style="line-height:1.2;margin-top:0pt;margin-bottom:0pt"><span style="font-size:13.3333px;font-family:"Courier New";color:rgb(34,139,34);background-color:transparent;font-weight:700;vertical-align:baseline;white-space:pre-wrap"><img src="https://lh4.googleusercontent.com/MAmpk4C_PMWbT3zd0qdOSQrjc8Z10rviGbNXOwcwHaQsEZMoMiIycSLYS_mSXnOqfEy2QkNLP1y-0gO-6yHBGUZLK1jtiiU6IpMMOJT-bAVizgbQcyOwKWpJ6DM5a1K9PnjXrkv8" width="384" height="20" style="border: none;" alt="signature-1.gif"></span></p></td></tr></tbody></table></div></span></div></div></div></div>
</div></div>