git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@198 35acf78f-673a-0410-8e92-d51de3d6d3f4

This commit is contained in:
gdisirio 2008-02-21 13:31:30 +00:00
parent f87e32d85c
commit 05c3be1b2c
4 changed files with 20 additions and 23 deletions

View File

@ -40,8 +40,8 @@ static void SYSIrqHandler(void) {
chSysIRQEnterI();
if (AT91C_BASE_PITC->PITC_PISR & AT91C_PITC_PITS) {
chSysTimerHandlerI();
(void) AT91C_BASE_PITC->PITC_PIVR;
chSysTimerHandlerI();
}
chSysIRQExitI();

View File

@ -9,6 +9,8 @@ The demo runs on an Olimex SAM7-EX256 board.
** The Demo **
The demo currently just flashes the LCD background using a thread.
The button SW1 prints an "Hello World!" string on COM1, the button SW2
activates che ChibiOS/RT test suite, output on COM1.
** Build Procedure **

View File

@ -24,12 +24,12 @@
#include "at91lib/aic.h"
FullDuplexDriver COM1;
BYTE8 ib1[SERIAL_BUFFERS_SIZE];
BYTE8 ob1[SERIAL_BUFFERS_SIZE];
static BYTE8 ib1[SERIAL_BUFFERS_SIZE];
static BYTE8 ob1[SERIAL_BUFFERS_SIZE];
FullDuplexDriver COM2;
BYTE8 ib2[SERIAL_BUFFERS_SIZE];
BYTE8 ob2[SERIAL_BUFFERS_SIZE];
static BYTE8 ib2[SERIAL_BUFFERS_SIZE];
static BYTE8 ob2[SERIAL_BUFFERS_SIZE];
static void SetError(AT91_REG csr, FullDuplexDriver *com) {
UWORD16 sts = 0;
@ -46,27 +46,22 @@ static void SetError(AT91_REG csr, FullDuplexDriver *com) {
}
/*
* Tries hard to clear all the pending interrupt sources, we dont want to
* go through the whole ISR and have another interrupt soon after.
* Serves the pending sources on the USART.
*/
static void ServeInterrupt(AT91PS_USART u, FullDuplexDriver *com) {
while (u->US_CSR & u->US_IMR) {
if (u->US_CSR & AT91C_US_RXRDY) {
if (u->US_CSR & AT91C_US_RXRDY)
chFDDIncomingDataI(com, u->US_RHR);
}
else if (u->US_CSR & AT91C_US_TXRDY) {
t_msg b = chFDDRequestDataI(com);
if (b < Q_OK)
u->US_IDR = AT91C_US_TXRDY;
else
u->US_THR = b;
}
else {
SetError(u->US_CSR, com);
u->US_CR = AT91C_US_RSTSTA;
}
if (u->US_CSR & AT91C_US_TXRDY) {
t_msg b = chFDDRequestDataI(com);
if (b < Q_OK)
u->US_IDR = AT91C_US_TXRDY;
else
u->US_THR = b;
}
if (u->US_CSR & (AT91C_US_OVRE | AT91C_US_FRAME | AT91C_US_PARE | AT91C_US_RXBRK)) {
SetError(u->US_CSR, com);
u->US_CR = AT91C_US_RSTSTA;
}
}

View File

@ -46,7 +46,7 @@ AVR-AT90CANx-GCC - Port on AVR AT90CAN128, not complete yet.
SAM7S and SAM7XC but no tests were performed. Other SAM7 processors should
also be useable with limited changes.
The demo currently just performs basic operations, will be enhanced in next
ChibiOS/RT releases.
ChibiOS/RT releases, see the demo readme.txt file.
The kernel is *unchanged* compared to version 0.5.3, just the new port and
the new demo were added.