Can't enable a dummy clock driver

Denis Obrezkov denisobrezkov at gmail.com
Sun Jul 23 13:20:34 UTC 2017


2017-07-22 21:24 GMT+02:00 Joel Sherrill <joel at rtems.org>:

>
>
> On Jul 22, 2017 3:01 PM, "Denis Obrezkov" <denisobrezkov at gmail.com> wrote:
>
> Hello, I am trying to enable a dummy clock driver.
> I did as Joel suggested like in v850sim BSP.
> But now I have a problem - the driver isn't initialized properly.
> I receive an exception "Illegal instruction" during rtems_io_initialize.
> The line with the exception is /cpukit/sapi/src/ioinitialize.c:36:
> return callout ? callout(major, minor, argument) : RTEMS_SUCCESSFUL
>
> and "p callout" in gdb returns:
> (rtems_device_driver_entry) 0x2040087c <Clock_initialize+34>
>
> What could be the reason for such a behavior?
>
>
> Accidental data overwrite?
>
>
>
> --
> Regards, Denis Obrezkov
>
> _______________________________________________
> devel mailing list
> devel at rtems.org
> http://lists.rtems.org/mailman/listinfo/devel
>
>
>
I was able to proceed further by enabling a console driver. But I can't
create a thread, because of an error.
For example, I have a backtrace:
#0  0x20408984 in rtems_task_start (id=2147488832, entry_point=0x80001448,
argument=16777216)
    at
/home/reprofy/Projects/riscv/rtems/development/rtems/kernel/rtems-riscv/c/src/../../cpukit/rtems/src/taskstart.c:29
#1  0x204004c6 in Init (argument=0) at
/home/reprofy/Projects/riscv/rtems/development/rtems/kernel/rtems-riscv/c/src/../../testsuites/samples/ticker/init.c:59
#2  0x20410438 in _Thread_Entry_adaptor_idle (executing=0x80000f88)
    at
/home/reprofy/Projects/riscv/rtems/development/rtems/kernel/rtems-riscv/c/src/../../cpukit/score/src/threadentryadaptoridle.c:25
#3  0x2041ba5c in _Thread_Handler () at
/home/reprofy/Projects/riscv/rtems/development/rtems/kernel/rtems-riscv/c/src/../../cpukit/score/src/threadhandler.c:73
#4  0x2041b9fa in _User_extensions_Thread_exitted (executing=0x80000f88) at
../../cpukit/../../../hifive1/lib/include/rtems/score/userextimpl.h:298

But after several steps it is:
#0  0x204104f2 in _Objects_Are_ids_equal (left=541099722, right=2147490432)
at ../../cpukit/../../../hifive1/lib/include/rtems/score/objectimpl.h:817
#1  0x2041057a in _Thread_Get (id=167837697, lock_context=0x80001a58) at
/home/reprofy/Projects/riscv/rtems/development/rtems/kernel/rtems-riscv/c/src/../../cpukit/score/src/threadget.c:28
#2  0x204089c0 in rtems_task_start (id=167837697, entry_point=0x204003a4
<Test_task>, argument=1)
    at
/home/reprofy/Projects/riscv/rtems/development/rtems/kernel/rtems-riscv/c/src/../../cpukit/rtems/src/taskstart.c:43
#3  0x204004c6 in Init (argument=0) at
/home/reprofy/Projects/riscv/rtems/development/rtems/kernel/rtems-riscv/c/src/../../testsuites/samples/ticker/init.c:59
#4  0x20410438 in _Thread_Entry_adaptor_idle (executing=0x80000f88)
    at
/home/reprofy/Projects/riscv/rtems/development/rtems/kernel/rtems-riscv/c/src/../../cpukit/score/src/threadentryadaptoridle.c:25
#5  0x2041ba5c in _Thread_Handler () at
/home/reprofy/Projects/riscv/rtems/development/rtems/kernel/rtems-riscv/c/src/../../cpukit/score/src/threadhandler.c:73
#6  0x2041b9fa in _User_extensions_Thread_exitted (executing=0x80000f88) at
../../cpukit/../../../hifive1/lib/include/rtems/score/userextimpl.h:298
Backtrace stopped: frame did not save the PC

You can see that rtems_task_start arguments have been changed. Though it is
the same function.
Also, the value of 'left' in _Objects_Are_ids_equal should be 'id' value
from _Thread_Get.


-- 
Regards, Denis Obrezkov

2017-07-22 21:24 GMT+02:00 Joel Sherrill <joel at rtems.org>:

>
>
> On Jul 22, 2017 3:01 PM, "Denis Obrezkov" <denisobrezkov at gmail.com> wrote:
>
> Hello, I am trying to enable a dummy clock driver.
> I did as Joel suggested like in v850sim BSP.
> But now I have a problem - the driver isn't initialized properly.
> I receive an exception "Illegal instruction" during rtems_io_initialize.
> The line with the exception is /cpukit/sapi/src/ioinitialize.c:36:
> return callout ? callout(major, minor, argument) : RTEMS_SUCCESSFUL
>
> and "p callout" in gdb returns:
> (rtems_device_driver_entry) 0x2040087c <Clock_initialize+34>
>
> What could be the reason for such a behavior?
>
>
> Accidental data overwrite?
>
>
>
> --
> Regards, Denis Obrezkov
>
> _______________________________________________
> devel mailing list
> devel at rtems.org
> http://lists.rtems.org/mailman/listinfo/devel
>
>
>


-- 
Regards, Denis Obrezkov
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rtems.org/pipermail/devel/attachments/20170723/2bcadd42/attachment-0002.html>


More information about the devel mailing list