Commit Graph

736 Commits

Author SHA1 Message Date
Sebastian Huber
cbfc341560 ttest01: New test
This is an example test using the RTEMS Test Framework.  It tests also
the framework itself.

Add T_FILE_NAME command line define to get rid of the full file path.
This is important to reduce the read-only data of test files and make
them build system independent.

Update #3199.
2019-03-27 07:21:31 +01:00
Chris Johns
dad6fd4333 libdl: Add an archive command
- The archive command lists archives, symbols and any duplicate
  symbols.
- Change the RTL shell commands to the rtems_printer to allow
  the output to be captured.
2019-03-22 14:16:52 +11:00
Sebastian Huber
d91951fbc0 record: Rename internal per-CPU events
Update #3665.
2019-03-12 13:44:24 +01:00
Chris Johns
6c9f0176a9 libdl: Add powerpc large memory and small data support.
- Add support for architecure sections that can be handled by the
  architecture back end.

- Add trampoline/fixup support for PowerPC. This means the PowerPC
  now supports large memory loading of applications.

- Add a bit allocator to manage small block based regions of memory.

- Add small data (sdata/sbss) support for the PowerPC. The support
  makes the linker allocated small data region of memory a global
  resource available to libdl loaded object files.

Updates #3687
Updates #3685
2019-02-09 10:06:34 +11:00
Chris Johns
194eb403c3 libdl: Add support for large memory programs
- Add trampolines to support relocs that are out of range on
  support architectures.

- Support not loading separate text/data sections in an object
  file if the symbol provided in the section is a duplicate.
  A base image may have pulled in part of an object and another
  part needs to be dynamically loaded.

- Refactor the unresolved handling to scale to hundreds of
  unresolved symbols when loading large number of files.

Updates #3685
2019-02-09 10:06:34 +11:00
Chris Johns
d8c70ba65b libdl: Add support for trampolines
- Trampolines or fixups for veneers provide long jump support
  for instruciton sets that implement short relative address
  branches. The linker provides trampolines when creating a
  static image. This patch adds trampoline support to libdl
  and the ARM architecture.

- The dl09 test requires enough memory so modules are outside
  the relative branch instruction ranges for the architecture.

Updates #3685
2019-02-09 10:06:34 +11:00
Chris Johns
4408603e27 libdl: Fix the support for constructors and desctructors.
- Fix the handling of pending objects.
- Add a constructor flags in objects to track then being called.

Closes #2921
2019-02-09 10:06:34 +11:00
Chris Johns
a7c6176293 libtest/dl08: Add a test for archives.
- Create 2 archives.
- Load 1 object file which loads 6 object files from the libraries.

Updates #3686
2019-02-09 10:06:34 +11:00
Chris Johns
bac5363453 libtests/dl02: Update the rtl-shell path. More verbose test.
Updates #3686
2019-02-09 10:06:34 +11:00
Chris Johns
85b599747e libtests/dl02: Update the rtl-shell path.
Updates #3686
2019-02-09 10:06:34 +11:00
Sebastian Huber
b015c01443 build: Do not install test programs 2019-01-30 09:46:35 +01:00
Sebastian Huber
03cdd5eab8 record: Add enum value for each event
Update #3665.
2019-01-30 09:46:35 +01:00
Sebastian Huber
dca618404e Add low level event recording support
Add low level event recording infrastructure for system and user
defined events.  The infrastructure is able to record high frequency
events such as

 * SMP lock acquire/release,
 * interrupt entry/exit,
 * thread switches,
 * UMA zone allocate/free, and
 * Ethernet packet input/output, etc.

It allows post-mortem analysis in fatal error handlers, e.g. the last
events are in the record buffer, the newest event overwrites the oldest
event.  It is possible to detect record buffer overflows for consumers
that expect a continuous stream of events, e.g. to display the system
state in real-time.

The implementation supports high-end SMP machines (more than 1GHz
processor frequency, more than four processors).

Add a new API instead. The implementation uses per-processor data
structures and no atomic read-modify-write operations.  It is uses
per-processor ring buffers to record the events.

The CPU counter is used to get the time of events. It is combined with
periodic uptime events to synchronize it with CLOCK_REALTIME.

The existing capture engine tries to solve this problem also, but its
performance is not good enough for high-end production systems.  The
main issues are the variable-size buffers and the use of SMP locks for
synchronization.  To fix this, the API would change significantly.

Update #3665.
2019-01-29 13:51:33 +01:00
Sebastian Huber
dc0285fd09 build: Add missing $(LDADD) for dependencies 2019-01-14 09:09:39 +01:00
Sebastian Huber
fe48400d5b libtests/stackchk: Fix for 64-bit targets 2019-01-09 10:05:03 +01:00
Sebastian Huber
07fb7667de build: Call rtems-ld with the $(CC) of the build
This enables support for non-standard compiler names, e.g.
sparc-rtems6-gcc.
2019-01-08 09:57:44 +01:00
Sebastian Huber
7802bb9a4d build: Call rtems-syms with the $(CC) of the build
This enables support for non-standard compiler names, e.g.
sparc-rtems6-gcc.
2019-01-08 09:57:44 +01:00
Sebastian Huber
eaa5ea84ea score: Introduce <rtems/score/heapinfo.h>
Move Heap_Information_block to separate header file to hide heap
implementation details from <rtems.h>.

Update #3598.
2018-11-26 07:51:57 +01:00
Chris Johns
03139d5b1c libdl: Add object file dependencies to track references
Tracking references lets us manage when an object file can be
unloaded. If an object file has references to it, it cannot be
unloaded.

Modules that depend on each other cannot be unloaded.

Updates #3605
2018-11-22 12:43:31 +11:00
kuaLeYi
bde6ac2060 Misc: Minor English fixes (GCI 2018) 2018-11-20 09:45:51 -06:00
Sebastian Huber
6efc831f0f Add rtems_malloc() and rtems_calloc()
Close #3583.
2018-11-12 13:26:22 +01:00
Sebastian Huber
942d52a260 build: Fix library order
Update #3551.
2018-11-08 14:00:31 +01:00
Sebastian Huber
55b69ed28e Move default config to librtemsdefaultconfig.a
An RTEMS application default configuration is contained in
cpukit/libmisc/dummy/default-configuration.c.  This default
configuration was contained in librtemscpu.a.  This had at least two
problems:

1. Application configuration errors may have pulled in the default
   configuration which in turn lead to multiply define symbols error.
   This was quite confusing.  You had to consult the linker map file to
   figure out what cased the pull in of the default configuration.  You
   needed to know what a linker map file is and how you generate it with
   your build system.  This was not very user friendly.

2. It prevented the use of default configuration items for each subsystem
   in librtemscpu.a.  This may be used to reduce the size of the
   configuration itself.

Move the default configuration to the separate library
librtemsdefaultconfig.a.

Close #3551.
2018-10-29 10:33:37 +01:00
Sebastian Huber
522d4b9186 malloctest: Hide NULL pointer from compiler
Disabling a warning does not prevent the compiler from reasoning what it
is supposed to do with a somewhat undefined function call.
2018-10-24 10:19:14 +02:00
Joel Sherrill
632bb17556 libtests/Makefile.am: Add CPU_CFLAGS to rtems-ld invocation
closes #3401, #3402.
2018-10-14 16:55:38 -05:00
Sebastian Huber
26b58b7e4a telnetd: Add server port to configuration
Close #3543.
2018-10-11 09:08:10 +02:00
Sebastian Huber
0dc303f09d telnetd: Create sessions at start
Update #3543.
2018-10-11 09:08:06 +02:00
Sebastian Huber
629faf9504 telnetd: Remove keep stdio feature
The Telnet service started via rtems_telnetd_start() had a keep stdio
feature.  This just created a task and executed the command function in
a loop.  For this kind of service we do not library support.  This can
be done by an application task on its own.  Remove this feature and
provide only the real Telnet server functionality.

