aboutsummaryrefslogtreecommitdiffstats
path: root/docs/reports/MSP430F1611-0.75.txt
blob: 802d60e695be99dfdba9572d56b10f8f2ff61cc7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
/* Name: osccal.h
 * Author: Christian Starkjohann
 * Creation Date: 2008-04-10
 * Tabsize: 4
 * Copyright: (c) 2008 by OBJECTIVE DEVELOPMENT Software GmbH
 * License: GNU GPL v2 (see License.txt), GNU GPL v3 or proprietary (CommercialLicense.txt)
 * This Revision: $Id: osccal.h 762 2009-08-12 17:10:30Z cs $
 */

/*
General Description:
This module contains a function which calibrates the AVR's internal RC
oscillator so that the CPU runs at F_CPU (F_CPU is a macro which must be
defined when the module is compiled, best passed in the compiler command
line). The time reference is the USB frame clock of 1 kHz available
immediately after a USB RESET condition. Timing is done by counting CPU
cycles, so all interrupts must be disabled while the calibration runs. For
low level timing measurements, usbMeasureFrameLength() is called. This
function must be enabled in usbconfig.h by defining
USB_CFG_HAVE_MEASURE_FRAME_LENGTH to 1. It is recommended to call
calibrateOscillator() from the reset hook in usbconfig.h:
*/

#ifndef __ASSEMBLER__
//extern void calibrateOscillator(void);
extern void calibrateOscillatorASM(void);
#endif
//#define USB_RESET_HOOK(resetStarts)  if(!resetStarts){  calibrateOscillator(); }
#define USB_RESET_HOOK(resetStarts)  if(!resetStarts){  calibrateOscillatorASM(); }

/*
This routine is an alternative to the continuous synchronization described
in osctune.h.

Algorithm used:
calibrateOscillator() first does a binary search in the OSCCAL register for
the best matching oscillator frequency. Then it does a next neighbor search
to find the value with the lowest clock rate deviation. It is guaranteed to
find the best match among neighboring values, but for version 5 oscillators
(which have a discontinuous relationship between OSCCAL and frequency) a
better match might be available in another OSCCAL region.

Limitations:
This calibration algorithm may try OSCCAL values of up to 192 even if the
optimum value is far below 192. It may therefore exceed the allowed clock
frequency of the CPU in low voltage designs!
Precision depends on the OSCCAL vs. frequency dependency of the oscillator.
Typical precision for an ATMega168 (derived from the OSCCAL vs. F_RC diagram
in the data sheet) should be in the range of 0.4%. Only the 12.8 MHz and
16.5 MHz versions of V-USB (with built-in receiver PLL) can tolerate this
deviation! All other frequency modules require at least 0.2% precision.
*/

#ifndef __OSCCAL_H_INCLUDED__
#define __OSCCAL_H_INCLUDED__

//void    calibrateOscillator(void);
/* This function calibrates the RC oscillator so that the CPU runs at F_CPU.
 * It MUST be called immediately after the end of a USB RESET condition!
 * Disable all interrupts during the call!
 * It is recommended that you store the resulting value in EEPROM so that a
 * good guess value is available after the next reset.
 */


#endif /* __OSCCAL_H_INCLUDED__ */
------------------------------------------ --- Test Case 2.4 (Binary Semaphores, functionality) --- Result: SUCCESS ---------------------------------------------------------------------------- --- Test Case 3.1 (Mutexes, priority enqueuing test) --- Result: SUCCESS ---------------------------------------------------------------------------- --- Test Case 3.2 (Mutexes, priority inheritance, simple case) --- Result: SUCCESS ---------------------------------------------------------------------------- --- Test Case 3.3 (Mutexes, priority inheritance, complex case) --- Result: SUCCESS ---------------------------------------------------------------------------- --- Test Case 3.4 (Mutexes, priority return) --- Result: SUCCESS ---------------------------------------------------------------------------- --- Test Case 3.5 (Mutexes, status) --- Result: SUCCESS ---------------------------------------------------------------------------- --- Test Case 3.6 (CondVar, signal test) --- Result: SUCCESS ---------------------------------------------------------------------------- --- Test Case 3.7 (CondVar, broadcast test) --- Result: SUCCESS ---------------------------------------------------------------------------- --- Test Case 3.8 (CondVar, boost test) --- Result: SUCCESS ---------------------------------------------------------------------------- --- Test Case 4.1 (Messages, loop) --- Result: SUCCESS ---------------------------------------------------------------------------- --- Test Case 5.1 (Mailboxes, queuing and timeouts) --- Result: SUCCESS ---------------------------------------------------------------------------- --- Test Case 6.1 (Events, registration and dispatch) --- Result: SUCCESS ---------------------------------------------------------------------------- --- Test Case 6.2 (Events, wait and broadcast) --- Result: SUCCESS ---------------------------------------------------------------------------- --- Test Case 6.3 (Events, timeouts) --- Result: SUCCESS ---------------------------------------------------------------------------- --- Test Case 7.1 (Heap, allocation and fragmentation test) --- Result: SUCCESS ---------------------------------------------------------------------------- --- Test Case 8.1 (Memory Pools, queue/dequeue) --- Result: SUCCESS ---------------------------------------------------------------------------- --- Test Case 9.1 (Dynamic APIs, threads creation from heap) --- Result: SUCCESS ---------------------------------------------------------------------------- --- Test Case 9.2 (Dynamic APIs, threads creation from memory pool) --- Result: SUCCESS ---------------------------------------------------------------------------- --- Test Case 9.3 (Dynamic APIs, registry and references) --- Result: SUCCESS ---------------------------------------------------------------------------- --- Test Case 10.1 (Queues, input queues) --- Result: SUCCESS ---------------------------------------------------------------------------- --- Test Case 10.2 (Queues, output queues) --- Result: SUCCESS ---------------------------------------------------------------------------- --- Test Case 11.1 (Benchmark, messages #1) --- Score : 1880 msgs/S, 3760 ctxswc/S --- Result: SUCCESS ---------------------------------------------------------------------------- --- Test Case 11.2 (Benchmark, messages #2) --- Score : 1549 msgs/S, 3098 ctxswc/S --- Result: SUCCESS ---------------------------------------------------------------------------- --- Test Case 11.3 (Benchmark, messages #3) --- Score : 1549 msgs/S, 3098 ctxswc/S --- Result: SUCCESS ---------------------------------------------------------------------------- --- Test Case 11.4 (Benchmark, context switch) --- Score : 5456 ctxswc/S --- Result: SUCCESS ---------------------------------------------------------------------------- --- Test Case 11.5 (Benchmark, threads, full cycle) --- Score : 1065 threads/S --- Result: SUCCESS ---------------------------------------------------------------------------- --- Test Case 11.6 (Benchmark, threads, create only) --- Score : 1434 threads/S --- Result: SUCCESS ---------------------------------------------------------------------------- --- Test Case 11.7 (Benchmark, mass reschedule, 5 threads) --- Score : 489 reschedules/S, 2934 ctxswc/S --- Result: SUCCESS ---------------------------------------------------------------------------- --- Test Case 11.8 (Benchmark, round robin context switching) --- Score : 3520 ctxswc/S --- Result: SUCCESS ---------------------------------------------------------------------------- --- Test Case 11.9 (Benchmark, I/O Queues throughput) --- Score : 6340 bytes/S --- Result: SUCCESS ---------------------------------------------------------------------------- --- Test Case 11.10 (Benchmark, virtual timers set/reset) --- Score : 5626 timers/S --- Result: SUCCESS ---------------------------------------------------------------------------- --- Test Case 11.11 (Benchmark, semaphores wait/signal) --- Score : 13908 wait+signal/S --- Result: SUCCESS ---------------------------------------------------------------------------- --- Test Case 11.12 (Benchmark, mutexes lock/unlock) --- Score : 7520 lock+unlock/S --- Result: SUCCESS ---------------------------------------------------------------------------- --- Test Case 11.13 (Benchmark, RAM footprint) --- System: 224 bytes --- Thread: 38 bytes --- Timer : 10 bytes --- Semaph: 6 bytes --- EventS: 2 bytes --- EventL: 6 bytes --- Mutex : 8 bytes --- CondV.: 4 bytes --- Queue : 16 bytes --- MailB.: 20 bytes --- Result: SUCCESS ---------------------------------------------------------------------------- Final result: SUCCESS