From 800a692eb5ebe153f814a94109dd4deaca8997ad Mon Sep 17 00:00:00 2001 From: batt Date: Mon, 8 Oct 2007 17:02:37 +0000 Subject: [PATCH] Add test app for at91sam7s. git-svn-id: https://src.develer.com/svnoss/bertos/trunk@834 38d2e660-2303-0410-9eaa-f027e97ec537 --- app/at91sam7s/appconfig.h | 186 +++++++++++++++++++++++++++++++ app/at91sam7s/at91sam7s.c | 31 ++++++ app/at91sam7s/at91sam7s.kdevelop | 174 +++++++++++++++++++++++++++++ app/at91sam7s/at91sam7s.mk | 34 ++++++ app/at91sam7s/hw/hw_cpu.h | 38 +++++++ app/at91sam7s/hw/hw_ser.h | 0 app/at91sam7s/verstag.h | 69 ++++++++++++ 7 files changed, 532 insertions(+) create mode 100644 app/at91sam7s/appconfig.h create mode 100644 app/at91sam7s/at91sam7s.c create mode 100644 app/at91sam7s/at91sam7s.kdevelop create mode 100644 app/at91sam7s/at91sam7s.mk create mode 100644 app/at91sam7s/hw/hw_cpu.h create mode 100644 app/at91sam7s/hw/hw_ser.h create mode 100644 app/at91sam7s/verstag.h diff --git a/app/at91sam7s/appconfig.h b/app/at91sam7s/appconfig.h new file mode 100644 index 00000000..f2223983 --- /dev/null +++ b/app/at91sam7s/appconfig.h @@ -0,0 +1,186 @@ +/** + * \file + * + * + * \brief DevLib configuration options + * + * You should copy this header in your project and rename it to + * "config.h" and delete the CONFIG_ macros for the modules + * you're not using. + * + *

Working with multiple applications

+ * + * If your project is made of multiple DevLib-based applications, + * create a custom "config.h" file in each application subdirectory + * and play with the compiler include path to get the desired result. + * You can share common options by creationg a "config_common.h" header + * and including it from all your "config.h" copies. + * + *

Configuration style

