Remove some carriage returns
This commit is contained in:
parent
95ee8a4ef9
commit
9ed20f79dc
@ -1,404 +1,404 @@
|
||||
examples/ostest output as of November 4, 2010
|
||||
=============================================
|
||||
|
||||
stdio_test: write fd=1
|
||||
stdio_test: write fd=2
|
||||
stdio_test: Standard I/O Check: printf
|
||||
user_start: Started user_main at PID=2
|
||||
user_start: Exitting
|
||||
stdio_test: Standard I/O Check: fprintf to stderr
|
||||
|
||||
user_main: Begin argument test
|
||||
user_main: Started with argc=5
|
||||
user_main: argv[0]="<noname>"
|
||||
user_main: argv[1]="Arg1"
|
||||
user_main: argv[2]="Arg2"
|
||||
user_main: argv[3]="Arg3"
|
||||
user_main: argv[4]="Arg4"
|
||||
|
||||
End of test memory usage:
|
||||
VARIABLE BEFORE AFTER
|
||||
======== ======== ========
|
||||
arena 71a0 71a0
|
||||
ordblks 2 2
|
||||
mxordblk 4a80 4a80
|
||||
uordblks 1900 1900
|
||||
fordblks 58a0 58a0
|
||||
|
||||
user_main: /dev/null test
|
||||
dev_null: Read 0 bytes from /dev/null
|
||||
dev_null: Wrote 1024 bytes to /dev/null
|
||||
|
||||
End of test memory usage:
|
||||
VARIABLE BEFORE AFTER
|
||||
======== ======== ========
|
||||
arena 71a0 71a0
|
||||
ordblks 2 2
|
||||
mxordblk 4a80 4a80
|
||||
uordblks 1900 1900
|
||||
fordblks 58a0 58a0
|
||||
|
||||
user_main: mutex test
|
||||
Initializing mutex
|
||||
Starting thread 1
|
||||
Starting thread 2
|
||||
Thread1 Thread2
|
||||
Loops 32 32
|
||||
Errors 0 0
|
||||
|
||||
End of test memory usage:
|
||||
VARIABLE BEFORE AFTER
|
||||
======== ======== ========
|
||||
arena 71a0 71a0
|
||||
ordblks 2 2
|
||||
mxordblk 4a80 4a80
|
||||
uordblks 1900 1900
|
||||
fordblks 58a0 58a0
|
||||
|
||||
user_main: cancel test
|
||||
cancel_test: Test 1: Normal Cancelation
|
||||
cancel_test: Starting thread
|
||||
start_thread: Initializing mutex
|
||||
start_thread: Initializing cond
|
||||
start_thread: Starting thread
|
||||
thread_waiter: Taking mutex
|
||||
thread_waiter: Starting wait for condition
|
||||
start_thread: Yielding
|
||||
cancel_test: Canceling thread
|
||||
cancel_test: Joining
|
||||
cancel_test: waiter exited with result=ffffffff
|
||||
cancel_test: PASS thread terminated with PTHREAD_CANCELED
|
||||
cancel_test: Test 2: Cancelation of detached thread
|
||||
cancel_test: Re-starting thread
|
||||
restart_thread: Destroying cond
|
||||
restart_thread: Destroying mutex
|
||||
restart_thread: Re-starting thread
|
||||
start_thread: Initializing mutex
|
||||
start_thread: Initializing cond
|
||||
start_thread: Starting thread
|
||||
thread_waiter: Taking mutex
|
||||
thread_waiter: Starting wait for condition
|
||||
start_thread: Yielding
|
||||
cancel_test: Canceling thread
|
||||
cancel_test: Joining
|
||||
cancel_test: PASS pthread_join failed with status=ESRCH
|
||||
cancel_test: Test 3: Non-cancelable threads
|
||||
cancel_test: Re-starting thread (non-cancelable)
|
||||
restart_thread: Destroying cond
|
||||
restart_thread: Destroying mutex
|
||||
restart_thread: Re-starting thread
|
||||
start_thread: Initializing mutex
|
||||
start_thread: Initializing cond
|
||||
start_thread: Starting thread
|
||||
thread_waiter: Taking mutex
|
||||
thread_waiter: Starting wait for condition
|
||||
thread_waiter: Setting non-cancelable
|
||||
start_thread: Yielding
|
||||
cancel_test: Canceling thread
|
||||
cancel_test: Joining
|
||||
thread_waiter: Releasing mutex
|
||||
thread_waiter: Setting cancelable
|
||||
cancel_test: waiter exited with result=ffffffff
|
||||
cancel_test: PASS thread terminated with PTHREAD_CANCELED
|
||||
|
||||
End of test memory usage:
|
||||
VARIABLE BEFORE AFTER
|
||||
======== ======== ========
|
||||
arena 71a0 71a0
|
||||
ordblks 2 2
|
||||
mxordblk 4a80 4a80
|
||||
uordblks 1900 1900
|
||||
fordblks 58a0 58a0
|
||||
|
||||
user_main: semaphore test
|
||||
sem_test: Initializing semaphore to 0
|
||||
sem_test: Starting waiter thread 1
|
||||
sem_test: Set thread 1 priority to 191
|
||||
waiter_func: Thread 1 Started
|
||||
waiter_func: Thread 1 initial semaphore value = 0
|
||||
waiter_func: Thread 1 waiting on semaphore
|
||||
sem_test: Starting waiter thread 2
|
||||
sem_test: Set thread 2 priority to 128
|
||||
waiter_func: Thread 2 Started
|
||||
waiter_func: Thread 2 initial semaphore value = -1
|
||||
waiter_func: Thread 2 waiting on semaphore
|
||||
sem_test: Starting poster thread 3
|
||||
sem_test: Set thread 3 priority to 64
|
||||
poster_func: Thread 3 started
|
||||
poster_func: Thread 3 semaphore value = -2
|
||||
poster_func: Thread 3 posting semaphore
|
||||
waiter_func: Thread 1 awakened
|
||||
waiter_func: Thread 1 new semaphore value = -1
|
||||
waiter_func: Thread 1 done
|
||||
poster_func: Thread 3 new semaphore value = -1
|
||||
poster_func: Thread 3 semaphore value = -1
|
||||
poster_func: Thread 3 posting semaphore
|
||||
waiter_func: Thread 2 awakened
|
||||
waiter_func: Thread 2 new semaphore value = 0
|
||||
waiter_func: Thread 2 done
|
||||
poster_func: Thread 3 new semaphore value = 0
|
||||
poster_func: Thread 3 done
|
||||
|
||||
End of test memory usage:
|
||||
VARIABLE BEFORE AFTER
|
||||
======== ======== ========
|
||||
arena 71a0 71a0
|
||||
ordblks 2 2
|
||||
mxordblk 4a80 4a80
|
||||
uordblks 1900 1900
|
||||
fordblks 58a0 58a0
|
||||
|
||||
user_main: condition variable test
|
||||
cond_test: Initializing mutex
|
||||
cond_test: Initializing cond
|
||||
cond_test: Starting waiter
|
||||
cond_test: Set thread 1 priority to 128
|
||||
waiter_thread: Started
|
||||
cond_test: Starting signaler
|
||||
cond_test: Set thread 2 priority to 64
|
||||
thread_signaler: Started
|
||||
thread_signaler: Terminating
|
||||
cond_test: signaler terminated, now cancel the waiter
|
||||
cond_test: Waiter Signaler
|
||||
cond_test: Loops 32 32
|
||||
cond_test: Errors 0 0
|
||||
cond_test:
|
||||
cond_test: 0 times, waiter did not have to wait for data
|
||||
cond_test: 0 times, data was already available when the signaler run
|
||||
cond_test: 0 times, the waiter was in an unexpected state when the signaler ran
|
||||
|
||||
End of test memory usage:
|
||||
VARIABLE BEFORE AFTER
|
||||
======== ======== ========
|
||||
arena 71a0 71a0
|
||||
ordblks 2 2
|
||||
mxordblk 4a80 4a80
|
||||
uordblks 1900 1900
|
||||
fordblks 58a0 58a0
|
||||
|
||||
user_main: timed wait test
|
||||
thread_waiter: Initializing mutex
|
||||
timedwait_test: Initializing cond
|
||||
timedwait_test: Starting waiter
|
||||
timedwait_test: Set thread 2 priority to 177
|
||||
thread_waiter: Taking mutex
|
||||
thread_waiter: Starting 5 second wait for condition
|
||||
timedwait_test: Joining
|
||||
thread_waiter: pthread_cond_timedwait timed out
|
||||
thread_waiter: Releasing mutex
|
||||
thread_waiter: Exit with status 0x12345678
|
||||
timedwait_test: waiter exited with result=12345678
|
||||
|
||||
End of test memory usage:
|
||||
VARIABLE BEFORE AFTER
|
||||
======== ======== ========
|
||||
arena 71a0 71a0
|
||||
ordblks 2 2
|
||||
mxordblk 4a80 4a80
|
||||
uordblks 1900 1900
|
||||
fordblks 58a0 58a0
|
||||
|
||||
user_main: message queue test
|
||||
mqueue_test: Starting receiver
|
||||
mqueue_test: Set receiver priority to 128
|
||||
receiver_thread: Starting
|
||||
mqueue_test: Starting sender
|
||||
mqueue_test: Set sender thread priority to 64
|
||||
mqueue_test: Waiting for sender to complete
|
||||
sender_thread: Starting
|
||||
receiver_thread: mq_receive succeeded on msg 0
|
||||
sender_thread: mq_send succeeded on msg 0
|
||||
receiver_thread: mq_receive succeeded on msg 1
|
||||
sender_thread: mq_send succeeded on msg 1
|
||||
receiver_thread: mq_receive succeeded on msg 2
|
||||
sender_thread: mq_send succeeded on msg 2
|
||||
receiver_thread: mq_receive succeeded on msg 3
|
||||
sender_thread: mq_send succeeded on msg 3
|
||||
receiver_thread: mq_receive succeeded on msg 4
|
||||
sender_thread: mq_send succeeded on msg 4
|
||||
receiver_thread: mq_receive succeeded on msg 5
|
||||
sender_thread: mq_send succeeded on msg 5
|
||||
receiver_thread: mq_receive succeeded on msg 6
|
||||
sender_thread: mq_send succeeded on msg 6
|
||||
receiver_thread: mq_receive succeeded on msg 7
|
||||
sender_thread: mq_send succeeded on msg 7
|
||||
receiver_thread: mq_receive succeeded on msg 8
|
||||
sender_thread: mq_send succeeded on msg 8
|
||||
receiver_thread: mq_receive succeeded on msg 9
|
||||
sender_thread: mq_send succeeded on msg 9
|
||||
sender_thread: returning nerrors=0
|
||||
mqueue_test: Killing receiver
|
||||
receiver_thread: mq_receive interrupted!
|
||||
receiver_thread: returning nerrors=0
|
||||
mqueue_test: Canceling receiver
|
||||
mqueue_test: receiver has already terminated
|
||||
|
||||
End of test memory usage:
|
||||
VARIABLE BEFORE AFTER
|
||||
======== ======== ========
|
||||
arena 71a0 71a0
|
||||
ordblks 2 2
|
||||
mxordblk 4a80 4a80
|
||||
uordblks 1900 1900
|
||||
fordblks 58a0 58a0
|
||||
|
||||
user_main: timed message queue test
|
||||
timedmqueue_test: Starting sender
|
||||
sender_thread: Starting
|
||||
sender_thread: mq_timedsend succeeded on msg 0
|
||||
sender_thread: mq_timedsend succeeded on msg 1
|
||||
sender_thread: mq_timedsend succeeded on msg 2
|
||||
sender_thread: mq_timedsend succeeded on msg 3
|
||||
sender_thread: mq_timedsend succeeded on msg 4
|
||||
sender_thread: mq_timedsend succeeded on msg 5
|
||||
sender_thread: mq_timedsend succeeded on msg 6
|
||||
sender_thread: mq_timedsend succeeded on msg 7
|
||||
sender_thread: mq_timedsend succeeded on msg 8
|
||||
timedmqueue_test: Waiting for sender to complete
|
||||
sender_thread: mq_timedsend 9 timed out as expected
|
||||
sender_thread: returning nerrors=0
|
||||
timedmqueue_test: Starting receiver
|
||||
receiver_thread: Starting
|
||||
receiver_thread: mq_timedreceive succeeded on msg 0
|
||||
receiver_thread: mq_timedreceive succeeded on msg 1
|
||||
receiver_thread: mq_timedreceive succeeded on msg 2
|
||||
receiver_thread: mq_timedreceive succeeded on msg 3
|
||||
receiver_thread: mq_timedreceive succeeded on msg 4
|
||||
receiver_thread: mq_timedreceive succeeded on msg 5
|
||||
receiver_thread: mq_timedreceive succeeded on msg 6
|
||||
receiver_thread: mq_timedreceive succeeded on msg 7
|
||||
receiver_thread: mq_timedreceive succeeded on msg 8
|
||||
timedmqueue_test: Waiting for receiver to complete
|
||||
receiver_thread: Receive 9 timed out as expected
|
||||
receiver_thread: returning nerrors=0
|
||||
timedmqueue_test: Test complete
|
||||
|
||||
End of test memory usage:
|
||||
VARIABLE BEFORE AFTER
|
||||
======== ======== ========
|
||||
arena 71a0 71a0
|
||||
ordblks 2 2
|
||||
mxordblk 4a80 4a80
|
||||
uordblks 1900 1900
|
||||
fordblks 58a0 58a0
|
||||
|
||||
user_main: signal handler test
|
||||
sighand_test: Initializing semaphore to 0
|
||||
sighand_test: Starting waiter task
|
||||
sighand_test: Started waiter_main pid=20
|
||||
waiter_main: Waiter started
|
||||
waiter_main: Unmasking signal 17
|
||||
waiter_main: Registering signal handler
|
||||
waiter_main: oact.sigaction=0 oact.sa_flags=0 oact.sa_mask=0
|
||||
waiter_main: Waiting on semaphore
|
||||
sighand_test: Signaling pid=20 with signo=17 sigvalue=42
|
||||
wakeup_action: Received signal 17
|
||||
wakeup_action: sival_int=42
|
||||
wakeup_action: si_code=1
|
||||
wakeup_action: ucontext=0
|
||||
waiter_main: sem_wait() successfully interrupted by signal
|
||||
waiter_main: done
|
||||
sighand_test: done
|
||||
|
||||
End of test memory usage:
|
||||
VARIABLE BEFORE AFTER
|
||||
======== ======== ========
|
||||
arena 71a0 71a0
|
||||
ordblks 2 2
|
||||
mxordblk 4a80 4a80
|
||||
uordblks 1900 1900
|
||||
fordblks 58a0 58a0
|
||||
|
||||
user_main: POSIX timer test
|
||||
timer_test: Initializing semaphore to 0
|
||||
timer_test: Unmasking signal 17
|
||||
timer_test: Registering signal handler
|
||||
timer_test: oact.sigaction=0 oact.sa_flags=0 oact.sa_mask=0
|
||||
timer_test: Creating timer
|
||||
timer_test: Starting timer
|
||||
timer_test: Waiting on semaphore
|
||||
timer_expiration: Received signal 17
|
||||
timer_expiration: sival_int=42
|
||||
timer_expiration: si_code=2 (SI_TIMER)
|
||||
timer_expiration: ucontext=0
|
||||
timer_test: sem_wait() successfully interrupted by signal
|
||||
timer_test: g_nsigreceived=1
|
||||
timer_test: Waiting on semaphore
|
||||
timer_expiration: Received signal 17
|
||||
timer_expiration: sival_int=42
|
||||
timer_expiration: si_code=2 (SI_TIMER)
|
||||
timer_expiration: ucontext=0
|
||||
timer_test: sem_wait() successfully interrupted by signal
|
||||
timer_test: g_nsigreceived=2
|
||||
timer_test: Waiting on semaphore
|
||||
timer_expiration: Received signal 17
|
||||
timer_expiration: sival_int=42
|
||||
timer_expiration: si_code=2 (SI_TIMER)
|
||||
timer_expiration: ucontext=0
|
||||
timer_test: sem_wait() successfully interrupted by signal
|
||||
timer_test: g_nsigreceived=3
|
||||
timer_test: Waiting on semaphore
|
||||
timer_expiration: Received signal 17
|
||||
timer_expiration: sival_int=42
|
||||
timer_expiration: si_code=2 (SI_TIMER)
|
||||
timer_expiration: ucontext=0
|
||||
timer_test: sem_wait() successfully interrupted by signal
|
||||
timer_test: g_nsigreceived=4
|
||||
timer_test: Waiting on semaphore
|
||||
timer_expiration: Received signal 17
|
||||
timer_expiration: sival_int=42
|
||||
timer_expiration: si_code=2 (SI_TIMER)
|
||||
timer_expiration: ucontext=0
|
||||
timer_test: sem_wait() successfully interrupted by signal
|
||||
timer_test: g_nsigreceived=5
|
||||
timer_test: Deleting timer
|
||||
timer_test: done
|
||||
|
||||
End of test memory usage:
|
||||
VARIABLE BEFORE AFTER
|
||||
======== ======== ========
|
||||
arena 71a0 71a0
|
||||
ordblks 2 2
|
||||
mxordblk 4a80 4a80
|
||||
uordblks 1900 1900
|
||||
fordblks 58a0 58a0
|
||||
|
||||
user_main: barrier test
|
||||
barrier_test: Initializing barrier
|
||||
barrier_func: Thread 0 started
|
||||
barrier_test: Thread 0 created
|
||||
barrier_func: Thread 1 started
|
||||
barrier_test: Thread 1 created
|
||||
barrier_func: Thread 2 started
|
||||
barrier_test: Thread 2 created
|
||||
barrier_func: Thread 0 calling pthread_barrier_wait()
|
||||
barrier_func: Thread 1 calling pthread_barrier_wait()
|
||||
barrier_func: Thread 2 calling pthread_barrier_wait()
|
||||
barrier_func: Thread 2, back with status=PTHREAD_BARRIER_SERIAL_THREAD (I AM SPECIAL)
|
||||
barrier_func: Thread 0, back with status=0 (I am not special)
|
||||
barrier_func: Thread 1, back with status=0 (I am not special)
|
||||
barrier_func: Thread 2 done
|
||||
barrier_func: Thread 0 done
|
||||
barrier_func: Thread 1 done
|
||||
barrier_test: Thread 0 completed with result=0
|
||||
barrier_test: Thread 1 completed with result=0
|
||||
barrier_test: Thread 2 completed with result=0
|
||||
|
||||
End of test memory usage:
|
||||
VARIABLE BEFORE AFTER
|
||||
======== ======== ========
|
||||
arena 71a0 71a0
|
||||
ordblks 2 2
|
||||
mxordblk 4a80 4a80
|
||||
uordblks 1900 1900
|
||||
fordblks 58a0 58a0
|
||||
|
||||
Final memory usage:
|
||||
VARIABLE BEFORE AFTER
|
||||
======== ======== ========
|
||||
arena 71a0 71a0
|
||||
ordblks 2 2
|
||||
mxordblk 4a80 4a80
|
||||
uordblks 1900 1900
|
||||
fordblks 58a0 58a0
|
||||
user_main: Exitting
|
||||
examples/ostest output as of November 4, 2010
|
||||
=============================================
|
||||
|
||||
stdio_test: write fd=1
|
||||
stdio_test: write fd=2
|
||||
stdio_test: Standard I/O Check: printf
|
||||
user_start: Started user_main at PID=2
|
||||
user_start: Exitting
|
||||
stdio_test: Standard I/O Check: fprintf to stderr
|
||||
|
||||
user_main: Begin argument test
|
||||
user_main: Started with argc=5
|
||||
user_main: argv[0]="<noname>"
|
||||
user_main: argv[1]="Arg1"
|
||||
user_main: argv[2]="Arg2"
|
||||
user_main: argv[3]="Arg3"
|
||||
user_main: argv[4]="Arg4"
|
||||
|
||||
End of test memory usage:
|
||||
VARIABLE BEFORE AFTER
|
||||
======== ======== ========
|
||||
arena 71a0 71a0
|
||||
ordblks 2 2
|
||||
mxordblk 4a80 4a80
|
||||
uordblks 1900 1900
|
||||
fordblks 58a0 58a0
|
||||
|
||||
user_main: /dev/null test
|
||||
dev_null: Read 0 bytes from /dev/null
|
||||
dev_null: Wrote 1024 bytes to /dev/null
|
||||
|
||||
End of test memory usage:
|
||||
VARIABLE BEFORE AFTER
|
||||
======== ======== ========
|
||||
arena 71a0 71a0
|
||||
ordblks 2 2
|
||||
mxordblk 4a80 4a80
|
||||
uordblks 1900 1900
|
||||
fordblks 58a0 58a0
|
||||
|
||||
user_main: mutex test
|
||||
Initializing mutex
|
||||
Starting thread 1
|
||||
Starting thread 2
|
||||
Thread1 Thread2
|
||||
Loops 32 32
|
||||
Errors 0 0
|
||||
|
||||
End of test memory usage:
|
||||
VARIABLE BEFORE AFTER
|
||||
======== ======== ========
|
||||
arena 71a0 71a0
|
||||
ordblks 2 2
|
||||
mxordblk 4a80 4a80
|
||||
uordblks 1900 1900
|
||||
fordblks 58a0 58a0
|
||||
|
||||
user_main: cancel test
|
||||
cancel_test: Test 1: Normal Cancelation
|
||||
cancel_test: Starting thread
|
||||
start_thread: Initializing mutex
|
||||
start_thread: Initializing cond
|
||||
start_thread: Starting thread
|
||||
thread_waiter: Taking mutex
|
||||
thread_waiter: Starting wait for condition
|
||||
start_thread: Yielding
|
||||
cancel_test: Canceling thread
|
||||
cancel_test: Joining
|
||||
cancel_test: waiter exited with result=ffffffff
|
||||
cancel_test: PASS thread terminated with PTHREAD_CANCELED
|
||||
cancel_test: Test 2: Cancelation of detached thread
|
||||
cancel_test: Re-starting thread
|
||||
restart_thread: Destroying cond
|
||||
restart_thread: Destroying mutex
|
||||
restart_thread: Re-starting thread
|
||||
start_thread: Initializing mutex
|
||||
start_thread: Initializing cond
|
||||
start_thread: Starting thread
|
||||
thread_waiter: Taking mutex
|
||||
thread_waiter: Starting wait for condition
|
||||
start_thread: Yielding
|
||||
cancel_test: Canceling thread
|
||||
cancel_test: Joining
|
||||
cancel_test: PASS pthread_join failed with status=ESRCH
|
||||
cancel_test: Test 3: Non-cancelable threads
|
||||
cancel_test: Re-starting thread (non-cancelable)
|
||||
restart_thread: Destroying cond
|
||||
restart_thread: Destroying mutex
|
||||
restart_thread: Re-starting thread
|
||||
start_thread: Initializing mutex
|
||||
start_thread: Initializing cond
|
||||
start_thread: Starting thread
|
||||
thread_waiter: Taking mutex
|
||||
thread_waiter: Starting wait for condition
|
||||
thread_waiter: Setting non-cancelable
|
||||
start_thread: Yielding
|
||||
cancel_test: Canceling thread
|
||||
cancel_test: Joining
|
||||
thread_waiter: Releasing mutex
|
||||
thread_waiter: Setting cancelable
|
||||
cancel_test: waiter exited with result=ffffffff
|
||||
cancel_test: PASS thread terminated with PTHREAD_CANCELED
|
||||
|
||||
End of test memory usage:
|
||||
VARIABLE BEFORE AFTER
|
||||
======== ======== ========
|
||||
arena 71a0 71a0
|
||||
ordblks 2 2
|
||||
mxordblk 4a80 4a80
|
||||
uordblks 1900 1900
|
||||
fordblks 58a0 58a0
|
||||
|
||||
user_main: semaphore test
|
||||
sem_test: Initializing semaphore to 0
|
||||
sem_test: Starting waiter thread 1
|
||||
sem_test: Set thread 1 priority to 191
|
||||
waiter_func: Thread 1 Started
|
||||
waiter_func: Thread 1 initial semaphore value = 0
|
||||
waiter_func: Thread 1 waiting on semaphore
|
||||
sem_test: Starting waiter thread 2
|
||||
sem_test: Set thread 2 priority to 128
|
||||
waiter_func: Thread 2 Started
|
||||
waiter_func: Thread 2 initial semaphore value = -1
|
||||
waiter_func: Thread 2 waiting on semaphore
|
||||
sem_test: Starting poster thread 3
|
||||
sem_test: Set thread 3 priority to 64
|
||||
poster_func: Thread 3 started
|
||||
poster_func: Thread 3 semaphore value = -2
|
||||
poster_func: Thread 3 posting semaphore
|
||||
waiter_func: Thread 1 awakened
|
||||
waiter_func: Thread 1 new semaphore value = -1
|
||||
waiter_func: Thread 1 done
|
||||
poster_func: Thread 3 new semaphore value = -1
|
||||
poster_func: Thread 3 semaphore value = -1
|
||||
poster_func: Thread 3 posting semaphore
|
||||
waiter_func: Thread 2 awakened
|
||||
waiter_func: Thread 2 new semaphore value = 0
|
||||
waiter_func: Thread 2 done
|
||||
poster_func: Thread 3 new semaphore value = 0
|
||||
poster_func: Thread 3 done
|
||||
|
||||
End of test memory usage:
|
||||
VARIABLE BEFORE AFTER
|
||||
======== ======== ========
|
||||
arena 71a0 71a0
|
||||
ordblks 2 2
|
||||
mxordblk 4a80 4a80
|
||||
uordblks 1900 1900
|
||||
fordblks 58a0 58a0
|
||||
|
||||
user_main: condition variable test
|
||||
cond_test: Initializing mutex
|
||||
cond_test: Initializing cond
|
||||
cond_test: Starting waiter
|
||||
cond_test: Set thread 1 priority to 128
|
||||
waiter_thread: Started
|
||||
cond_test: Starting signaler
|
||||
cond_test: Set thread 2 priority to 64
|
||||
thread_signaler: Started
|
||||
thread_signaler: Terminating
|
||||
cond_test: signaler terminated, now cancel the waiter
|
||||
cond_test: Waiter Signaler
|
||||
cond_test: Loops 32 32
|
||||
cond_test: Errors 0 0
|
||||
cond_test:
|
||||
cond_test: 0 times, waiter did not have to wait for data
|
||||
cond_test: 0 times, data was already available when the signaler run
|
||||
cond_test: 0 times, the waiter was in an unexpected state when the signaler ran
|
||||
|
||||
End of test memory usage:
|
||||
VARIABLE BEFORE AFTER
|
||||
======== ======== ========
|
||||
arena 71a0 71a0
|
||||
ordblks 2 2
|
||||
mxordblk 4a80 4a80
|
||||
uordblks 1900 1900
|
||||
fordblks 58a0 58a0
|
||||
|
||||
user_main: timed wait test
|
||||
thread_waiter: Initializing mutex
|
||||
timedwait_test: Initializing cond
|
||||
timedwait_test: Starting waiter
|
||||
timedwait_test: Set thread 2 priority to 177
|
||||
thread_waiter: Taking mutex
|
||||
thread_waiter: Starting 5 second wait for condition
|
||||
timedwait_test: Joining
|
||||
thread_waiter: pthread_cond_timedwait timed out
|
||||
thread_waiter: Releasing mutex
|
||||
thread_waiter: Exit with status 0x12345678
|
||||
timedwait_test: waiter exited with result=12345678
|
||||
|
||||
End of test memory usage:
|
||||
VARIABLE BEFORE AFTER
|
||||
======== ======== ========
|
||||
arena 71a0 71a0
|
||||
ordblks 2 2
|
||||
mxordblk 4a80 4a80
|
||||
uordblks 1900 1900
|
||||
fordblks 58a0 58a0
|
||||
|
||||
user_main: message queue test
|
||||
mqueue_test: Starting receiver
|
||||
mqueue_test: Set receiver priority to 128
|
||||
receiver_thread: Starting
|
||||
mqueue_test: Starting sender
|
||||
mqueue_test: Set sender thread priority to 64
|
||||
mqueue_test: Waiting for sender to complete
|
||||
sender_thread: Starting
|
||||
receiver_thread: mq_receive succeeded on msg 0
|
||||
sender_thread: mq_send succeeded on msg 0
|
||||
receiver_thread: mq_receive succeeded on msg 1
|
||||
sender_thread: mq_send succeeded on msg 1
|
||||
receiver_thread: mq_receive succeeded on msg 2
|
||||
sender_thread: mq_send succeeded on msg 2
|
||||
receiver_thread: mq_receive succeeded on msg 3
|
||||
sender_thread: mq_send succeeded on msg 3
|
||||
receiver_thread: mq_receive succeeded on msg 4
|
||||
sender_thread: mq_send succeeded on msg 4
|
||||
receiver_thread: mq_receive succeeded on msg 5
|
||||
sender_thread: mq_send succeeded on msg 5
|
||||
receiver_thread: mq_receive succeeded on msg 6
|
||||
sender_thread: mq_send succeeded on msg 6
|
||||
receiver_thread: mq_receive succeeded on msg 7
|
||||
sender_thread: mq_send succeeded on msg 7
|
||||
receiver_thread: mq_receive succeeded on msg 8
|
||||
sender_thread: mq_send succeeded on msg 8
|
||||
receiver_thread: mq_receive succeeded on msg 9
|
||||
sender_thread: mq_send succeeded on msg 9
|
||||
sender_thread: returning nerrors=0
|
||||
mqueue_test: Killing receiver
|
||||
receiver_thread: mq_receive interrupted!
|
||||
receiver_thread: returning nerrors=0
|
||||
mqueue_test: Canceling receiver
|
||||
mqueue_test: receiver has already terminated
|
||||
|
||||
End of test memory usage:
|
||||
VARIABLE BEFORE AFTER
|
||||
======== ======== ========
|
||||
arena 71a0 71a0
|
||||
ordblks 2 2
|
||||
mxordblk 4a80 4a80
|
||||
uordblks 1900 1900
|
||||
fordblks 58a0 58a0
|
||||
|
||||
user_main: timed message queue test
|
||||
timedmqueue_test: Starting sender
|
||||
sender_thread: Starting
|
||||
sender_thread: mq_timedsend succeeded on msg 0
|
||||
sender_thread: mq_timedsend succeeded on msg 1
|
||||
sender_thread: mq_timedsend succeeded on msg 2
|
||||
sender_thread: mq_timedsend succeeded on msg 3
|
||||
sender_thread: mq_timedsend succeeded on msg 4
|
||||
sender_thread: mq_timedsend succeeded on msg 5
|
||||
sender_thread: mq_timedsend succeeded on msg 6
|
||||
sender_thread: mq_timedsend succeeded on msg 7
|
||||
sender_thread: mq_timedsend succeeded on msg 8
|
||||
timedmqueue_test: Waiting for sender to complete
|
||||
sender_thread: mq_timedsend 9 timed out as expected
|
||||
sender_thread: returning nerrors=0
|
||||
timedmqueue_test: Starting receiver
|
||||
receiver_thread: Starting
|
||||
receiver_thread: mq_timedreceive succeeded on msg 0
|
||||
receiver_thread: mq_timedreceive succeeded on msg 1
|
||||
receiver_thread: mq_timedreceive succeeded on msg 2
|
||||
receiver_thread: mq_timedreceive succeeded on msg 3
|
||||
receiver_thread: mq_timedreceive succeeded on msg 4
|
||||
receiver_thread: mq_timedreceive succeeded on msg 5
|
||||
receiver_thread: mq_timedreceive succeeded on msg 6
|
||||
receiver_thread: mq_timedreceive succeeded on msg 7
|
||||
receiver_thread: mq_timedreceive succeeded on msg 8
|
||||
timedmqueue_test: Waiting for receiver to complete
|
||||
receiver_thread: Receive 9 timed out as expected
|
||||
receiver_thread: returning nerrors=0
|
||||
timedmqueue_test: Test complete
|
||||
|
||||
End of test memory usage:
|
||||
VARIABLE BEFORE AFTER
|
||||
======== ======== ========
|
||||
arena 71a0 71a0
|
||||
ordblks 2 2
|
||||
mxordblk 4a80 4a80
|
||||
uordblks 1900 1900
|
||||
fordblks 58a0 58a0
|
||||
|
||||
user_main: signal handler test
|
||||
sighand_test: Initializing semaphore to 0
|
||||
sighand_test: Starting waiter task
|
||||
sighand_test: Started waiter_main pid=20
|
||||
waiter_main: Waiter started
|
||||
waiter_main: Unmasking signal 17
|
||||
waiter_main: Registering signal handler
|
||||
waiter_main: oact.sigaction=0 oact.sa_flags=0 oact.sa_mask=0
|
||||
waiter_main: Waiting on semaphore
|
||||
sighand_test: Signaling pid=20 with signo=17 sigvalue=42
|
||||
wakeup_action: Received signal 17
|
||||
wakeup_action: sival_int=42
|
||||
wakeup_action: si_code=1
|
||||
wakeup_action: ucontext=0
|
||||
waiter_main: sem_wait() successfully interrupted by signal
|
||||
waiter_main: done
|
||||
sighand_test: done
|
||||
|
||||
End of test memory usage:
|
||||
VARIABLE BEFORE AFTER
|
||||
======== ======== ========
|
||||
arena 71a0 71a0
|
||||
ordblks 2 2
|
||||
mxordblk 4a80 4a80
|
||||
uordblks 1900 1900
|
||||
fordblks 58a0 58a0
|
||||
|
||||
user_main: POSIX timer test
|
||||
timer_test: Initializing semaphore to 0
|
||||
timer_test: Unmasking signal 17
|
||||
timer_test: Registering signal handler
|
||||
timer_test: oact.sigaction=0 oact.sa_flags=0 oact.sa_mask=0
|
||||
timer_test: Creating timer
|
||||
timer_test: Starting timer
|
||||
timer_test: Waiting on semaphore
|
||||
timer_expiration: Received signal 17
|
||||
timer_expiration: sival_int=42
|
||||
timer_expiration: si_code=2 (SI_TIMER)
|
||||
timer_expiration: ucontext=0
|
||||
timer_test: sem_wait() successfully interrupted by signal
|
||||
timer_test: g_nsigreceived=1
|
||||
timer_test: Waiting on semaphore
|
||||
timer_expiration: Received signal 17
|
||||
timer_expiration: sival_int=42
|
||||
timer_expiration: si_code=2 (SI_TIMER)
|
||||
timer_expiration: ucontext=0
|
||||
timer_test: sem_wait() successfully interrupted by signal
|
||||
timer_test: g_nsigreceived=2
|
||||
timer_test: Waiting on semaphore
|
||||
timer_expiration: Received signal 17
|
||||
timer_expiration: sival_int=42
|
||||
timer_expiration: si_code=2 (SI_TIMER)
|
||||
timer_expiration: ucontext=0
|
||||
timer_test: sem_wait() successfully interrupted by signal
|
||||
timer_test: g_nsigreceived=3
|
||||
timer_test: Waiting on semaphore
|
||||
timer_expiration: Received signal 17
|
||||
timer_expiration: sival_int=42
|
||||
timer_expiration: si_code=2 (SI_TIMER)
|
||||
timer_expiration: ucontext=0
|
||||
timer_test: sem_wait() successfully interrupted by signal
|
||||
timer_test: g_nsigreceived=4
|
||||
timer_test: Waiting on semaphore
|
||||
timer_expiration: Received signal 17
|
||||
timer_expiration: sival_int=42
|
||||
timer_expiration: si_code=2 (SI_TIMER)
|
||||
timer_expiration: ucontext=0
|
||||
timer_test: sem_wait() successfully interrupted by signal
|
||||
timer_test: g_nsigreceived=5
|
||||
timer_test: Deleting timer
|
||||
timer_test: done
|
||||
|
||||
End of test memory usage:
|
||||
VARIABLE BEFORE AFTER
|
||||
======== ======== ========
|
||||
arena 71a0 71a0
|
||||
ordblks 2 2
|
||||
mxordblk 4a80 4a80
|
||||
uordblks 1900 1900
|
||||
fordblks 58a0 58a0
|
||||
|
||||
user_main: barrier test
|
||||
barrier_test: Initializing barrier
|
||||
barrier_func: Thread 0 started
|
||||
barrier_test: Thread 0 created
|
||||
barrier_func: Thread 1 started
|
||||
barrier_test: Thread 1 created
|
||||
barrier_func: Thread 2 started
|
||||
barrier_test: Thread 2 created
|
||||
barrier_func: Thread 0 calling pthread_barrier_wait()
|
||||
barrier_func: Thread 1 calling pthread_barrier_wait()
|
||||
barrier_func: Thread 2 calling pthread_barrier_wait()
|
||||
barrier_func: Thread 2, back with status=PTHREAD_BARRIER_SERIAL_THREAD (I AM SPECIAL)
|
||||
barrier_func: Thread 0, back with status=0 (I am not special)
|
||||
barrier_func: Thread 1, back with status=0 (I am not special)
|
||||
barrier_func: Thread 2 done
|
||||
barrier_func: Thread 0 done
|
||||
barrier_func: Thread 1 done
|
||||
barrier_test: Thread 0 completed with result=0
|
||||
barrier_test: Thread 1 completed with result=0
|
||||
barrier_test: Thread 2 completed with result=0
|
||||
|
||||
End of test memory usage:
|
||||
VARIABLE BEFORE AFTER
|
||||
======== ======== ========
|
||||
arena 71a0 71a0
|
||||
ordblks 2 2
|
||||
mxordblk 4a80 4a80
|
||||
uordblks 1900 1900
|
||||
fordblks 58a0 58a0
|
||||
|
||||
Final memory usage:
|
||||
VARIABLE BEFORE AFTER
|
||||
======== ======== ========
|
||||
arena 71a0 71a0
|
||||
ordblks 2 2
|
||||
mxordblk 4a80 4a80
|
||||
uordblks 1900 1900
|
||||
fordblks 58a0 58a0
|
||||
user_main: Exitting
|
||||
|
@ -1,123 +1,123 @@
|
||||
README
|
||||
======
|
||||
|
||||
This is the README file for the port of NuttX to the TI CC3200 Launchpad.
|
||||
|
||||
OpenOCD for Windows
|
||||
===================
|
||||
|
||||
Get the CC3200 SDK
|
||||
------------------
|
||||
Get this from the TI web site. Also get "CC3200 SimpleLink™ Wi-Fi® and
|
||||
IoT Solution With MCU LaunchPad™ Getting Started Guide" (SWRU376A)
|
||||
|
||||
Get OpenOCD
|
||||
------------
|
||||
The OpenOCD project is here: http://openocd.sourceforge.net/
|
||||
|
||||
I use the pre-built binaries provided by Freddie Chopin that can b
|
||||
downloaded here: http://www.freddiechopin.info/
|
||||
|
||||
I used version 0.8.0 which available here:
|
||||
http://www.freddiechopin.info/en/articles/34-news/92-openocd-w-wersji-080
|
||||
|
||||
Other versions are available here:
|
||||
http://www.freddiechopin.info/en/download/category/4-openocd
|
||||
|
||||
Get Zadig
|
||||
---------
|
||||
Unless you are very clever with Windows drivers, then I also recommend
|
||||
that you download and install Zadig: http://zadig.akeo.ie/
|
||||
|
||||
Other Stuff
|
||||
-----------
|
||||
USB Cable, your favorite serial terminal program, NuttX build with
|
||||
one of the CC3200 configurations in this diretory.
|
||||
|
||||
Installing
|
||||
----------
|
||||
Install the TI CC3200 SDK and OpenOCD. Zadig is just an binary so there
|
||||
is no installation. Plug in the CC3200 via the USB cable. You should see
|
||||
two new devices in the Windows Device Manager, both called:
|
||||
|
||||
USB <-> JTAG/SWD
|
||||
|
||||
There will be indications on the driver icon that no driver is installed.
|
||||
|
||||
Follow the instructions in the paragraph "Install USB Driver" to install
|
||||
the TI USB drivers. You need to do this twice, once for each device. Now
|
||||
you will have two devices with different names:
|
||||
|
||||
CC3200CP JTAG Port A, and
|
||||
CC3200CP UART Port B
|
||||
|
||||
OpenOCD cannot use the TI JTAG drivers. So we need to replace that port
|
||||
(ONLY) with the libusb driver. Use Zadig to install the libusb driver
|
||||
replacing the TI driver for "CC3200CP JTAG Port A". Now you should have
|
||||
the following under "Ports (COM & LPT)":
|
||||
|
||||
CC3200 UART Port B
|
||||
|
||||
And under "Universal Serial Bus Devices", again:
|
||||
|
||||
USB <-> JTAG/SWD
|
||||
|
||||
But this time without the indication that a driver is needed.
|
||||
|
||||
Starting OpenOCD
|
||||
----------------
|
||||
These instructions assume that (1) you are using a terminal with a Bash
|
||||
shell under Cygwin, (2) that you installed OpenOCD at C:\openocd-0.8.0,
|
||||
and (3) you are using a 64-bit windows version. You will need to make
|
||||
minor changes if any of these are not true.
|
||||
|
||||
The script to use with OpenOCD 0.8.0 is provided in
|
||||
nuttx/configs/cc3200-launchpad/tools. Go there and start OpenOCd as
|
||||
follow:
|
||||
|
||||
$ cd configs/cc3200-launchpad/tools
|
||||
$ /cygdrive/c/openocd-0.8.0/bin-x64/openocd-x64-0.8.0.exe --file cc3200.cfg
|
||||
|
||||
And you should see something like:
|
||||
|
||||
Open On-Chip Debugger 0.8.0 (2014-04-28-08:42)
|
||||
Licensed under GNU GPL v2
|
||||
For bug reports, read
|
||||
http://openocd.sourceforge.net/doc/doxygen/bugs.html
|
||||
Info : only one transport option; autoselect 'jtag'
|
||||
adapter speed: 1000 kHz
|
||||
Info : clock speed 1000 kHz
|
||||
Info : JTAG tap: cc3200.jrc tap/device found: 0x0b97c02f (mfg: 0x017, part: 0xb97c, ver: 0x0)
|
||||
Info : JTAG tap: cc3200.dap enabled
|
||||
Info : cc3200.cpu: hardware has 6 breakpoints, 4 watchpoints
|
||||
|
||||
Open the Serial Terminal
|
||||
------------------------
|
||||
Connect the CC3200 board via the USB cabale. Open the serial terminal
|
||||
program using the libusb COM device. For me this is usually COM6 but
|
||||
could be anything. If you are unsure, remove the CC3200 and see which
|
||||
one goes away.
|
||||
|
||||
The serial interface should be configured 115200 8N1.
|
||||
|
||||
Using GDB
|
||||
---------
|
||||
Start GDB and connect to OpenOCD:
|
||||
|
||||
$ arm-none-eabi-gdb
|
||||
(gdb) target remote localhost:3333
|
||||
|
||||
Load and start the NuttX ELF file (nuttx):
|
||||
|
||||
(gdb) mon reset halt
|
||||
(gdb) load nuttx
|
||||
(gdb) cont
|
||||
(gdb)
|
||||
|
||||
After entering cont(inue), you should see the NSH prompt in the serial
|
||||
terminal window:
|
||||
|
||||
C3200 init
|
||||
|
||||
NuttShell (NSH)
|
||||
nsh>
|
||||
README
|
||||
======
|
||||
|
||||
This is the README file for the port of NuttX to the TI CC3200 Launchpad.
|
||||
|
||||
OpenOCD for Windows
|
||||
===================
|
||||
|
||||
Get the CC3200 SDK
|
||||
------------------
|
||||
Get this from the TI web site. Also get "CC3200 SimpleLink™ Wi-Fi® and
|
||||
IoT Solution With MCU LaunchPad™ Getting Started Guide" (SWRU376A)
|
||||
|
||||
Get OpenOCD
|
||||
------------
|
||||
The OpenOCD project is here: http://openocd.sourceforge.net/
|
||||
|
||||
I use the pre-built binaries provided by Freddie Chopin that can b
|
||||
downloaded here: http://www.freddiechopin.info/
|
||||
|
||||
I used version 0.8.0 which available here:
|
||||
http://www.freddiechopin.info/en/articles/34-news/92-openocd-w-wersji-080
|
||||
|
||||
Other versions are available here:
|
||||
http://www.freddiechopin.info/en/download/category/4-openocd
|
||||
|
||||
Get Zadig
|
||||
---------
|
||||
Unless you are very clever with Windows drivers, then I also recommend
|
||||
that you download and install Zadig: http://zadig.akeo.ie/
|
||||
|
||||
Other Stuff
|
||||
-----------
|
||||
USB Cable, your favorite serial terminal program, NuttX build with
|
||||
one of the CC3200 configurations in this diretory.
|
||||
|
||||
Installing
|
||||
----------
|
||||
Install the TI CC3200 SDK and OpenOCD. Zadig is just an binary so there
|
||||
is no installation. Plug in the CC3200 via the USB cable. You should see
|
||||
two new devices in the Windows Device Manager, both called:
|
||||
|
||||
USB <-> JTAG/SWD
|
||||
|
||||
There will be indications on the driver icon that no driver is installed.
|
||||
|
||||
Follow the instructions in the paragraph "Install USB Driver" to install
|
||||
the TI USB drivers. You need to do this twice, once for each device. Now
|
||||
you will have two devices with different names:
|
||||
|
||||
CC3200CP JTAG Port A, and
|
||||
CC3200CP UART Port B
|
||||
|
||||
OpenOCD cannot use the TI JTAG drivers. So we need to replace that port
|
||||
(ONLY) with the libusb driver. Use Zadig to install the libusb driver
|
||||
replacing the TI driver for "CC3200CP JTAG Port A". Now you should have
|
||||
the following under "Ports (COM & LPT)":
|
||||
|
||||
CC3200 UART Port B
|
||||
|
||||
And under "Universal Serial Bus Devices", again:
|
||||
|
||||
USB <-> JTAG/SWD
|
||||
|
||||
But this time without the indication that a driver is needed.
|
||||
|
||||
Starting OpenOCD
|
||||
----------------
|
||||
These instructions assume that (1) you are using a terminal with a Bash
|
||||
shell under Cygwin, (2) that you installed OpenOCD at C:\openocd-0.8.0,
|
||||
and (3) you are using a 64-bit windows version. You will need to make
|
||||
minor changes if any of these are not true.
|
||||
|
||||
The script to use with OpenOCD 0.8.0 is provided in
|
||||
nuttx/configs/cc3200-launchpad/tools. Go there and start OpenOCd as
|
||||
follow:
|
||||
|
||||
$ cd configs/cc3200-launchpad/tools
|
||||
$ /cygdrive/c/openocd-0.8.0/bin-x64/openocd-x64-0.8.0.exe --file cc3200.cfg
|
||||
|
||||
And you should see something like:
|
||||
|
||||
Open On-Chip Debugger 0.8.0 (2014-04-28-08:42)
|
||||
Licensed under GNU GPL v2
|
||||
For bug reports, read
|
||||
http://openocd.sourceforge.net/doc/doxygen/bugs.html
|
||||
Info : only one transport option; autoselect 'jtag'
|
||||
adapter speed: 1000 kHz
|
||||
Info : clock speed 1000 kHz
|
||||
Info : JTAG tap: cc3200.jrc tap/device found: 0x0b97c02f (mfg: 0x017, part: 0xb97c, ver: 0x0)
|
||||
Info : JTAG tap: cc3200.dap enabled
|
||||
Info : cc3200.cpu: hardware has 6 breakpoints, 4 watchpoints
|
||||
|
||||
Open the Serial Terminal
|
||||
------------------------
|
||||
Connect the CC3200 board via the USB cabale. Open the serial terminal
|
||||
program using the libusb COM device. For me this is usually COM6 but
|
||||
could be anything. If you are unsure, remove the CC3200 and see which
|
||||
one goes away.
|
||||
|
||||
The serial interface should be configured 115200 8N1.
|
||||
|
||||
Using GDB
|
||||
---------
|
||||
Start GDB and connect to OpenOCD:
|
||||
|
||||
$ arm-none-eabi-gdb
|
||||
(gdb) target remote localhost:3333
|
||||
|
||||
Load and start the NuttX ELF file (nuttx):
|
||||
|
||||
(gdb) mon reset halt
|
||||
(gdb) load nuttx
|
||||
(gdb) cont
|
||||
(gdb)
|
||||
|
||||
After entering cont(inue), you should see the NSH prompt in the serial
|
||||
terminal window:
|
||||
|
||||
C3200 init
|
||||
|
||||
NuttShell (NSH)
|
||||
nsh>
|
||||
|
@ -2,82 +2,82 @@ diff -rub lpc21isp-1.60/lpc21isp.c lpc21isp-Linux//lpc21isp.c
|
||||
--- lpc21isp-1.60/lpc21isp.c 2008-07-21 15:17:06.000000000 -0600
|
||||
+++ lpc21isp-Linux//lpc21isp.c 2008-09-16 09:21:20.000000000 -0600
|
||||
@@ -22,6 +22,7 @@
|
||||
#include "adprog.h"
|
||||
#include "lpcprog.h"
|
||||
#include "lpcterm.h"
|
||||
+#include "errno.h"
|
||||
|
||||
/*
|
||||
Change-History:
|
||||
#include "adprog.h"
|
||||
#include "lpcprog.h"
|
||||
#include "lpcterm.h"
|
||||
+#include "errno.h"
|
||||
|
||||
/*
|
||||
Change-History:
|
||||
@@ -319,10 +320,7 @@
|
||||
|
||||
if (IspEnvironment->fdCom < 0)
|
||||
{
|
||||
- int* p_err = __error();
|
||||
- int err;
|
||||
- if (p_err) { err = *p_err; }
|
||||
- DebugPrintf(1, "Can't open COM-Port %s ! (Error: %dd (0x%X))\n", IspEnvironment->serial_port, err, err);
|
||||
+ DebugPrintf(1, "Can't open COM-Port %s ! (Error: %dd (0x%X))\n", IspEnvironment->serial_port, errno, errno);
|
||||
exit(2);
|
||||
}
|
||||
|
||||
|
||||
if (IspEnvironment->fdCom < 0)
|
||||
{
|
||||
- int* p_err = __error();
|
||||
- int err;
|
||||
- if (p_err) { err = *p_err; }
|
||||
- DebugPrintf(1, "Can't open COM-Port %s ! (Error: %dd (0x%X))\n", IspEnvironment->serial_port, err, err);
|
||||
+ DebugPrintf(1, "Can't open COM-Port %s ! (Error: %dd (0x%X))\n", IspEnvironment->serial_port, errno, errno);
|
||||
exit(2);
|
||||
}
|
||||
|
||||
diff -rub lpc21isp-1.60/lpc21isp.h lpc21isp-Linux//lpc21isp.h
|
||||
--- lpc21isp-1.60/lpc21isp.h 2008-05-10 17:35:00.000000000 -0600
|
||||
+++ lpc21isp-Linux//lpc21isp.h 2008-09-16 09:18:42.000000000 -0600
|
||||
@@ -165,6 +165,7 @@
|
||||
#endif
|
||||
|
||||
unsigned serial_timeout_count; /**< Local used to track timeouts on serial port read. */
|
||||
+ unsigned char DoNotStart; /* Do not start Code if this is set*/
|
||||
|
||||
} ISP_ENVIRONMENT;
|
||||
|
||||
#endif
|
||||
|
||||
unsigned serial_timeout_count; /**< Local used to track timeouts on serial port read. */
|
||||
+ unsigned char DoNotStart; /* Do not start Code if this is set*/
|
||||
|
||||
} ISP_ENVIRONMENT;
|
||||
|
||||
@@ -173,7 +174,6 @@
|
||||
#define DebugPrintf(in, ...)
|
||||
|
||||
#else
|
||||
-extern int debug_level;
|
||||
|
||||
#if defined INTEGRATED_IN_WIN_APP
|
||||
|
||||
#define DebugPrintf(in, ...)
|
||||
|
||||
#else
|
||||
-extern int debug_level;
|
||||
|
||||
#if defined INTEGRATED_IN_WIN_APP
|
||||
|
||||
@@ -191,7 +191,6 @@
|
||||
|
||||
#else
|
||||
void DebugPrintf(int level, const char *fmt, ...);
|
||||
-//#define DebugPrintf(level, ...) if (level <= debug_level) { TRACE( __VA_ARGS__ ); }
|
||||
#endif
|
||||
|
||||
void ClearSerialPortBuffers(ISP_ENVIRONMENT *IspEnvironment);
|
||||
|
||||
#else
|
||||
void DebugPrintf(int level, const char *fmt, ...);
|
||||
-//#define DebugPrintf(level, ...) if (level <= debug_level) { TRACE( __VA_ARGS__ ); }
|
||||
#endif
|
||||
|
||||
void ClearSerialPortBuffers(ISP_ENVIRONMENT *IspEnvironment);
|
||||
diff -rub lpc21isp-1.60/lpcprog.c lpc21isp-Linux//lpcprog.c
|
||||
--- lpc21isp-1.60/lpcprog.c 2008-07-21 14:39:50.000000000 -0600
|
||||
+++ lpc21isp-Linux//lpcprog.c 2008-09-16 08:52:46.000000000 -0600
|
||||
@@ -1062,15 +1062,16 @@
|
||||
}
|
||||
else
|
||||
{
|
||||
+ if (IspEnvironment->DoNotStart == 0)
|
||||
+ {
|
||||
DebugPrintf(2, "Now launching the brand new code\n");
|
||||
fflush(stdout);
|
||||
-
|
||||
if (IspEnvironment->HalfDuplex == 0)
|
||||
sprintf(tmpString, "G %ld A\r\n", IspEnvironment->StartAddress);
|
||||
else
|
||||
sprintf(tmpString, "G %ld A\n", IspEnvironment->StartAddress);
|
||||
-
|
||||
SendComPort(IspEnvironment, tmpString); //goto 0 : run this fresh new downloaded code code
|
||||
+
|
||||
if (IspEnvironment->BinaryOffset < LPC_RAMSTART)
|
||||
{ // Skip response on G command - show response on Terminal instead
|
||||
ReceiveComPort(IspEnvironment, Answer, sizeof(Answer)-1, &realsize, 2, 5000);
|
||||
}
|
||||
else
|
||||
{
|
||||
+ if (IspEnvironment->DoNotStart == 0)
|
||||
+ {
|
||||
DebugPrintf(2, "Now launching the brand new code\n");
|
||||
fflush(stdout);
|
||||
-
|
||||
if (IspEnvironment->HalfDuplex == 0)
|
||||
sprintf(tmpString, "G %ld A\r\n", IspEnvironment->StartAddress);
|
||||
else
|
||||
sprintf(tmpString, "G %ld A\n", IspEnvironment->StartAddress);
|
||||
-
|
||||
SendComPort(IspEnvironment, tmpString); //goto 0 : run this fresh new downloaded code code
|
||||
+
|
||||
if (IspEnvironment->BinaryOffset < LPC_RAMSTART)
|
||||
{ // Skip response on G command - show response on Terminal instead
|
||||
ReceiveComPort(IspEnvironment, Answer, sizeof(Answer)-1, &realsize, 2, 5000);
|
||||
@@ -1099,6 +1100,7 @@
|
||||
return (FAILED_RUN + GetAndReportErrorNumber(Answer));
|
||||
}
|
||||
}
|
||||
+ }
|
||||
|
||||
fflush(stdout);
|
||||
}
|
||||
return (FAILED_RUN + GetAndReportErrorNumber(Answer));
|
||||
}
|
||||
}
|
||||
+ }
|
||||
|
||||
fflush(stdout);
|
||||
}
|
||||
Only in lpc21isp-Linux/: lpcprog.c.orig
|
||||
diff -rub lpc21isp-1.60/Makefile lpc21isp-Linux//Makefile
|
||||
--- lpc21isp-1.60/Makefile 2008-04-07 00:23:00.000000000 -0600
|
||||
|
@ -1,37 +1,37 @@
|
||||
#daemon configuration
|
||||
telnet_port 4444
|
||||
gdb_port 3333
|
||||
|
||||
#interface
|
||||
interface ft2232
|
||||
ft2232_device_desc "Olimex OpenOCD JTAG A"
|
||||
ft2232_layout "olimex-jtag"
|
||||
ft2232_vid_pid 0x15BA 0x0003
|
||||
jtag_speed 0
|
||||
|
||||
#use combined on interfaces or targets that can't set TRST/SRST separately
|
||||
reset_config trst_and_srst srst_pulls_trst
|
||||
|
||||
#jtag scan chain
|
||||
#format L IRC IRCM IDCODE (Length, IR Capture, IR Capture Mask, IDCODE)
|
||||
jtag_device 4 0x1 0xf 0xe
|
||||
|
||||
#target configuration
|
||||
daemon_startup reset
|
||||
|
||||
#target <type> <startup mode>
|
||||
#target arm7tdmi <reset mode> <chainpos> <endianness> <variant>
|
||||
target arm7tdmi little run_and_halt 0 arm7tdmi
|
||||
run_and_halt_time 0 30
|
||||
|
||||
working_area 0 0x2000C000 0x4000 nobackup
|
||||
|
||||
#flash bank <driver> <base> <size> <chip_width> <bus_width>
|
||||
flash bank str7x 0x40000000 0x00040000 0 0 0 STR71x
|
||||
#flash bank cfi 0x60000000 0x00400000 2 2 0
|
||||
|
||||
#Script used for FLASH programming
|
||||
#target_script 0 reset str71x_flashprogram.ocd
|
||||
|
||||
# For more information about the configuration files, take a look at:
|
||||
# http://openfacts.berlios.de/index-en.phtml?title=Open+On-Chip+Debugger
|
||||
#daemon configuration
|
||||
telnet_port 4444
|
||||
gdb_port 3333
|
||||
|
||||
#interface
|
||||
interface ft2232
|
||||
ft2232_device_desc "Olimex OpenOCD JTAG A"
|
||||
ft2232_layout "olimex-jtag"
|
||||
ft2232_vid_pid 0x15BA 0x0003
|
||||
jtag_speed 0
|
||||
|
||||
#use combined on interfaces or targets that can't set TRST/SRST separately
|
||||
reset_config trst_and_srst srst_pulls_trst
|
||||
|
||||
#jtag scan chain
|
||||
#format L IRC IRCM IDCODE (Length, IR Capture, IR Capture Mask, IDCODE)
|
||||
jtag_device 4 0x1 0xf 0xe
|
||||
|
||||
#target configuration
|
||||
daemon_startup reset
|
||||
|
||||
#target <type> <startup mode>
|
||||
#target arm7tdmi <reset mode> <chainpos> <endianness> <variant>
|
||||
target arm7tdmi little run_and_halt 0 arm7tdmi
|
||||
run_and_halt_time 0 30
|
||||
|
||||
working_area 0 0x2000C000 0x4000 nobackup
|
||||
|
||||
#flash bank <driver> <base> <size> <chip_width> <bus_width>
|
||||
flash bank str7x 0x40000000 0x00040000 0 0 0 STR71x
|
||||
#flash bank cfi 0x60000000 0x00400000 2 2 0
|
||||
|
||||
#Script used for FLASH programming
|
||||
#target_script 0 reset str71x_flashprogram.ocd
|
||||
|
||||
# For more information about the configuration files, take a look at:
|
||||
# http://openfacts.berlios.de/index-en.phtml?title=Open+On-Chip+Debugger
|
||||
|
@ -1,43 +1,43 @@
|
||||
Using the Binaries:
|
||||
==================
|
||||
|
||||
Prequisites:
|
||||
===========
|
||||
|
||||
1. SAMA5D3x-EK board and power supply
|
||||
2. RS-232 NUL modem cable
|
||||
3. A full size SD card. This should be older style SD or SDHC cards. Some
|
||||
of the newest very high capacity cards will not work.
|
||||
4. The WAV file jsbach16.wav
|
||||
5. The NuttX HEX binary, nuttx.hex, .bin or .elf.
|
||||
|
||||
Procedure:
|
||||
|
||||
1. Put the WAV file jsbach16.wav on the SD card
|
||||
|
||||
2. Place the SD card in the full size SD slot on the motherboard.
|
||||
|
||||
3. Use SAM-BA to copy the NuttX binary to NOR flash
|
||||
|
||||
4. Set the boot jumper to boot from NOR FLASH
|
||||
|
||||
5. NSH shouls start
|
||||
|
||||
NuttShell (NSH) NuttX-7.3
|
||||
nsh>
|
||||
|
||||
6. Mount the SD card at /music
|
||||
|
||||
nsh> mount -t vfat /dev/mmcsd0 /music
|
||||
|
||||
7. Star the NxPlayer and select the pcm0 device
|
||||
|
||||
nsh> nxplayer
|
||||
NxPlayer version 1.04
|
||||
h for commands, q to exit
|
||||
|
||||
nxplayer> device pcm0
|
||||
|
||||
8. And play the WAV file
|
||||
|
||||
nxplayer> play jsbach16.wav
|
||||
Using the Binaries:
|
||||
==================
|
||||
|
||||
Prequisites:
|
||||
===========
|
||||
|
||||
1. SAMA5D3x-EK board and power supply
|
||||
2. RS-232 NUL modem cable
|
||||
3. A full size SD card. This should be older style SD or SDHC cards. Some
|
||||
of the newest very high capacity cards will not work.
|
||||
4. The WAV file jsbach16.wav
|
||||
5. The NuttX HEX binary, nuttx.hex, .bin or .elf.
|
||||
|
||||
Procedure:
|
||||
|
||||
1. Put the WAV file jsbach16.wav on the SD card
|
||||
|
||||
2. Place the SD card in the full size SD slot on the motherboard.
|
||||
|
||||
3. Use SAM-BA to copy the NuttX binary to NOR flash
|
||||
|
||||
4. Set the boot jumper to boot from NOR FLASH
|
||||
|
||||
5. NSH shouls start
|
||||
|
||||
NuttShell (NSH) NuttX-7.3
|
||||
nsh>
|
||||
|
||||
6. Mount the SD card at /music
|
||||
|
||||
nsh> mount -t vfat /dev/mmcsd0 /music
|
||||
|
||||
7. Star the NxPlayer and select the pcm0 device
|
||||
|
||||
nsh> nxplayer
|
||||
NxPlayer version 1.04
|
||||
h for commands, q to exit
|
||||
|
||||
nxplayer> device pcm0
|
||||
|
||||
8. And play the WAV file
|
||||
|
||||
nxplayer> play jsbach16.wav
|
||||
|
Loading…
Reference in New Issue
Block a user