# HG changeset patch # User jlarmour # Date 934216639 0 # Node ID 18ee5a9c102eeb13dd76e4cd73470dae3a97d3ec # Parent 2994722c919984f554f0a0aec37b70d6011c9566 Merge from eCos master repository on 1999-08-09-17:04:48-BST diff --git a/packages/hal/arm/aeb/current/ChangeLog b/packages/hal/arm/aeb/current/ChangeLog --- a/packages/hal/arm/aeb/current/ChangeLog +++ b/packages/hal/arm/aeb/current/ChangeLog @@ -1,3 +1,8 @@ +1999-08-08 Gary Thomas + + * misc/Notes: + * misc/STUBS_config: Update patch for new hal.h. + 1999-05-25 Gary Thomas * misc/gdb_module.c: Fix up symbols for new ABI. diff --git a/packages/hal/arm/aeb/current/misc/Notes b/packages/hal/arm/aeb/current/misc/Notes --- a/packages/hal/arm/aeb/current/misc/Notes +++ b/packages/hal/arm/aeb/current/misc/Notes @@ -193,6 +193,7 @@ 2. Edit to enable GDB: you can use the following patch: +patch -p0 < to enable GDB: /* * NOTE: +END_OF_PATCH + 3. make misc diff --git a/packages/hal/arm/aeb/current/misc/STUBS_config b/packages/hal/arm/aeb/current/misc/STUBS_config --- a/packages/hal/arm/aeb/current/misc/STUBS_config +++ b/packages/hal/arm/aeb/current/misc/STUBS_config @@ -11,20 +11,21 @@ tcl $1/pkgconf.tcl --disable CYGPKG_IO_SERIAL --disable CYGPKG_DEVICES_WALLCLOCK \ --disable CYGPKG_DEVICES_WATCHDOG -patch -p0 < + CR 101032 + * src/vectors.S (handle_IRQ_or_FIQ): Moved setup of register_frame + argument to just before the interrupt_end call. + +1999-07-28 Hugo Tyson + + * src/vectors.S (_eCos_id): Remove bogus version string. + +1999-07-26 Hugo Tyson + + * src/hal_misc.c (hal_default_isr): Call the special platform HAL + routine to see whether there is a ^C lurking in the serial device + through a macro, if it's defined. Problem is that + CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT *is* defined for platforms that + do not support it. + +1999-07-23 Hugo Tyson + + * src/hal_misc.c (hal_default_isr): If we are including + CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT, then poll a special platform + HAL routine to see whether there is a ^C lurking in the serial + device. This has to be done from the default ISR so that others + (which must know about ^Cs is they are still to be handled) can + install over the top. Not all platforms support this, so enabling + CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT will not necessarily work. + 1999-07-21 Hugo Tyson * src/vectors.S (vectors): Re-organize startup a little to support diff --git a/packages/hal/arm/arch/current/src/hal_misc.c b/packages/hal/arm/arch/current/src/hal_misc.c --- a/packages/hal/arm/arch/current/src/hal_misc.c +++ b/packages/hal/arm/arch/current/src/hal_misc.c @@ -175,6 +175,18 @@ externC cyg_uint32 hal_default_isr(CYG_ADDRWORD vector, CYG_ADDRWORD data) { CYG_TRACE1(true, "Interrupt: %d", vector); + +#ifndef CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS +#ifdef CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT +#ifdef CYGDBG_HAL_CTRLC_ISR + // then see if it is an incoming character interrupt and break + // into the stub ROM if the char is a ^C. + if ( CYGDBG_HAL_CTRLC_ISR( vector, data ) ) + return 1; // interrupt handled +#endif +#endif +#endif + diag_printf("Spurious Interrupt!!! - vector: %d, data: %x\n", vector, data); CYG_FAIL("Spurious Interrupt!!!"); diff --git a/packages/hal/arm/arch/current/src/vectors.S b/packages/hal/arm/arch/current/src/vectors.S --- a/packages/hal/arm/arch/current/src/vectors.S +++ b/packages/hal/arm/arch/current/src/vectors.S @@ -568,7 +568,6 @@ 10: ldr r1,[r1,v1,lsl #2] // handler data ldr r2,.hal_interrupt_handlers ldr v3,[r2,v1,lsl #2] // handler (indexed by vector #) - mov r2,v6 // register frame mov lr,pc // invoke handler (call indirect mov pc,v3 // thru v3) @@ -590,6 +589,7 @@ 10: ldr r1,.hal_interrupt_objects ldr r1,[r1,v1,lsl #2] + mov r2,v6 // register frame bl interrupt_end // post any bottom layer handler // threads and call scheduler #endif @@ -706,7 +706,7 @@ PTR(__interrupt_stack) // // Identification - useful to find out when a system was configured _eCos_id: - .asciz "eCos v1.2.1: " __DATE__ + .asciz "eCos : " __DATE__ // ------------------------------------------------------------------------- diff --git a/packages/hal/common/current/ChangeLog b/packages/hal/common/current/ChangeLog --- a/packages/hal/common/current/ChangeLog +++ b/packages/hal/common/current/ChangeLog @@ -1,3 +1,8 @@ +1999-08-06 Jesper Skov + + * src/generic-stub.c (__process_packet): FLush and clear caches + after call to __single_step. + 1999-07-05 Jesper Skov * tests/intr.c: Don't use kernel's RTC definitions. diff --git a/packages/hal/common/current/src/generic-stub.c b/packages/hal/common/current/src/generic-stub.c --- a/packages/hal/common/current/src/generic-stub.c +++ b/packages/hal/common/current/src/generic-stub.c @@ -1086,6 +1086,14 @@ int lock_thread_scheduler (1); /* 1 == continue */ } +#ifdef __ECOS__ + /* Need to flush the data and instruction cache here, as we may have + deposited a breakpoint in __single_step. */ + + __data_cache (CACHE_FLUSH) ; + __instruction_cache (CACHE_FLUSH) ; +#endif + return -1; } diff --git a/packages/io/serial/current/include/pkgconf/io_serial.h b/packages/io/serial/current/include/pkgconf/io_serial.h --- a/packages/io/serial/current/include/pkgconf/io_serial.h +++ b/packages/io/serial/current/include/pkgconf/io_serial.h @@ -384,6 +384,7 @@ + /* ---------------------------------------------------------------------------- {{CFG_DATA cdl_component CYGPKG_IO_SERIAL_POWERPC_COGENT { diff --git a/packages/kernel/current/ChangeLog b/packages/kernel/current/ChangeLog --- a/packages/kernel/current/ChangeLog +++ b/packages/kernel/current/ChangeLog @@ -1,3 +1,16 @@ +1999-07-29 Jesper Skov + + * src/sync/mutex.cxx (lock): Removed assertion again. Not possible + to determine if a violation wil cause a deadlock. + +1999-07-27 Jesper Skov + + * src/sync/mutex.cxx (lock): Added simple assertion check for + deadlocks. + + * tests/stress_threads.c: Only allow printf from main thread to + prevent deadlocks. + 1999-07-14 Hugo Tyson * tests/kcache1.c (entry0): Also perform timing tests with diff --git a/packages/kernel/current/src/sync/mutex.cxx b/packages/kernel/current/src/sync/mutex.cxx --- a/packages/kernel/current/src/sync/mutex.cxx +++ b/packages/kernel/current/src/sync/mutex.cxx @@ -146,7 +146,7 @@ Cyg_Mutex::lock(void) #ifdef CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INHERITANCE owner->inherit_priority(self); - + #endif CYG_INSTRUMENT_MUTEX(WAIT, this, 0); diff --git a/packages/kernel/current/tests/stress_threads.c b/packages/kernel/current/tests/stress_threads.c --- a/packages/kernel/current/tests/stress_threads.c +++ b/packages/kernel/current/tests/stress_threads.c @@ -292,8 +292,6 @@ void main_program(cyg_addrword_t data) setup_death_alarm(0, &deathH, &death_alarm, &is_dead); #endif /* DEATH_TIME_LIMIT */ - printf("# Starting main\n"); - for (;;) { int handler_id = -1; int handler_pri = 0; @@ -353,8 +351,6 @@ void client_program(cyg_addrword_t data) { int delay; - printf("# Starting client-%d\n", (int) data); - system_clockH = cyg_real_time_clock(); cyg_clock_to_counter(system_clockH, &counterH); @@ -364,11 +360,9 @@ void client_program(cyg_addrword_t data) /* now send a request to the server */ cyg_mutex_lock(&client_request_lock); { ++client_makes_request; -/* printf("client_makes_request %d\n", client_makes_request); */ } cyg_mutex_unlock(&client_request_lock); cyg_thread_delay(10+delay); -/* cyg_thread_delay(0); */ } } @@ -379,8 +373,6 @@ void listener_program(cyg_addrword_t dat /* int message = (int) data; */ int handler_slot; - printf("# Beginning execution; thread data is %d\n", (int) data); - for (;;) { int make_request = 0; cyg_mutex_lock(&client_request_lock); { @@ -393,8 +385,6 @@ void listener_program(cyg_addrword_t dat if (make_request) { int prio; char* name; - /* printf("just got a request from a client (count = %d)\n", */ - /* client_makes_request); */ handler_slot = get_handler_slot(listenerH[(int) data]); prio = P_BASE_HANDLER+handler_slot; @@ -424,7 +414,6 @@ void handler_program(cyg_addrword_t data perform_stressful_tasks(); cyg_thread_delay(4 + (int) (0.5*log(1.0 + fabs((rand() % 1000000))))); -/* cyg_thread_delay(0); */ ++statistics.thread_exits; { @@ -603,8 +592,6 @@ void sc_thread_create( cyg_thread *thread /* put thread here */ ) { -/*printf("Creating a thread -- priority is %lu\n", (unsigned long) sched_info);*/ -/* fflush(stdout); */ ++statistics.thread_creations; cyg_thread_create(sched_info, entry, entry_data, name, stack_base, stack_size, handle, thread); diff --git a/packages/language/c/libc/current/ChangeLog b/packages/language/c/libc/current/ChangeLog --- a/packages/language/c/libc/current/ChangeLog +++ b/packages/language/c/libc/current/ChangeLog @@ -1,3 +1,9 @@ +1999-08-06 Jonathan Larmour + + * tests/stdio/sprintf2.c (test): Don't rely on 2.345 being exactly + representable in binary as a difference of 1 ulp will make it round + the wrong way. + 1999-07-16 Jonathan Larmour * src/stdio/input/fgetc.cxx: diff --git a/packages/language/c/libc/current/tests/stdio/sprintf2.c b/packages/language/c/libc/current/tests/stdio/sprintf2.c --- a/packages/language/c/libc/current/tests/stdio/sprintf2.c +++ b/packages/language/c/libc/current/tests/stdio/sprintf2.c @@ -159,8 +159,8 @@ test( CYG_ADDRWORD data ) // Check 3 ret = sprintf(y, "|%5f|%10s|%03d|%c|%+-5.2G|%010.3G|", - 2.0, "times", 6, '=', 12.0, -2.345e-6 ); - my_strcpy(z, "|2.000000| times|006|=|+12 |-02.34E-06|"); + 2.0, "times", 6, '=', 12.0, -2.3451e-6 ); + my_strcpy(z, "|2.000000| times|006|=|+12 |-02.35E-06|"); CYG_TEST_PASS_FAIL(my_strcmp(y,z) == 0, "|%5f|%10s|%03d|%c|%+-5.2G|%010.3G| test");