+ * + * For improved compile-time checking of configuration options, + * the preferred way to use a \c CONFIG_ symbol is keeping it + * always defined with a value of either 0 or 1. This lets + * you write tests like this: + * + * \code + * #if CONFIG_FOO + * void foo(void) + * { + * if (CONFIG_BAR) + * bar(); + * } + * #endif // CONFIG_FOO + * \endcode + * + * In most cases, we rely on the optimizer to discard checks + * on constant values and performing dead-code elimination. + * + * \version $Id$ + * \author Bernardo Innocenti + * \author Stefano Fedrigo + */ + +#ifndef APPCONFIG_H +#define APPCONFIG_H + +/** Baud-rate for the kdebug console */ +#define CONFIG_KDEBUG_BAUDRATE 115200 + +/** + * printf()-style formatter configuration. + * + * \sa PRINTF_DISABLED + * \sa PRINTF_NOMODIFIERS + * \sa PRINTF_REDUCED + * \sa PRINTF_NOFLOAT + * \sa PRINTF_FULL + */ +#define CONFIG_PRINTF PRINTF_FULL + +/** + * Multithreading kernel. + * + * \sa config_kern.h + */ +#define CONFIG_KERNEL 0 + +/** + * \name Serial driver parameters + * \{ + */ + /** [bytes] Size of the outbound FIFO buffer for port 0. */ + #define CONFIG_UART0_TXBUFSIZE 32 + + /** [bytes] Size of the inbound FIFO buffer for port 0. */ + #define CONFIG_UART0_RXBUFSIZE 64 + + /** [bytes] Size of the outbound FIFO buffer for port 1. */ + #define CONFIG_UART1_TXBUFSIZE 32 + + /** [bytes] Size of the inbound FIFO buffer for port 1. */ + #define CONFIG_UART1_RXBUFSIZE 64 + + /** [bytes] Size of the outbound FIFO buffer for SPI port (AVR only). */ + #define CONFIG_SPI_TXBUFSIZE 16 + + /** [bytes] Size of the inbound FIFO buffer for SPI port (AVR only). */ + #define CONFIG_SPI_RXBUFSIZE 32 + + /** SPI data order (AVR only). */ + #define CONFIG_SPI_DATA_ORDER SER_MSB_FIRST + + /** SPI clock division factor (AVR only). */ + #define CONFIG_SPI_CLOCK_DIV 16 + + /** SPI clock polarity: 0 = normal low, 1 = normal high (AVR only). */ + #define CONFIG_SPI_CLOCK_POL 0 + + /** SPI clock phase: 0 = sample on first edge, 1 = sample on second clock edge (AVR only). */ + #define CONFIG_SPI_CLOCK_PHASE 0 + + /** Default transmit timeout (ms). Set to -1 to disable timeout support */ + #define CONFIG_SER_TXTIMEOUT -1 + + /** Default receive timeout (ms). Set to -1 to disable timeout support */ + #define CONFIG_SER_RXTIMEOUT -1 + + /** Use RTS/CTS handshake */ + #define CONFIG_SER_HWHANDSHAKE 0 + + /** Default baud rate (set to 0 to disable) */ + #define CONFIG_SER_DEFBAUDRATE 0 + + /** Enable ser_gets() and ser_gets_echo() */ + #define CONFIG_SER_GETS 0 + + /** Enable second serial port in emulator. */ + #define CONFIG_EMUL_UART1 0 + + /** + * Transmit always something on serial port 0 TX + * to avoid interference when sending burst of data, + * using AVR multiprocessor serial mode + */ + #define CONFIG_SER_TXFILL 0 + + #define CONFIG_SER_STROBE 0 +/*\}*/ + +/// Hardware timer selection for drv/timer.c +#define CONFIG_TIMER TIMER_DEFAULT + +/// Debug timer interrupt using a strobe pin. +#define CONFIG_TIMER_STROBE 0 + +/// Enable ADS strobe. +#define CONFIG_ADC_STROBE 0 + +/// Enable watchdog timer. +#define CONFIG_WATCHDOG 0 + +/// EEPROM type for drv/eeprom.c +#define CONFIG_EEPROM_TYPE EEPROM_24XX256 + +/// Select bitmap pixel format. +#define CONFIG_BITMAP_FMT BITMAP_FMT_PLANAR_V_LSB + +/// Enable line clipping algorithm. +#define CONFIG_GFX_CLIPPING 1 + +/// Enable text rendering in bitmaps. +#define CONFIG_GFX_TEXT 1 + +/// Enable virtual coordinate system. +#define CONFIG_GFX_VCOORDS 1 + +/// Keyboard polling method +#define CONFIG_KBD_POLL KBD_POLL_SOFTINT + +/// Enable keyboard event delivery to observers +#define CONFIG_KBD_OBSERVER 0 + +/// Enable key beeps +#define CONFIG_KBD_BEEP 1 + +/// Enable long pression handler for keys +#define CONFIG_KBD_LONGPRESS 1 + +/** + * \name Type for the chart dataset + * \{ + */ +#define CONFIG_CHART_TYPE_X uint8_t +#define CONFIG_CHART_TYPE_Y uint8_t +/*\}*/ + +/// Enable button bar behind menus +#define CONFIG_MENU_MENUBAR 0 + +/// Enable smooth scrolling in menus +#define CONFIG_MENU_SMOOTH 1 + +#endif /* APPCONFIG_COMMON_H */ diff --git a/app/at91sam7s/at91sam7s.c b/app/at91sam7s/at91sam7s.c new file mode 100644 index 00000000..e5170bb5 --- /dev/null +++ b/app/at91sam7s/at91sam7s.c @@ -0,0 +1,31 @@ +/** + * \file + * + * + * \version $Id$ + * + * \author Francesco Sacchi + * + * \brief AT91SAM7S-EK porting test. + */ + +#include +#include + +int main(void) +{ +// kdbg_init(); + timer_init(); + IRQ_ENABLE; + + // Main loop + for(;;) + { + + } + + return 0; +} diff --git a/app/at91sam7s/at91sam7s.kdevelop b/app/at91sam7s/at91sam7s.kdevelop new file mode 100644 index 00000000..583430ff --- /dev/null +++ b/app/at91sam7s/at91sam7s.kdevelop @@ -0,0 +1,174 @@ + + + + batt@develer.com + batt@gaheris + $VERSION$ + KDevCustomProject + C + + at91sam7s + . + false + + + + + + /home/batt/src/devtools/devlib/app/at91sam7s/$APPNAMELC$ + executable + + + /home/batt/src/devtools/devlib/app/at91sam7s + false + false + false + false + false + + + + make + /home/batt/src/devtools/devlib + + + false + 1 + 0 + false + + + + default + + + + + + + + + + + + + true + false + false + + + false + true + 10 + + + + + ada + ada_bugs_gcc + bash + bash_bugs + clanlib + fortran_bugs_gcc + gnome1 + gnustep + gtk + gtk_bugs + haskell + haskell_bugs_ghc + java_bugs_gcc + java_bugs_sun + kde2book + libstdc++ + opengl + pascal_bugs_fp + php + php_bugs + perl + perl_bugs + python + python_bugs + qt-kdev3 + ruby + ruby_bugs + sdl + stl + sw + w3c-dom-level2-html + w3c-svg + w3c-uaag10 + wxwidgets_bugs + + + Guide to the Qt Translation Tools + Qt Assistant Manual + Qt Designer Manual + Qt Reference Documentation + qmake User Guide + + + KDE Libraries (Doxygen) + + + + + + + + + + + + false + 3 + 3 + /usr/share/qt3 + EmbeddedKDevDesigner + /usr/bin/qmake-qt3 + /usr/bin/designer-qt3 + + + + false + true + true + 250 + 400 + 250 + false + 0 + true + true + false + std=_GLIBCXX_STD;__gnu_cxx=std + true + false + false + false + true + true + true + false + .; + + + + set + m_,_ + theValue + true + true + + + false + true + Vertical + + + + + .h + .cpp + + + diff --git a/app/at91sam7s/at91sam7s.mk b/app/at91sam7s/at91sam7s.mk new file mode 100644 index 00000000..926dd9e6 --- /dev/null +++ b/app/at91sam7s/at91sam7s.mk @@ -0,0 +1,34 @@ +# +# $Id: at91sam7s.mk 18234 2007-10-08 13:39:48Z rasky $ +# Copyright 2006 Develer S.r.l. (http://www.develer.com/) +# All rights reserved. +# +# Makefile fragment for DevLib at91sam7s application. +# +# Author: Bernardo Innocenti +# +# + + +# Set to 1 for debug builds +at91sam7s_DEBUG = 0 + +# Our target application +TRG += at91sam7s + +at91sam7s_CSRC = \ + app/at91sam7s/at91sam7s.c \ + drv/timer.c \ + drv/at91/sysirq.c + +at91sam7s_PCSRC += mware/formatwr.c + +at91sam7s_CFLAGS = -O3 -D'ARCH=0' -Iapp/at91sam7s/hw -Iapp/at91sam7s +at91sam7s_CPU = arm7tdmi + +# Debug stuff +ifeq ($(at91sam7s_DEBUG),1) + at91sam7s_CFLAGS += -D_DEBUG + at91sam7s_PCSRC += drv/kdebug.c +endif + diff --git a/app/at91sam7s/hw/hw_cpu.h b/app/at91sam7s/hw/hw_cpu.h new file mode 100644 index 00000000..735cdb4c --- /dev/null +++ b/app/at91sam7s/hw/hw_cpu.h @@ -0,0 +1,38 @@ +/** + * \file + * + * + * \brief Hardware-specific definitions + * + * \version $Id$ + * + * \author Bernardo Innocenti + */ + +/*#* + *#* $Log$ + *#* Revision 1.1 2006/05/18 00:41:47 bernie + *#* New triface devlib application. + *#* + *#*/ + +#ifndef AT91SAM7SEK_HW_H +#define AT91SAM7SEK_HW_H + +#include + +/// CPU Clock frequency (14.7456 MHz) +#define CLOCK_FREQ (14745600UL) + + +/* Timer IRQ strobe */ +//#if CONFIG_TIMER_STROBE +// #define TIMER_STROBE_ON ATOMIC(PORTD |= BV(PD0)) +// #define TIMER_STROBE_OFF ATOMIC(PORTD &= ~BV(PD0)) +// #define TIMER_STROBE_INIT ATOMIC(PORTD &= ~BV(PD0); DDRD |= BV(PD0)) +//#endif /* CONFIG_TIMER_STROBE */ + +#endif /* AT91SAM7SEK_HW_H */ diff --git a/app/at91sam7s/hw/hw_ser.h b/app/at91sam7s/hw/hw_ser.h new file mode 100644 index 00000000..e69de29b diff --git a/app/at91sam7s/verstag.h b/app/at91sam7s/verstag.h new file mode 100644 index 00000000..55b5f7f0 --- /dev/null +++ b/app/at91sam7s/verstag.h @@ -0,0 +1,69 @@ +/** + * \file + * + * + * \version $Id$ + * + * \author Bernardo Innocenti + * + * \brief Declare application version strings + */ +#ifndef DEVLIB_VERSTAG_H +#define DEVLIB_VERSTAG_H + +#ifndef ARCH_CONFIG_H + #include "cfg/arch_config.h" +#endif + +#define APP_NAME "AT91SAM7S-EK porting test" +#define APP_DESCRIPTION "AT91SAM7S-EK porting test" +#define APP_AUTHOR "Develer" +#define APP_COPYRIGHT "Copyright 2007 Develer (http://www.develer.com/)" + +#define VERS_MAJOR 0 +#define VERS_MINOR 1 +#define VERS_REV 0 +#define VERS_LETTER "" + +/** + * If _SNAPSHOT is defined, \c VERS_TAG contains the build date + * date instead of a numeric version string. + */ +//#define _SNAPSHOT + +#ifdef _DEBUG + #define VERS_DBG "D" +#else + #define VERS_DBG "" +#endif + +#define __STRINGIZE(x) #x +#define _STRINGIZE(x) __STRINGIZE(x) + +/** Build application version string (i.e.: "1.7.0") */ +#define MAKE_VERS(maj,min,rev) _STRINGIZE(maj) "." _STRINGIZE(min) "." _STRINGIZE(rev) VERS_LETTER VERS_DBG +#ifdef _SNAPSHOT + #define VERS_TAG "snapshot" " " __DATE__ " " __TIME__ " " VERS_LETTER " " VERS_DBG +#else + #define VERS_TAG MAKE_VERS(VERS_MAJOR,VERS_MINOR,VERS_REV) +#endif + +/** Build application version string suitable for MS windows resource files (i.e.: "1, 7, 0, 1") */ +#define MAKE_RCVERS(maj,min,rev,bld) _STRINGIZE(maj) ", " _STRINGIZE(min) ", " _STRINGIZE(rev) ", " _STRINGIZE(bld) +#define RCVERSION_TAG MAKE_VERS(VERS_MAJOR,VERS_MINOR,VERS_REV) + +/** The revision string (contains VERS_TAG) */ +extern const char vers_tag[]; + +/** Sequential build number (contains VERS_BUILD) */ +extern const int vers_build_nr; +//extern const char vers_build_str[]; + +/** Hostname of the machine used to build this binary (contains VERS_HOST) */ +extern const char vers_host[]; + +#endif /* DEVLIB_VERSTAG_H */ -- 2.25.1