Questions for SMP feature.

Chris Johns chrisj at rtems.org
Tue Apr 18 02:32:08 UTC 2017


On 17/04/2017 21:47, Thomas Kim wrote:
> Dear Sir,
>
> I get ZynQ real board(name: ZYBO ZynQ-7000 Development Board).
> I was succeful to test SMP feature on my ZynQ real board after minor
> part(UART config) is modified.
> But, after I enable rtems-libbsd in below, RTEMS is not worked.
>
> My example code is below;
>
> void *POSIX_Init(void *argument)
> {
>  rtems_status_code         sc;
> #if 0 // Thomas. when below bsd initialization code is executed, RTEMS
> is not worked.
>  /* FreeBSD Initialization */
>  sc = rtems_media_initialize();
>  ASSERT_SC(sc);
>  sc = rtems_media_listener_add(media_listener, NULL);
>  ASSERT_SC(sc);
>  sc = rtems_media_server_initialize(200, 32 * 1024, RTEMS_DEFAULT_MODES,
> RTEMS_DEFAULT_ATTRIBUTES);
>  ASSERT_SC(sc);
>  sc = rtems_bsd_initialize();
>  ASSERT_SC(sc);
>  network_ifconfig_lo0();
> #endif
>  sc = rtems_task_create( rtems_build_name ('S', 'H', 'E', 'L'),
>   10, 4096, RTEMS_DEFAULT_MODES, RTEMS_DEFAULT_ATTRIBUTES, &Task_Shell_id);
>  sc = rtems_task_start( Task_Shell_id, shell_start, 1 );
> }
>
> At this time, I just used "#define CONFIGURE_MAXIMUM_PROCESSORS    2"
> option only for this.

You do need this. I suspect a number of the libbsd tests do not have 
this set which would seem like a bug to me. I see the debugger01 test 
fails if I add this setting to it.

> I have questions.
>
> Can RTEMS SMP feature is using both rtems kernel and rtems-libbsd ?

Yes. The configure phase of the build will indicate if the RTEMS you are 
building against has been built with SMP enabled.

> If I need additional configuration for using rtems-libbsd with SMP
> feaure, plesae let me know that.

There is a test in libbsd called smp01. I suggest you take a look at 
that test.

Chris



More information about the users mailing list