> 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

Reply via email to