git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@286 35acf78f-673a-0410-8e92-d51de3d6d3f4
parent
83bbc0a6c6
commit
f2e73138ba
|
@ -63,11 +63,11 @@ void hwinit(void) {
|
||||||
P6SEL = VAL_P6SEL;
|
P6SEL = VAL_P6SEL;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Timer 0 setup.
|
* Timer 0 setup, uses SMCLK as source.
|
||||||
*/
|
*/
|
||||||
TACCR0 = ACLK / CH_FREQUENCY - 1; /* Counter limit. */
|
TACCR0 = SMCLK / CH_FREQUENCY - 1; /* Counter limit. */
|
||||||
TACTL = TACLR; /* Clean start. */
|
TACTL = TACLR; /* Clean start. */
|
||||||
TACTL = TASSEL_1 | MC_1; /* Src=ACLK, cmp=TACCR0. */
|
TACTL = TASSEL_2 | MC_1; /* Src=SMCLK, cmp=TACCR0. */
|
||||||
TACCTL0 = CCIE; /* Interrupt on compare. */
|
TACCTL0 = CCIE; /* Interrupt on compare. */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -22,6 +22,9 @@
|
||||||
|
|
||||||
#include <msp430x16x.h>
|
#include <msp430x16x.h>
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Clock settings.
|
||||||
|
*/
|
||||||
#define MSP_USE_XT2CLK
|
#define MSP_USE_XT2CLK
|
||||||
|
|
||||||
#define LFXT1CLK 32768
|
#define LFXT1CLK 32768
|
||||||
|
@ -34,7 +37,7 @@
|
||||||
#define SMCLK (XT2CLK / 8)
|
#define SMCLK (XT2CLK / 8)
|
||||||
#else
|
#else
|
||||||
#define MCLK DCOCLK
|
#define MCLK DCOCLK
|
||||||
#define SMCLK LFXT1CLK
|
#define SMCLK DCOCLK
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define VAL_DCOCTL (DCO0 | DCO1)
|
#define VAL_DCOCTL (DCO0 | DCO1)
|
||||||
|
|
1709
docs/Doxyfile
1709
docs/Doxyfile
File diff suppressed because it is too large
Load Diff
136
docs/ch.txt
136
docs/ch.txt
|
@ -118,7 +118,141 @@
|
||||||
* Applications usually do not need to put code into the system mutex zone
|
* Applications usually do not need to put code into the system mutex zone
|
||||||
* unless you are implementing device drivers or special synchronization
|
* unless you are implementing device drivers or special synchronization
|
||||||
* primitives, everything else can be implemented by using semaphores,
|
* primitives, everything else can be implemented by using semaphores,
|
||||||
* messages or events.
|
* mutexes, messages or events.
|
||||||
|
*/
|
||||||
|
/** @} */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @defgroup Ports Ports
|
||||||
|
* @{
|
||||||
|
* This section describes the technical details for the various supported
|
||||||
|
* ChibiOS/RT ports.
|
||||||
|
*/
|
||||||
|
/** @} */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @defgroup ARM7 ARM7TDMI
|
||||||
|
* @{
|
||||||
|
* <p>
|
||||||
|
* The ARM7 port makes some assumptions on the application code organization:
|
||||||
|
* <ul>
|
||||||
|
* <li>The \p main() function is invoked in system mode and with interrupts
|
||||||
|
* disabled.</li>
|
||||||
|
* <li>Each thread has a private user/system stack, the system has a single
|
||||||
|
* interrupt stack where all the interrupts are processed.</li>
|
||||||
|
* <li>The threads are started in system mode.</li>
|
||||||
|
* <li>The threads code can run in system mode or user mode, however the
|
||||||
|
* code running in user mode cannot invoke the ChibiOS/RT APIs directly
|
||||||
|
* because privileged instructions are used inside.<br>
|
||||||
|
* The kernel APIs can be eventually invoked by using a SWI entry point
|
||||||
|
* that handles the switch in system mode and the return in user mode.</li>
|
||||||
|
* <li>Other modes are not preempt-able because the system code assumes the
|
||||||
|
* threads running in system mode. When running in supervisor or other
|
||||||
|
* modes make sure that the interrupts are globally disabled.</li>
|
||||||
|
* <li>Interrupts nesting is not supported in the ARM7 code because their
|
||||||
|
* implementation, even if possible, is not really efficient in this
|
||||||
|
* architecture.</li>
|
||||||
|
* <li>FIQ sources can preempt the kernel (by design) so it is not possible to
|
||||||
|
* invoke the kernel APIs from inside a FIQ handler.</li>
|
||||||
|
* </ul>
|
||||||
|
* </p>
|
||||||
|
* <p>
|
||||||
|
* The ARM7 port is shared by multiple demos targeted to various implementations:
|
||||||
|
* </p>
|
||||||
|
* @ingroup Ports
|
||||||
|
*/
|
||||||
|
/** @} */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @defgroup LPC214x LPC214x Support
|
||||||
|
* @{
|
||||||
|
* <p>
|
||||||
|
* The LPC214x support includes:
|
||||||
|
* <ul>
|
||||||
|
* <li>VIC support code.</li>
|
||||||
|
* <li>Buffered, interrupt driver, serial driver.</li>
|
||||||
|
* <li>SSP driver.</li>
|
||||||
|
* <li>A MMC/SD demo driver.</li>
|
||||||
|
* <li>A buzzer demo driver.</li>
|
||||||
|
* <li>A minimal demo, useful as project template.</li>
|
||||||
|
* <li>A demo supporting the kernel test suite.</li>
|
||||||
|
* <li>A C++ demo supporting the kernel test suite.</li>
|
||||||
|
* </ul>
|
||||||
|
* </p>
|
||||||
|
* @ingroup ARM7
|
||||||
|
*/
|
||||||
|
/** @} */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @defgroup AT91SAM7X AT91SAM7X Support
|
||||||
|
* @{
|
||||||
|
* <p>
|
||||||
|
* The AT91SAM7X support includes:
|
||||||
|
* <ul>
|
||||||
|
* <li>Buffered, interrupt driver, serial driver.</li>
|
||||||
|
* <li>A demo supporting the kernel test suite.</li>
|
||||||
|
* </ul>
|
||||||
|
* </p>
|
||||||
|
* @ingroup ARM7
|
||||||
|
*/
|
||||||
|
/** @} */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @defgroup ARMCM3 ARM Cortex-M3
|
||||||
|
* @{
|
||||||
|
* <p>
|
||||||
|
* The ARM Cortex-M3 port is organized as follow:
|
||||||
|
* </p>
|
||||||
|
* <ul>
|
||||||
|
* <li>The \p main() function is invoked in thread-privileged mode.</li>
|
||||||
|
* <li>Each thread has a private process stack, the system has a single main
|
||||||
|
* stack where all the interrupts and exceptions are processed.</li>
|
||||||
|
* <li>Only the 4 MSb of the priority level are used, the 4 LSb are assumed
|
||||||
|
* to be zero.</li>
|
||||||
|
* <li>The threads are started in thread-privileged mode with BASEPRI level
|
||||||
|
* 0x00 (disabled).</li>
|
||||||
|
* <li>The kernel raises its BASEPRI level to 0x10 in order to protect the
|
||||||
|
* system mutex zones. Note that exceptions with level 0x00 can preempt
|
||||||
|
* the kernel, such exception handlers cannot invoke kernel APIs directly.</li>
|
||||||
|
* <li>Interrupt nesting and the other advanced NVIC features are supported.</li>
|
||||||
|
* <li>The SVC instruction and vector, with parameter #0, is internally used
|
||||||
|
* for commanded context switching.<br>
|
||||||
|
* It is possible to share the SVC handler at the cost of slower context
|
||||||
|
* switching.</li>
|
||||||
|
* <li>The PendSV vector is internally used for preemption context switching.</li>
|
||||||
|
* </ul>
|
||||||
|
* @ingroup Ports
|
||||||
|
*/
|
||||||
|
/** @} */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @defgroup AVR MegaAVR
|
||||||
|
* @{
|
||||||
|
* <p>
|
||||||
|
* Notes about the AVR port:
|
||||||
|
* </p>
|
||||||
|
* <ul>
|
||||||
|
* <li>The AVR does not have a dedicated interrupt stack, make sure to reserve
|
||||||
|
* enough stack space for interrupts in each thread stack. This can be done
|
||||||
|
* by modifying the \p INT_REQUIRED_STACK macro into \p ports/AVR/chcore.h.</li>
|
||||||
|
* </ul>
|
||||||
|
* @ingroup Ports
|
||||||
|
*/
|
||||||
|
/** @} */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @defgroup MSP430 MSP430
|
||||||
|
* @{
|
||||||
|
* <p>
|
||||||
|
* Notes about the MSP430 port:
|
||||||
|
* </p>
|
||||||
|
* <ul>
|
||||||
|
* <li>In the current version the MSP430 port is still untested.</li>
|
||||||
|
* <li>The MSP430 does not have a dedicated interrupt stack, make sure to reserve
|
||||||
|
* enough stack space for interrupts in each thread stack. This can be done
|
||||||
|
* by modifying the \p INT_REQUIRED_STACK macro into \p ports/MSP430/chcore.h.</li>
|
||||||
|
* </ul>
|
||||||
|
* @ingroup Ports
|
||||||
*/
|
*/
|
||||||
/** @} */
|
/** @} */
|
||||||
|
|
||||||
|
|
|
@ -66,10 +66,15 @@ Win32-MinGW - ChibiOS/RT simulator and demo into a WIN32 process,
|
||||||
*****************************************************************************
|
*****************************************************************************
|
||||||
|
|
||||||
*** 0.6.4 ***
|
*** 0.6.4 ***
|
||||||
|
- NEW: MSP430 port, the port code compiles correctly but it is not tested yet.
|
||||||
|
The port requires the MSPGCC toolchain.
|
||||||
- NEW: Added a CH_ARCHITECTURE_xxx define to the various chcore.h files, it
|
- NEW: Added a CH_ARCHITECTURE_xxx define to the various chcore.h files, it
|
||||||
allows to write port-dependent code.
|
allows to write port-dependent code.
|
||||||
|
- NEW: Added to the documentation the technical notes about the currently
|
||||||
|
supported ports.
|
||||||
- FIX: In the ARM7 and ARMCM3 ports chanced the bool_t base type from int8_t
|
- FIX: In the ARM7 and ARMCM3 ports chanced the bool_t base type from int8_t
|
||||||
to int32_t, this produces a bit faster and smaller code.
|
to int32_t, this produces a bit faster and smaller code.
|
||||||
|
It is nowhere required the bool_t type to be one byte sized.
|
||||||
- FIX: Small fixes to the template files, there were some leftovers of the old
|
- FIX: Small fixes to the template files, there were some leftovers of the old
|
||||||
type names.
|
type names.
|
||||||
- FIX: Modified the ARM demos makefiles in order to make them more compatible
|
- FIX: Modified the ARM demos makefiles in order to make them more compatible
|
||||||
|
@ -77,9 +82,7 @@ Win32-MinGW - ChibiOS/RT simulator and demo into a WIN32 process,
|
||||||
-mabi=apcs by default, at least the builds I tested did so, now the makefiles
|
-mabi=apcs by default, at least the builds I tested did so, now the makefiles
|
||||||
explicitly assert -mno-thumb-interworking and -mabi=apcs-gnu in order to
|
explicitly assert -mno-thumb-interworking and -mabi=apcs-gnu in order to
|
||||||
produce better code.
|
produce better code.
|
||||||
- Work started on the MSP430 port, the port code compiles correctly but it is
|
- Added an Ethernet driver for AT91SAM7X EMAC, not complete yet, it will be
|
||||||
not tested yet. The port requires the MSPGCC toolchain.
|
|
||||||
- Added an Ethernet driver for AT91SAM7X EMAC, not tested yet, it will be
|
|
||||||
required by a uIP web server demo under ChibiOS/RT coming in some next
|
required by a uIP web server demo under ChibiOS/RT coming in some next
|
||||||
release.
|
release.
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue