| Commit message (Collapse) | Author | Files | Lines |
|
Update #3254.
|
|
Updates #3520.
|
|
Updates #3520.
|
|
Patch was not intended to be pushed yet.
Updates #3520.
|
|
Done:
arm
bfin
epiphany
i386
lm32
m32c
mips
moxie
nios2
or1k
powerpc
riscv
sh
sparc
sparc64
v850
To do:
m68k
Differences noted:
+ endfile was sometimes before startfile
+ endfile sometimes was hard-coded and did not have -qrtems version
+ Should -e XXX (e.g. entry point) be in linkcmds?
+ Should -u XXX (e.g. undefined symbols) be in linkcmds?
+ Typos: Odd spacing, "old_endfiles" typo, and *(old_endfiles) (not %)
+ nios2: Referenced crtnn.o not crtn.o (error)
Need to revisit:
+ m32c, moxie, sparc64 includes !nostdlib which is not used elsewhere
+ sh has -EL/-EB mapping. Why needed?
+ sparc64 didn't include crti.o/crtn.o but it is part of toolset
+ v850 uses something like this for link and end_file:
"%{qrtems: %(old_link)}"
This means that these are unnecessary. Try this on all.
+ mips uses old_link all the time also.
+ arm/tms750 adds -EB.
+ powerpc: Why do we have rtems_crt* and not use something from GCC?
Updates #3520.
|
|
Updates #3250.
|
|
This header file contained timing overhead values which are hard to
maintain.
Update #3254.
|
|
Remove BSP-specific defaults for RTEMS_BSP_CLEANUP_OPTIONS to simplify
the BSP configuration and documentation. Change defaults to:
BSP_PRESS_KEY_FOR_RESET=0
BSP_RESET_BOARD_AT_EXIT=1
BSP_PRINT_EXCEPTION_CONTEXT=1
|
|
Update #3239.
|
|
Remove old ISR parameter since is not used by the clock driver shell.
Make an implementation optional.
Update #3139.
|
|
The SPARC ABI is a bit special with respect to the floating point context.
The complete floating point context is volatile. Thus, from an ABI point
of view nothing needs to be saved and restored during a context switch.
Instead the floating point context must be saved and restored during
interrupt processing. Historically, the deferred floating point switch was
used for SPARC and the complete floating point context is saved and
restored during a context switch to the new floating point unit owner.
This is a bit dangerous since post-switch actions (e.g. signal handlers)
and context switch extensions may silently corrupt the floating point
context.
The floating point unit is disabled for interrupt handlers. Thus, in case
an interrupt handler uses the floating point unit then this will result in a
trap (INTERNAL_ERROR_ILLEGAL_USE_OF_FLOATING_POINT_UNIT).
In uniprocessor configurations, a lazy floating point context switch is
used. In case an active floating point thread is interrupted (PSR[EF] == 1)
and a thread dispatch is carried out, then this thread is registered as the
floating point owner. When a floating point owner is present during a
context switch, the floating point unit is disabled for the heir thread
(PSR[EF] == 0). The floating point disabled trap checks that the use of the
floating point unit is allowed and saves/restores the floating point context
on demand.
Update #3077.
|
|
Add new fatal error INTERNAL_ERROR_ILLEGAL_USE_OF_FLOATING_POINT_UNIT.
Update #3077.
|
|
Update #3071.
|
|
Close #3071.
|
|
|
|
This has been tested on SPARC, i386, PowerPC and ARM.
Closes #2767.
|
|
Change the testsuite configuration files to hold state information about
a test. The states are:
exclude - Do not build the test
expected-fail - The test is expected to fail
indeterminate - The test may pass or may fail
A message is printed just after the test's BEGIN message to indicate
there is a special state for the test. No state message means the test
is expected to pass.
This support requires tests are correctly written to the use standard
support to begin and end a test.
|
|
closes #2810.
|
|
Use _Thread_Do_dispatch() instead of _Thread_Dispatch(). Restore the
PSR[EF] state of the interrupted context via new system call
syscall_irqdis_fp in case floating-point support is enabled.
|
|
|
|
Rework CPU counter support to enable use of the GR740 up-counter via
%asr22 and %asr23.
|
|
|
|
|
|
|
|
|
|
Update #2554.
|
|
Update #2408.
|
|
Update #2502.
|
|
Notepads where a feature of RTEMS' tasks that simply functioned in
the same way as POSIX keys or threaded local storage (TLS). They were
introduced well before per task variables, which are also deprecated,
and were barely used in favor of their POSIX alternatives.
In addition to their scarce usage, Notepads took up unnecessary memory.
For each task:
- 16 32-bit integers were allocated.
- A total of 64 bytes per task per thread.
This is especially critical in low memory and safety-critical applications.
They are also defined as uint32_t, and therefore are not guaranteed to
hold a pointer.
Lastly, they are not portable solutions for SMP and uniprocessor systems,
like POSIX keys and TLS.
updates #2493.
|
|
Use the bsp_predriver_hook() instead.
Update #2408.
|
|
Call bsp_work_area_initialize() before bsp_start(). This allows
bsp_start() to use malloc() etc. which is beneficial for systems with a
plug-and-play hardware enumeration.
Update #2408.
|
|
Move content to bsp_predriver_hook() functions of the BSPs.
Update #2408.
|
|
This was done by the following script run from libbsp:
find * -name bsp.h | xargs -e grep -l "#ifndef.*_BSP_H" | while read b
do
echo $b
cpu=`echo $b | cut -d'/' -f1 | tr '[:lower:]' '[:upper:]' `
bsp=`echo $b | cut -d'/' -f2 | tr '[:lower:]' '[:upper:]' `
g="LIBBSP_${cpu}_${bsp}_BSP_H"
# echo $g
sed -e "s/ifndef _BSP_H/ifndef ${g}/" \
-e "s/define _BSP_H/define ${g}/" \
-i $b
done
|
|
Update #2271.
|
|
|
|
This allows it to be wrapped by another function at link-time
and can be used to trace interrupts. If not placed in a separate
file, the function pointer address used in BSP_shared_interrupt_init
will be resolved at compile-time, and the function will not be wrappable.
|
|
Fixes bug introduced with dff1803cfbec3775fff1b9c34cc707c05494dc3b.
|
|
|
|
The dummy.c was a de-facto default configuration. Rename it to
default-configuration.c. Use unlimited objects and the stack checker.
This makes it easier for new RTEMS users which will likely use this file
if they just work with the usual main() function as the application
entry point. Provide proper arguments for main() using the BSP command
line. Add spare user extensions and drivers.
Do not initialize the network by default. Delete bspinit.c.
|
|
Some includes may use C++ and this conflicts if surrounded extern "C".
|
|
|
|
|
|
The LEON2 and ERC32 maps the new macros to CPU0 since they do not
support SMP. With the LEON3 a specific CPU's interrupt controller
registers can be modified using macros.
|
|
Now that a SPARC fatal handler is defined, we no longer
need the BSP specific reset routine.
|
|
The Fatal_halt handler now have two options, either halt
as before or enter system error state to return to
debugger or simulator. The exit-code is now also
propagated to the debugger which is very useful for
testing.
The CPU_Fatal_halt handler was split up into two, since
the only the LEON3 support the CPU power down.
The LEON3 halt now uses the power-down instruction to save
CPU power. This doesn't stop a potential watch-dog timer
from expiring.
|
|
Instead of calling the system call TA instruction directly it
is better paractise to isolate the trap implementation to the
system call functions.
BSP_fatal_exit() is added.
|
|
|
|
This change starts with removing the effectively empty file
timerdrv.h. The prototypes for benchmark_timer_XXX() were in
btimer.h which was not universally used. Thus every use of
timerdrv.h had to be changed to btimer.h. Then the prototypes
for benchmark_timer_read() had to be adjusted to return
benchmark_timer_t rather than int or uint32_t.
I took this opportunity to also correct the file headers to
separate the copyright from the file description comments which
is needed to ensure the copyright isn't propagated into Doxygen
output.
|
|
Rename _BSP_Exception_frame_print() to _CPU_Exception_frame_print() to
be in line with other CPU port functions.
|
|
With this patch the preinstall.am files are in a set order and not
dependent on now perl implements a hash.
|