Added Blinking and Serial Thread
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@10586 35acf78f-673a-0410-8e92-d51de3d6d3f4
This commit is contained in:
parent
f88467025f
commit
f8fe78d5ec
|
@ -79,12 +79,12 @@
|
|||
<link>
|
||||
<name>board</name>
|
||||
<type>2</type>
|
||||
<locationURI>CHIBIOS/os/hal/boards/ATSAMA5D2_XULT</locationURI>
|
||||
<location>/home/chibi/Chibilogic/ChibiOS_trunk/os/hal/boards/ATSAMA5D2_XULT</location>
|
||||
</link>
|
||||
<link>
|
||||
<name>os</name>
|
||||
<type>2</type>
|
||||
<locationURI>CHIBIOS/os</locationURI>
|
||||
<location>/home/chibi/Chibilogic/ChibiOS_trunk/os</location>
|
||||
</link>
|
||||
</linkedResources>
|
||||
</projectDescription>
|
||||
|
|
|
@ -137,6 +137,7 @@ CSRC = $(STARTUPSRC) \
|
|||
$(PLATFORMSRC) \
|
||||
$(BOARDSRC) \
|
||||
$(TESTSRC) \
|
||||
$(CHIBIOS)/os/hal/lib/streams/chprintf.c \
|
||||
main.c
|
||||
|
||||
# C++ sources that can be compiled in ARM or THUMB mode depending on the global
|
||||
|
@ -170,7 +171,7 @@ ASMXSRC = $(STARTUPASM) $(PORTASM) $(OSALASM)
|
|||
INCDIR = $(CHIBIOS)/os/license \
|
||||
$(STARTUPINC) $(KERNINC) $(PORTINC) $(OSALINC) \
|
||||
$(HALINC) $(PLATFORMINC) $(BOARDINC) $(TESTINC) \
|
||||
$(CHIBIOS)/os/various
|
||||
$(CHIBIOS)/os/hal/lib/streams $(CHIBIOS)/os/various
|
||||
|
||||
#
|
||||
# Project, sources and paths
|
||||
|
|
|
@ -49,4 +49,6 @@
|
|||
<listAttribute key="org.eclipse.debug.ui.favoriteGroups">
|
||||
<listEntry value="org.eclipse.debug.ui.launchGroup.debug"/>
|
||||
</listAttribute>
|
||||
<stringAttribute key="org.eclipse.dsf.launch.MEMORY_BLOCKS" value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <memoryBlockExpressionList context="reserved-for-future-use"/> "/>
|
||||
<stringAttribute key="process_factory_id" value="org.eclipse.cdt.dsf.gdb.GdbProcessFactory"/>
|
||||
</launchConfiguration>
|
||||
|
|
|
@ -139,7 +139,7 @@
|
|||
* @brief Enables the SERIAL subsystem.
|
||||
*/
|
||||
#if !defined(HAL_USE_SERIAL) || defined(__DOXYGEN__)
|
||||
#define HAL_USE_SERIAL FALSE
|
||||
#define HAL_USE_SERIAL TRUE
|
||||
#endif
|
||||
|
||||
/**
|
||||
|
|
|
@ -16,9 +16,9 @@
|
|||
|
||||
#include "ch.h"
|
||||
#include "hal.h"
|
||||
#include "chprintf.h"
|
||||
|
||||
static uint32_t seconds_counter;
|
||||
static uint32_t minutes_counter;
|
||||
#define AICREDIR_KEY 0x5B6C0E26u
|
||||
|
||||
/*
|
||||
* Seconds counter thread.
|
||||
|
@ -27,12 +27,21 @@ static THD_WORKING_AREA(waThread1, 128);
|
|||
static THD_FUNCTION(Thread1, arg) {
|
||||
|
||||
(void)arg;
|
||||
|
||||
bool ld = true;
|
||||
chRegSetThreadName("counter");
|
||||
|
||||
while (true) {
|
||||
/* TODO: Replace with toggle function of GPIO */
|
||||
if(ld){
|
||||
PIOA->PIO_PIO_[1].S_PIO_CODR = S_PIO_CODR_P5;
|
||||
ld = false;
|
||||
}
|
||||
else{
|
||||
PIOA->PIO_PIO_[1].S_PIO_SODR = S_PIO_SODR_P5;
|
||||
ld = true;
|
||||
}
|
||||
chprintf((BaseSequentialStream *)&SD0, "ChibiOS is running!\r\n\n");
|
||||
chThdSleepMilliseconds(1000);
|
||||
seconds_counter++;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -51,6 +60,31 @@ int main(void) {
|
|||
halInit();
|
||||
chSysInit();
|
||||
|
||||
/* Redirect interrupts */
|
||||
uint32_t aicredir = SFR_AICREDIR_AICREDIRKEY((uint32_t)(AICREDIR_KEY));
|
||||
SFR->SFR_AICREDIR = (aicredir ^ SFR->SFR_SN1);
|
||||
|
||||
/*
|
||||
* TODO: Replace with PAL functions
|
||||
* Led green
|
||||
*/
|
||||
PIOA->PIO_PIO_[1].S_PIO_SIOSR |= S_PIO_SIOSR_P5;
|
||||
PIOA->PIO_PIO_[1].S_PIO_MSKR = S_PIO_MSKR_MSK5_ENABLED;
|
||||
PIOA->PIO_PIO_[1].S_PIO_CFGR = S_PIO_CFGR_DIR_OUTPUT;
|
||||
PIOA->PIO_PIO_[1].S_PIO_SODR = S_PIO_SODR_P5 ;
|
||||
|
||||
/*
|
||||
* TODO: Replace with PAL functions
|
||||
* Uart0 pins PB26 rx and PB27 tx (J18)
|
||||
*/
|
||||
PIOA->PIO_PIO_[1].S_PIO_SIOSR |= S_PIO_SIOSR_P26 | S_PIO_SIOSR_P27;
|
||||
/* select pins */
|
||||
PIOA->PIO_PIO_[1].S_PIO_MSKR = S_PIO_MSKR_MSK26 | S_PIO_MSKR_MSK27;
|
||||
/* pins are driven by func_periph_c (uart0 mode) */
|
||||
PIOA->PIO_PIO_[1].S_PIO_CFGR = S_PIO_CFGR_FUNC_PERIPH_C;
|
||||
|
||||
sdStart(&SD0, NULL);
|
||||
|
||||
/*
|
||||
* Creates the example thread.
|
||||
*/
|
||||
|
@ -61,7 +95,6 @@ int main(void) {
|
|||
* increasing the minutes counter.
|
||||
*/
|
||||
while (true) {
|
||||
chThdSleepSeconds(60);
|
||||
minutes_counter++;
|
||||
chThdSleepMilliseconds(500);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -46,7 +46,7 @@
|
|||
/*
|
||||
* SERIAL driver system settings.
|
||||
*/
|
||||
#define SAMA_SERIAL_USE_UART0 FALSE
|
||||
#define SAMA_SERIAL_USE_UART0 TRUE
|
||||
#define SAMA_SERIAL_USE_UART1 FALSE
|
||||
#define SAMA_SERIAL_USE_UART2 FALSE
|
||||
#define SAMA_SERIAL_USE_UART3 FALSE
|
||||
|
|
Loading…
Reference in New Issue