> On Sep 24, 2019, at 17:41 , Joel Sherrill <j...@rtems.org> wrote:
>
> On Tue, Sep 24, 2019 at 4:29 PM Peter Dufault <dufa...@hda.com> wrote:
>>
>> I've started testing the PowerPC MVME5500 "beatnik" BSP on the mainline.
>> I've run through the majority of the RTEMS tests, with some failures, but
>> when I went to run any basic programs they do not produce any output. They
>> are obviously running, I can put in a "sleep(3)" and observe it, but no
>> output.
>>
>> I looked at what rtems-tester does and see it wraps "printf()" and friends.
>> I found that if:
>> - I add CONFIGURE_INITIAL_EXTENSIONS RTEMS_TEST_INITIAL_EXTENSION to my
>> configuration;
>> - I used "rtems_test_printf()" that output via "rtems_test_printf()" works.
>>
>> After that I tried this in my _POSIX_Init(), to see if file descriptor 1 was
>> open:
>>
>> const char *hello="Hello to FD 1\r\n";
>> size_t n = strlen(hello);
>> size_t output;
>>
>> rtems_test_printf("rtems_test_printf %s: Hello...\n", __func__);
>> if ( (output = write(1, hello, n)) != n) {
>> printk("%s: write() returned %d not %d: %s\n", __func__,
>> (int)output, (int)n, strerror(errno));
>> }
>>
>> The output is:
>>
>> rtems_test_printf _POSIX_Init: Hello...
>> _POSIX_Init: write() returned -1 not 15: Bad file number
>>
>> So file descriptor 1 isn't opened. What establishes the standard open file
>> descriptors that isn't being called in my update?
>>
>> I *think* I have the GDB stub working, I had to modify it to bring it
>> up-to-date, but I'd rather see a console message like "GDB stub starting
>> up..." before I go further.
>
> As a simple check, try "nm -g -n" on the executable and look at what's
> in the Sysinit linker section. On psim hello,.exe, I see this:
>
> 001d660 D _Linker_set__Sysinit_begin
> 0001d660 D _Linker_set__Sysinit_bsp_work_area_initialize
> 0001d660 D __start_set_sysctl_set
> 0001d660 D __stop_set_sysctl_set
> 0001d664 D _Linker_set__Sysinit_bsp_start
> 0001d668 D _Linker_set__Sysinit__User_extensions_Handler_initialization
> 0001d66c D _Linker_set__Sysinit_rtems_initialize_data_structures
> 0001d670 D _Linker_set__Sysinit__RTEMS_tasks_Manager_initialization
> 0001d674 D _Linker_set__Sysinit__POSIX_Keys_Manager_initialization
> 0001d678 D _Linker_set__Sysinit__Thread_Create_idle
> 0001d67c D _Linker_set__Sysinit_rtems_libio_init
> 0001d680 D _Linker_set__Sysinit_rtems_filesystem_initialize
> 0001d684 D _Linker_set__Sysinit__Console_simple_Initialize
> 0001d688 D _Linker_set__Sysinit__IO_Initialize_all_drivers
> 0001d68c D _Linker_set__Sysinit__RTEMS_tasks_Initialize_user_tasks_body
> 0001d690 D _Linker_set__Sysinit_rtems_libio_post_driver
> 0001d694 D _Linker_set__Sysinit_end
>
> It's the libio_post_driver one.
>
> Another possibility based on my recollection of the mvme2100 is that
> there are variants where some ports are missing or wired out strange
> places. Given the file descriptor isn't there, I suspect that
> /dev/console wasn't registered. That could mean the console driver
> isn't in the build or it didn't see the device it wanted to register.
>
> Check the linker set via nm first. That's easy.
>
> --joel
>
>
It's getting late for me so I won't be analyzing this, but the section is "R"
(relocatable?) and not "D". It's also interesting that there's an "endPeter"
section, I'm not sure what I did to create that.
00081a90 R _Linker_set__Sysinit_Stack_check_Prepare_interrupt_stacks
00081a90 R _Linker_set__Sysinit_begin
00081a94 R _Linker_set__Sysinit_bsp_work_area_initialize
00081a98 R _Linker_set__Sysinit_bsp_start
00081a9c R _Linker_set__Sysinit_bsp_work_area_initialize_later
00081aa0 R _Linker_set__Sysinit__User_extensions_Handler_initialization
00081aa4 R _Linker_set__Sysinit_rtems_initialize_data_structures
00081aa8 R _Linker_set__Sysinit__RTEMS_tasks_Manager_initialization
00081aac R _Linker_set__Sysinit__Message_queue_Manager_initialization
00081ab0 R _Linker_set__Sysinit__Semaphore_Manager_initialization
00081ab4 R _Linker_set__Sysinit__POSIX_signals_Manager_Initialization
00081ab8 R _Linker_set__Sysinit__POSIX_Threads_Manager_initialization
00081abc R _Linker_set__Sysinit__POSIX_Keys_Manager_initialization
00081ac0 R _Linker_set__Sysinit__Thread_Create_idle
00081ac4 R _Linker_set__Sysinit_rtems_libio_init
00081ac8 R _Linker_set__Sysinit_rtems_filesystem_initialize
00081acc R _Linker_set__Sysinit_BSP_vme_config
00081ad0 R _Linker_set__Sysinit__IO_Initialize_all_drivers
00081ad4 R _Linker_set__Sysinit__POSIX_Threads_Initialize_user_threads_body
00081ad8 R _Linker_set__Sysinit_rtems_libio_post_driver
00081adc R _Linker_set__Sysinit_endPeter
-----------------
Peter Dufault
HD Associates, Inc. Software and System Engineering
This email is delivered through the public internet using protocols subject to
interception and tampering.
_______________________________________________
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel