Commit Graph

1394 Commits

Author SHA1 Message Date
Joel Sherrill
139e6efe3c Fix from Jiri Gaisler <jgais@ws.estec.esa.nl> for a problem in which
external interrupt priorities were not being honored.  Here is some
of his original report:

    using rtems/erc32, I have a problem with interrupt priority when
    interrupts occure simultaneously. Erc32 has an interrupt force
    register where interrupts can be generated. If more than one
    interrupt is generated, the interrupt handlers are scheduled in
    the wrong order, i.e. with the lowest priority first.

    I have attched a program that generates three interrupts, 0x11, 0x12
    and 0x13. Interrupt 0x13 should be handled first, but is actually
    handled last. Below is the output from sis:

        sis> go
        resuming at 0x02000000
        RAM size: 4096 K, ROM size: 2048 K
        Watchdog disabled
        Waitstates = RAM read: 0, RAM write: 0, ROM read: 0, ROM write: 0
        Power-down mode enabled
        infinite UART baudrate
        External interrupt received with vector 0x11
        External interrupt received with vector 0x12
        External interrupt received with vector 0x13

    I have verified that sis generates the interrupts in the correct
    order, i.e. 0x13 first, then 0x12 and then 0x11. So the problem
    seems to be in the rtems interrupt handler. Do you use the PIL field
    in the %psr register to mask lower priority interrupts or are all
    external interrupts considered to have the same priority ..?

Here is a description of the fix:

  it turned out that lower priority interrupts were not at all masked
  off during interrupt handling. I made the following fix to cpu_asm.s:
       ... fix is in the code ...
  There might be a simpler way of doing this, but this works...
