On Fri, Aug 14, 2020 at 10:51 AM Richi Dubey <richidu...@gmail.com> wrote:

> My god. There's so much that a bachelor's degree does not teach.
>

This particular one definitely qualifies as an example of Arthur C.
Clarke's Third Law to me. :)

Clarke's Third Law: Any sufficiently advanced technology is
indistinguishable from magic.
Profiles of the Future (revised edition, 1973)

It really is quite simply once you see the end result. There is just an
array of
function pointers in a special section with a start and end symbol. And a
loop to go over them at init time. All built up by the linker based on
dependencies.

--joel



> Thank you for your answer.
>
> On Fri, Aug 14, 2020 at 6:18 PM Sebastian Huber <
> sebastian.hu...@embedded-brains.de> wrote:
>
>> On 14/08/2020 11:25, Richi Dubey wrote:
>>
>> > Is _RTEMS_tasks_Initialize_user_task responsible for starting the Init
>> > task?
>> Yes.
>> >
>> > Also how does the following code which is part
>> > of rtems_initialize_executive:
>> >
>> >   /* Invoke the registered system initialization handlers */
>> >   RTEMS_LINKER_SET_FOREACH( _Sysinit, item ) {
>> >     ( *item->handler )();
>> >   }
>> >
>> > call _RTEMS_tasks_Initialize_user_task?
>>
>> This is done via a linker set:
>>
>> https://docs.rtems.org/branches/master/c-user/linker_sets.html
>>
>> You can see the entries with this host command line tool:
>>
>> https://docs.rtems.org/branches/master/user/tools/exeinfo.html
>>
>> _______________________________________________
> devel mailing list
> devel@rtems.org
> http://lists.rtems.org/mailman/listinfo/devel
_______________________________________________
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel

Reply via email to