<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">2017-07-31 11:56 GMT+02:00 Denis Obrezkov <span dir="ltr"><<a href="mailto:denisobrezkov@gmail.com" target="_blank">denisobrezkov@gmail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div><div class="gmail-h5"><div class="gmail_quote">2017-07-31 1:08 GMT+02:00 Hesham Almatary <span dir="ltr"><<a href="mailto:heshamelmatary@gmail.com" target="_blank">heshamelmatary@gmail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div class="gmail-m_-7763770840882259257m_-6912398439404051638gmail-m_9119888759794981988gmail-m_-1688899457400252112HOEnZb"><div class="gmail-m_-7763770840882259257m_-6912398439404051638gmail-m_9119888759794981988gmail-m_-1688899457400252112h5">On Mon, Jul 31, 2017 at 5:03 AM, Denis Obrezkov <<a href="mailto:denisobrezkov@gmail.com" target="_blank">denisobrezkov@gmail.com</a>> wrote:<br>
> 2017-07-30 20:40 GMT+02:00 Joel Sherrill <<a href="mailto:joel@rtems.org" target="_blank">joel@rtems.org</a>>:<br>
>><br>
>><br>
>><br>
>> On Jul 30, 2017 12:19 PM, "Denis Obrezkov" <<a href="mailto:denisobrezkov@gmail.com" target="_blank">denisobrezkov@gmail.com</a>><br>
>> wrote:<br>
>><br>
>> 2017-07-30 3:10 GMT+02:00 Joel Sherrill <<a href="mailto:joel@rtems.org" target="_blank">joel@rtems.org</a>>:<br>
>>><br>
>>><br>
>>><br>
>>> On Jul 29, 2017 8:02 PM, "Denis Obrezkov" <<a href="mailto:denisobrezkov@gmail.com" target="_blank">denisobrezkov@gmail.com</a>><br>
>>> wrote:<br>
>>><br>
>>><br>
>>><br>
>>> 2017-07-30 2:34 GMT+02:00 Joel Sherrill <<a href="mailto:joel@rtems.org" target="_blank">joel@rtems.org</a>>:<br>
>>>><br>
>>>><br>
>>>> Sorry to top post but this thread is very deep to answer on a phone.<br>
>>>><br>
>>>> Try looking at the same code on the erc32 bsp and see how it is done.<br>
>>>><br>
>>>> Also you could disable the atexit() call and see how.much further you<br>
>>>> get.<br>
>>>><br>
>>>><br>
>>> Ok, I will look at erc32 bsp.<br>
>>> I have removed atexit call, now I can proceed further, till the while(1)<br>
>>> loop in the low ticker test.<br>
>>> But the Dummy Clock doesn't tick.<br>
>>> So, I again get the output:<br>
>>> *** LOW MEMORY CLOCK TICK TEST ***<br>
>>> TA1  - rtems_clock_get_tod - 09:00:00   12/31/1988<br>
>>> TA2  - rtems_clock_get_tod - 09:00:00   12/31/1988<br>
>>> TA3  - rtems_clock_get_tod - 09:00:00   12/31/1988<br>
>>><br>
>>><br>
>>> Low ticker has its Init task become the idle task. Your clock driver<br>
>>> simulator thread is likely never running.<br>
>>><br>
>>> Try turning that option off in the test<br>
>>><br>
>>><br>
>>><br>
>>> --<br>
>>> Regards, Denis Obrezkov<br>
>>><br>
>>><br>
>><br>
>> I tried it, but I had an error<br>
>> ../../../../../hifive1/lib/inc<wbr>lude/rtems/confdefs.h:3586:2: error: #error<br>
>> "CONFIGURATION ERROR: No initialization tasks or threads configured!!"<br>
>>  #error "CONFIGURATION ERROR: No initialization tasks or threads<br>
>> configured!!"<br>
>><br>
>><br>
>> You have to configure an Init task.<br>
>><br>
>><br>
>><br>
>><br>
>> --<br>
>> Regards, Denis Obrezkov<br>
>><br>
>><br>
> Yes, I understand that, but I can't find proper configuration options.<br>
><br>
</div></div>#define CONFIGURE_INIT<br>
<br>
There might be other #ifdefs needed as well like:<br>
<br>
#define CONFIGURE_RTEMS_INIT_TASKS_TAB<wbr>LE<br>
<br>
Have a look at the existing hello and ticker examples (not low ticker).<br>
<div class="gmail-m_-7763770840882259257m_-6912398439404051638gmail-m_9119888759794981988gmail-m_-1688899457400252112HOEnZb"><div class="gmail-m_-7763770840882259257m_-6912398439404051638gmail-m_9119888759794981988gmail-m_-1688899457400252112h5">><br>
><br>
> --<br>
> Regards, Denis Obrezkov<br>
><br>
> ______________________________<wbr>_________________<br>
> devel mailing list<br>
> <a href="mailto:devel@rtems.org" target="_blank">devel@rtems.org</a><br>
> <a href="http://lists.rtems.org/mailman/listinfo/devel" rel="noreferrer" target="_blank">http://lists.rtems.org/mailman<wbr>/listinfo/devel</a><br>
<br>
<br>
<br>
--<br>
</div></div><span class="gmail-m_-7763770840882259257m_-6912398439404051638gmail-m_9119888759794981988gmail-m_-1688899457400252112HOEnZb"><font color="#888888">Hesham<br>
</font></span></blockquote></div><br></div></div>I was trying to implement interrupt-driven clock driver. In bspstart.c I added bsp_interrupt_initialize<wbr>() and </div><div class="gmail_extra">added an interrupt initialization code </div><div class="gmail_extra"><div class="gmail_extra">static void FE310_clock_driver_support_ins<wbr>tall_isr(</div><div class="gmail_extra">  rtems_isr_entry Clock_isr</div><div class="gmail_extra">)</div><div class="gmail_extra">{</div><div class="gmail_extra">  rtems_status_code sc = RTEMS_SUCCESSFUL;</div><div class="gmail_extra"><br></div><div class="gmail_extra">  sc = rtems_interrupt_handler_instal<wbr>l(</div><div class="gmail_extra">    1,</div><div class="gmail_extra">    "Clock",</div><div class="gmail_extra">    RTEMS_INTERRUPT_UNIQUE,</div><div class="gmail_extra">    (rtems_interrupt_handler) Clock_isr,</div><div class="gmail_extra">    NULL</div><div class="gmail_extra">  );</div><div class="gmail_extra">  if ( sc != RTEMS_SUCCESSFUL ) {</div><div class="gmail_extra">    rtems_fatal_error_occurred(0xd<wbr>eadbeef);</div><div class="gmail_extra">  }</div><div class="gmail_extra">}</div><div class="gmail_extra"><br></div><div class="gmail_extra">Also, I added a call in IRQ handler:</div><div class="gmail_extra"><div class="gmail_extra">bsp_interrupt_handler_table[1]<wbr>.handler(bsp_interrupt_handler<wbr>_table[1].arg);</div><div><br></div><div>This way I was able to generate one tick and get an exception on the second with -O0 and</div><div>I wasn't able to generate any interrupts with -Os option with the same code.</div><div><br></div><div>With -O0 code behaves differently, I think I am missing something. </div></div><span class="gmail-HOEnZb"><font color="#888888"><div><br></div>-- <br><div class="gmail-m_-7763770840882259257m_-6912398439404051638gmail-m_9119888759794981988gmail-m_-1688899457400252112gmail_signature">Regards, Denis Obrezkov</div>
</font></span></div></div>
</blockquote></div>I think I have an error during context switching/context saving. </div><div class="gmail_extra">Hesham, can you check it:</div><div class="gmail_extra"><a href="https://github.com/embeddedden/rtems-riscv/blob/hifive1/cpukit/score/cpu/riscv32/riscv-context-switch.S">https://github.com/embeddedden/rtems-riscv/blob/hifive1/cpukit/score/cpu/riscv32/riscv-context-switch.S</a></div><div class="gmail_extra"><a href="https://github.com/embeddedden/rtems-riscv/blob/hifive1/c/src/lib/libbsp/riscv32/hifive1/start/start.S#L196">https://github.com/embeddedden/rtems-riscv/blob/hifive1/c/src/lib/libbsp/riscv32/hifive1/start/start.S#L196</a><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature">Regards, Denis Obrezkov</div>
</div></div>