1998-05-27 12:21:32 +00:00
Joel Sherrill
119bced0fd Added tcdrain(), cfgetospeed(0, cfsetospeed(), cfgetispeed(), and
cfsetispeed().
1998-05-22 14:51:11 +00:00
Joel Sherrill
e2476ed4d1 Added tcdrain(), cfgetospeed(), cfsetospeed(), cfgetispeed(), and cfsetispeed(). 1998-05-22 14:49:49 +00:00
Joel Sherrill
06e326b67f UNIX port now builds and runs cleanly with both C++ support enabled
and disabled.
1998-05-22 12:28:35 +00:00
Joel Sherrill
c19a29b458 Added call to console_reserve_resources back in. 1998-05-22 12:27:51 +00:00
Joel Sherrill
9d09d13808 Added main() which did not require C++ support. A different main
is used based on whether C++ is enabled or disabled.
1998-05-22 11:03:03 +00:00
Joel Sherrill
7e93af11ce changed version to 980521 1998-05-21 19:11:24 +00:00
Joel Sherrill
bd5e4f3baf Added bare bsp from Chris Johns <cjohns@plessey.com.au>. 1998-05-21 18:26:58 +00:00
Joel Sherrill
90cf4cc734 Corrected license notices per Eric's permission 1998-05-21 16:49:51 +00:00
Joel Sherrill
941f6f3c5e New file from Eric Valette 1998-05-21 16:46:05 +00:00
Joel Sherrill
d7588efc2f Per suggestion from Ralf Corsepius made all macros solaris2 -- not solaris
or solaris2.
1998-05-21 16:39:51 +00:00
Joel Sherrill
0d48220948 Remove --start-group/--end-group pair to support non-GNU ld's. 1998-05-21 16:38:54 +00:00
Joel Sherrill
27dccaec15 Patch to add return status to rtems_termios_enqueue_raw_characters from
Eric Norum per request from Geoffroy Montel:

   > The rtems_termios_enqueue_raw_characters function type is void.
   > The problem is that I can't return an error message if the input
   > buffer is full.
   > Could we add a return value?

   Sure, but what would you do with the overflow indication?  POSIX says,
   ``when the input limit is reached, the saved characters are thrown away
   without notice''.

   Anyhow, the change is so small I've done it and enclosed the patch.
1998-05-20 17:09:12 +00:00
Joel Sherrill
2efdd08b40 Patch from Ralf Corseipus to fix latent configure problems suddenly triggered:
The breakdown:
        * CC_FOR_TARGET and CXX_FOR_TARGET were not correctly re-read
          from autoconf's configuration cache (config.cache)

        * If <target>-[gcc|g++] was not found while running configure,
          the config macros tried to use other (wrong) compilers (e.g. cc).

    Changes:
        * New RTEMS_PROG_CC macro (aclocal/prog-cc.m4).
        * New RTEMS_PROG_CXX macro (aclocal/prog-cxx.m4)
        * Moved a shell script fragment from configure.in to a
          new m4-autoconf macro (New file: aclocal/tool-prefix.m4)
        * Minor changes to configure.in

    I tested it with linux/posix (native gcc/primary libc) and
    sh-rtems/gensh1 on a linux host and didn't notice any bugs
    related to the problems mentioned above.  There seem to be
    more bugs with the posix bsp, but I consider them minor as
    the build run completed successfully. It is just too late
    for me to attempt to fix them now.
1998-05-20 17:06:57 +00:00
Joel Sherrill
5dd4212fec Changed CPP rule per patch from Ralf Corsepius. 1998-05-20 17:01:04 +00:00
Joel Sherrill
603d706083 Added tcdrain() from Eric Norum 1998-05-20 17:00:22 +00:00
Joel Sherrill
9c3b406b4d Addition of tcdrain() from Eric Norum. 1998-05-19 11:34:04 +00:00
Joel Sherrill
3ac8e59c93 Removed prototype of rtems_libio_config() per Chris Johns' eagle eye. 1998-05-19 10:53:12 +00:00
Joel Sherrill
8dc5d00f2c changed version to 980518 1998-05-18 17:35:24 +00:00
Joel Sherrill
98c7389586 New file from Pedro Romano 1998-05-18 16:43:36 +00:00
Joel Sherrill
6ee6abb40d Added C++ rule.
Added CROSS_TARGET conditionals so unix port can share this file.
1998-05-18 16:38:38 +00:00
Joel Sherrill
64876e33f4 Added bsp_specs. 1998-05-18 16:37:32 +00:00
Joel Sherrill
bac7b61449 Include memory for Ada task stacks. 1998-05-18 16:37:00 +00:00
Joel Sherrill
185fab0b5a Added proper reference now that Embedded Systems Programming's WWW site
is available and has the code available.
1998-05-18 16:32:35 +00:00
Joel Sherrill
5c844076a2 Update from Ralf Corsepius. 1998-05-18 14:41:33 +00:00
Joel Sherrill
a863c500cc Updates from Pedro Romano. 1998-05-18 14:41:15 +00:00
Joel Sherrill
7d78f404ae New file. 1998-05-18 14:40:59 +00:00
Joel Sherrill
9caa3e3175 Cleaned up to remove warnings. 1998-05-11 17:41:00 +00:00
Joel Sherrill
c4638fff39 new file to support execv family support in newlib 1998-05-11 17:39:59 +00:00
Joel Sherrill
d37ea46231 execv*() now comes from newlib. 1998-05-11 17:39:38 +00:00
Joel Sherrill
47d1f5d8f9 Fixed prototype of Fatal_Extension.
Fixed interface to cofndefs.h for initial extension set.
1998-05-04 12:41:42 +00:00
Joel Sherrill
161e1b3f6a Patch from Eric Norum to switch to termios callback structure, add
support for device driver support on tcsetattr(), and hardware
flow control callbacks.
1998-05-04 12:41:07 +00:00
Joel Sherrill
55951bc1e6 Switched to termios callback structure. 1998-05-04 12:40:21 +00:00
Joel Sherrill
f35abd4863 Corrected and added sections to link cleanly under powerpc-rtems (ELF). 1998-05-04 12:40:09 +00:00
Joel Sherrill
f69d686dd5 Removed warning for unnecessary reference to start as entry point. 1998-05-04 12:39:21 +00:00
Joel Sherrill
36a14a9699 Patch from Eric Norum to switch to termios callback structure and
add support for changing the baudrate.
1998-05-04 12:38:53 +00:00
Joel Sherrill
5ee559acd2 Corrected and added sections to link cleanly under i386-rtemself. 1998-05-04 12:37:35 +00:00
Joel Sherrill
b77b26742e fixed swap of unsigned16 1998-05-04 12:36:59 +00:00
Joel Sherrill
10b3c9b3ef Added default value for CONFIGURE_MAXIMUM_POSIX_THREADS since it is
used to calculate the amount of memory used by tasks whether the
POSIX API is enabled or disabled.
1998-05-04 12:35:22 +00:00
Joel Sherrill
3e3674522b removed warning for implicit declaration of idtsim__exit() 1998-05-02 12:12:14 +00:00
Joel Sherrill
36aba21e13 removed warning for implicit declaration of resolve() 1998-05-02 12:11:23 +00:00
Joel Sherrill
269707e6f7 removed warning for `#ifdef' argument starts with a digit 1998-05-02 12:10:18 +00:00
Joel Sherrill
17f57736d5 removed warning for implicit declaration of boot_card() 1998-05-02 12:09:11 +00:00
Joel Sherrill
d74daf9d45 Fixed case where wrong variable was used. 1998-04-30 16:48:40 +00:00
Joel Sherrill
990f857543 botched file -- removed from repository and readded 1998-04-30 14:14:12 +00:00
Joel Sherrill
2e34f4ad4f Removed tripling of workspace API when POSIX API is enabled. confdefs.h
is now correct enough where this is not necessary.  This was in to
cover up the deficiencies in figuring out how much memory a GNAT/RTEMS
application required.  There is a good stab at this now.
1998-04-30 11:43:19 +00:00
Joel Sherrill
ba05e31c3c Added wildcard to switch for monitor and termios. 1998-04-30 11:41:57 +00:00
Joel Sherrill
b7be9c30d2 Removed redundant "* 1024" which exploded the size of the workspace. 1998-04-30 11:41:09 +00:00
Joel Sherrill
a524c00cfc Added sections and redirected some to RAM to avoid warnings. 1998-04-30 11:40:28 +00:00
Joel Sherrill
1ca488b55d Added sections to remove warnings 1998-04-30 11:40:07 +00:00