Rename CLOCK_FREQ macro to CPU_FREQ: now clock frequency has to be set in the makefile.
authorbatt <batt@38d2e660-2303-0410-9eaa-f027e97ec537>
Fri, 10 Apr 2009 17:52:12 +0000 (17:52 +0000)
committerbatt <batt@38d2e660-2303-0410-9eaa-f027e97ec537>
Fri, 10 Apr 2009 17:52:12 +0000 (17:52 +0000)
git-svn-id: https://src.develer.com/svnoss/bertos/trunk@2488 38d2e660-2303-0410-9eaa-f027e97ec537

27 files changed:
bertos/cpu/arm/drv/adc_at91.h
bertos/cpu/arm/drv/kdebug_at91.c
bertos/cpu/arm/drv/pwm_at91.c
bertos/cpu/arm/drv/ser_at91.c
bertos/cpu/arm/drv/timer_at91.h
bertos/cpu/arm/drv/twi_at91.c
bertos/cpu/arm/hw/crtat91sam7_rom.S
bertos/cpu/avr/drv/i2c_avr.c
bertos/cpu/avr/drv/kdebug_avr.c
bertos/cpu/avr/drv/pwm_avr.c
bertos/cpu/avr/drv/ser_avr.c
bertos/cpu/avr/drv/ser_simple_avr.c
bertos/cpu/avr/drv/timer_avr.h
bertos/cpu/avr/drv/timer_simple_avr.c
bertos/cpu/i196/drv/kdebug_i196.c
bertos/cpu/i196/drv/ser_i196.c
bertos/hw/hw_cpu.h [deleted file]
bertos/hw/hw_cpufreq.h [new file with mode: 0644]
bertos/hw/hw_stepper.h
examples/at91sam7s/at91sam7s.mk
examples/at91sam7s/hw/hw_cpu.h [deleted file]
examples/lm3s1968/hw/hw_cpu.h [deleted file]
examples/lm3s1968/lm3s1968.mk
examples/triface/boot/hw/hw_cpu.h [deleted file]
examples/triface/hw/hw_cpu.h [deleted file]
examples/triface/triface.mk
wizard/mktemplates/template.mk

index fb0ec1d64aad65047137b64f7db3dae84fd10b2d..6c77de0f431a72dabdfe013b9a1367746cb28e2e 100644 (file)
@@ -41,7 +41,7 @@
 #ifndef DRV_ADC_AT91_H
 #define DRV_ADC_AT91_H
 
-#include "hw/hw_cpu.h"
+#include <hw/hw_cpufreq.h>
 
 #include "cfg/cfg_adc.h"
 
@@ -57,7 +57,7 @@
  * Macro for computing correct value to write into ADC
  * register.
  */
-#define ADC_COMPUTED_PRESCALER    ((CLOCK_FREQ/(2 * CONFIG_ADC_CLOCK)) - 1)
+#define ADC_COMPUTED_PRESCALER    ((CPU_FREQ/(2 * CONFIG_ADC_CLOCK)) - 1)
 #define ADC_COMPUTED_STARTUPTIME  (((CONFIG_ADC_STARTUP_TIME * CONFIG_ADC_CLOCK)/ 8000000UL) - 1)
 #define ADC_COMPUTED_SHTIME       (((CONFIG_ADC_SHTIME * CONFIG_ADC_CLOCK)/1000000000UL) - 1)
 
index b6ec8b199ac457ba71ebcf04f28338ab90b0313d..5f1b6023f03aeb13ba3c9ca47dcb23b9bf7a4bbe 100644 (file)
@@ -37,7 +37,7 @@
  */
 
 #include "kdebug_at91.h"
-#include "hw/hw_cpu.h"     /* for CLOCK_FREQ */
+#include <hw/hw_cpufreq.h>     /* for CPU_FREQ */
 #include "hw/hw_ser.h"     /* Required for bus macros overrides */
 
 #include "cfg/cfg_debug.h"
@@ -72,7 +72,7 @@ INLINE void kdbg_hw_init(void)
                /* Reset DBGU */
                DBGU_CR =  BV(US_RSTRX) | BV(US_RSTTX) | BV(US_RXDIS) | BV(US_TXDIS);
                /* Set baudrate */