Use syslog() for error and status messages.

Add test program for the Telnet server.

Close #3542.
2018-10-10 14:06:27 +02:00
Sebastian Huber
477bca2d61 build: Remove local.am 2018-10-10 07:57:47 +02:00
Sebastian Huber
9da5d5fd10 build: Directly reference libraries in tests
Remove use of TMPINSTALL_FILES.
2018-10-10 07:57:42 +02:00
Sebastian Huber
dcf42bb238 ftpd: Remove FTPD_SessionInfo_t::pass member
There is no need to keep the password throughout the session.

Update #3530.
2018-10-05 14:39:46 +02:00
Sebastian Huber
51b3cbca11 tests: Use rtems_task_exit()
Update #3533.
2018-10-05 13:41:07 +02:00
Joel Sherrill
da8b12bcb7 dl06/dl06-o1.c: Remove set, not used warning 2018-08-15 09:48:28 -05:00
Joel Sherrill
382d6537df libtests/POSIX: Fix warnings and style. 2018-08-10 08:24:29 -05:00
Sebastian Huber
97417bb15f tests: Remove CONFIGURE_MAXIMUM_DRIVERS
This configuration is superfluous in these tests.
2018-08-07 07:37:59 +02:00
Sebastian Huber
0b038bd48b libblock: Add RTEMS_DEPRECATED
Close #3358.
2018-08-07 07:17:19 +02:00
Sebastian Huber
dd66fda397 tests: Avoid deprecated rtems_disk_io_initialize()
Update #3358.
2018-08-07 07:17:18 +02:00
Sebastian Huber
bf80279025 libtests/block15: Use rtems_blkdev_create()
Update #3358.
2018-08-07 07:17:18 +02:00
Sebastian Huber
fa12e06d33 libtests/block14: Use rtems_blkdev_create()
Update #3358.
2018-08-07 07:17:18 +02:00
Sebastian Huber
3278d20200 libtests/block13: Use rtems_blkdev_create()
Update #3358.
2018-08-07 07:17:18 +02:00
Sebastian Huber
5e4bab7769 libtests/block12: Use rtems_blkdev_create()
Update #3358.
2018-08-07 07:17:18 +02:00
Sebastian Huber
6f34f1391e libtests/block10: Use rtems_blkdev_create()
Update #3358.
2018-08-07 07:17:17 +02:00
Sebastian Huber
5005bfcccd libtests/block09: Use rtems_blkdev_create()
Update #3358.
2018-08-07 07:17:17 +02:00
Sebastian Huber
117f7b1f67 libtests/block08: Use rtems_blkdev_create()
Update #3358.
2018-08-07 07:17:17 +02:00
Sebastian Huber
bde8be291e libtests/block06: Use rtems_blkdev_create()
Update #3358.
2018-08-07 07:17:17 +02:00
Sebastian Huber
678277132b libtests/block05: Avoid uninitialized variable
Update #3358.
2018-08-07 07:17:17 +02:00
Sebastian Huber
0fe7133d6e flashdisk: Use rtems_blkdev_create()
Update #3358.
2018-08-07 07:17:17 +02:00
Sebastian Huber
24b94c4771 ramdisk: Use rtems_blkdev_create()
Update #3358.
2018-08-07 07:17:16 +02:00
Sebastian Huber
d906ce30c6 libtests: Use CONFIGURE_INIT_TASK_TABLE_SIZE
Using CONFIGURE_MINIMUM_TASK_STACK_SIZE increases also the interrupt
stack size.  This is an issue on some BSPs.  Use
CONFIGURE_INIT_TASK_TABLE_SIZE instead.

Update #3433.
2018-07-30 08:06:23 +02:00
Sebastian Huber
bf199e0c33 block05: Remove unused variable 2018-07-24 13:00:56 +02:00