Network semaphore error
Joel Sherrill
joel.sherrill at OARcorp.com
Thu Sep 18 13:12:46 UTC 2003
Richard M. Barry wrote:
> I'm getting a run-time error when I run RTEMS on a custom StrongArm 1100 board we developed in house. More details about the problem:
>
> I wrote a network device driver for the HDLC comms chip on the board, put it in the bsp and compiled the bsp. To test it I wrote a simple application that just opens a socket to listen on. It all compiled fine, but when I try to run the application, it exits on a fatal error, saying it can't release the network semaphore (detailed output below). It doesn't seem to even get into my network driver's code (I put a printf at the beginning of EVERY function in the driver to make sure), so it crashes out while trying to initialise the network code I guess? Any ideas on where to start looking for the problem? The application Makefile defines MANAGERS=all, and the system.h for the application is also listed below.
The network device driver isn't installed that way. You have to get to
a user task, initialize the network stack, then attach your driver.
Look at the network demos.
This is happening because the network device driver is trying to release
a semaphore which hasn't been created yet.
> Console output when running application:
> ----------------------------------------
>
> RTEMS RELEASE rtems-ss-20011210(ARM/StrongARM 1100/armssdr)
> COPYRIGHT (c) 1989-1999.
> On-Line Applications Research Corporation (OAR).
>
> SA1100 SSDR (armssdr) Board Support Package
> COPYRIGHT (c) Surrey Satellite Technology Ltd (SSTL), 2001
> work_space_size = 0x80000
> maximum_extensions = 0x1
> microseconds_per_tick = 0x2710
> ticks_per_timeslice = 0x32
> maximum_devices = 0x14
> number_of_device_drivers = 0x4
> Device_driver_table = 0x804B600
> _heap_size = 0x0
> rtemsFreeMemStart = 0x80CEF40
> work_space_start = 0x804EF40
> work_space_size = 0x80000
> Ram disk start = 0x18000000
> heap size = 00080000
> Initialized console input on port 0, output on port 2
>
> Clock driver
> Can't release network semaphore
>
> fatal error, exiting
>
>
> EXECUTIVE SHUTDOWN! Any key to reboot...
>
> *************
>
> system.h
> --------
>
> #include <rtems.h>
> /*#include <pmacros.h> */
>
> /* functions */
>
> rtems_task Init(
> rtems_task_argument argument
> );
>
> /* configuration information */
> #include <bsp.h> /* for device driver prototypes */
>
> /* configuration information */
> #define CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER
> #define CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER
> #define CONFIGURE_APPLICATION_NEEDS_PTY_DRIVER
>
> #define CONFIGURE_RTEMS_INIT_TASKS_TABLE
>
>
> #define CONFIGURE_LIBIO_MAXIMUM_FILE_DESCRIPTORS 20
> #define CONFIGURE_USE_IMFS_AS_BASE_FILESYSTEM
>
> #if 0
> #define CONFIGURE_EXECUTIVE_RAM_SIZE (512*1024)
> #endif
>
> #define CONFIGURE_MAXIMUM_SEMAPHORES 10
> #define CONFIGURE_MAXIMUM_TASKS 20
> #define CONFIGURE_MAXIMUM_TIMERS 10
> #define CONFIGURE_MAXIMUM_MESSAGE_QUEUES 3
>
> #define CONFIGURE_MICROSECONDS_PER_TICK 10000
>
>
> /*
> #define CONFIGURE_POSIX_INIT_THREAD_TABLE
>
> #define CONFIGURE_MAXIMUM_POSIX_THREADS 4
> #define CONFIGURE_MAXIMUM_POSIX_TIMERS 4
> #define CONFIGURE_MAXIMUM_POSIX_MUTEXES 2
> #define CONFIGURE_MAXIMUM_POSIX_CONDITION_VARIABLES 2
> */
>
> /*
> #define CONFIGURE_INIT_TASK_STACK_SIZE (RTEMS_MINIMUM_STACK_SIZE*8)
> */
> #define CONFIGURE_INIT_TASK_STACK_SIZE (4096)
> #define CONFIGURE_INIT_TASK_PRIORITY 120
> #define CONFIGURE_INIT_TASK_INITIAL_MODES (RTEMS_PREEMPT | \
> RTEMS_NO_TIMESLICE | \
> RTEMS_NO_ASR | \
> RTEMS_INTERRUPT_LEVEL(0))
>
>
> /*
> #define CONFIGURE_INIT_TASK_INITIAL_MODES RTEMS_DEFAULT_MODES
> */
>
> /*
> #define CONFIGURE_EXTRA_TASK_STACKS (10*1024)
> */
>
>
>
> #include <console.h>
> #include <clockdrv.h>
> #include <rtems/pty.h>
>
> #define CONFIGURE_HAS_OWN_DEVICE_DRIVER_TABLE
>
> rtems_driver_address_table Device_drivers[] = {
>
> CONSOLE_DRIVER_TABLE_ENTRY,
> CLOCK_DRIVER_TABLE_ENTRY,
> PTY_DRIVER_TABLE_ENTRY,
> {NULL, NULL, NULL, NULL, NULL, NULL}
> };
>
> #if 0
> #define STACK_CHECKER_ON 1
> #endif
>
> #include <confdefs.h>
>
> /* end of include file */
>
> Richard Barry
--
Joel Sherrill, Ph.D. Director of Research & Development
joel at OARcorp.com On-Line Applications Research
Ask me about RTEMS: a free RTOS Huntsville AL 35805
Support Available (256) 722-9985
More information about the users
mailing list