-               DBGU_BRGR = DIV_ROUND(CLOCK_FREQ, 16 * CONFIG_KDEBUG_BAUDRATE);
+               DBGU_BRGR = DIV_ROUND(CPU_FREQ, 16 * CONFIG_KDEBUG_BAUDRATE);
                /* Set DBGU mode to 8 data bits, no parity and 1 stop bit. */
                DBGU_MR =  US_CHMODE_NORMAL | US_CHRL_8 | US_PAR_NO | US_NBSTOP_1;
                /* Enable DBGU transmitter. */
index e0706812d83718142d56f82b54f52bf23b8f259e..39627382b0f93d6404734fb78086a5056d1f202f 100644 (file)
@@ -39,7 +39,7 @@
 
 #include "pwm_at91.h"
 #include "hw/pwm_map.h"
-#include "hw/hw_cpu.h"
+#include <hw/hw_cpufreq.h>
 #include "cfg/cfg_pwm.h"
 
 // Define logging setting (for cfg/log.h module).
@@ -120,7 +120,7 @@ void pwm_hw_setFrequency(PwmDev dev, uint32_t freq)
 
        for(int i = 0; i <= PWM_HW_MAX_PRESCALER_STEP; i++)
        {
-               period = CLOCK_FREQ / (BV(i) * freq);
+               period = CPU_FREQ / (BV(i) * freq);
 //             LOG_INFO("period[%ld], prescale[%d]\n", period, i);
                if ((period < PWM_HW_MAX_PERIOD) && (period != 0))
                {
index c3c897cd1ec7e4100c66c5781f7b8b8ab35fd035..fcbcafbdb6202b94b26e4ca6e48510092520880f 100644 (file)
@@ -39,7 +39,7 @@
  */
 
 #include "hw/hw_ser.h"  /* Required for bus macros overrides */
-#include "hw/hw_cpu.h"  /* CLOCK_FREQ */
+#include <hw/hw_cpufreq.h>  /* CPU_FREQ */
 
 #include "cfg/cfg_ser.h"
 #include <cfg/debug.h>
@@ -326,7 +326,7 @@ static void uart0_enabletxirq(struct SerialHardware *_hw)
 static void uart0_setbaudrate(UNUSED_ARG(struct SerialHardware *, _hw), unsigned long rate)
 {
        /* Compute baud-rate period */
-       US0_BRGR = CLOCK_FREQ / (16 * rate);
+       US0_BRGR = CPU_FREQ / (16 * rate);
        //DB(kprintf("uart0_setbaudrate(rate=%lu): period=%d\n", rate, period);)
 }
 
@@ -421,7 +421,7 @@ static void uart1_enabletxirq(struct SerialHardware *_hw)
 static void uart1_setbaudrate(UNUSED_ARG(struct SerialHardware *, _hw), unsigned long rate)
 {
        /* Compute baud-rate period */
-       US1_BRGR = CLOCK_FREQ / (16 * rate);
+       US1_BRGR = CPU_FREQ / (16 * rate);
        //DB(kprintf("uart0_setbaudrate(rate=%lu): period=%d\n", rate, period);)
 }
 
@@ -534,8 +534,8 @@ static void spi0_setbaudrate(UNUSED_ARG(struct SerialHardware *, _hw), unsigned
 {
        SPI0_CSR0 &= ~SPI_SCBR;
 
-       ASSERT((uint8_t)DIV_ROUND(CLOCK_FREQ, rate));
-       SPI0_CSR0 |= DIV_ROUND(CLOCK_FREQ, rate) << SPI_SCBR_SHIFT;
+       ASSERT((uint8_t)DIV_ROUND(CPU_FREQ, rate));
+       SPI0_CSR0 |= DIV_ROUND(CPU_FREQ, rate) << SPI_SCBR_SHIFT;
 }
 
 #if CPU_ARM_AT91SAM7X128 || CPU_ARM_AT91SAM7X256
@@ -618,8 +618,8 @@ static void spi1_setbaudrate(UNUSED_ARG(struct SerialHardware *, _hw), unsigned
 {
        SPI1_CSR0 &= ~SPI_SCBR;
 
-       ASSERT((uint8_t)DIV_ROUND(CLOCK_FREQ, rate));
-       SPI1_CSR0 |= DIV_ROUND(CLOCK_FREQ, rate) << SPI_SCBR_SHIFT;
+       ASSERT((uint8_t)DIV_ROUND(CPU_FREQ, rate));
+       SPI1_CSR0 |= DIV_ROUND(CPU_FREQ, rate) << SPI_SCBR_SHIFT;
 }
 #endif
 
index aed153925dcc8fe0e22a7a28a63c949a2f06d265..eca205c504a22c43c2f95eb80de78142958847f8 100644 (file)
@@ -40,7 +40,7 @@
 #ifndef DRV_AT91_TIMER_H
 #define DRV_AT91_TIMER_H
 
-#include "hw/hw_cpu.h"            /* CLOCK_FREQ */
+#include <hw/hw_cpufreq.h>            /* CPU_FREQ */
 
 #include "cfg/cfg_timer.h"     /* CONFIG_TIMER */
 #include <cfg/compiler.h>      /* uint8_t */
 
        #define DEFINE_TIMER_ISR     void timer_handler(void)
        #define TIMER_TICKS_PER_SEC  1000
-       #define TIMER_HW_CNT         (CLOCK_FREQ / (16 * TIMER_TICKS_PER_SEC) - 1)
+       #define TIMER_HW_CNT         (CPU_FREQ / (16 * TIMER_TICKS_PER_SEC) - 1)
 
        /** Frequency of the hardware high-precision timer. */
-       #define TIMER_HW_HPTICKS_PER_SEC (CLOCK_FREQ / 16)
+       #define TIMER_HW_HPTICKS_PER_SEC (CPU_FREQ / 16)
 
        /// Type of time expressed in ticks of the hardware high-precision timer
        typedef uint32_t hptime_t;
index 44957c45d7c11e7c2b4f9677e661b4684de84fbb..cb2097eabf6328a1958c60c8046d86aa4187703f 100644 (file)
@@ -254,7 +254,7 @@ void twi_init(void)
         * Only CLDIV is computed since CLDIV = CHDIV (50% duty cycle)
         */
        uint16_t cldiv, ckdiv = 0;
-       while ((cldiv = ((CLOCK_FREQ / (2 * CONFIG_I2C_FREQ)) - 3) / (1 << ckdiv)) > 255)
+       while ((cldiv = ((CPU_FREQ / (2 * CONFIG_I2C_FREQ)) - 3) / (1 << ckdiv)) > 255)
                ckdiv++;
 
        /* Atmel errata states that ckdiv *must* be less than 5 for unknown reason */
index 0857795b2556ba4dc977cff198d78c24b98f33b3..5addc38a4c5663aec866ca3565a7117312acf16a 100644 (file)
  *
  */
 
-#include "hw/hw_cpu.h"
 #include <cpu/detect.h>
 #include "cfg/cfg_arch.h"
 
 
-#if CLOCK_FREQ != 48023000L
+#if CPU_FREQ != 48023000L
        /* Avoid errors on nightly test */
        #if !defined(ARCH_NIGHTTEST) || !(ARCH & ARCH_NIGHTTEST)
                #error Clock registers set for 48MHz operation, revise following code if you want a different clock.
index 2681bb75cdab39144fa33f1e8bdd00e80eab12cd..7425240305cebea0ea6ca383111c88305934b758 100644 (file)
@@ -38,7 +38,7 @@
  * \author Bernie Innocenti <bernie@codewiz.org>
  */
 
-#include "hw/hw_cpu.h"  /* CLOCK_FREQ */
+#include <hw/hw_cpufreq.h>  /* CPU_FREQ */
 
 #include "cfg/cfg_i2c.h"
 
@@ -237,7 +237,7 @@ void i2c_builtin_init(void)
 
                /*
                 * Set speed:
-                * F = CLOCK_FREQ / (16 + 2*TWBR * 4^TWPS)
+                * F = CPU_FREQ / (16 + 2*TWBR * 4^TWPS)
                 */
                #ifndef CONFIG_I2C_FREQ
                        #warning Using default value of 300000L for CONFIG_I2C_FREQ
@@ -245,7 +245,7 @@ void i2c_builtin_init(void)
                #endif
                #define TWI_PRESC 1       /* 4 ^ TWPS */
 
-               TWBR = (CLOCK_FREQ / (2 * CONFIG_I2C_FREQ * TWI_PRESC)) - (8 / TWI_PRESC);
+               TWBR = (CPU_FREQ / (2 * CONFIG_I2C_FREQ * TWI_PRESC)) - (8 / TWI_PRESC);
                TWSR = 0;
                TWCR = BV(TWEN);
        );
index d8e146372352c158242b41499194990788a63342..0d2c730633bb8f643d517adad0712ea49b406fc7 100644 (file)
@@ -39,7 +39,7 @@
  * \author Francesco Sacchi <batt@develer.com>
  */
 
-#include "hw/hw_cpu.h"     /* for CLOCK_FREQ */
+#include <hw/hw_cpufreq.h>     /* for CPU_FREQ */
 #include "hw/hw_ser.h"     /* Required for bus macros overrides */
 
 #include "cfg/cfg_debug.h"
        #define KDBG_RESTORE_IRQ(old)  do { IRQ_RESTORE((old)); } while(0)
        typedef cpu_flags_t kdbg_irqsave_t;
 
-       #define KDBG_DELAY (((CLOCK_FREQ + CONFIG_KDEBUG_BAUDRATE / 2) / CONFIG_KDEBUG_BAUDRATE) + 7) / 14
+       #define KDBG_DELAY (((CPU_FREQ + CONFIG_KDEBUG_BAUDRATE / 2) / CONFIG_KDEBUG_BAUDRATE) + 7) / 14
 
        static void _kdebug_bitbang_delay(void)
        {
@@ -230,7 +230,7 @@ INLINE void kdbg_hw_init(void)
                SER_BITBANG_INIT;
        #else /* CONFIG_KDEBUG_PORT != 666 */
                /* Compute the baud rate */
-               uint16_t period = DIV_ROUND(CLOCK_FREQ / 16UL, CONFIG_KDEBUG_BAUDRATE) - 1;
+               uint16_t period = DIV_ROUND(CPU_FREQ / 16UL, CONFIG_KDEBUG_BAUDRATE) - 1;
 
                #if (CPU_AVR_ATMEGA64 || CPU_AVR_ATMEGA128 || CPU_AVR_ATMEGA1281)
                        #if CONFIG_KDEBUG_PORT == 0
index 16e420bd31e35a08db3c45e2b00ff8fbae620f6e..1d76a1a34271a409389f0a7440470b1c90f6d94a 100644 (file)
@@ -40,7 +40,7 @@
 
 
 #include "pwm_avr.h"
-#include "hw/hw_cpu.h"
+#include <hw/hw_cpufreq.h>
 
 #warning TODO:This is an exmple of implementation of PWM low level channel for AVR, implemnt it!
 
index 066444822abd40d669fc62ebf41de772ea207af3..d3cc743d0d6ca0e32d7d492832bccfd301a509b5 100644 (file)
@@ -40,7 +40,7 @@
  */
 
 #include "hw/hw_ser.h"  /* Required for bus macros overrides */
-#include "hw/hw_cpu.h"  /* CLOCK_FREQ */
+#include <hw/hw_cpufreq.h>  /* CPU_FREQ */
 
 #include "cfg/cfg_ser.h"
 
@@ -377,7 +377,7 @@ static void uart0_enabletxirq(struct SerialHardware *_hw)
 static void uart0_setbaudrate(UNUSED_ARG(struct SerialHardware *, _hw), unsigned long rate)
 {
        /* Compute baud-rate period */
-       uint16_t period = DIV_ROUND(CLOCK_FREQ / 16UL, rate) - 1;
+       uint16_t period = DIV_ROUND(CPU_FREQ / 16UL, rate) - 1;
 
 #if !CPU_AVR_ATMEGA103
        UBRR0H = (period) >> 8;
@@ -430,7 +430,7 @@ static void uart1_enabletxirq(struct SerialHardware *_hw)
 static void uart1_setbaudrate(UNUSED_ARG(struct SerialHardware *, _hw), unsigned long rate)
 {
        /* Compute baud-rate period */
-       uint16_t period = DIV_ROUND(CLOCK_FREQ / 16UL, rate) - 1;
+       uint16_t period = DIV_ROUND(CPU_FREQ / 16UL, rate) - 1;
 
        UBRR1H = (period) >> 8;
        UBRR1L = (period);
index 8cd92712bcfed11e4d6bf6c7bf7b32a7629a075e..66a00222c225c1f63dc0f7c2bdf5cf84b78e93e5 100644 (file)
@@ -45,7 +45,7 @@
 #include <cfg/compiler.h>
 #include <appconfig.h>
 #include <cfg/macros.h> /* BV() */
-#include "hw/hw_cpu.h"
+#include <hw/hw_cpufreq.h>
 
 #include <avr/io.h>
 
@@ -111,7 +111,7 @@ void _ser_settimeouts(void)
 void _ser_setbaudrate(unsigned long rate)
 {
        /* Compute baud-rate period */
-       uint16_t period = DIV_ROUND(CLOCK_FREQ / 16UL, rate) - 1;
+       uint16_t period = DIV_ROUND(CPU_FREQ / 16UL, rate) - 1;
 
        UBRR0H = (period) >> 8;
        UBRR0L = (period);
index 1eccd0efcd501abc7f6e256b635aa2ad0711c3b7..96d05082b83f978b8c27815c1d601e36385aae2c 100644 (file)
@@ -43,7 +43,7 @@
 #ifndef DRV_TIMER_AVR_H
 #define DRV_TIMER_AVR_H
 
-#include "hw/hw_cpu.h"        /* CLOCK_FREQ */
+#include <hw/hw_cpufreq.h>        /* CPU_FREQ */
 
 #include "cfg/cfg_timer.h"     /* CONFIG_TIMER */
 #include <cfg/compiler.h>  /* uint8_t */
 
 
 /** Frequency of the hardware high precision timer. */
-#define TIMER_HW_HPTICKS_PER_SEC  DIV_ROUND(CLOCK_FREQ, TIMER_PRESCALER)
+#define TIMER_HW_HPTICKS_PER_SEC  DIV_ROUND(CPU_FREQ, TIMER_PRESCALER)
 
 /**
  * System timer: additional division after the prescaler
  * 12288000 / 64 / 192 (0..191) = 1 ms
  */
-#define OCR_DIVISOR  (DIV_ROUND(DIV_ROUND(CLOCK_FREQ, TIMER_PRESCALER), TIMER_TICKS_PER_SEC) - 1)
+#define OCR_DIVISOR  (DIV_ROUND(DIV_ROUND(CPU_FREQ, TIMER_PRESCALER), TIMER_TICKS_PER_SEC) - 1)
 
 /** Not needed, IRQ timer flag cleared automatically */
 #define timer_hw_irq() do {} while (0)
index c9c208c2b679e458629a852824668b9f5630f1cf..95caf428a03915728aa743c219021030f9e81219 100644 (file)
 #warning FIXME:This module is obsolete, yuo must refactor it.
 
 #if 0
-#include "hw/hw_cpu.h"
+#include <hw/hw_cpufreq.h>
 #include "timer_simple_avr.h"
 #include <drv/wdt.h>
 #include <cfg/compiler.h>
 #include <cfg/macros.h> /* BV() */
-#include <hw_cpu.h>  /* CLOCK_FREQ */
 
 #include <avr/io.h>
 
 
 #define MS_PER_SEC       1000UL
 #define TIMER_PRESCALER  64UL
-#define TIMER_DELAY_1MS  (255 - CLOCK_FREQ / TIMER_PRESCALER / MS_PER_SEC)
+#define TIMER_DELAY_1MS  (255 - CPU_FREQ / TIMER_PRESCALER / MS_PER_SEC)
 
 /**
  * Wait \a time ms using timer 0.
index 9f9d272c6513884daeb2412de15fc2deb39ce86e..69f09284f3b2c3190096b6c2b025b86521b3cbd1 100644 (file)
@@ -43,7 +43,7 @@
 #include <cfg/debug.h>
 #include <cfg/macros.h> /* for BV() */
 #include <appconfig.h>
-#include <hw_cpu.h>     /* for CLOCK_FREQ */
+#include <hw/hw_cpufreq.h>     /* for CPU_FREQ */
 #include <hw_ser.h>     /* Required for bus macros overrides */
 
 
index 7835345385c5cc5598d283c9512de1ce415899c8..149be7f6a4f28e4597afd5a684e4f683c89d2393 100644 (file)
@@ -111,7 +111,7 @@ INTERRUPT(0x32) void RI_interrupt(void)
 static void ser_setbaudrate(unsigned long rate)
 {
        // Calcola il periodo per la generazione del baud rate richiesto
-       uint16_t baud = (uint16_t)(((CLOCK_FREQ / 16) / rate) - 1) | 0x8000;
+       uint16_t baud = (uint16_t)(((CPU_FREQ / 16) / rate) - 1) | 0x8000;
        BAUD_RATE = (uint8_t)baud;
        BAUD_RATE = (uint8_t)(baud >> 8);
 }
diff --git a/bertos/hw/hw_cpu.h b/bertos/hw/hw_cpu.h
deleted file mode 100644 (file)
index af009e8..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-/**
- * \file
- * <!--
- * This file is part of BeRTOS.
- *
- * Bertos is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- *
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU General Public License.  This exception does not however
- * invalidate any other reasons why the executable file might be covered by
- * the GNU General Public License.
- *
- * Copyright 2006, 2008 Develer S.r.l. (http://www.develer.com/)
- * All Rights Reserved.
- * -->
- *
- * \brief Hardware-specific definitions
- *
- * \version $Id$
- *
- * \author Bernie Innocenti <bernie@codewiz.org>
- */
-
-#ifndef HW_CPU_H
-#define HW_CPU_H
-
-#warning TODO:This is an example implementation, you must implement it!
-
-/// CPU Clock frequency 
-#define CLOCK_FREQ     (12288000UL/* Implement me! */)
-
-
-/* Timer IRQ strobe */
-//#if CONFIG_TIMER_STROBE
-//     #define TIMER_STROBE_ON    /* Implement me! */
-//     #define TIMER_STROBE_OFF   /* Implement me! */
-//     #define TIMER_STROBE_INIT  /* Implement me! */
-//#endif /* CONFIG_TIMER_STROBE */
-
-#endif /*  HW_CPU_H */
diff --git a/bertos/hw/hw_cpufreq.h b/bertos/hw/hw_cpufreq.h
new file mode 100644 (file)
index 0000000..5cb01f4
--- /dev/null
@@ -0,0 +1,64 @@
+/**
+ * \file
+ * <!--
+ * This file is part of BeRTOS.
+ *
+ * Bertos is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+ *
+ * As a special exception, you may use this file as part of a free software
+ * library without restriction.  Specifically, if other files instantiate
+ * templates or use macros or inline functions from this file, or you compile
+ * this file and link it with other files to produce an executable, this
+ * file does not by itself cause the resulting executable to be covered by
+ * the GNU General Public License.  This exception does not however
+ * invalidate any other reasons why the executable file might be covered by
+ * the GNU General Public License.
+ *
+ * Copyright 2006, 2008 Develer S.r.l. (http://www.develer.com/)
+ * All Rights Reserved.
+ * -->
+ *
+ * \brief Hardware-specific definitions
+ *
+ * \version $Id$
+ *
+ * \author Francesco Sacchi <bernie@codewiz.org>
+ */
+
+#ifndef HW_CPUFREQ_H
+#define HW_CPUFREQ_H
+
+#ifndef CPU_FREQ
+       #warning CPU_FREQ is not defined, you should upgrade to the new clock frequency defining method.
+
+       /*
+        * This is DEPRECATED file, it will be removed in the next major release.
+        * We have set up a new cpu frequency definition method.
+        * The new macro CPU_FREQ should be defined as a compiler flag in the
+        * makefile instead of the old CLOCK_FREQ macro. With new projects you should only
+        * use the CPU_FREQ macro.
+        *
+        * With gcc you should add something like this:
+        *
+        * -D'CPU_FREQ=(12288000UL)'
+        *
+        * For backward compatibility the old method is still supported.
+        */
+       #include "hw/hw_cpu.h"
+
+       #define CPU_FREQ (CLOCK_FREQ)
+#endif /* CPU_FREQ */
+
+#endif /*  HW_CPUFREQ_H */
index 23d1252ffbed45a6d322dbaeacffe390d3e4ca8f..131411241c6e39ebf605b642dcc427096eb1c190 100644 (file)
@@ -41,7 +41,7 @@
 #ifndef HW_STEPPER_H
 #define HW_STEPPER_H
 
-#include "hw/hw_cpu.h"
+#include <hw/hw_cpufreq.h>
 
 #include <cfg/macros.h>
 
@@ -67,7 +67,7 @@ do { \
 /**
  * Stepper timer clock frequency.
  */
-#define STEPPER_CLOCK ((CLOCK_FREQ) >> STEPPER_PRESCALER_LOG2)
+#define STEPPER_CLOCK ((CPU_FREQ) >> STEPPER_PRESCALER_LOG2)
 
 /**
  * us delay to reset a stepper motor.
index 86c3180ada640a232b321cb4257f4c76611c77d0..1c3660e02966d6368e0b085686ffe2390e9ec290 100644 (file)
@@ -38,7 +38,7 @@ at91sam7s_CPPASRC = \
 at91sam7s_PREFIX = arm-none-eabi-
 
 at91sam7s_CPPAFLAGS = -O0 -g -gdwarf-2 -g -gen-debug
-at91sam7s_CPPFLAGS = -O0 -D'ARCH=0' -D__ARM_AT91SAM7S256__ -g3 -gdwarf-2 -fverbose-asm -Iexamples/at91sam7s/hw -Iexamples/at91sam7s -Ibertos/cpu/arm
+at91sam7s_CPPFLAGS = -O0 -D'ARCH=0' -D__ARM_AT91SAM7S256__ -D'CPU_FREQ=(48023000UL)' -g3 -gdwarf-2 -fverbose-asm -Iexamples/at91sam7s/hw -Iexamples/at91sam7s -Ibertos/cpu/arm
 at91sam7s_LDFLAGS = -nostartfiles -T bertos/cpu/arm/scripts/at91sam7_256_ram.ld -Wl,--no-warn-mismatch
 
 at91sam7s_CPU = arm7tdmi
diff --git a/examples/at91sam7s/hw/hw_cpu.h b/examples/at91sam7s/hw/hw_cpu.h
deleted file mode 100644 (file)
index 6965261..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-/**
- * \file
- * <!--
- * This file is part of BeRTOS.
- *
- * Bertos is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- *
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU General Public License.  This exception does not however
- * invalidate any other reasons why the executable file might be covered by
- * the GNU General Public License.
- *
- * Copyright 2006 Develer S.r.l. (http://www.develer.com/)
- * All Rights Reserved.
- * -->
- *
- * \brief Hardware-specific definitions
- *
- * \version $Id$
- *
- * \author Bernie Innocenti <bernie@codewiz.org>
- */
-
-/*#*
- *#* $Log$
- *#* Revision 1.1  2006/05/18 00:41:47  bernie
- *#* New triface devlib application.
- *#*
- *#*/
-
-#ifndef AT91SAM7SEK_HW_H
-#define AT91SAM7SEK_HW_H
-
-/// CPU Clock frequency (48.023 MHz)
-#define CLOCK_FREQ     (48023000UL)
-
-
-/* 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/examples/lm3s1968/hw/hw_cpu.h b/examples/lm3s1968/hw/hw_cpu.h
deleted file mode 100644 (file)
index 52e3d4b..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-/**
- * \file
- * <!--
- * This file is part of BeRTOS.
- *
- * Bertos is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- *
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU General Public License.  This exception does not however
- * invalidate any other reasons why the executable file might be covered by
- * the GNU General Public License.
- *
- * Copyright 2006, 2008 Develer S.r.l. (http://www.develer.com/)
- * All Rights Reserved.
- * -->
- *
- * \brief Hardware-specific definitions
- *
- * \version $Id$
- *
- * \author Bernie Innocenti <bernie@codewiz.org>
- */
-
-#ifndef HW_CPU_H
-#define HW_CPU_H
-
-#warning TODO:This is an example implementation, you must implement it!
-
-/// CPU Clock frequency
-#define CLOCK_FREQ     (48023000L/* Implement me! */)
-
-
-/* Timer IRQ strobe */
-//#if CONFIG_TIMER_STROBE
-//     #define TIMER_STROBE_ON    /* Implement me! */
-//     #define TIMER_STROBE_OFF   /* Implement me! */
-//     #define TIMER_STROBE_INIT  /* Implement me! */
-//#endif /* CONFIG_TIMER_STROBE */
-
-#endif /*  HW_CPU_H */
index 10025e2cf9a6c50aaade450f22a24ab62eca69a9..3efdf31573480f020c2f547fb6f8e7b7e7da1271 100644 (file)
@@ -24,7 +24,7 @@ lm3s1968_CSRC = \
 lm3s1968_PREFIX = arm-none-eabi-
 
 lm3s1968_CPPAFLAGS = -O0 -g -gdwarf-2 -g -gen-debug -mthumb
-lm3s1968_CPPFLAGS = -O0 -D'ARCH=0' -D__ARM_LM3S1968__ -g3 -gdwarf-2 -fverbose-asm -mthumb  -Iexamples/lm3s1968 -Ibertos/cpu/cortex-m3
+lm3s1968_CPPFLAGS = -O0 -D'ARCH=0' -D__ARM_LM3S1968__ -D'CPU_FREQ=(48023000L)' -g3 -gdwarf-2 -fverbose-asm -mthumb  -Iexamples/lm3s1968 -Ibertos/cpu/cortex-m3
 lm3s1968_LDFLAGS = -nostartfiles -T examples/lm3s1968/standalone.ld -Wl,--no-warn-mismatch
 
 lm3s1968_CPU = cortex-m3
diff --git a/examples/triface/boot/hw/hw_cpu.h b/examples/triface/boot/hw/hw_cpu.h
deleted file mode 100644 (file)
index 840c82c..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-/**
- * \file
- * <!--
- * This file is part of BeRTOS.
- *
- * Bertos is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- *
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU General Public License.  This exception does not however
- * invalidate any other reasons why the executable file might be covered by
- * the GNU General Public License.
- *
- * Copyright 2003, 2004, 2006 Develer S.r.l. (http://www.develer.com/)
- * Copyright 2000 Bernie Innocenti <bernie@codewiz.org>
- *
- * --> Rights Reserved.
- *
- * \brief Hardware-specific definitions
- *
- * \version $Id$
- *
- * \author Bernie Innocenti <bernie@codewiz.org>
- */
-
-#ifndef TRIFACE_HW_H
-#define TRIFACE_HW_H
-
-/// 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 /* TRIFACE_HW_H */
-
diff --git a/examples/triface/hw/hw_cpu.h b/examples/triface/hw/hw_cpu.h
deleted file mode 100644 (file)
index 840c82c..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-/**
- * \file
- * <!--
- * This file is part of BeRTOS.
- *
- * Bertos is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- *
- * As a special exception, you may use this file as part of a free software
- * library without restriction.  Specifically, if other files instantiate
- * templates or use macros or inline functions from this file, or you compile
- * this file and link it with other files to produce an executable, this
- * file does not by itself cause the resulting executable to be covered by
- * the GNU General Public License.  This exception does not however
- * invalidate any other reasons why the executable file might be covered by
- * the GNU General Public License.
- *
- * Copyright 2003, 2004, 2006 Develer S.r.l. (http://www.develer.com/)
- * Copyright 2000 Bernie Innocenti <bernie@codewiz.org>
- *
- * --> Rights Reserved.
- *
- * \brief Hardware-specific definitions
- *
- * \version $Id$
- *
- * \author Bernie Innocenti <bernie@codewiz.org>
- */
-
-#ifndef TRIFACE_HW_H
-#define TRIFACE_HW_H
-
-/// 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 /* TRIFACE_HW_H */
-
index 1ee8f4c8945ba81e24794095767de52f12020e25..7f3947245946c1a54f3798efafebb513094b801d 100644 (file)
@@ -55,7 +55,7 @@ triface_CSRC = \
 triface_PCSRC += bertos/mware/formatwr.c
 
 
-triface_CFLAGS = -O2 -D'ARCH=(ARCH_TRIFACE)' -fno-strict-aliasing -Iexamples/triface -Ibertos/cpu/avr
+triface_CFLAGS = -O2 -D'ARCH=(ARCH_TRIFACE)' -D'CPU_FREQ=(14745600UL)' -fno-strict-aliasing -Iexamples/triface -Ibertos/cpu/avr
 triface_LDFLAGS = -Wl
 
 
@@ -78,7 +78,7 @@ boot_CSRC = \
        bertos/kern/kfile.c \
        #
 boot_PREFIX = avr-
-boot_CPPFLAGS = -D'ARCH=(ARCH_TRIFACE|ARCH_BOOT)' -Iexamples/triface/boot -Ibertos/cpu/avr
+boot_CPPFLAGS = -D'ARCH=(ARCH_TRIFACE|ARCH_BOOT)' -D'CPU_FREQ=(14745600UL)' -Iexamples/triface/boot -Ibertos/cpu/avr
 boot_CFLAGS = -Os -mcall-prologues
 boot_LDFLAGS = -Wl,--relax -Wl,--section-start=.text=$(BOOT_ADDR_START)
 
index 51688df446486a65b31ca943fb056b743e7926b8..b778e67362f7556bcf070b01d99effc7ac022342 100644 (file)
@@ -84,7 +84,7 @@ $pname_ASRC = $($pname_WIZARD_ASRC) $($pname_USER_ASRC)
 $pname_CFLAGS = $cflags
 $pname_LDFLAGS = $ldflags
 $pname_CPPFLAGS = $cppflags
-$pname_CPPAFLAGS = $cppaflags
+$pname_CPPAFLAGS = -D'CPU_FREQ=($cpuclockfreq)' $cppaflags
 $pname_CXXFLAGS = $cxxflags
 $pname_ASFLAGS = $asflags
 $pname_ARFLAGS = $arflags