Working
This commit is contained in:
commit
c898b090dd
|
@ -0,0 +1,2 @@
|
|||
obj
|
||||
images
|
|
@ -0,0 +1,17 @@
|
|||
#
|
||||
# Copyright 2009 Develer S.r.l. (http://www.develer.com/)
|
||||
# All rights reserved.
|
||||
#
|
||||
# Author: Lorenzo Berni <duplo@develer.com>
|
||||
#
|
||||
|
||||
# Set to 1 for verbose build output, 0 for terse output
|
||||
V := 0
|
||||
|
||||
default: all
|
||||
|
||||
include bertos/config.mk
|
||||
|
||||
include Modem/Modem.mk
|
||||
|
||||
include bertos/rules.mk
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,12 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<CodeLite_Workspace Name="Modem" Database="./bertos.tags">
|
||||
<Project Name="Modem" Path="Modem.project" Active="Yes"/>
|
||||
<BuildMatrix>
|
||||
<WorkspaceConfiguration Name="Debug" Selected="yes">
|
||||
<Project Name="Modem" ConfigName="Debug"/>
|
||||
</WorkspaceConfiguration>
|
||||
<WorkspaceConfiguration Name="Release" Selected="yes">
|
||||
<Project Name="Modem" ConfigName="Release"/>
|
||||
</WorkspaceConfiguration>
|
||||
</BuildMatrix>
|
||||
</CodeLite_Workspace>
|
|
@ -0,0 +1,8 @@
|
|||
name = 'empty preset'
|
||||
advanced = True
|
||||
description="""
|
||||
<p>
|
||||
This is a minimalist project, it just initializes the hardware of the
|
||||
supported board and proposes an empty main.
|
||||
<\p>
|
||||
"""
|
|
@ -0,0 +1,88 @@
|
|||
#
|
||||
# Wizard autogenerated makefile.
|
||||
# DO NOT EDIT, use the Modem_user.mk file instead.
|
||||
#
|
||||
|
||||
# Constants automatically defined by the selected modules
|
||||
Modem_DEBUG = 1
|
||||
|
||||
# Our target application
|
||||
TRG += Modem
|
||||
|
||||
Modem_PREFIX = "/usr/bin/avr-"
|
||||
|
||||
Modem_SUFFIX = ""
|
||||
|
||||
Modem_SRC_PATH = Modem
|
||||
|
||||
Modem_HW_PATH = Modem
|
||||
|
||||
# Files automatically generated by the wizard. DO NOT EDIT, USE Modem_USER_CSRC INSTEAD!
|
||||
Modem_WIZARD_CSRC = \
|
||||
bertos/cpu/avr/drv/ser_avr.c \
|
||||
bertos/cpu/avr/drv/ser_mega.c \
|
||||
bertos/cpu/avr/drv/timer_avr.c \
|
||||
bertos/cpu/avr/drv/timer_mega.c \
|
||||
bertos/drv/ser.c \
|
||||
bertos/drv/timer.c \
|
||||
bertos/io/kfile.c \
|
||||
bertos/mware/event.c \
|
||||
bertos/mware/formatwr.c \
|
||||
bertos/mware/hex.c \
|
||||
bertos/struct/heap.c \
|
||||
#
|
||||
|
||||
# Files automatically generated by the wizard. DO NOT EDIT, USE Modem_USER_PCSRC INSTEAD!
|
||||
Modem_WIZARD_PCSRC = \
|
||||
bertos/mware/formatwr.c \
|
||||
#
|
||||
|
||||
# Files automatically generated by the wizard. DO NOT EDIT, USE Modem_USER_CPPASRC INSTEAD!
|
||||
Modem_WIZARD_CPPASRC = \
|
||||
\
|
||||
#
|
||||
|
||||
# Files automatically generated by the wizard. DO NOT EDIT, USE Modem_USER_CXXSRC INSTEAD!
|
||||
Modem_WIZARD_CXXSRC = \
|
||||
\
|
||||
#
|
||||
|
||||
# Files automatically generated by the wizard. DO NOT EDIT, USE Modem_USER_ASRC INSTEAD!
|
||||
Modem_WIZARD_ASRC = \
|
||||
\
|
||||
#
|
||||
|
||||
Modem_CPPFLAGS = -D'CPU_FREQ=(16000000UL)' -D'ARCH=(ARCH_DEFAULT)' -D'WIZ_AUTOGEN' -I$(Modem_HW_PATH) -I$(Modem_SRC_PATH) $(Modem_CPU_CPPFLAGS) $(Modem_USER_CPPFLAGS)
|
||||
|
||||
# Automatically generated by the wizard. PLEASE DO NOT EDIT!
|
||||
Modem_LDFLAGS = $(Modem_CPU_LDFLAGS) $(Modem_WIZARD_LDFLAGS) $(Modem_USER_LDFLAGS)
|
||||
|
||||
# Automatically generated by the wizard. PLEASE DO NOT EDIT!
|
||||
Modem_CPPAFLAGS = $(Modem_CPU_CPPAFLAGS) $(Modem_WIZARD_CPPAFLAGS) $(Modem_USER_CPPAFLAGS)
|
||||
|
||||
# Automatically generated by the wizard. PLEASE DO NOT EDIT!
|
||||
Modem_CSRC = $(Modem_CPU_CSRC) $(Modem_WIZARD_CSRC) $(Modem_USER_CSRC)
|
||||
|
||||
# Automatically generated by the wizard. PLEASE DO NOT EDIT!
|
||||
Modem_PCSRC = $(Modem_CPU_PCSRC) $(Modem_WIZARD_PCSRC) $(Modem_USER_PCSRC)
|
||||
|
||||
# Automatically generated by the wizard. PLEASE DO NOT EDIT!
|
||||
Modem_CPPASRC = $(Modem_CPU_CPPASRC) $(Modem_WIZARD_CPPASRC) $(Modem_USER_CPPASRC)
|
||||
|
||||
# Automatically generated by the wizard. PLEASE DO NOT EDIT!
|
||||
Modem_CXXSRC = $(Modem_CPU_CXXSRC) $(Modem_WIZARD_CXXSRC) $(Modem_USER_CXXSRC)
|
||||
|
||||
# Automatically generated by the wizard. PLEASE DO NOT EDIT!
|
||||
Modem_ASRC = $(Modem_CPU_ASRC) $(Modem_WIZARD_ASRC) $(Modem_USER_ASRC)
|
||||
|
||||
# CPU specific flags and options, defined in the CPU definition files.
|
||||
# Automatically generated by the wizard. PLEASE DO NOT EDIT!
|
||||
Modem_MCU = atmega328p
|
||||
Modem_CPU_CPPFLAGS = -Os -Ibertos/cpu/avr/
|
||||
Modem_PROGRAMMER_CPU = atmega328p
|
||||
Modem_STOPFLASH_SCRIPT = bertos/prg_scripts/avr/stopflash.sh
|
||||
Modem_STOPDEBUG_SCRIPT = bertos/prg_scripts/none.sh
|
||||
Modem_DEBUG_SCRIPT = bertos/prg_scripts/nodebug.sh
|
||||
Modem_FLASH_SCRIPT = bertos/prg_scripts/avr/flash.sh
|
||||
|
||||
include $(Modem_SRC_PATH)/Modem_user.mk
|
|
@ -0,0 +1,45 @@
|
|||
#
|
||||
# User makefile.
|
||||
# Edit this file to change compiler options and related stuff.
|
||||
#
|
||||
|
||||
# Programmer interface configuration, see http://dev.bertos.org/wiki/ProgrammerInterface for help
|
||||
Modem_PROGRAMMER_TYPE = none
|
||||
Modem_PROGRAMMER_PORT = none
|
||||
|
||||
# Files included by the user.
|
||||
Modem_USER_CSRC = \
|
||||
$(Modem_SRC_PATH)/main.c \
|
||||
$(Modem_HW_PATH)/hardware.c \
|
||||
$(Modem_HW_PATH)/afsk.c \
|
||||
#
|
||||
|
||||
# Files included by the user.
|
||||
Modem_USER_PCSRC = \
|
||||
#
|
||||
|
||||
# Files included by the user.
|
||||
Modem_USER_CPPASRC = \
|
||||
#
|
||||
|
||||
# Files included by the user.
|
||||
Modem_USER_CXXSRC = \
|
||||
#
|
||||
|
||||
# Files included by the user.
|
||||
Modem_USER_ASRC = \
|
||||
#
|
||||
|
||||
# Flags included by the user.
|
||||
Modem_USER_LDFLAGS = \
|
||||
#
|
||||
|
||||
# Flags included by the user.
|
||||
Modem_USER_CPPAFLAGS = \
|
||||
#
|
||||
|
||||
# Flags included by the user.
|
||||
Modem_USER_CPPFLAGS = \
|
||||
-fno-strict-aliasing \
|
||||
-fwrapv \
|
||||
#
|
|
@ -0,0 +1,534 @@
|
|||
#include "afsk.h"
|
||||
//#include <net/ax25.h>
|
||||
|
||||
#include "config.h"
|
||||
#include "hardware.h"
|
||||
|
||||
#include <drv/timer.h>
|
||||
|
||||
#include <cfg/module.h>
|
||||
|
||||
#define HDLC_FLAG 0x7E
|
||||
#define HDLC_RESET 0x7F
|
||||
#define AX25_ESC 0x1B
|
||||
|
||||
#define LOG_LEVEL AFSK_LOG_LEVEL
|
||||
#define LOG_FORMAT AFSK_LOG_FORMAT
|
||||
#include <cfg/log.h>
|
||||
|
||||
#include <cpu/power.h>
|
||||
#include <cpu/pgm.h>
|
||||
#include <struct/fifobuf.h>
|
||||
|
||||
#include <string.h> /* memset */
|
||||
|
||||
#define PHASE_BIT 8
|
||||
#define PHASE_INC 1
|
||||
|
||||
#define PHASE_MAX (SAMPLEPERBIT * PHASE_BIT)
|
||||
#define PHASE_THRES (PHASE_MAX / 2) // - PHASE_BIT / 2)
|
||||
|
||||
// Modulator constants
|
||||
#define MARK_FREQ 1200
|
||||
#define MARK_INC (uint16_t)(DIV_ROUND(SIN_LEN * (uint32_t)MARK_FREQ, CONFIG_AFSK_DAC_SAMPLERATE))
|
||||
|
||||
#define SPACE_FREQ 2200
|
||||
#define SPACE_INC (uint16_t)(DIV_ROUND(SIN_LEN * (uint32_t)SPACE_FREQ, CONFIG_AFSK_DAC_SAMPLERATE))
|
||||
|
||||
//Ensure sample rate is a multiple of bit rate
|
||||
STATIC_ASSERT(!(CONFIG_AFSK_DAC_SAMPLERATE % BITRATE));
|
||||
|
||||
#define DAC_SAMPLEPERBIT (CONFIG_AFSK_DAC_SAMPLERATE / BITRATE)
|
||||
|
||||
/**
|
||||
* Sine table for the first quarter of wave.
|
||||
* The rest of the wave is computed from this first quarter.
|
||||
* This table is used to generate the modulated data.
|
||||
*/
|
||||
static const uint8_t PROGMEM sin_table[] =
|
||||
{
|
||||
128, 129, 131, 132, 134, 135, 137, 138, 140, 142, 143, 145, 146, 148, 149, 151,
|
||||
152, 154, 155, 157, 158, 160, 162, 163, 165, 166, 167, 169, 170, 172, 173, 175,
|
||||
176, 178, 179, 181, 182, 183, 185, 186, 188, 189, 190, 192, 193, 194, 196, 197,
|
||||
198, 200, 201, 202, 203, 205, 206, 207, 208, 210, 211, 212, 213, 214, 215, 217,
|
||||
218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233,
|
||||
234, 234, 235, 236, 237, 238, 238, 239, 240, 241, 241, 242, 243, 243, 244, 245,
|
||||
245, 246, 246, 247, 248, 248, 249, 249, 250, 250, 250, 251, 251, 252, 252, 252,
|
||||
253, 253, 253, 253, 254, 254, 254, 254, 254, 255, 255, 255, 255, 255, 255, 255,
|
||||
};
|
||||
|
||||
#define SIN_LEN 512 ///< Full wave length
|
||||
|
||||
STATIC_ASSERT(sizeof(sin_table) == SIN_LEN / 4);
|
||||
|
||||
|
||||
/**
|
||||
* Given the index, this function computes the correct sine sample
|
||||
* based only on the first quarter of wave.
|
||||
*/
|
||||
INLINE uint8_t sin_sample(uint16_t idx)
|
||||
{
|
||||
ASSERT(idx < SIN_LEN);
|
||||
uint16_t new_idx = idx % (SIN_LEN / 2);
|
||||
new_idx = (new_idx >= (SIN_LEN / 4)) ? (SIN_LEN / 2 - new_idx - 1) : new_idx;
|
||||
|
||||
uint8_t data = pgm_read8(&sin_table[new_idx]);
|
||||
|
||||
return (idx >= (SIN_LEN / 2)) ? (255 - data) : data;
|
||||
}
|
||||
|
||||
|
||||
#define BIT_DIFFER(bitline1, bitline2) (((bitline1) ^ (bitline2)) & 0x01)
|
||||
#define EDGE_FOUND(bitline) BIT_DIFFER((bitline), (bitline) >> 1)
|
||||
|
||||
/**
|
||||
* High-Level Data Link Control parsing function.
|
||||
* Parse bitstream in order to find characters.
|
||||
*
|
||||
* \param hdlc HDLC context.
|
||||
* \param bit current bit to be parsed.
|
||||
* \param fifo FIFO buffer used to push characters.
|
||||
*
|
||||
* \return true if all is ok, false if the fifo is full.
|
||||
*/
|
||||
static bool hdlc_parse(Hdlc *hdlc, bool bit, FIFOBuffer *fifo)
|
||||
{
|
||||
bool ret = true;
|
||||
|
||||
hdlc->demod_bits <<= 1;
|
||||
hdlc->demod_bits |= bit ? 1 : 0;
|
||||
|
||||
/* HDLC Flag */
|
||||
if (hdlc->demod_bits == HDLC_FLAG)
|
||||
{
|
||||
if (!fifo_isfull(fifo))
|
||||
{
|
||||
fifo_push(fifo, HDLC_FLAG);
|
||||
hdlc->rxstart = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
ret = false;
|
||||
hdlc->rxstart = false;
|
||||
}
|
||||
|
||||
hdlc->currchar = 0;
|
||||
hdlc->bit_idx = 0;
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* Reset */
|
||||
if ((hdlc->demod_bits & HDLC_RESET) == HDLC_RESET)
|
||||
{
|
||||
hdlc->rxstart = false;
|
||||
return ret;
|
||||
}
|
||||
|
||||
if (!hdlc->rxstart)
|
||||
return ret;
|
||||
|
||||
/* Stuffed bit */
|
||||
if ((hdlc->demod_bits & 0x3f) == 0x3e)
|
||||
return ret;
|
||||
|
||||
if (hdlc->demod_bits & 0x01)
|
||||
hdlc->currchar |= 0x80;
|
||||
|
||||
if (++hdlc->bit_idx >= 8)
|
||||
{
|
||||
if ((hdlc->currchar == HDLC_FLAG
|
||||
|| hdlc->currchar == HDLC_RESET
|
||||
|| hdlc->currchar == AX25_ESC))
|
||||
{
|
||||
if (!fifo_isfull(fifo))
|
||||
fifo_push(fifo, AX25_ESC);
|
||||
else
|
||||
{
|
||||
hdlc->rxstart = false;
|
||||
ret = false;
|
||||
}
|
||||
}
|
||||
|
||||
if (!fifo_isfull(fifo))
|
||||
fifo_push(fifo, hdlc->currchar);
|
||||
else
|
||||
{
|
||||
hdlc->rxstart = false;
|
||||
ret = false;
|
||||
}
|
||||
|
||||
hdlc->currchar = 0;
|
||||
hdlc->bit_idx = 0;
|
||||
}
|
||||
else
|
||||
hdlc->currchar >>= 1;
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* ADC ISR callback.
|
||||
* This function has to be called by the ADC ISR when a sample of the configured
|
||||
* channel is available.
|
||||
* \param af Afsk context to operate on.
|
||||
* \param curr_sample current sample from the ADC.
|
||||
*/
|
||||
void afsk_adc_isr(Afsk *af, int8_t curr_sample)
|
||||
{
|
||||
AFSK_STROBE_ON();
|
||||
|
||||
/*
|
||||
* Frequency discriminator and LP IIR filter.
|
||||
* This filter is designed to work
|
||||
* at the given sample rate and bit rate.
|
||||
*/
|
||||
STATIC_ASSERT(SAMPLERATE == 9600);
|
||||
STATIC_ASSERT(BITRATE == 1200);
|
||||
|
||||
/*
|
||||
* Frequency discrimination is achieved by simply multiplying
|
||||
* the sample with a delayed sample of (samples per bit) / 2.
|
||||
* Then the signal is lowpass filtered with a first order,
|
||||
* 600 Hz filter. The filter implementation is selectable
|
||||
* through the CONFIG_AFSK_FILTER config variable.
|
||||
*/
|
||||
|
||||
af->iir_x[0] = af->iir_x[1];
|
||||
|
||||
#if (CONFIG_AFSK_FILTER == AFSK_BUTTERWORTH)
|
||||
af->iir_x[1] = ((int8_t)fifo_pop(&af->delay_fifo) * curr_sample) >> 2;
|
||||
//af->iir_x[1] = ((int8_t)fifo_pop(&af->delay_fifo) * curr_sample) / 6.027339492;
|
||||
#elif (CONFIG_AFSK_FILTER == AFSK_CHEBYSHEV)
|
||||
af->iir_x[1] = ((int8_t)fifo_pop(&af->delay_fifo) * curr_sample) >> 2;
|
||||
//af->iir_x[1] = ((int8_t)fifo_pop(&af->delay_fifo) * curr_sample) / 3.558147322;
|
||||
#else
|
||||
#error Filter type not found!
|
||||
#endif
|
||||
|
||||
af->iir_y[0] = af->iir_y[1];
|
||||
|
||||
#if CONFIG_AFSK_FILTER == AFSK_BUTTERWORTH
|
||||
/*
|
||||
* This strange sum + shift is an optimization for af->iir_y[0] * 0.668.
|
||||
* iir * 0.668 ~= (iir * 21) / 32 =
|
||||
* = (iir * 16) / 32 + (iir * 4) / 32 + iir / 32 =
|
||||
* = iir / 2 + iir / 8 + iir / 32 =
|
||||
* = iir >> 1 + iir >> 3 + iir >> 5
|
||||
*/
|
||||
af->iir_y[1] = af->iir_x[0] + af->iir_x[1] + (af->iir_y[0] >> 1) + (af->iir_y[0] >> 3) + (af->iir_y[0] >> 5);
|
||||
//af->iir_y[1] = af->iir_x[0] + af->iir_x[1] + af->iir_y[0] * 0.6681786379;
|
||||
#elif CONFIG_AFSK_FILTER == AFSK_CHEBYSHEV
|
||||
/*
|
||||
* This should be (af->iir_y[0] * 0.438) but
|
||||
* (af->iir_y[0] >> 1) is a faster approximation :-)
|
||||
*/
|
||||
af->iir_y[1] = af->iir_x[0] + af->iir_x[1] + (af->iir_y[0] >> 1);
|
||||
//af->iir_y[1] = af->iir_x[0] + af->iir_x[1] + af->iir_y[0] * 0.4379097269;
|
||||
#endif
|
||||
|
||||
/* Save this sampled bit in a delay line */
|
||||
af->sampled_bits <<= 1;
|
||||
af->sampled_bits |= (af->iir_y[1] > 0) ? 1 : 0;
|
||||
|
||||
/* Store current ADC sample in the af->delay_fifo */
|
||||
fifo_push(&af->delay_fifo, curr_sample);
|
||||
|
||||
/* If there is an edge, adjust phase sampling */
|
||||
if (EDGE_FOUND(af->sampled_bits))
|
||||
{
|
||||
if (af->curr_phase < PHASE_THRES)
|
||||
af->curr_phase += PHASE_INC;
|
||||
else
|
||||
af->curr_phase -= PHASE_INC;
|
||||
}
|
||||
af->curr_phase += PHASE_BIT;
|
||||
|
||||
/* sample the bit */
|
||||
if (af->curr_phase >= PHASE_MAX)
|
||||
{
|
||||
af->curr_phase %= PHASE_MAX;
|
||||
|
||||
/* Shift 1 position in the shift register of the found bits */
|
||||
af->found_bits <<= 1;
|
||||
|
||||
/*
|
||||
* Determine bit value by reading the last 3 sampled bits.
|
||||
* If the number of ones is two or greater, the bit value is a 1,
|
||||
* otherwise is a 0.
|
||||
* This algorithm presumes that there are 8 samples per bit.
|
||||
*/
|
||||
STATIC_ASSERT(SAMPLEPERBIT == 8);
|
||||
uint8_t bits = af->sampled_bits & 0x07;
|
||||
if (bits == 0x07 // 111, 3 bits set to 1
|
||||
|| bits == 0x06 // 110, 2 bits
|
||||
|| bits == 0x05 // 101, 2 bits
|
||||
|| bits == 0x03 // 011, 2 bits
|
||||
)
|
||||
af->found_bits |= 1;
|
||||
|
||||
/*
|
||||
* NRZI coding: if 2 consecutive bits have the same value
|
||||
* a 1 is received, otherwise it's a 0.
|
||||
*/
|
||||
if (!hdlc_parse(&af->hdlc, !EDGE_FOUND(af->found_bits), &af->rx_fifo))
|
||||
af->status |= AFSK_RXFIFO_OVERRUN;
|
||||
}
|
||||
|
||||
|
||||
AFSK_STROBE_OFF();
|
||||
}
|
||||
|
||||
static void afsk_txStart(Afsk *af)
|
||||
{
|
||||
if (!af->sending)
|
||||
{
|
||||
af->phase_inc = MARK_INC;
|
||||
af->phase_acc = 0;
|
||||
af->stuff_cnt = 0;
|
||||
af->sending = true;
|
||||
af->preamble_len = DIV_ROUND(CONFIG_AFSK_PREAMBLE_LEN * BITRATE, 8000);
|
||||
AFSK_DAC_IRQ_START(af->dac_ch);
|
||||
}
|
||||
ATOMIC(af->trailer_len = DIV_ROUND(CONFIG_AFSK_TRAILER_LEN * BITRATE, 8000));
|
||||
}
|
||||
|
||||
#define BIT_STUFF_LEN 5
|
||||
|
||||
#define SWITCH_TONE(inc) (((inc) == MARK_INC) ? SPACE_INC : MARK_INC)
|
||||
|
||||
/**
|
||||
* DAC ISR callback.
|
||||
* This function has to be called by the DAC ISR when a sample of the configured
|
||||
* channel has been converted out.
|
||||
*
|
||||
* \param af Afsk context to operate on.
|
||||
*
|
||||
* \return The next DAC output sample.
|
||||
*/
|
||||
uint8_t afsk_dac_isr(Afsk *af)
|
||||
{
|
||||
AFSK_STROBE_ON();
|
||||
|
||||
/* Check if we are at a start of a sample cycle */
|
||||
if (af->sample_count == 0)
|
||||
{
|
||||
if (af->tx_bit == 0)
|
||||
{
|
||||
/* We have just finished transimitting a char, get a new one. */
|
||||
if (fifo_isempty(&af->tx_fifo) && af->trailer_len == 0)
|
||||
{
|
||||
AFSK_DAC_IRQ_STOP(af->dac_ch);
|
||||
af->sending = false;
|
||||
AFSK_STROBE_OFF();
|
||||
return 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
/*
|
||||
* If we have just finished sending an unstuffed byte,
|
||||
* reset bitstuff counter.
|
||||
*/
|
||||
if (!af->bit_stuff)
|
||||
af->stuff_cnt = 0;
|
||||
|
||||
af->bit_stuff = true;
|
||||
|
||||
/*
|
||||
* Handle preamble and trailer
|
||||
*/
|
||||
if (af->preamble_len == 0)
|
||||
{
|
||||
if (fifo_isempty(&af->tx_fifo))
|
||||
{
|
||||
af->trailer_len--;
|
||||
af->curr_out = HDLC_FLAG;
|
||||
}
|
||||
else
|
||||
af->curr_out = fifo_pop(&af->tx_fifo);
|
||||
}
|
||||
else
|
||||
{
|
||||
af->preamble_len--;
|
||||
af->curr_out = HDLC_FLAG;
|
||||
}
|
||||
|
||||
/* Handle char escape */
|
||||
if (af->curr_out == AX25_ESC)
|
||||
{
|
||||
if (fifo_isempty(&af->tx_fifo))
|
||||
{
|
||||
AFSK_DAC_IRQ_STOP(af->dac_ch);
|
||||
af->sending = false;
|
||||
AFSK_STROBE_OFF();
|
||||
return 0;
|
||||
}
|
||||
else
|
||||
af->curr_out = fifo_pop(&af->tx_fifo);
|
||||
}
|
||||
else if (af->curr_out == HDLC_FLAG || af->curr_out == HDLC_RESET)
|
||||
/* If these chars are not escaped disable bit stuffing */
|
||||
af->bit_stuff = false;
|
||||
}
|
||||
/* Start with LSB mask */
|
||||
af->tx_bit = 0x01;
|
||||
}
|
||||
|
||||
/* check for bit stuffing */
|
||||
if (af->bit_stuff && af->stuff_cnt >= BIT_STUFF_LEN)
|
||||
{
|
||||
/* If there are more than 5 ones in a row insert a 0 */
|
||||
af->stuff_cnt = 0;
|
||||
/* switch tone */
|
||||
af->phase_inc = SWITCH_TONE(af->phase_inc);
|
||||
}
|
||||
else
|
||||
{
|
||||
/*
|
||||
* NRZI: if we want to transmit a 1 the modulated frequency will stay
|
||||
* unchanged; with a 0, there will be a change in the tone.
|
||||
*/
|
||||
if (af->curr_out & af->tx_bit)
|
||||
{
|
||||
/*
|
||||
* Transmit a 1:
|
||||
* - Stay on the previous tone
|
||||
* - Increase bit stuff counter
|
||||
*/
|
||||
af->stuff_cnt++;
|
||||
}
|
||||
else
|
||||
{
|
||||
/*
|
||||
* Transmit a 0:
|
||||
* - Reset bit stuff counter
|
||||
* - Switch tone
|
||||
*/
|
||||
af->stuff_cnt = 0;
|
||||
af->phase_inc = SWITCH_TONE(af->phase_inc);
|
||||
}
|
||||
|
||||
/* Go to the next bit */
|
||||
af->tx_bit <<= 1;
|
||||
}
|
||||
af->sample_count = DAC_SAMPLEPERBIT;
|
||||
}
|
||||
|
||||
/* Get new sample and put it out on the DAC */
|
||||
af->phase_acc += af->phase_inc;
|
||||
af->phase_acc %= SIN_LEN;
|
||||
|
||||
af->sample_count--;
|
||||
AFSK_STROBE_OFF();
|
||||
return sin_sample(af->phase_acc);
|
||||
}
|
||||
|
||||
|
||||
static size_t afsk_read(KFile *fd, void *_buf, size_t size)
|
||||
{
|
||||
Afsk *af = AFSK_CAST(fd);
|
||||
uint8_t *buf = (uint8_t *)_buf;
|
||||
|
||||
#if CONFIG_AFSK_RXTIMEOUT == 0
|
||||
while (size-- && !fifo_isempty_locked(&af->rx_fifo))
|
||||
#else
|
||||
while (size--)
|
||||
#endif
|
||||
{
|
||||
#if CONFIG_AFSK_RXTIMEOUT != -1
|
||||
ticks_t start = timer_clock();
|
||||
#endif
|
||||
|
||||
while (fifo_isempty_locked(&af->rx_fifo))
|
||||
{
|
||||
cpu_relax();
|
||||
#if CONFIG_AFSK_RXTIMEOUT != -1
|
||||
if (timer_clock() - start > ms_to_ticks(CONFIG_AFSK_RXTIMEOUT))
|
||||
return buf - (uint8_t *)_buf;
|
||||
#endif
|
||||
}
|
||||
|
||||
*buf++ = fifo_pop_locked(&af->rx_fifo);
|
||||
}
|
||||
|
||||
return buf - (uint8_t *)_buf;
|
||||
}
|
||||
|
||||
static size_t afsk_write(KFile *fd, const void *_buf, size_t size)
|
||||
{
|
||||
Afsk *af = AFSK_CAST(fd);
|
||||
const uint8_t *buf = (const uint8_t *)_buf;
|
||||
|
||||
while (size--)
|
||||
{
|
||||
while (fifo_isfull_locked(&af->tx_fifo))
|
||||
cpu_relax();
|
||||
|
||||
fifo_push_locked(&af->tx_fifo, *buf++);
|
||||
afsk_txStart(af);
|
||||
}
|
||||
|
||||
return buf - (const uint8_t *)_buf;
|
||||
}
|
||||
|
||||
static int afsk_flush(KFile *fd)
|
||||
{
|
||||
Afsk *af = AFSK_CAST(fd);
|
||||
while (af->sending)
|
||||
cpu_relax();
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int afsk_error(KFile *fd)
|
||||
{
|
||||
Afsk *af = AFSK_CAST(fd);
|
||||
int err;
|
||||
|
||||
ATOMIC(err = af->status);
|
||||
return err;
|
||||
}
|
||||
|
||||
static void afsk_clearerr(KFile *fd)
|
||||
{
|
||||
Afsk *af = AFSK_CAST(fd);
|
||||
ATOMIC(af->status = 0);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Initialize an AFSK1200 modem.
|
||||
* \param af Afsk context to operate on.
|
||||
* \param adc_ch ADC channel used by the demodulator.
|
||||
* \param dac_ch DAC channel used by the modulator.
|
||||
*/
|
||||
void afsk_init(Afsk *af, int adc_ch, int dac_ch)
|
||||
{
|
||||
#if CONFIG_AFSK_RXTIMEOUT != -1
|
||||
MOD_CHECK(timer);
|
||||
#endif
|
||||
memset(af, 0, sizeof(*af));
|
||||
af->adc_ch = adc_ch;
|
||||
af->dac_ch = dac_ch;
|
||||
|
||||
fifo_init(&af->delay_fifo, (uint8_t *)af->delay_buf, sizeof(af->delay_buf));
|
||||
fifo_init(&af->rx_fifo, af->rx_buf, sizeof(af->rx_buf));
|
||||
|
||||
/* Fill sample FIFO with 0 */
|
||||
for (int i = 0; i < SAMPLEPERBIT / 2; i++)
|
||||
fifo_push(&af->delay_fifo, 0);
|
||||
|
||||
fifo_init(&af->tx_fifo, af->tx_buf, sizeof(af->tx_buf));
|
||||
|
||||
AFSK_ADC_INIT(adc_ch, af);
|
||||
AFSK_DAC_INIT(dac_ch, af);
|
||||
AFSK_STROBE_INIT();
|
||||
LOG_INFO("MARK_INC %d, SPACE_INC %d\n", MARK_INC, SPACE_INC);
|
||||
|
||||
DB(af->fd._type = KFT_AFSK);
|
||||
af->fd.write = afsk_write;
|
||||
af->fd.read = afsk_read;
|
||||
af->fd.flush = afsk_flush;
|
||||
af->fd.error = afsk_error;
|
||||
af->fd.clearerr = afsk_clearerr;
|
||||
af->phase_inc = MARK_INC;
|
||||
}
|
|
@ -0,0 +1,185 @@
|
|||
|
||||
#ifndef NET_AFSK_H
|
||||
#define NET_AFSK_H
|
||||
|
||||
#include "cfg/cfg_afsk.h"
|
||||
#include "hw/hw_afsk.h"
|
||||
|
||||
#include <cfg/compiler.h>
|
||||
|
||||
#include <io/kfile.h>
|
||||
|
||||
#include <struct/fifobuf.h>
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* ADC sample rate.
|
||||
* The demodulator filters are designed to work at this frequency.
|
||||
* If you need to change this remember to update afsk_adc_isr().
|
||||
*/
|
||||
#define SAMPLERATE 9600
|
||||
|
||||
/**
|
||||
* Bitrate of the received/transmitted data.
|
||||
* The demodulator filters and decoderes are designed to work at this frequency.
|
||||
* If you need to change this remember to update afsk_adc_isr().
|
||||
*/
|
||||
#define BITRATE 1200
|
||||
|
||||
#define SAMPLEPERBIT (SAMPLERATE / BITRATE)
|
||||
|
||||
/**
|
||||
* HDLC (High-Level Data Link Control) context.
|
||||
* Maybe to be moved in a separate HDLC module one day.
|
||||
*/
|
||||
typedef struct Hdlc
|
||||
{
|
||||
uint8_t demod_bits; ///< Bitstream from the demodulator.
|
||||
uint8_t bit_idx; ///< Current received bit.
|
||||
uint8_t currchar; ///< Current received character.
|
||||
bool rxstart; ///< True if an HDLC_FLAG char has been found in the bitstream.
|
||||
} Hdlc;
|
||||
|
||||
/**
|
||||
* RX FIFO buffer full error.
|
||||
*/
|
||||
#define AFSK_RXFIFO_OVERRUN BV(0)
|
||||
|
||||
/**
|
||||
* AFSK1200 modem context.
|
||||
*/
|
||||
typedef struct Afsk
|
||||
{
|
||||
/** Base "class" */
|
||||
KFile fd;
|
||||
|
||||
/** ADC channel to be used by the demodulator */
|
||||
int adc_ch;
|
||||
|
||||
/** DAC channel to be used by the modulator */
|
||||
int dac_ch;
|
||||
|
||||
/** Current sample of bit for output data. */
|
||||
uint8_t sample_count;
|
||||
|
||||
/** Current character to be modulated */
|
||||
uint8_t curr_out;
|
||||
|
||||
/** Mask of current modulated bit */
|
||||
uint8_t tx_bit;
|
||||
|
||||
/** True if bit stuff is allowed, false otherwise */
|
||||
bool bit_stuff;
|
||||
|
||||
/** Counter for bit stuffing */
|
||||
uint8_t stuff_cnt;
|
||||
/**
|
||||
* DDS phase accumulator for generating modulated data.
|
||||
*/
|
||||
uint16_t phase_acc;
|
||||
|
||||
/** Current phase increment for current modulated bit */
|
||||
uint16_t phase_inc;
|
||||
|
||||
/** Delay line used to delay samples by (SAMPLEPERBIT / 2) */
|
||||
FIFOBuffer delay_fifo;
|
||||
|
||||
/**
|
||||
* Buffer for delay FIFO.
|
||||
* The 1 is added because the FIFO macros need
|
||||
* 1 byte more to handle a buffer (SAMPLEPERBIT / 2) bytes long.
|
||||
*/
|
||||
int8_t delay_buf[SAMPLEPERBIT / 2 + 1];
|
||||
|
||||
/** FIFO for received data */
|
||||
FIFOBuffer rx_fifo;
|
||||
|
||||
/** FIFO rx buffer */
|
||||
uint8_t rx_buf[CONFIG_AFSK_RX_BUFLEN];
|
||||
|
||||
/** FIFO for transmitted data */
|
||||
FIFOBuffer tx_fifo;
|
||||
|
||||
/** FIFO tx buffer */
|
||||
uint8_t tx_buf[CONFIG_AFSK_TX_BUFLEN];
|
||||
|
||||
/** IIR filter X cells, used to filter sampled data by the demodulator */
|
||||
int16_t iir_x[2];
|
||||
|
||||
/** IIR filter Y cells, used to filter sampled data by the demodulator */
|
||||
int16_t iir_y[2];
|
||||
|
||||
/**
|
||||
* Bits sampled by the demodulator are here.
|
||||
* Since ADC samplerate is higher than the bitrate, the bits here are
|
||||
* SAMPLEPERBIT times the bitrate.
|
||||
*/
|
||||
uint8_t sampled_bits;
|
||||
|
||||
/**
|
||||
* Current phase, needed to know when the bitstream at ADC speed
|
||||
* should be sampled.
|
||||
*/
|
||||
int8_t curr_phase;
|
||||
|
||||
/** Bits found by the demodulator at the correct bitrate speed. */
|
||||
uint8_t found_bits;
|
||||
|
||||
/** True while modem sends data */
|
||||
volatile bool sending;
|
||||
|
||||
/**
|
||||
* AFSK modem status.
|
||||
* If 0 all is ok, otherwise errors are present.
|
||||
*/
|
||||
volatile int status;
|
||||
|
||||
/** Hdlc context */
|
||||
Hdlc hdlc;
|
||||
|
||||
/**
|
||||
* Preamble length.
|
||||
* When the AFSK modem wants to send data, before sending the actual data,
|
||||
* shifts out preamble_len HDLC_FLAG characters.
|
||||
* This helps to synchronize the demodulator filters on the receiver side.
|
||||
*/
|
||||
uint16_t preamble_len;
|
||||
|
||||
/**
|
||||
* Trailer length.
|
||||
* After sending the actual data, the AFSK shifts out
|
||||
* trailer_len HDLC_FLAG characters.
|
||||
* This helps to synchronize the demodulator filters on the receiver side.
|
||||
*/
|
||||
uint16_t trailer_len;
|
||||
} Afsk;
|
||||
|
||||
#define KFT_AFSK MAKE_ID('A', 'F', 'S', 'K')
|
||||
|
||||
INLINE Afsk *AFSK_CAST(KFile *fd)
|
||||
{
|
||||
ASSERT(fd->_type == KFT_AFSK);
|
||||
return (Afsk *)fd;
|
||||
}
|
||||
|
||||
|
||||
void afsk_adc_isr(Afsk *af, int8_t sample);
|
||||
uint8_t afsk_dac_isr(Afsk *af);
|
||||
void afsk_init(Afsk *af, int adc_ch, int dac_ch);
|
||||
|
||||
|
||||
/**
|
||||
* \name Afsk filter types.
|
||||
* $WIZ$ afsk_filter_list = "AFSK_BUTTERWORTH", "AFSK_CHEBYSHEV"
|
||||
* \{
|
||||
*/
|
||||
#define AFSK_BUTTERWORTH 0
|
||||
#define AFSK_CHEBYSHEV 1
|
||||
/* \} */
|
||||
|
||||
int afsk_testSetup(void);
|
||||
int afsk_testRun(void);
|
||||
int afsk_testTearDown(void);
|
||||
|
||||
#endif /* NET_AFSK_H */
|
|
@ -0,0 +1,149 @@
|
|||
/**
|
||||
* \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 2008 Develer S.r.l. (http://www.develer.com/)
|
||||
*
|
||||
* -->
|
||||
*
|
||||
* \brief Configuration file for the ADC module.
|
||||
*
|
||||
* \author Daniele Basile <asterix@develer.com>
|
||||
*/
|
||||
|
||||
#ifndef CFG_ADC_H
|
||||
#define CFG_ADC_H
|
||||
|
||||
/**
|
||||
* Module logging level.
|
||||
*
|
||||
* $WIZ$ type = "enum"
|
||||
* $WIZ$ value_list = "log_level"
|
||||
*/
|
||||
#define ADC_LOG_LEVEL LOG_LVL_INFO
|
||||
|
||||
/**
|
||||
* Module logging format.
|
||||
*
|
||||
* $WIZ$ type = "enum"
|
||||
* $WIZ$ value_list = "log_format"
|
||||
*/
|
||||
#define ADC_LOG_FORMAT LOG_FMT_VERBOSE
|
||||
|
||||
/**
|
||||
* Clock Frequency for ADC conversion.
|
||||
* This frequency will be rounded down to an integer
|
||||
* submultiple of CPU_FREQ.
|
||||
*
|
||||
* $WIZ$ type = "int"
|
||||
* $WIZ$ supports = "at91"
|
||||
* $WIZ$ max = 5000000
|
||||
*/
|
||||
#define CONFIG_ADC_CLOCK 4800000UL
|
||||
|
||||
/**
|
||||
* Minimum time for starting up a conversion [us].
|
||||
*
|
||||
* $WIZ$ type = "int"
|
||||
* $WIZ$ min = 20
|
||||
* $WIZ$ supports = "at91"
|
||||
*/
|
||||
#define CONFIG_ADC_STARTUP_TIME 20
|
||||
|
||||
/**
|
||||
* Minimum time for sample and hold [ns].
|
||||
*
|
||||
* $WIZ$ type = "int"
|
||||
* $WIZ$ min = 600
|
||||
* $WIZ$ supports = "at91"
|
||||
*/
|
||||
#define CONFIG_ADC_SHTIME 834
|
||||
|
||||
/**
|
||||
* ADC Voltage Reference.
|
||||
*
|
||||
* $WIZ$ type = "enum"
|
||||
* $WIZ$ value_list = "avr_adc_refs"
|
||||
* $WIZ$ supports = "avr"
|
||||
*/
|
||||
#define CONFIG_ADC_AVR_REF ADC_AVR_AVCC
|
||||
|
||||
/**
|
||||
* ADC clock divisor from main crystal.
|
||||
*
|
||||
* $WIZ$ type = "int"
|
||||
* $WIZ$ min = 2
|
||||
* $WIZ$ max = 128
|
||||
* $WIZ$ supports = "avr"
|
||||
*/
|
||||
#define CONFIG_ADC_AVR_DIVISOR 2
|
||||
|
||||
/**
|
||||
* Enable ADC strobe for debugging ADC ISR.
|
||||
*
|
||||
* $WIZ$ type = "boolean"
|
||||
*/
|
||||
#define CONFIG_ADC_STROBE 0
|
||||
|
||||
|
||||
/**
|
||||
* Start up timer[s] = startup value / ADCClock [Hz]
|
||||
*
|
||||
* $WIZ$ type = "enum"
|
||||
* $WIZ$ value_list = "sam3_adc_sut"
|
||||
* $WIZ$ supports = "sam3"
|
||||
*/
|
||||
#define CONFIG_ADC_SUT ADC_SUT512
|
||||
|
||||
/**
|
||||
* Analog Settling Time[s] = settling value / ADCClock[Hz]
|
||||
*
|
||||
* $WIZ$ type = "enum"
|
||||
* $WIZ$ value_list = "sam3_adc_stt"
|
||||
* $WIZ$ supports = "sam3"
|
||||
*/
|
||||
#define CONFIG_ADC_STTLING ADC_AST17
|
||||
|
||||
/**
|
||||
* Tracking Time[s] = (TRACKTIM + 1) / ADCClock[Hz]
|
||||
*
|
||||
* $WIZ$ type = "int"
|
||||
* $WIZ$ min = 0
|
||||
* $WIZ$ supports = "sam3"
|
||||
*/
|
||||
#define CONFIG_ADC_TRACKTIM 0
|
||||
|
||||
/**
|
||||
* Transfer Period[s] = (TRANSFER * 2 + 3) ADCClock[Hz]
|
||||
*
|
||||
* $WIZ$ type = "int"
|
||||
* $WIZ$ min = 0
|
||||
* $WIZ$ supports = "sam3"
|
||||
*/
|
||||
#define CONFIG_ADC_TRANSFER 1
|
||||
|
||||
#endif /* CFG_ADC_H */
|
|
@ -0,0 +1,113 @@
|
|||
/**
|
||||
* \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 2008 Develer S.r.l. (http://www.develer.com/)
|
||||
*
|
||||
* -->
|
||||
*
|
||||
* \brief Configuration file for AFSK1200 modem.
|
||||
*
|
||||
* \author Francesco Sacchi <asterix@develer.com>
|
||||
*/
|
||||
|
||||
#ifndef CFG_AFSK_H
|
||||
#define CFG_AFSK_H
|
||||
|
||||
/**
|
||||
* Module logging level.
|
||||
*
|
||||
* $WIZ$ type = "enum"
|
||||
* $WIZ$ value_list = "log_level"
|
||||
*/
|
||||
#define AFSK_LOG_LEVEL LOG_LVL_WARN
|
||||
|
||||
/**
|
||||
* Module logging format.
|
||||
*
|
||||
* $WIZ$ type = "enum"
|
||||
* $WIZ$ value_list = "log_format"
|
||||
*/
|
||||
#define AFSK_LOG_FORMAT LOG_FMT_TERSE
|
||||
|
||||
|
||||
/**
|
||||
* AFSK discriminator filter type.
|
||||
*
|
||||
* $WIZ$ type = "enum"; value_list = "afsk_filter_list"
|
||||
*/
|
||||
#define CONFIG_AFSK_FILTER AFSK_CHEBYSHEV
|
||||
|
||||
|
||||
/**
|
||||
* AFSK receiver buffer length.
|
||||
*
|
||||
* $WIZ$ type = "int"
|
||||
* $WIZ$ min = 2
|
||||
*/
|
||||
#define CONFIG_AFSK_RX_BUFLEN 32
|
||||
|
||||
/**
|
||||
* AFSK transimtter buffer length.
|
||||
*
|
||||
* $WIZ$ type = "int"
|
||||
* $WIZ$ min = 2
|
||||
*/
|
||||
#define CONFIG_AFSK_TX_BUFLEN 32
|
||||
|
||||
/**
|
||||
* AFSK DAC sample rate for modem outout.
|
||||
* $WIZ$ type = "int"
|
||||
* $WIZ$ min = 2400
|
||||
*/
|
||||
#define CONFIG_AFSK_DAC_SAMPLERATE 9600
|
||||
|
||||
/**
|
||||
* AFSK RX timeout in ms, set to -1 to disable.
|
||||
* $WIZ$ type = "int"
|
||||
* $WIZ$ min = -1
|
||||
*/
|
||||
#define CONFIG_AFSK_RXTIMEOUT 0
|
||||
|
||||
|
||||
/**
|
||||
* AFSK Preamble length in [ms], before starting transmissions.
|
||||
* $WIZ$ type = "int"
|
||||
* $WIZ$ min = 1
|
||||
*/
|
||||
#define CONFIG_AFSK_PREAMBLE_LEN 300UL
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* AFSK Trailer length in [ms], before stopping transmissions.
|
||||
* $WIZ$ type = "int"
|
||||
* $WIZ$ min = 1
|
||||
*/
|
||||
#define CONFIG_AFSK_TRAILER_LEN 50UL
|
||||
|
||||
#endif /* CFG_AFSK_H */
|
|
@ -0,0 +1,75 @@
|
|||
/**
|
||||
* \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 2008 Develer S.r.l. (http://www.develer.com/)
|
||||
*
|
||||
* -->
|
||||
*
|
||||
* \brief Configuration file for the AX25 protocol module.
|
||||
*
|
||||
* \author Francesco Sacchi <batt@develer.com>
|
||||
*/
|
||||
|
||||
#ifndef CFG_AX25_H
|
||||
#define CFG_AX25_H
|
||||
|
||||
/**
|
||||
* Module logging level.
|
||||
*
|
||||
* $WIZ$ type = "enum"
|
||||
* $WIZ$ value_list = "log_level"
|
||||
*/
|
||||
#define AX25_LOG_LEVEL LOG_LVL_WARN
|
||||
|
||||
/**
|
||||
* Module logging format.
|
||||
*
|
||||
* $WIZ$ type = "enum"
|
||||
* $WIZ$ value_list = "log_format"
|
||||
*/
|
||||
#define AX25_LOG_FORMAT LOG_FMT_TERSE
|
||||
|
||||
/**
|
||||
* AX25 frame buffer lenght.
|
||||
*
|
||||
* $WIZ$ type = "int"
|
||||
* $WIZ$ min = 18
|
||||
*/
|
||||
#define CONFIG_AX25_FRAME_BUF_LEN 330
|
||||
|
||||
|
||||
/**
|
||||
* Enable repeaters listing in AX25 frames.
|
||||
* If enabled use 56 addtional bytes of RAM
|
||||
* for each message received.
|
||||
*
|
||||
* $WIZ$ type = "boolean"
|
||||
*/
|
||||
#define CONFIG_AX25_RPT_LST 1
|
||||
|
||||
#endif /* CFG_AX25_H */
|
|
@ -0,0 +1,67 @@
|
|||
/**
|
||||
* \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 2008 Develer S.r.l. (http://www.develer.com/)
|
||||
*
|
||||
* -->
|
||||
*
|
||||
* \brief Configuration file for BattFS module.
|
||||
*
|
||||
* \author Daniele Basile <asterix@develer.com>
|
||||
*/
|
||||
|
||||
#ifndef CFG_BATTFS_H
|
||||
#define CFG_BATTFS_H
|
||||
|
||||
|
||||
/**
|
||||
* Module logging level.
|
||||
*
|
||||
* $WIZ$ type = "enum"
|
||||
* $WIZ$ value_list = "log_level"
|
||||
*/
|
||||
#define BATTFS_LOG_LEVEL LOG_LVL_INFO
|
||||
|
||||
/**
|
||||
* module logging format.
|
||||
*
|
||||
* $WIZ$ type = "enum"
|
||||
* $WIZ$ value_list = "log_format"
|
||||
*/
|
||||
#define BATTFS_LOG_FORMAT LOG_FMT_VERBOSE
|
||||
|
||||
/**
|
||||
* Set to 1 to enable free page shuffling.
|
||||
* This increase memories life but makes debugging
|
||||
* more difficult due to its unrepeteable state.
|
||||
* $WIZ$ type = "boolean"
|
||||
*/
|
||||
#define CONFIG_BATTFS_SHUFFLE_FREE_PAGES 0
|
||||
|
||||
|
||||
#endif /* BATTFS */
|
|
@ -0,0 +1,71 @@
|
|||
/**
|
||||
* \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 2010 Develer S.r.l. (http://www.develer.com/)
|
||||
*
|
||||
* -->
|
||||
*
|
||||
* \brief Configuration file for the context switch benchmark.
|
||||
*
|
||||
* \author Daniele Basile <asterix@develer.com>
|
||||
*/
|
||||
|
||||
#ifndef CFG_CONTEXT_SWITCH_H
|
||||
#define CFG_CONTEXT_SWITCH_H
|
||||
|
||||
/**
|
||||
* Use hp timer for the bechmark.
|
||||
*
|
||||
* $WIZ$ type = "boolean"
|
||||
* $WIZ$ module= "boolean"
|
||||
* $WIZ$ conditional_deps = "ser"
|
||||
*/
|
||||
#define CONFIG_USE_HP_TIMER 1
|
||||
|
||||
|
||||
/**
|
||||
* Use board led for benchmark.
|
||||
*
|
||||
* $WIZ$ type = "boolean"
|
||||
*/
|
||||
#define CONFIG_USE_LED 1
|
||||
|
||||
|
||||
/**
|
||||
* Debug console port.
|
||||
* $WIZ$ type = "int"; min = 0
|
||||
*/
|
||||
#define CONFIG_CTX_DEBUG_PORT 0
|
||||
|
||||
/**
|
||||
* Baudrate for the debug console.
|
||||
* $WIZ$ type = "int"; min = 300
|
||||
*/
|
||||
#define CONFIG_CTX_DEBUG_BAUDRATE 115200UL
|
||||
|
||||
#endif /* CFG_CONTEXT_SWITCH_H */
|
|
@ -0,0 +1,88 @@
|
|||
/**
|
||||
* \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 2011 Develer S.r.l. (http://www.develer.com/)
|
||||
* All Rights Reserved.
|
||||
* -->
|
||||
*
|
||||
* \brief Configuration file for DAC module.
|
||||
*
|
||||
*
|
||||
* \author Daniele Basile <asterix@develer.com>
|
||||
*/
|
||||
|
||||
#ifndef CFG_DAC_H
|
||||
#define CFG_DAC_H
|
||||
|
||||
/**
|
||||
* Module logging level.
|
||||
*
|
||||
* $WIZ$ type = "enum"
|
||||
* $WIZ$ value_list = "log_level"
|
||||
*/
|
||||
#define DAC_LOG_LEVEL LOG_LVL_WARN
|
||||
|
||||
/**
|
||||
* Module logging format.
|
||||
*
|
||||
* $WIZ$ type = "enum"
|
||||
* $WIZ$ value_list = "log_format"
|
||||
*/
|
||||
#define DAC_LOG_FORMAT LOG_FMT_TERSE
|
||||
|
||||
/**
|
||||
* DAC Refresh Period = 1024*REFRESH/DACC Clock
|
||||
*
|
||||
* $WIZ$ type = "int"
|
||||
* $WIZ$ supports = "sam3x"
|
||||
* $WIZ$ min = 0
|
||||
* $WIZ$ max = 65536
|
||||
*/
|
||||
#define CONFIG_DAC_REFRESH 16
|
||||
|
||||
/**
|
||||
* DAC Startup Time Selection.
|
||||
* see datasheet table.
|
||||
*
|
||||
* $WIZ$ type = "int"
|
||||
* $WIZ$ supports = "sam3x"
|
||||
* $WIZ$ min = 0
|
||||
* $WIZ$ max = 63
|
||||
*/
|
||||
#define CONFIG_DAC_STARTUP 0
|
||||
|
||||
/**
|
||||
* DAC Trigger Selection.
|
||||
*
|
||||
* $WIZ$ type = "enum"
|
||||
* $WIZ$ value_list = "sam3x_dac_tc"
|
||||
* $WIZ$ supports = "sam3x"
|
||||
*/
|
||||
#define CONFIG_DAC_TIMER DACC_TRGSEL_TIO_CH0
|
||||
|
||||
#endif /* CFG_DAC_H */
|
|
@ -0,0 +1,55 @@
|
|||
/**
|
||||
* \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 2008 Develer S.r.l. (http://www.develer.com/)
|
||||
* All Rights Reserved.
|
||||
* -->
|
||||
*
|
||||
* \brief Configuration file for data flash memory module.
|
||||
*
|
||||
* \author Daniele Basile <asterix@develer.com>
|
||||
*/
|
||||
|
||||
#ifndef CFG_DATAFLASH_H
|
||||
#define CFG_DATAFLASH_H
|
||||
|
||||
/**
|
||||
* Module logging level.
|
||||
* $WIZ$ type = "enum"
|
||||
* $WIZ$ value_list = "log_level"
|
||||
*/
|
||||
#define DATAFLASH_LOG_LEVEL LOG_LVL_INFO
|
||||
|
||||
/**
|
||||
* Module logging format.
|
||||
* $WIZ$ type = "enum"
|
||||
* $WIZ$ value_list = "log_format"
|
||||
*/
|
||||
#define DATAFLASH_LOG_FORMAT LOG_FMT_TERSE
|
||||
|
||||
#endif /* CFG_DATAFLASH_H */
|
|
@ -0,0 +1,111 @@
|
|||
/**
|
||||
* \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 2008 Develer S.r.l. (http://www.develer.com/)
|
||||
* All Rights Reserved.
|
||||
* -->
|
||||
*
|
||||
* \brief Configuration file for DC motor module.
|
||||
*
|
||||
*
|
||||
* \author Daniele Basile <asterix@develer.com>
|
||||
*/
|
||||
|
||||
#ifndef CFG_DC_MOTOR_H
|
||||
#define CFG_DC_MOTOR_H
|
||||
|
||||
/**
|
||||
* Number of the DC motors to manage.
|
||||
*
|
||||
* $WIZ$ type = "int"
|
||||
* $WIZ$ min = 1
|
||||
*/
|
||||
#define CONFIG_NUM_DC_MOTOR 4
|
||||
|
||||
/**
|
||||
* Module logging level.
|
||||
*
|
||||
* $WIZ$ type = "enum"
|
||||
* $WIZ$ value_list = "log_level"
|
||||
*/
|
||||
#define DC_MOTOR_LOG_LEVEL LOG_LVL_INFO
|
||||
|
||||
/**
|
||||
* Module logging format.
|
||||
*
|
||||
* $WIZ$ type = "enum"
|
||||
* $WIZ$ value_list = "log_format"
|
||||
*/
|
||||
#define DC_MOTOR_LOG_FORMAT LOG_FMT_VERBOSE
|
||||
|
||||
|
||||
/**
|
||||
* Min value of DC motor speed.
|
||||
* \note Generally this value is the min value of the ADC conversion,
|
||||
* if you use it.
|
||||
*
|
||||
* $WIZ$ type = "int"
|
||||
*/
|
||||
#define CONFIG_DC_MOTOR_MIN_SPEED 0
|
||||
|
||||
|
||||
/**
|
||||
* Max value of DC motor speed.
|
||||
* \note Generally this value is the max value of the ADC conversion,
|
||||
* if you use it.
|
||||
*
|
||||
* $WIZ$ type = "int"
|
||||
* $WIZ$ max = 65535
|
||||
*/
|
||||
#define CONFIG_DC_MOTOR_MAX_SPEED 65535
|
||||
|
||||
|
||||
/**
|
||||
* Sampling period in millisecond.
|
||||
* $WIZ$ type = "int"
|
||||
*/
|
||||
#define CONFIG_DC_MOTOR_SAMPLE_PERIOD 40
|
||||
|
||||
/**
|
||||
* Amount of millisecond before to read sample.
|
||||
* $WIZ$ type = "int"
|
||||
*/
|
||||
#define CONFIG_DC_MOTOR_SAMPLE_DELAY 2
|
||||
|
||||
/**
|
||||
* This control set which mode the driver use to lock share
|
||||
* resources when we use the preempitive kernel.
|
||||
* If we set to 1 we use the semaphore module otherwise the
|
||||
* driver disable the switch context every time we need to access
|
||||
* to shared sources.
|
||||
*
|
||||
* $WIZ$ type = "int"
|
||||
*/
|
||||
#define CONFIG_DC_MOTOR_USE_SEM 1
|
||||
|
||||
#endif /* CFG_DC_MOTOR_H */
|
|
@ -0,0 +1,70 @@
|
|||
/**
|
||||
* \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 2008 Develer S.r.l. (http://www.develer.com/)
|
||||
* All Rights Reserved.
|
||||
* -->
|
||||
*
|
||||
* \brief Configuration file for Debug module.
|
||||
*
|
||||
*
|
||||
* \author Daniele Basile <asterix@develer.com>
|
||||
*/
|
||||
|
||||
#ifndef CFG_DEBUG_H
|
||||
#define CFG_DEBUG_H
|
||||
|
||||
/**
|
||||
* Debug console port.
|
||||
* $WIZ$ type = "int"; min = 0
|
||||
*/
|
||||
#define CONFIG_KDEBUG_PORT 0
|
||||
|
||||
/**
|
||||
* Baudrate for the debug console.
|
||||
* $WIZ$ type = "int"; min = 300
|
||||
*/
|
||||
#define CONFIG_KDEBUG_BAUDRATE 115200UL
|
||||
|
||||
/**
|
||||
* Clock source for the UART module. You need to write the code to reprogram the respective clock at the required frequency in your project before calling kdbg_init().
|
||||
*
|
||||
* $WIZ$ type = "enum"
|
||||
* $WIZ$ value_list = "kdbg_clk_src"
|
||||
* $WIZ$ supports = "msp430"
|
||||
*/
|
||||
#define CONFIG_KDEBUG_CLOCK_SOURCE KDBG_UART_SMCLK
|
||||
|
||||
/**
|
||||
* Clock frequency. (Only if different from MCLK's frequency, otherwise leave it zero)
|
||||
* $WIZ$ type = "int"; min = 0
|
||||
* $WIZ$ supports = "msp430"
|
||||
*/
|
||||
#define CONFIG_KDEBUG_CLOCK_FREQ 0UL
|
||||
|
||||
#endif /* CFG_DEBUG_H */
|
|
@ -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 2010 Develer S.r.l. (http://www.develer.com/)
|
||||
*
|
||||
* -->
|
||||
*
|
||||
* \brief Configuration file for the Eeprom module.
|
||||
*
|
||||
* \author Daniele Basile <asterix@develer.com>
|
||||
*/
|
||||
|
||||
#ifndef CFG_EEPROM_H
|
||||
#define CFG_EEPROM_H
|
||||
|
||||
/**
|
||||
* Module logging level.
|
||||
*
|
||||
* $WIZ$ type = "enum"
|
||||
* $WIZ$ value_list = "log_level"
|
||||
*/
|
||||
#define EEPROM_LOG_LEVEL LOG_LVL_INFO
|
||||
|
||||
/**
|
||||
* Module logging format.
|
||||
*
|
||||
* $WIZ$ type = "enum"
|
||||
* $WIZ$ value_list = "log_format"
|
||||
*/
|
||||
#define EEPROM_LOG_FORMAT LOG_FMT_TERSE
|
||||
|
||||
/**
|
||||
* Check this to disable Eeprom deprecated API support.
|
||||
*
|
||||
* $WIZ$ type = "boolean"
|
||||
*/
|
||||
#define CONFIG_EEPROM_DISABLE_OLD_API 0
|
||||
|
||||
#endif /* CFG_EEPROM_H */
|
|
@ -0,0 +1,73 @@
|
|||
/**
|
||||
* \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 2008 Develer S.r.l. (http://www.develer.com/)
|
||||
* -->
|
||||
*
|
||||
* \author Daniele Basile <asterix@develer.com>
|
||||
*
|
||||
* \brief Configuration file for embedded flash module.
|
||||
*/
|
||||
|
||||
#ifndef CFG_EMB_FLASH_H
|
||||
#define CFG_EMB_FLASH_H
|
||||
|
||||
/**
|
||||
* Module logging level.
|
||||
*
|
||||
* $WIZ$ type = "enum"
|
||||
* $WIZ$ value_list = "log_level"
|
||||
*/
|
||||
#define CONFIG_FLASH_EMB_LOG_LEVEL LOG_LVL_INFO
|
||||
|
||||
/**
|
||||
* module logging format.
|
||||
*
|
||||
* $WIZ$ type = "enum"
|
||||
* $WIZ$ value_list = "log_format"
|
||||
*/
|
||||
#define CONFIG_FLASH_EMB_LOG_FORMAT LOG_FMT_TERSE
|
||||
|
||||
|
||||
/**
|
||||
* Write emb flash timeout.
|
||||
* For how many milliseconds the cpu wait
|
||||
* to complete write operation.
|
||||
*
|
||||
* $WIZ$ type = "int"
|
||||
*/
|
||||
#define CONFIG_FLASH_WR_TIMEOUT 100
|
||||
|
||||
/**
|
||||
* Check this to disable embedded flash deprecated API support.
|
||||
*
|
||||
* $WIZ$ type = "boolean"
|
||||
*/
|
||||
#define CONFIG_FLASH_DISABLE_OLD_API 0
|
||||
|
||||
#endif /* CFG_FLASH_AT91_H */
|
|
@ -0,0 +1,57 @@
|
|||
/**
|
||||
* \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 2010 Develer S.r.l. (http://www.develer.com/)
|
||||
*
|
||||
* -->
|
||||
*
|
||||
* \author Andrea Righi <arighi@develer.com>
|
||||
*
|
||||
* \brief Configuration file for the generic ethernet driver module
|
||||
*/
|
||||
|
||||
#ifndef CFG_ETH_H
|
||||
#define CFG_ETH_H
|
||||
|
||||
/**
|
||||
* Module logging level.
|
||||
*
|
||||
* $WIZ$ type = "enum"
|
||||
* $WIZ$ value_list = "log_level"
|
||||
*/
|
||||
#define ETH_LOG_LEVEL LOG_LVL_WARN
|
||||
|
||||
/**
|
||||
* module logging format.
|
||||
*
|
||||
* $WIZ$ type = "enum"
|
||||
* $WIZ$ value_list = "log_format"
|
||||
*/
|
||||
#define ETH_LOG_FORMAT LOG_FMT_TERSE
|
||||
|
||||
#endif /* CFG_ETH_H */
|
|
@ -0,0 +1,156 @@
|
|||
/**
|
||||
* \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 2009 Develer S.r.l. (http://www.develer.com/)
|
||||
* All Rights Reserved.
|
||||
* -->
|
||||
*
|
||||
* \brief Configuration file for Fat module.
|
||||
*
|
||||
*
|
||||
* \author Luca Ottaviano <lottaviano@develer.com>
|
||||
* \author Francesco Sacchi <batt@develer.com>
|
||||
*/
|
||||
|
||||
#ifndef CFG_FAT_H
|
||||
#define CFG_FAT_H
|
||||
|
||||
/**
|
||||
* Module logging level.
|
||||
*
|
||||
* $WIZ$ type = "enum"
|
||||
* $WIZ$ value_list = "log_level"
|
||||
*/
|
||||
#define FAT_LOG_LEVEL LOG_LVL_ERR
|
||||
|
||||
/**
|
||||
* Module logging format.
|
||||
*
|
||||
* $WIZ$ type = "enum"
|
||||
* $WIZ$ value_list = "log_format"
|
||||
*/
|
||||
#define FAT_LOG_FORMAT LOG_FMT_VERBOSE
|
||||
|
||||
|
||||
/**
|
||||
* Use word alignment to access FAT structure.
|
||||
* $WIZ$ type = "boolean"
|
||||
*/
|
||||
#define CONFIG_FAT_WORD_ACCESS 0
|
||||
#define _WORD_ACCESS CONFIG_FAT_WORD_ACCESS
|
||||
|
||||
/**
|
||||
* Enable read functions only.
|
||||
* $WIZ$ type = "boolean"
|
||||
*/
|
||||
#define CONFIG_FAT_FS_READONLY 0
|
||||
#define _FS_READONLY CONFIG_FAT_FS_READONLY
|
||||
|
||||
/**
|
||||
* Minimization level to remove some functions.
|
||||
* $WIZ$ type = "int"; min = 0; max = 3
|
||||
*/
|
||||
#define CONFIG_FAT_FS_MINIMIZE 0
|
||||
#define _FS_MINIMIZE CONFIG_FAT_FS_MINIMIZE
|
||||
|
||||
/**
|
||||
* If enabled, this reduces memory consumption 512 bytes each file object by using a shared buffer.
|
||||
* $WIZ$ type = "boolean"
|
||||
*/
|
||||
#define CONFIG_FAT_FS_TINY 1
|
||||
#define _FS_TINY CONFIG_FAT_FS_TINY
|
||||
|
||||
/**
|
||||
* To enable string functions, set _USE_STRFUNC to 1 or 2.
|
||||
* $WIZ$ type = "int"
|
||||
* $WIZ$ supports = "False"
|
||||
*/
|
||||
#define CONFIG_FAT_USE_STRFUNC 0
|
||||
#define _USE_STRFUNC CONFIG_FAT_USE_STRFUNC
|
||||
|
||||
/**
|
||||
* Enable f_mkfs function. Requires CONFIG_FAT_FS_READONLY = 0.
|
||||
* $WIZ$ type = "boolean"
|
||||
*/
|
||||
#define CONFIG_FAT_USE_MKFS 0
|
||||
#define _USE_MKFS (CONFIG_FAT_USE_MKFS && !CONFIG_FAT_FS_READONLY)
|
||||
|
||||
/**
|
||||
* Enable f_forward function. Requires CONFIG_FAT_FS_TINY.
|
||||
* $WIZ$ type = "boolean"
|
||||
*/
|
||||
#define CONFIG_FAT_USE_FORWARD 0
|
||||
#define _USE_FORWARD (CONFIG_FAT_USE_FORWARD && CONFIG_FAT_FS_TINY)
|
||||
|
||||
/**
|
||||
* Number of volumes (logical drives) to be used.
|
||||
* $WIZ$ type = "int"; min = 1; max = 255
|
||||
*/
|
||||
#define CONFIG_FAT_DRIVES 1
|
||||
#define _DRIVES CONFIG_FAT_DRIVES
|
||||
|
||||
/**
|
||||
* Maximum sector size to be handled. (512/1024/2048/4096).
|
||||
* 512 for memory card and hard disk, 1024 for floppy disk, 2048 for MO disk
|
||||
* $WIZ$ type = "int"; min = 512; max = 4096
|
||||
*/
|
||||
#define CONFIG_FAT_MAX_SS 512
|
||||
#define _MAX_SS CONFIG_FAT_MAX_SS
|
||||
|
||||
/**
|
||||
* When _MULTI_PARTITION is set to 0, each volume is bound to the same physical
|
||||
* drive number and can mount only first primaly partition. When it is set to 1,
|
||||
* each volume is tied to the partitions listed in Drives[].
|
||||
* $WIZ$ type = "boolean"
|
||||
* $WIZ$ supports = "False"
|
||||
*/
|
||||
#define CONFIG_FAT_MULTI_PARTITION 0
|
||||
#define _MULTI_PARTITION CONFIG_FAT_MULTI_PARTITION
|
||||
|
||||
/**
|
||||
* Specifies the OEM code page to be used on the target system.
|
||||
* $WIZ$ type = "int"
|
||||
*/
|
||||
#define CONFIG_FAT_CODE_PAGE 850
|
||||
#define _CODE_PAGE CONFIG_FAT_CODE_PAGE
|
||||
|
||||
/**
|
||||
* Support for long filenames. Enable only if you have a valid Microsoft license.
|
||||
* $WIZ$ type = "boolean"
|
||||
*/
|
||||
#define CONFIG_FAT_USE_LFN 0
|
||||
#define _USE_LFN CONFIG_FAT_USE_LFN
|
||||
|
||||
/**
|
||||
* Maximum Long File Name length to handle.
|
||||
* $WIZ$ type = "int"; min = 8; max = 255
|
||||
*/
|
||||
#define CONFIG_FAT_MAX_LFN 255
|
||||
#define _MAX_LFN CONFIG_FAT_MAX_LFN
|
||||
|
||||
#endif /* CFG_FAT_H */
|
|
@ -0,0 +1,51 @@
|
|||
/**
|
||||
* \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 2008 Develer S.r.l. (http://www.develer.com/)
|
||||
* All Rights Reserved.
|
||||
* -->
|
||||
*
|
||||
* \brief Configuration file for flash25 module.
|
||||
*
|
||||
*
|
||||
* \author Daniele Basile <asterix@develer.com>
|
||||
*/
|
||||
|
||||
#ifndef CFG_FLASH25_H
|
||||
#define CFG_FLASH25_H
|
||||
|
||||
/**
|
||||
* Eeprom memory type.
|
||||
*
|
||||
*$WIZ$ type = "enum"
|
||||
*$WIZ$ value_list = "flash25_list"
|
||||
*/
|
||||
#define CONFIG_FLASH25 FLASH25_AT25F2048
|
||||
|
||||
#endif /* CFG_FALSH25_H */
|
||||
|
|
@ -0,0 +1,65 @@
|
|||
/**
|
||||
* \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 2008 Develer S.r.l. (http://www.develer.com/)
|
||||
* All Rights Reserved.
|
||||
* -->
|
||||
*
|
||||
* \brief Configuration file for formatted write module.
|
||||
*
|
||||
* \author Daniele Basile <asterix@develer.com>
|
||||
*/
|
||||
|
||||
#ifndef CFG_FORMATWR_H
|
||||
#define CFG_FORMATWR_H
|
||||
|
||||
/**
|
||||
* printf()-style formatter configuration.
|
||||
* $WIZ$ type = "enum"; value_list = "printf_list"
|
||||
*
|
||||
* \sa PRINTF_DISABLED
|
||||
* \sa PRINTF_NOMODIFIERS
|
||||
* \sa PRINTF_REDUCED
|
||||
* \sa PRINTF_NOFLOAT
|
||||
* \sa PRINTF_FULL
|
||||
*/
|
||||
#define CONFIG_PRINTF PRINTF_FULL
|
||||
|
||||
/**
|
||||
* Size of buffer to format "%" sequences in printf.
|
||||
*
|
||||
* Warning: no check on buffer size is done when formatting, be careful especially
|
||||
* with big numbers and %f formatting.
|
||||
*
|
||||
* $WIZ$ type = "int"
|
||||
* $WIZ$ min = 4
|
||||
*/
|
||||
#define CONFIG_FRMWRI_BUFSIZE 134
|
||||
|
||||
#endif /* CFG_FORMATWR_H */
|
||||
|
|
@ -0,0 +1,67 @@
|
|||
/**
|
||||
* \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 2008 Develer S.r.l. (http://www.develer.com/)
|
||||
* All Rights Reserved.
|
||||
* -->
|
||||
*
|
||||
* \brief Configuration file for GFX module.
|
||||
*
|
||||
* \author Daniele Basile <asterix@develer.com>
|
||||
*/
|
||||
|
||||
#ifndef CFG_GFX_H
|
||||
#define CFG_GFX_H
|
||||
|
||||
/**
|
||||
* Enable line clipping algorithm.
|
||||
* $WIZ$ type = "boolean"
|
||||
*/
|
||||
#define CONFIG_GFX_CLIPPING 1
|
||||
|
||||
/**
|
||||
* Enable text rendering in bitmaps.
|
||||
* $WIZ$ type = "boolean"
|
||||
*/
|
||||
#define CONFIG_GFX_TEXT 1
|
||||
|
||||
/**
|
||||
* Enable virtual coordinate system.
|
||||
* $WIZ$ type = "boolean"
|
||||
*/
|
||||
#define CONFIG_GFX_VCOORDS 1
|
||||
|
||||
/**
|
||||
* Select bitmap pixel format.
|
||||
* $WIZ$ type = "enum"
|
||||
* $WIZ$ value_list = "bitmap_format"
|
||||
*/
|
||||
#define CONFIG_BITMAP_FMT BITMAP_FMT_PLANAR_V_LSB
|
||||
|
||||
#endif /* CFG_GFX_H */
|
||||
|
|
@ -0,0 +1,51 @@
|
|||
/**
|
||||
* \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 2008 Develer S.r.l. (http://www.develer.com/)
|
||||
* All Rights Reserved.
|
||||
* -->
|
||||
*
|
||||
* \brief Configuration file for hashtable module.
|
||||
*
|
||||
* \author Daniele Basile <asterix@develer.com>
|
||||
*/
|
||||
|
||||
#ifndef CFG_HASHTABLE_H
|
||||
#define CFG_HASHTABLE_H
|
||||
|
||||
/**
|
||||
* Enable/disable support to declare special hash tables which maintain a copy of the key internally instead of relying on the hook to extract it from the data.
|
||||
*
|
||||
* $WIZ$ type = "boolean"
|
||||
*/
|
||||
#define CONFIG_HT_OPTIONAL_INTERNAL_KEY 1
|
||||
|
||||
#endif /* CFG_HASHTABLE_H */
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,50 @@
|
|||
/**
|
||||
* \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 2008 Develer S.r.l. (http://www.develer.com/)
|
||||
* All Rights Reserved.
|
||||
* -->
|
||||
*
|
||||
* \brief Configuration file for heap module.
|
||||
*
|
||||
*
|
||||
* \author Daniele Basile <asterix@develer.com>
|
||||
*/
|
||||
|
||||
#ifndef CFG_HEAP_H
|
||||
#define CFG_HEAP_H
|
||||
|
||||
/**
|
||||
* Enable malloc/free like API.
|
||||
* $WIZ$ type = "boolean"
|
||||
*/
|
||||
#define CONFIG_HEAP_MALLOC 1
|
||||
|
||||
#endif /* CFG_HEAP_H */
|
||||
|
||||
|
|
@ -0,0 +1,83 @@
|
|||
/**
|
||||
* \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 2008 Develer S.r.l. (http://www.develer.com/)
|
||||
* All Rights Reserved.
|
||||
* -->
|
||||
*
|
||||
* \brief Configuration file for I2C module.
|
||||
*
|
||||
* \author Daniele Basile <asterix@develer.com>
|
||||
*/
|
||||
|
||||
#ifndef CFG_I2C_H
|
||||
#define CFG_I2C_H
|
||||
|
||||
/**
|
||||
*Comunication frequency.
|
||||
*
|
||||
* $WIZ$ type = "int"
|
||||
*/
|
||||
#define CONFIG_I2C_FREQ 100000UL
|
||||
|
||||
/**
|
||||
* I2C start timeout.
|
||||
* For how many milliseconds the i2c_start
|
||||
* should try to get an ACK before
|
||||
* returning error.
|
||||
*
|
||||
* $WIZ$ type = "int"
|
||||
*/
|
||||
#define CONFIG_I2C_START_TIMEOUT 100
|
||||
|
||||
/**
|
||||
* Check this to disable I2c deprecated API support.
|
||||
*
|
||||
* $WIZ$ type = "boolean"
|
||||
*/
|
||||
#define CONFIG_I2C_DISABLE_OLD_API 0
|
||||
|
||||
/**
|
||||
* Module logging level.
|
||||
*
|
||||
* $WIZ$ type = "enum"
|
||||
* $WIZ$ value_list = "log_level"
|
||||
*/
|
||||
#define I2C_LOG_LEVEL LOG_LVL_INFO
|
||||
|
||||
/**
|
||||
* module logging format.
|
||||
*
|
||||
* $WIZ$ type = "enum"
|
||||
* $WIZ$ value_list = "log_format"
|
||||
*/
|
||||
#define I2C_LOG_FORMAT LOG_FMT_TERSE
|
||||
|
||||
#endif /* CFG_I2C_H */
|
||||
|
||||
|
|
@ -0,0 +1,74 @@
|
|||
/**
|
||||
* \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 2009 Develer S.r.l. (http://www.develer.com/)
|
||||
* All Rights Reserved.
|
||||
* -->
|
||||
*
|
||||
* \brief Configuration file for I2S module.
|
||||
*
|
||||
*
|
||||
* \author Luca Ottaviano <lottaviano@develer.com>
|
||||
*/
|
||||
|
||||
#ifndef CFG_I2S_H
|
||||
#define CFG_I2S_H
|
||||
|
||||
/**
|
||||
* Length of each play buffer.
|
||||
*
|
||||
* $WIZ$ type = "int"
|
||||
*/
|
||||
#define CONFIG_PLAY_BUF_LEN 8192
|
||||
|
||||
/**
|
||||
* Sampling frequency of the audio file.
|
||||
*
|
||||
* $WIZ$ type = "int"
|
||||
* $WIZ$ min = 32000
|
||||
* $WIZ$ max = 192000
|
||||
*/
|
||||
#define CONFIG_SAMPLE_FREQ 44100UL
|
||||
|
||||
/**
|
||||
* Module logging level.
|
||||
*
|
||||
* $WIZ$ type = "enum"
|
||||
* $WIZ$ value_list = "log_level"
|
||||
*/
|
||||
#define I2S_LOG_LEVEL LOG_LVL_INFO
|
||||
|
||||
/**
|
||||
* Module logging format.
|
||||
*
|
||||
* $WIZ$ type = "enum"
|
||||
* $WIZ$ value_list = "log_format"
|
||||
*/
|
||||
#define I2S_LOG_FORMAT LOG_FMT_TERSE
|
||||
|
||||
#endif /* CFG_I2S_H */
|
|
@ -0,0 +1,48 @@
|
|||
/**
|
||||
* \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 2009 Develer S.r.l. (http://www.develer.com/)
|
||||
* All Rights Reserved.
|
||||
* -->
|
||||
*
|
||||
* \brief Configuration file for ini reader module.
|
||||
*
|
||||
*
|
||||
* \author Luca Ottaviano <lottaviano@develer.com>
|
||||
*/
|
||||
|
||||
#ifndef CFG_INI_READER_H
|
||||
#define CFG_INI_READER_H
|
||||
|
||||
/**
|
||||
* Maximum ini file line length (chars).
|
||||
* $WIZ$ type = "int"; min = 1
|
||||
*/
|
||||
#define CONFIG_INI_MAX_LINE_LEN 64
|
||||
|
||||
#endif /* CFG_INI_READER_H */
|
|
@ -0,0 +1,58 @@
|
|||
/**
|
||||
* \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 2008 Develer S.r.l. (http://www.develer.com/)
|
||||
* All Rights Reserved.
|
||||
* -->
|
||||
*
|
||||
* \brief Configuration file for keyboard module.
|
||||
*
|
||||
*
|
||||
* \author Daniele Basile <asterix@develer.com>
|
||||
*/
|
||||
|
||||
#ifndef CFG_KBD_H
|
||||
#define CFG_KBD_H
|
||||
|
||||
/// Keyboard polling method. $WIZ$ supports = "False"
|
||||
#define CONFIG_KBD_POLL KBD_POLL_SOFTINT
|
||||
|
||||
/// Enable keyboard event delivery to observers. $WIZ$ type = "boolean"
|
||||
#define CONFIG_KBD_OBSERVER 0
|
||||
|
||||
/// Enable key beeps. $WIZ$ type = "boolean"
|
||||
#define CONFIG_KBD_BEEP 0
|
||||
|
||||
/// Enable long pression handler for keys. $WIZ$ type = "boolean"
|
||||
#define CONFIG_KBD_LONGPRESS 0
|
||||
|
||||
/// Enable calling poor man's scheduler to be called inside kbd_peek. $WIZ$ type = "boolean"
|
||||
#define CONFIG_KBD_SCHED 0
|
||||
|
||||
#endif /* CFG_KBD_H */
|
||||
|
|
@ -0,0 +1,61 @@
|
|||
/**
|
||||
* \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 2010 Develer S.r.l. (http://www.develer.com/)
|
||||
* All Rights Reserved.
|
||||
* -->
|
||||
*
|
||||
* \brief Configuration file for keytag module.
|
||||
*
|
||||
* \author Daniele Basile <asterix@develer.com>
|
||||
*/
|
||||
|
||||
#ifndef CFG_KEYTAG_H
|
||||
#define CFG_KEYTAG_H
|
||||
|
||||
/**
|
||||
* Module logging level.
|
||||
* $WIZ$ type = "enum"
|
||||
* $WIZ$ value_list = "log_level"
|
||||
*/
|
||||
#define CONFIG_KEYTAG_LOG_LEVEL LOG_LVL_ERR
|
||||
/**
|
||||
* Module logging format.
|
||||
* $WIZ$ type = "enum"
|
||||
* $WIZ$ value_list = "log_format"
|
||||
*/
|
||||
#define CONFIG_KEYTAG_LOG_FORMAT LOG_FMT_TERSE
|
||||
|
||||
/**
|
||||
* Max buffer lenght
|
||||
* $WIZ$ type = "int"
|
||||
*/
|
||||
#define CONFIG_TAG_MAX_LEN 14U
|
||||
|
||||
#endif /* CFG_KEYTAG_H */
|
||||
|
|
@ -0,0 +1,61 @@
|
|||
/**
|
||||
* \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 2008 Develer S.r.l. (http://www.develer.com/)
|
||||
*
|
||||
* -->
|
||||
*
|
||||
* \brief Configuration file for KFile interface module.
|
||||
*
|
||||
* \author Daniele Basile <asterix@develer.com>
|
||||
*/
|
||||
|
||||
#ifndef CFG_KFILE_H
|
||||
#define CFG_KFILE_H
|
||||
|
||||
/**
|
||||
* Module logging level.
|
||||
* $WIZ$ type = "enum"
|
||||
* $WIZ$ value_list = "log_level"
|
||||
*/
|
||||
#define KFILE_LOG_LEVEL LOG_LVL_INFO
|
||||
|
||||
/**
|
||||
* Module logging format.
|
||||
* $WIZ$ type = "enum"
|
||||
* $WIZ$ value_list = "log_format"
|
||||
*/
|
||||
#define KFILE_LOG_FORMAT LOG_FMT_TERSE
|
||||
|
||||
/**
|
||||
* Enable the gets function with echo.
|
||||
* $WIZ$ type = "boolean"
|
||||
*/
|
||||
#define CONFIG_KFILE_GETS 0
|
||||
|
||||
#endif /* CFG_KFILE_H */
|
|
@ -0,0 +1,63 @@
|
|||
/**
|
||||
* \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, 2005, 2006, 2010 Develer S.r.l. (http://www.develer.com/)
|
||||
* Copyright 2001 Bernie Innocenti <bernie@codewiz.org>
|
||||
*
|
||||
* -->
|
||||
*
|
||||
* \brief Displaytech 32122A LCD driver configuration file.
|
||||
*
|
||||
* \author Bernie Innocenti <bernie@codewiz.org>
|
||||
* \author Stefano Fedrigo <aleph@develer.com>
|
||||
*
|
||||
*/
|
||||
#ifndef CFG_LCD_32122A_H
|
||||
#define CFG_LCD_32122A_H
|
||||
|
||||
/**
|
||||
* Enable soft interrupt to refresh the LCD.
|
||||
* $WIZ$ type = "boolean"
|
||||
*/
|
||||
#define CONFIG_LCD_SOFTINT_REFRESH 0
|
||||
|
||||
/**
|
||||
* Enable wait macro when display is busy.
|
||||
* $WIZ$ type = "boolean"
|
||||
*/
|
||||
#define CONFIG_LCD_WAIT 0
|
||||
|
||||
/**
|
||||
* Display refresh time 32122a.
|
||||
* $WIZ$ type = "int"
|
||||
* $WIZ$ min = 0
|
||||
*/
|
||||
#define CONFIG_LCD_REFRESH 100
|
||||
|
||||
#endif /* CFG_LCD_32122A_H */
|
||||
|
|
@ -0,0 +1,69 @@
|
|||
/**
|
||||
* \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 2008 Develer S.r.l. (http://www.develer.com/)
|
||||
* All Rights Reserved.
|
||||
* -->
|
||||
*
|
||||
* \brief Configuration file for lcd display module.
|
||||
*
|
||||
* \author Daniele Basile <asterix@develer.com>
|
||||
*/
|
||||
|
||||
#ifndef CFG_LCD_H
|
||||
#define CFG_LCD_H
|
||||
|
||||
/**
|
||||
* Use 4 bit addressing mode.
|
||||
* $WIZ$ type = "boolean"
|
||||
*/
|
||||
#define CONFIG_LCD_4BIT 0
|
||||
|
||||
/**
|
||||
* Use a table to speed up LCD memory addressing.
|
||||
* This will use about 100 bytes of RAM.
|
||||
* $WIZ$ type = "boolean"
|
||||
*/
|
||||
#define CONFIG_LCD_ADDRESS_FAST 1
|
||||
|
||||
/**
|
||||
* Number of columns in LCD display.
|
||||
* $WIZ$ type = "enum"
|
||||
* $WIZ$ value_list = "lcd_hd44_cols"
|
||||
*/
|
||||
#define CONFIG_LCD_COLS LCD_HD44_COLS_16
|
||||
|
||||
/**
|
||||
* Number of rows in LCD display.
|
||||
* $WIZ$ type = "enum"
|
||||
* $WIZ$ value_list = "lcd_hd44_rows"
|
||||
*/
|
||||
#define CONFIG_LCD_ROWS LCD_HD44_ROWS_2
|
||||
|
||||
#endif /* CFG_LCD_H */
|
||||
|
|
@ -0,0 +1,80 @@
|
|||
/**
|
||||
* \file cfg_led_7seg.h
|
||||
* <!--
|
||||
* 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 2010 Develer S.r.l. (http://www.develer.com/)
|
||||
* -->
|
||||
*
|
||||
* \brief Configuration file for led 7 segment display.
|
||||
*
|
||||
* \author Fabio Bizzi <fbizzi@bizzi.org>
|
||||
*
|
||||
* \addtogroup SevenSegDisplay 7 Segments LED Displays Driver
|
||||
* \{
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef CFG_LED_7SEG_H
|
||||
#define CFG_LED_7SEG_H
|
||||
|
||||
/**
|
||||
* Use a Common Cathode display.
|
||||
* $WIZ$ type = "boolean"
|
||||
*/
|
||||
#define CONFIG_LED_7SEG_CCAT 0
|
||||
|
||||
/**
|
||||
* Number of digit present in the LED display.
|
||||
* $WIZ$ type = "int"
|
||||
* $WIZ$ min = 1
|
||||
* $WIZ$ max = 8
|
||||
*/
|
||||
#define CONFIG_LED_7SEG_DIGIT 4
|
||||
|
||||
/**
|
||||
* Max lenght of the string to be displayed.
|
||||
* $WIZ$ type = "int"
|
||||
* $WIZ$ min = 16
|
||||
* $WIZ$ max = 255
|
||||
*/
|
||||
#define CONFIG_LED_7SEG_STRLEN 255
|
||||
|
||||
/**
|
||||
* Default scrolling speed (ms * CONFIG_LED_7SEG_RTIME).
|
||||
* $WIZ$ type = "int"
|
||||
*/
|
||||
#define CONFIG_LED_7SEG_SSPEED 10
|
||||
|
||||
/**
|
||||
* Default refresh time (ms).
|
||||
* $WIZ$ type = "int"
|
||||
*/
|
||||
#define CONFIG_LED_7SEG_RTIME 5
|
||||
|
||||
#endif /* CFG_LED_7SEG_H */
|
||||
/** \} */ //defgroup drivers
|
||||
|
|
@ -0,0 +1,57 @@
|
|||
/**
|
||||
* \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 2008 Develer S.r.l. (http://www.develer.com/)
|
||||
*
|
||||
* -->
|
||||
*
|
||||
* \brief Configuration file for the LM75 sensor temperature.
|
||||
*
|
||||
* \author Daniele Basile <asterix@develer.com>
|
||||
*/
|
||||
|
||||
#ifndef CFG_LM75_H
|
||||
#define CFG_LM75_H
|
||||
|
||||
/**
|
||||
* Module logging level.
|
||||
*
|
||||
* $WIZ$ type = "enum"
|
||||
* $WIZ$ value_list = "log_level"
|
||||
*/
|
||||
#define LM75_LOG_LEVEL LOG_LVL_WARN
|
||||
|
||||
/**
|
||||
* Module logging format.
|
||||
*
|
||||
* $WIZ$ type = "enum"
|
||||
* $WIZ$ value_list = "log_format"
|
||||
*/
|
||||
#define LM75_LOG_FORMAT LOG_FMT_TERSE
|
||||
|
||||
#endif /* CFG_AX25_H */
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,53 @@
|
|||
/**
|
||||
* \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 2008 Develer S.r.l. (http://www.develer.com/)
|
||||
* All Rights Reserved.
|
||||
* -->
|
||||
*
|
||||
* \brief Configuration file for MD2 module.
|
||||
*
|
||||
*
|
||||
* \author Daniele Basile <asterix@develer.com>
|
||||
*/
|
||||
|
||||
#ifndef CFG_MD2_H
|
||||
#define CFG_MD2_H
|
||||
|
||||
/**
|
||||
* Size of block for MD2 algorithm.
|
||||
* $WIZ$ type = "int"
|
||||
* $WIZ$ min = 2
|
||||
*/
|
||||
#define CONFIG_MD2_BLOCK_LEN 16
|
||||
|
||||
/// Use standard permutation in MD2 algorithm. $WIZ$ type = "boolean"
|
||||
#define CONFIG_MD2_STD_PERM 0
|
||||
|
||||
#endif /* CFG_MD2_H */
|
||||
|
|
@ -0,0 +1,47 @@
|
|||
/**
|
||||
* \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 2001, 2004 Develer S.r.l. (http://www.develer.com/)
|
||||
* Copyright 1999, 2000, 2001, 2008 Bernie Innocenti <bernie@codewiz.org>
|
||||
* -->
|
||||
*
|
||||
* \brief Kernel monitor configuration parameters
|
||||
*
|
||||
* \author Bernie Innocenti <bernie@codewiz.org>
|
||||
*/
|
||||
|
||||
#ifndef CFG_MONITOR_H
|
||||
#define CFG_MONITOR_H
|
||||
|
||||
/**
|
||||
* Process monitor.
|
||||
* $WIZ$ type = "autoenabled"
|
||||
*/
|
||||
#define CONFIG_KERN_MONITOR 0
|
||||
|
||||
#endif /* CFG_MONITOR_H */
|
|
@ -0,0 +1,111 @@
|
|||
/**
|
||||
* \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 2011 Develer S.r.l. (http://www.develer.com/)
|
||||
* -->
|
||||
*
|
||||
* \author Stefano Fedrigo <aleph@develer.com>
|
||||
*
|
||||
* \brief Configuration file for NAND driver module.
|
||||
*/
|
||||
|
||||
#ifndef CFG_NAND_H
|
||||
#define CFG_NAND_H
|
||||
|
||||
/**
|
||||
* Page data size
|
||||
*
|
||||
* Size of the data section of a programmable page in bytes.
|
||||
*
|
||||
* $WIZ$ type = "int"
|
||||
*/
|
||||
#define CONFIG_NAND_DATA_SIZE 2048
|
||||
|
||||
/**
|
||||
* Page spare area size
|
||||
*
|
||||
* Size of the spare section of a programmable page in bytes.
|
||||
*
|
||||
* $WIZ$ type = "int"
|
||||
*/
|
||||
#define CONFIG_NAND_SPARE_SIZE 64
|
||||
|
||||
/**
|
||||
* Pages per block
|
||||
*
|
||||
* Number of pages in a erase block.
|
||||
*
|
||||
* $WIZ$ type = "int"
|
||||
*/
|
||||
#define CONFIG_NAND_PAGES_PER_BLOCK 64
|
||||
|
||||
/**
|
||||
* Number of blocks
|
||||
*
|
||||
* Total number of erase blocks in one NAND chip.
|
||||
*
|
||||
* $WIZ$ type = "int"
|
||||
*/
|
||||
#define CONFIG_NAND_NUM_BLOCK 2048
|
||||
|
||||
/**
|
||||
* Number of reserved blocks
|
||||
*
|
||||
* Blocks reserved for remapping defective NAND blocks.
|
||||
*
|
||||
* $WIZ$ type = "int"
|
||||
*/
|
||||
#define CONFIG_NAND_NUM_REMAP_BLOCKS 128
|
||||
|
||||
/**
|
||||
* NAND operations timeout
|
||||
*
|
||||
* How many milliseconds the cpu waits for
|
||||
* completion of NAND operations.
|
||||
*
|
||||
* $WIZ$ type = "int"
|
||||
*/
|
||||
#define CONFIG_NAND_TMOUT 100
|
||||
|
||||
/**
|
||||
* Module logging level
|
||||
*
|
||||
* $WIZ$ type = "enum"
|
||||
* $WIZ$ value_list = "log_level"
|
||||
*/
|
||||
#define CONFIG_NAND_LOG_LEVEL LOG_LVL_WARN
|
||||
|
||||
/**
|
||||
* Module logging format
|
||||
*
|
||||
* $WIZ$ type = "enum"
|
||||
* $WIZ$ value_list = "log_format"
|
||||
*/
|
||||
#define CONFIG_NAND_LOG_FORMAT LOG_FMT_TERSE
|
||||
|
||||
#endif /* CFG_NAND_H */
|
|
@ -0,0 +1,85 @@
|
|||
/**
|
||||
* \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 2008 Develer S.r.l. (http://www.develer.com/)
|
||||
*
|
||||
* -->
|
||||
*
|
||||
* \brief Configuration file for NMEA module.
|
||||
*
|
||||
* \author Daniele Basile <asterix@develer.com>
|
||||
*/
|
||||
|
||||
#ifndef CFG_NMEA_H
|
||||
#define CFG_NMEA_H
|
||||
|
||||
/**
|
||||
* Module logging level.
|
||||
*
|
||||
* $WIZ$ type = "enum"
|
||||
* $WIZ$ value_list = "log_level"
|
||||
*/
|
||||
#define NMEA_LOG_LEVEL LOG_LVL_ERR
|
||||
|
||||
/**
|
||||
* Module logging format.
|
||||
*
|
||||
* $WIZ$ type = "enum"
|
||||
* $WIZ$ value_list = "log_format"
|
||||
*/
|
||||
#define NMEA_LOG_FORMAT LOG_FMT_TERSE
|
||||
|
||||
|
||||
/**
|
||||
* Maximum number of sentence parsers supported.
|
||||
*
|
||||
* $WIZ$ type = "int"
|
||||
* $WIZ$ min = 1
|
||||
*/
|
||||
#define CONFIG_NMEAP_MAX_SENTENCES 8
|
||||
|
||||
/**
|
||||
* Max length of a complete sentence. The standard says 82 bytes, but its probably
|
||||
* better to go at least 128 since some units don't adhere to the 82 bytes
|
||||
* especially for proprietary sentences.
|
||||
*
|
||||
* $WIZ$ type = "int"
|
||||
* $WIZ$ min = 1
|
||||
*/
|
||||
#define CONFIG_NMEAP_MAX_SENTENCE_LENGTH 255
|
||||
|
||||
/**
|
||||
* Max tokens in one sentence. 24 is enough for any standard sentence.
|
||||
*
|
||||
* $WIZ$ type = "int"
|
||||
* $WIZ$ min = 1
|
||||
*/
|
||||
#define CONFIG_NMEAP_MAX_TOKENS 24
|
||||
|
||||
#endif /* CFG_NMEA_H */
|
||||
|
|
@ -0,0 +1,66 @@
|
|||
/**
|
||||
* \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 2008 Develer S.r.l. (http://www.develer.com/)
|
||||
* All Rights Reserved.
|
||||
* -->
|
||||
*
|
||||
* \brief Configuration file for parser module.
|
||||
*
|
||||
* \author Daniele Basile <asterix@develer.com>
|
||||
*/
|
||||
|
||||
#ifndef CFG_PARSER_H
|
||||
#define CFG_PARSER_H
|
||||
|
||||
/**
|
||||
* Max number of arguments and results for each command
|
||||
* $WIZ$ type = "int"
|
||||
* $WIZ$ min = 0
|
||||
*/
|
||||
#define CONFIG_PARSER_MAX_ARGS 4
|
||||
|
||||
/**
|
||||
* Max number of commands
|
||||
* $WIZ$ type = "int"
|
||||
* $WIZ$ min = 8
|
||||
*/
|
||||
#define CONFIG_MAX_COMMANDS_NUMBER 16
|
||||
|
||||
/**
|
||||
* Enable compatibility behaviour.
|
||||
*
|
||||
* Skip the first word from incoming commands. Don't enable in new projects.
|
||||
* $WIZ$ type = "boolean"
|
||||
*/
|
||||
#define CONFIG_ENABLE_COMPAT_BEHAVIOUR 1
|
||||
|
||||
#endif /* CFG_PARSER_H */
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,55 @@
|
|||
/**
|
||||
* \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 2008 Develer S.r.l. (http://www.develer.com/)
|
||||
*
|
||||
* -->
|
||||
*
|
||||
* \brief Configuration file for phase module.
|
||||
*
|
||||
* \author Daniele Basile <asterix@develer.com>
|
||||
*/
|
||||
|
||||
#ifndef CFG_PHASE_H
|
||||
#define CFG_PHASE_H
|
||||
|
||||
/**
|
||||
* Max value of the duty cycle on triac.
|
||||
* $WIZ$ type = "int"
|
||||
* $WIZ$ min = 1
|
||||
*/
|
||||
#define CONFIG_TRIAC_MAX_DUTY 100
|
||||
|
||||
/**
|
||||
* Max value of the triac power.
|
||||
* $WIZ$ type = "int"
|
||||
* $WIZ$ min = 1
|
||||
*/
|
||||
#define CONFIG_TRIAC_MAX_POWER 100
|
||||
|
||||
#endif /* CFG_PHASE_H */
|
|
@ -0,0 +1,71 @@
|
|||
/**
|
||||
* \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 2008 Develer S.r.l. (http://www.develer.com/)
|
||||
* All Rights Reserved.
|
||||
* -->
|
||||
*
|
||||
* \brief Configuration file for pocketbus module.
|
||||
*
|
||||
* \author Daniele Basile <asterix@develer.com>
|
||||
*/
|
||||
|
||||
#ifndef CFG_POCKETBUS_H
|
||||
#define CFG_POCKETBUS_H
|
||||
|
||||
/**
|
||||
* Module logging level.
|
||||
*
|
||||
* $WIZ$ type = "enum"
|
||||
* $WIZ$ value_list = "log_level"
|
||||
*/
|
||||
#define POCKETBUS_LOG_LEVEL LOG_LVL_ERR
|
||||
|
||||
/**
|
||||
* Module logging format.
|
||||
*
|
||||
* $WIZ$ type = "enum"
|
||||
* $WIZ$ value_list = "log_format"
|
||||
*/
|
||||
#define POCKETBUS_LOG_FORMAT LOG_FMT_TERSE
|
||||
|
||||
|
||||
/**
|
||||
*Buffer len for pockebus protocol.
|
||||
* $WIZ$ type = "int"
|
||||
* $WIZ$ min = 2
|
||||
*/
|
||||
#define CONFIG_POCKETBUS_BUFLEN 128
|
||||
|
||||
/**
|
||||
* Command replay timeout in milliseconds.
|
||||
* $WIZ$ type = "int"
|
||||
*/
|
||||
#define CONFIG_POCKETBUS_CMD_REPLY_TIMEOUT 50
|
||||
|
||||
#endif /* CFG_POCKETBUS_H */
|
|
@ -0,0 +1,113 @@
|
|||
/**
|
||||
* \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 2001, 2004 Develer S.r.l. (http://www.develer.com/)
|
||||
* Copyright 1999, 2000, 2001, 2008 Bernie Innocenti <bernie@codewiz.org>
|
||||
* -->
|
||||
*
|
||||
* \brief Kernel configuration parameters
|
||||
*
|
||||
* \author Bernie Innocenti <bernie@codewiz.org>
|
||||
*/
|
||||
|
||||
#ifndef CFG_PROC_H
|
||||
#define CFG_PROC_H
|
||||
|
||||
/**
|
||||
* Enable the multithreading kernel.
|
||||
*
|
||||
* $WIZ$ type = "autoenabled"
|
||||
*/
|
||||
#define CONFIG_KERN 0
|
||||
|
||||
/**
|
||||
* Kernel interrupt supervisor. WARNING: Experimental, still incomplete!
|
||||
* $WIZ$ type = "boolean"
|
||||
* $WIZ$ supports = "False"
|
||||
*/
|
||||
#define CONFIG_KERN_IRQ 0
|
||||
|
||||
/**
|
||||
* Preemptive process scheduling.
|
||||
*
|
||||
* $WIZ$ type = "boolean"
|
||||
* $WIZ$ conditional_deps = "timer"
|
||||
*/
|
||||
#define CONFIG_KERN_PREEMPT 0
|
||||
|
||||
/**
|
||||
* Time sharing quantum (a prime number prevents interference effects) [ms].
|
||||
*
|
||||
* $WIZ$ type = "int"
|
||||
* $WIZ$ min = 1
|
||||
*/
|
||||
#define CONFIG_KERN_QUANTUM 11
|
||||
|
||||
/**
|
||||
* Priority-based scheduling policy.
|
||||
* $WIZ$ type = "boolean"
|
||||
*/
|
||||
#define CONFIG_KERN_PRI 1
|
||||
|
||||
/**
|
||||
* Priority-inheritance protocol.
|
||||
* $WIZ$ type = "boolean"
|
||||
*/
|
||||
#define CONFIG_KERN_PRI_INHERIT 0
|
||||
|
||||
/**
|
||||
* Dynamic memory allocation for processes.
|
||||
* $WIZ$ type = "boolean"
|
||||
* $WIZ$ conditional_deps = "heap"
|
||||
*/
|
||||
#define CONFIG_KERN_HEAP 0
|
||||
|
||||
/**
|
||||
* Size of the dynamic memory pool used by processes.
|
||||
* $WIZ$ type = "int"
|
||||
* $WIZ$ min = 0
|
||||
*/
|
||||
#define CONFIG_KERN_HEAP_SIZE 2048L
|
||||
|
||||
/**
|
||||
* Module logging level.
|
||||
*
|
||||
* $WIZ$ type = "enum"
|
||||
* $WIZ$ value_list = "log_level"
|
||||
*/
|
||||
#define KERN_LOG_LEVEL LOG_LVL_ERR
|
||||
|
||||
/**
|
||||
* Module logging format.
|
||||
*
|
||||
* $WIZ$ type = "enum"
|
||||
* $WIZ$ value_list = "log_format"
|
||||
*/
|
||||
#define KERN_LOG_FORMAT LOG_FMT_VERBOSE
|
||||
|
||||
#endif /* CFG_PROC_H */
|
|
@ -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 2008 Develer S.r.l. (http://www.develer.com/)
|
||||
* -->
|
||||
*
|
||||
* \brief Configuration file for PWM module.
|
||||
*
|
||||
* \author Daniele Basile <asterix@develer.com>
|
||||
*/
|
||||
|
||||
#ifndef CFG_PWM_H
|
||||
#define CFG_PWM_H
|
||||
|
||||
/**
|
||||
* Module logging level.
|
||||
*
|
||||
* $WIZ$ type = "enum"
|
||||
* $WIZ$ value_list = "log_level"
|
||||
*/
|
||||
#define PWM_LOG_LEVEL LOG_LVL_INFO
|
||||
|
||||
/**
|
||||
* Module logging format.
|
||||
*
|
||||
* $WIZ$ type = "enum"
|
||||
* $WIZ$ value_list = "log_format"
|
||||
*/
|
||||
#define PWM_LOG_FORMAT LOG_FMT_VERBOSE
|
||||
|
||||
/**
|
||||
* Enable the OLD pwm API.
|
||||
* Not recommended for new projects.
|
||||
*
|
||||
* $WIZ$ type = "boolean"
|
||||
*/
|
||||
#define CFG_PWM_ENABLE_OLD_API 1
|
||||
|
||||
#endif /* CFG_PWM_H */
|
|
@ -0,0 +1,115 @@
|
|||
/**
|
||||
* \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 2008 Develer S.r.l. (http://www.develer.com/)
|
||||
*
|
||||
* -->
|
||||
*
|
||||
* \brief Configuration file Ramp algorithm module.
|
||||
*
|
||||
* \author Daniele Basile <asterix@develer.com>
|
||||
*/
|
||||
|
||||
#ifndef CFG_RAMP_H
|
||||
#define CFG_RAMP_H
|
||||
|
||||
/**
|
||||
* Define whether the ramp will use floating point calculation within ramp_evaluate().
|
||||
* Otherwise, a less precise fixed point version will be used, which is faster on
|
||||
* platforms which do no support floating point operations.
|
||||
*
|
||||
* \note Floating point operations will be always done within ramp_compute() to
|
||||
* precalculate values, so there has to be at least a floating point emulation support.
|
||||
*
|
||||
* $WIZ$ type = "boolean"
|
||||
*/
|
||||
#define RAMP_USE_FLOATING_POINT 0
|
||||
|
||||
|
||||
#if !RAMP_USE_FLOATING_POINT
|
||||
|
||||
/**
|
||||
* Number of least-significant bits which are stripped away during ramp evaluation.
|
||||
* This setting allows to specify larger ramps at the price of less precision.
|
||||
*
|
||||
* The maximum ramp size allowed is 2^(24 + RAMP_CLOCK_SHIFT_PRECISION), in clocks.
|
||||
* For instance, using RAMP_CLOCK_SHIFT_PRECISION 1, and a 8x prescaler, the maximum
|
||||
* length of a ramp is about 6.7 secs. Raising RAMP_CLOCK_SHIFT_PRECISION to 2
|
||||
* brings the maximum length to 13.4 secs, at the price of less precision.
|
||||
*
|
||||
* ramp_compute() will check that the length is below the maximum allowed through
|
||||
* a runtime assertion.
|
||||
*
|
||||
* \note This macro is used only for the fixed-point version of the ramp.
|
||||
* $WIZ$ type = "int"
|
||||
* $WIZ$ min = 0
|
||||
* $WIZ$ max = 32
|
||||
*/
|
||||
#define RAMP_CLOCK_SHIFT_PRECISION 2
|
||||
#endif
|
||||
|
||||
|
||||
/**
|
||||
* Negative pulse width for ramp.
|
||||
* $WIZ$ type = "int"
|
||||
* $WIZ$ min = 1
|
||||
*/
|
||||
#define RAMP_PULSE_WIDTH 50
|
||||
|
||||
/**
|
||||
* Default ramp time (microsecs).
|
||||
* $WIZ$ type = "int"
|
||||
* $WIZ$ min = 1000
|
||||
*/
|
||||
#define RAMP_DEF_TIME 6000000UL
|
||||
/**
|
||||
* Default ramp maxfreq (Hz).
|
||||
* $WIZ$ type = "int"
|
||||
* $WIZ$ min = 1
|
||||
*/
|
||||
#define RAMP_DEF_MAXFREQ 5000
|
||||
/**
|
||||
* Default ramp minfreq (Hz).
|
||||
* $WIZ$ type = "int"
|
||||
* $WIZ$ min = 1
|
||||
*/
|
||||
#define RAMP_DEF_MINFREQ 200
|
||||
/**
|
||||
* Default ramp powerrun (deciampere).
|
||||
* $WIZ$ type = "int"
|
||||
* $WIZ$ min = 0
|
||||
*/
|
||||
#define RAMP_DEF_POWERRUN 10
|
||||
/**
|
||||
* Default ramp poweridle (Hz).
|
||||
* $WIZ$ type = "int"
|
||||
* $WIZ$ min = 0
|
||||
*/
|
||||
#define RAMP_DEF_POWERIDLE 1
|
||||
|
||||
#endif /* CFG_RAMP_H */
|
|
@ -0,0 +1,55 @@
|
|||
/**
|
||||
* \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 2008 Develer S.r.l. (http://www.develer.com/)
|
||||
* All Rights Reserved.
|
||||
* -->
|
||||
*
|
||||
* \brief Configuration file for randpool module.
|
||||
*
|
||||
*
|
||||
* \author Daniele Basile <asterix@develer.com>
|
||||
*/
|
||||
|
||||
#ifndef CFG_RANDPOOL_H
|
||||
#define CFG_RANDPOOL_H
|
||||
|
||||
|
||||
/**
|
||||
* Define a size, in byte, of entropy pool.
|
||||
* $WIZ$ type = "int"
|
||||
* $WIZ$ min = 1
|
||||
*/
|
||||
#define CONFIG_SIZE_ENTROPY_POOL 64
|
||||
|
||||
/// Enable timer in randpool algo. $WIZ$ type = "boolean"
|
||||
#define CONFIG_RANDPOOL_TIMER 1
|
||||
|
||||
#endif /* CFG_RANDPOOL_H */
|
||||
|
||||
|
|
@ -0,0 +1,75 @@
|
|||
/**
|
||||
* \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 2009 Develer S.r.l. (http://www.develer.com/)
|
||||
* All Rights Reserved.
|
||||
* -->
|
||||
*
|
||||
* \brief Configuration file Secure Digital module.
|
||||
*
|
||||
*
|
||||
* \author Francesco Sacchi <batt@develer.com>
|
||||
*/
|
||||
|
||||
#ifndef CFG_SD_H
|
||||
#define CFG_SD_H
|
||||
|
||||
/**
|
||||
* Module logging level.
|
||||
*
|
||||
* $WIZ$ type = "enum"
|
||||
* $WIZ$ value_list = "log_level"
|
||||
*/
|
||||
#define SD_LOG_LEVEL LOG_LVL_ERR
|
||||
|
||||
/**
|
||||
* Module logging format.
|
||||
*
|
||||
* $WIZ$ type = "enum"
|
||||
* $WIZ$ value_list = "log_format"
|
||||
*/
|
||||
#define SD_LOG_FORMAT LOG_FMT_VERBOSE
|
||||
|
||||
|
||||
/**
|
||||
* Enable autoassignment of SD driver to disk drive number 0 of FatFs module.
|
||||
* $WIZ$ type = "boolean"
|
||||
* $WIZ$ conditional_deps = "fat"
|
||||
*/
|
||||
#define CONFIG_SD_AUTOASSIGN_FAT 1
|
||||
|
||||
/**
|
||||
* Enable backward compatibility for sd_init().
|
||||
* If enabled, sd_init() will allocate internally an Sd context,
|
||||
* otherwise sd_init() will need the context to be passed explicitly.
|
||||
*
|
||||
* $WIZ$ type = "boolean"
|
||||
*/
|
||||
#define CONFIG_SD_OLD_INIT 1
|
||||
|
||||
#endif /* CFG_SD_H */
|
|
@ -0,0 +1,47 @@
|
|||
/**
|
||||
* \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 2001, 2004 Develer S.r.l. (http://www.develer.com/)
|
||||
* Copyright 1999, 2000, 2001, 2008 Bernie Innocenti <bernie@codewiz.org>
|
||||
* -->
|
||||
*
|
||||
* \brief Kernel semaphores configuration parameters.
|
||||
*
|
||||
* \author Bernie Innocenti <bernie@codewiz.org>
|
||||
*/
|
||||
|
||||
#ifndef CFG_SEM_H
|
||||
#define CFG_SEM_H
|
||||
|
||||
/**
|
||||
* Re-entrant mutual exclusion primitives.
|
||||
* $WIZ$ type = "autoenabled"
|
||||
*/
|
||||
#define CONFIG_KERN_SEMAPHORES 0
|
||||
|
||||
#endif /* CFG_SEM_H */
|
|
@ -0,0 +1,222 @@
|
|||
/**
|
||||
* \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 2008 Develer S.r.l. (http://www.develer.com/)
|
||||
* All Rights Reserved.
|
||||
* -->
|
||||
*
|
||||
* \brief Configuration file for serial module.
|
||||
*
|
||||
* \author Daniele Basile <asterix@develer.com>
|
||||
*/
|
||||
|
||||
#ifndef CFG_SER_H
|
||||
#define CFG_SER_H
|
||||
|
||||
/**
|
||||
* Example of setting for serial port and
|
||||
* spi port.
|
||||
* Edit these define for your project.
|
||||
*/
|
||||
|
||||
/**
|
||||
* Size of the outbound FIFO buffer for port 0 [bytes].
|
||||
* $WIZ$ type = "int"
|
||||
* $WIZ$ min = 2
|
||||
*/
|
||||
#define CONFIG_UART0_TXBUFSIZE 32
|
||||
|
||||
/**
|
||||
* Size of the inbound FIFO buffer for port 0 [bytes].
|
||||
* $WIZ$ type = "int"
|
||||
* $WIZ$ min = 2
|
||||
*/
|
||||
#define CONFIG_UART0_RXBUFSIZE 32
|
||||
|
||||
/**
|
||||
* Size of the outbound FIFO buffer for port 1 [bytes].
|
||||
* $WIZ$ type = "int"
|
||||
* $WIZ$ min = 2
|
||||
* $WIZ$ supports = "lm3s or lpc2 or (at91 and not atmega8 and not atmega168 and not atmega32)"
|
||||
*/
|
||||
#define CONFIG_UART1_TXBUFSIZE 32
|
||||
|
||||
/**
|
||||
* Size of the inbound FIFO buffer for port 1 [bytes].
|
||||
* $WIZ$ type = "int"
|
||||
* $WIZ$ min = 2
|
||||
* $WIZ$ supports = "lm3s or lpc2 or (at91 and not atmega8 and not atmega168 and not atmega32)"
|
||||
*/
|
||||
#define CONFIG_UART1_RXBUFSIZE 32
|
||||
|
||||
/**
|
||||
* Size of the outbound FIFO buffer for port 2 [bytes].
|
||||
* $WIZ$ type = "int"
|
||||
* $WIZ$ min = 2
|
||||
* $WIZ$ supports = "lm3s or lpc2"
|
||||
*/
|
||||
#define CONFIG_UART2_TXBUFSIZE 32
|
||||
|
||||
/**
|
||||
* Size of the inbound FIFO buffer for port 2 [bytes].
|
||||
* $WIZ$ type = "int"
|
||||
* $WIZ$ min = 2
|
||||
* $WIZ$ supports = "lm3s or lpc2"
|
||||
*/
|
||||
#define CONFIG_UART2_RXBUFSIZE 32
|
||||
|
||||
/**
|
||||
* Size of the outbound FIFO buffer for port 3 [bytes].
|
||||
* $WIZ$ type = "int"
|
||||
* $WIZ$ min = 2
|
||||
* $WIZ$ supports = "lpc2"
|
||||
*/
|
||||
#define CONFIG_UART3_TXBUFSIZE 32
|
||||
|
||||
/**
|
||||
* Size of the inbound FIFO buffer for port 3 [bytes].
|
||||
* $WIZ$ type = "int"
|
||||
* $WIZ$ min = 2
|
||||
* $WIZ$ supports = "lpc2"
|
||||
*/
|
||||
#define CONFIG_UART3_RXBUFSIZE 32
|
||||
|
||||
|
||||
/**
|
||||
* Size of the outbound FIFO buffer for SPI port [bytes].
|
||||
* $WIZ$ type = "int"
|
||||
* $WIZ$ min = 2
|
||||
* $WIZ$ supports = "avr"
|
||||
*/
|
||||
#define CONFIG_SPI_TXBUFSIZE 32
|
||||
|
||||
/**
|
||||
* Size of the inbound FIFO buffer for SPI port [bytes].
|
||||
* $WIZ$ type = "int"
|
||||
* $WIZ$ min = 2
|
||||
* $WIZ$ supports = "avr"
|
||||
*/
|
||||
#define CONFIG_SPI_RXBUFSIZE 32
|
||||
|
||||
/**
|
||||
* Size of the outbound FIFO buffer for SPI port 0 [bytes].
|
||||
* $WIZ$ type = "int"
|
||||
* $WIZ$ min = 2
|
||||
* $WIZ$ supports = "at91"
|
||||
*/
|
||||
#define CONFIG_SPI0_TXBUFSIZE 32
|
||||
|
||||
/**
|
||||
* Size of the inbound FIFO buffer for SPI port 0 [bytes].
|
||||
* $WIZ$ type = "int"
|
||||
* $WIZ$ min = 2
|
||||
* $WIZ$ supports = "at91"
|
||||
*/
|
||||
#define CONFIG_SPI0_RXBUFSIZE 32
|
||||
|
||||
/**
|
||||
* Size of the outbound FIFO buffer for SPI port 1 [bytes].
|
||||
* $WIZ$ type = "int"
|
||||
* $WIZ$ min = 2
|
||||
* $WIZ$ supports = "at91"
|
||||
*/
|
||||
#define CONFIG_SPI1_TXBUFSIZE 32
|
||||
|
||||
/**
|
||||
* Size of the inbound FIFO buffer for SPI port 1 [bytes].
|
||||
* $WIZ$ type = "int"
|
||||
* $WIZ$ min = 2
|
||||
* $WIZ$ supports = "at91"
|
||||
*/
|
||||
#define CONFIG_SPI1_RXBUFSIZE 32
|
||||
|
||||
/**
|
||||
* SPI data order.
|
||||
*
|
||||
* $WIZ$ type = "enum"
|
||||
* $WIZ$ value_list = "ser_order_bit"
|
||||
* $WIZ$ supports = "avr"
|
||||
*/
|
||||
#define CONFIG_SPI_DATA_ORDER SER_MSB_FIRST
|
||||
|
||||
/**
|
||||
* SPI clock division factor.
|
||||
* $WIZ$ type = "int"
|
||||
* $WIZ$ supports = "avr"
|
||||
*/
|
||||
#define CONFIG_SPI_CLOCK_DIV 16
|
||||
|
||||
/**
|
||||
* SPI clock polarity: normal low or normal high.
|
||||
* $WIZ$ type = "enum"
|
||||
* $WIZ$ value_list = "ser_spi_pol"
|
||||
* $WIZ$ supports = "avr"
|
||||
*/
|
||||
#define CONFIG_SPI_CLOCK_POL SPI_NORMAL_LOW
|
||||
|
||||
/**
|
||||
* SPI clock phase you can choose sample on first edge or
|
||||
* sample on second clock edge.
|
||||
* $WIZ$ type = "enum"
|
||||
* $WIZ$ value_list = "ser_spi_phase"
|
||||
* $WIZ$ supports = "avr"
|
||||
*/
|
||||
#define CONFIG_SPI_CLOCK_PHASE SPI_SAMPLE_ON_FIRST_EDGE
|
||||
|
||||
/**
|
||||
* Default transmit timeout (ms). Set to -1 to disable timeout support.
|
||||
* $WIZ$ type = "int"
|
||||
* $WIZ$ min = -1
|
||||
*/
|
||||
#define CONFIG_SER_TXTIMEOUT -1
|
||||
|
||||
/**
|
||||
* Default receive timeout (ms). Set to -1 to disable timeout support.
|
||||
* $WIZ$ type = "int"
|
||||
* $WIZ$ min = -1
|
||||
*/
|
||||
#define CONFIG_SER_RXTIMEOUT -1
|
||||
|
||||
/**
|
||||
* Use RTS/CTS handshake.
|
||||
* $WIZ$ type = "boolean"
|
||||
* $WIZ$ supports = "False"
|
||||
*/
|
||||
#define CONFIG_SER_HWHANDSHAKE 0
|
||||
|
||||
/**
|
||||
* Default baudrate for all serial ports (set to 0 to disable).
|
||||
* $WIZ$ type = "int"
|
||||
* $WIZ$ min = 0
|
||||
*/
|
||||
#define CONFIG_SER_DEFBAUDRATE 0UL
|
||||
|
||||
/// Enable strobe pin for debugging serial interrupt. $WIZ$ type = "boolean"
|
||||
#define CONFIG_SER_STROBE 0
|
||||
|
||||
#endif /* CFG_SER_H */
|
|
@ -0,0 +1,47 @@
|
|||
/**
|
||||
* \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 2001, 2004 Develer S.r.l. (http://www.develer.com/)
|
||||
* Copyright 1999, 2000, 2001, 2008 Bernie Innocenti <bernie@codewiz.org>
|
||||
* -->
|
||||
*
|
||||
* \brief Kernel signals configuration parameters
|
||||
*
|
||||
* \author Bernie Innocenti <bernie@codewiz.org>
|
||||
*/
|
||||
|
||||
#ifndef CFG_SIGNAL_H
|
||||
#define CFG_SIGNAL_H
|
||||
|
||||
/**
|
||||
* Inter-process signals.
|
||||
* $WIZ$ type = "autoenabled"
|
||||
*/
|
||||
#define CONFIG_KERN_SIGNALS 0
|
||||
|
||||
#endif /* CFG_SIGNAL_H */
|
|
@ -0,0 +1,51 @@
|
|||
/**
|
||||
* \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 2008 Develer S.r.l. (http://www.develer.com/)
|
||||
* All Rights Reserved.
|
||||
* -->
|
||||
*
|
||||
* \brief Configuration file for SPI bitbang module.
|
||||
*
|
||||
*
|
||||
* \author Daniele Basile <asterix@develer.com>
|
||||
*/
|
||||
|
||||
#ifndef CFG_SPI_BITBANG_H
|
||||
#define CFG_SPI_BITBANG_H
|
||||
|
||||
/**
|
||||
* Set data order for emulated SPI.
|
||||
*
|
||||
* $WIZ$ type = "enum"
|
||||
* $WIZ$ value_list = "ordet_bit_list"
|
||||
*/
|
||||
#define CONFIG_SPI_DATAORDER SPI_LSB_FIRST
|
||||
|
||||
#endif /* CFG_SPI_BITBANG_H */
|
||||
|
|
@ -0,0 +1,69 @@
|
|||
/**
|
||||
* \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 2008 Develer S.r.l. (http://www.develer.com/)
|
||||
*
|
||||
* -->
|
||||
*
|
||||
* \brief Configuration file for stepper motor module.
|
||||
*
|
||||
* \author Daniele Basile <asterix@develer.com>
|
||||
*/
|
||||
|
||||
#ifndef CFG_STEPPER_H
|
||||
#define CFG_STEPPER_H
|
||||
|
||||
/**
|
||||
* Module logging level.
|
||||
* $WIZ$ type = "enum"
|
||||
* $WIZ$ value_list = "log_level"
|
||||
*/
|
||||
#define STEPPER_LOG_LEVEL LOG_LVL_INFO
|
||||
|
||||
/**
|
||||
* Module logging format.
|
||||
* $WIZ$ type = "enum"
|
||||
* $WIZ$ value_list = "log_format"
|
||||
*/
|
||||
#define STEPPER_LOG_FORMAT LOG_FMT_TERSE
|
||||
|
||||
/**
|
||||
* Max number of the stepper motor.
|
||||
* $WIZ$ type = "int"
|
||||
* $WIZ$ min = 1
|
||||
*/
|
||||
#define CONFIG_NUM_STEPPER_MOTORS 6
|
||||
|
||||
/**
|
||||
* Max number of the timer usable on target to drive stepper motor.
|
||||
* $WIZ$ type = "int"
|
||||
* $WIZ$ min = 1
|
||||
*/
|
||||
#define CONFIG_TC_STEPPER_MAX_NUM 6
|
||||
|
||||
#endif /* CFG_STEPPER_H */
|
|
@ -0,0 +1,50 @@
|
|||
/**
|
||||
* \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 2009 Develer S.r.l. (http://www.develer.com/)
|
||||
*
|
||||
* -->
|
||||
*
|
||||
* \brief Configuration file for the TAS5706A module.
|
||||
*
|
||||
* \author Luca Ottaviano <lottaviano@develer.com>
|
||||
*/
|
||||
|
||||
#ifndef CFG_TAS5706A_H
|
||||
#define CFG_TAS5706A_H
|
||||
|
||||
/**
|
||||
* Maximum output volume for TAS chip [dB].
|
||||
*
|
||||
* $WIZ$ type = "int"
|
||||
* $WIZ$ min = -100
|
||||
* $WIZ$ max = 24
|
||||
*/
|
||||
#define CONFIG_TAS_MAX_VOL -39
|
||||
|
||||
#endif /* CFG_TAS5706A_H */
|
|
@ -0,0 +1,20 @@
|
|||
#ifndef CFG_TFTP_H
|
||||
#define CFG_TFTP_H
|
||||
|
||||
/**
|
||||
* Module logging level.
|
||||
*
|
||||
* $WIZ$ type = "enum"
|
||||
* $WIZ$ value_list = "log_level"
|
||||
*/
|
||||
#define TFTP_LOG_LEVEL LOG_LVL_WARN
|
||||
|
||||
/**
|
||||
* Module logging format.
|
||||
*
|
||||
* $WIZ$ type = "enum"
|
||||
* $WIZ$ value_list = "log_format"
|
||||
*/
|
||||
#define TFTP_LOG_FORMAT LOG_FMT_VERBOSE
|
||||
|
||||
#endif /* CFG_TFTP_H */
|
|
@ -0,0 +1,71 @@
|
|||
/**
|
||||
* \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 2008 Develer S.r.l. (http://www.develer.com/)
|
||||
*
|
||||
* -->
|
||||
*
|
||||
* \brief Configuration file for thermo module.
|
||||
*
|
||||
* \author Daniele Basile <asterix@develer.com>
|
||||
*/
|
||||
|
||||
#ifndef CFG_THERMO_H
|
||||
#define CFG_THERMO_H
|
||||
|
||||
/**
|
||||
* Module logging level.
|
||||
* $WIZ$ type = "enum"
|
||||
* $WIZ$ value_list = "log_level"
|
||||
*/
|
||||
#define CONFIG_THERMO_LOG_LEVEL LOG_LVL_ERR
|
||||
/**
|
||||
* Module logging format.
|
||||
* $WIZ$ type = "enum"
|
||||
* $WIZ$ value_list = "log_format"
|
||||
*/
|
||||
#define CONFIG_THERMO_LOG_FORMAT LOG_FMT_TERSE
|
||||
|
||||
|
||||
/**
|
||||
* Interval at which thermo control is performed [ms].
|
||||
*
|
||||
* $WIZ$ type = "int"
|
||||
* $WIZ$ min = 1
|
||||
*/
|
||||
#define CONFIG_THERMO_INTERVAL_MS 100
|
||||
|
||||
/**
|
||||
* Number of different samples we interpolate over to get the hifi temperature.
|
||||
*
|
||||
* $WIZ$ type = "int"
|
||||
* $WIZ$ min = 1
|
||||
*/
|
||||
#define CONFIG_THERMO_HIFI_NUM_SAMPLES 10
|
||||
|
||||
#endif /* CFG_THERMO_H */
|
|
@ -0,0 +1,67 @@
|
|||
/**
|
||||
* \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 2008 Develer S.r.l. (http://www.develer.com/)
|
||||
* All Rights Reserved.
|
||||
* -->
|
||||
*
|
||||
* \brief Configuration file for timer module.
|
||||
*
|
||||
*
|
||||
* \author Daniele Basile <asterix@develer.com>
|
||||
*/
|
||||
|
||||
#ifndef CFG_TIMER_H
|
||||
#define CFG_TIMER_H
|
||||
|
||||
/**
|
||||
* Hardware timer selection for drv/timer.c.
|
||||
* $WIZ$ type = "enum"
|
||||
* $WIZ$ value_list = "timer_select"
|
||||
*/
|
||||
#define CONFIG_TIMER TIMER_DEFAULT
|
||||
|
||||
/**
|
||||
* Debug timer interrupt using a strobe pin.
|
||||
* $WIZ$ type = "boolean"
|
||||
*/
|
||||
#define CONFIG_TIMER_STROBE 0
|
||||
|
||||
/**
|
||||
* Enable asynchronous timers.
|
||||
* $WIZ$ type = "boolean"
|
||||
*/
|
||||
#define CONFIG_TIMER_EVENTS 1
|
||||
|
||||
/**
|
||||
* Support hi-res timer_usleep().
|
||||
* $WIZ$ type = "boolean"
|
||||
*/
|
||||
#define CONFIG_TIMER_UDELAY 1
|
||||
|
||||
#endif /* CFG_TIMER_H */
|
|
@ -0,0 +1,85 @@
|
|||
/**
|
||||
* \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 2010 Develer S.r.l. (http://www.develer.com/)
|
||||
*
|
||||
* -->
|
||||
*
|
||||
* \author Andrea Righi <arighi@develer.com>
|
||||
*
|
||||
* \brief Configuration file for the USB driver module
|
||||
*/
|
||||
|
||||
#ifndef CFG_USB_H
|
||||
#define CFG_USB_H
|
||||
|
||||
/**
|
||||
* Module logging level.
|
||||
*
|
||||
* $WIZ$ type = "enum"
|
||||
* $WIZ$ value_list = "log_level"
|
||||
*/
|
||||
#define USB_LOG_LEVEL LOG_LVL_INFO
|
||||
|
||||
/**
|
||||
* module logging format.
|
||||
*
|
||||
* $WIZ$ type = "enum"
|
||||
* $WIZ$ value_list = "log_format"
|
||||
*/
|
||||
#define USB_LOG_FORMAT LOG_FMT_TERSE
|
||||
|
||||
/**
|
||||
* Size of the USB buffer used for endpoint transfers [bytes].
|
||||
* $WIZ$ type = "int"
|
||||
* $WIZ$ min = 2
|
||||
*/
|
||||
#define CONFIG_USB_BUFSIZE 64
|
||||
|
||||
/**
|
||||
* Maximum number of USB device interfaces (default = 1).
|
||||
* $WIZ$ type = "int"
|
||||
* $WIZ$ min = 1
|
||||
*/
|
||||
#define CONFIG_USB_INTERFACE_MAX 1
|
||||
|
||||
/**
|
||||
* Maximum number of allocated endpoints (0 = auto).
|
||||
* $WIZ$ type = "int"
|
||||
* $WIZ$ min = 0
|
||||
*/
|
||||
#define CONFIG_USB_EP_MAX 0
|
||||
|
||||
/**
|
||||
* Maximum packet size of the control endpoint 0 [bytes].
|
||||
* $WIZ$ type = "int"
|
||||
* $WIZ$ min = 8
|
||||
*/
|
||||
#define CONFIG_EP0_MAX_SIZE 8
|
||||
|
||||
#endif /* CFG_USB_H */
|
|
@ -0,0 +1,78 @@
|
|||
/**
|
||||
* \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 2010 Develer S.r.l. (http://www.develer.com/)
|
||||
*
|
||||
* -->
|
||||
*
|
||||
* \author Andrea Righi <arighi@develer.com>
|
||||
*
|
||||
* \brief Configuration file for the usbkbd driver module
|
||||
*/
|
||||
|
||||
#ifndef CFG_USBKBD_H
|
||||
#define CFG_USBKBD_H
|
||||
|
||||
/**
|
||||
* Enable the usbkbd module.
|
||||
*
|
||||
* $WIZ$ type = "autoenabled"
|
||||
*/
|
||||
#define CONFIG_USBKBD 0
|
||||
|
||||
/**
|
||||
* Module logging level.
|
||||
*
|
||||
* $WIZ$ type = "enum"
|
||||
* $WIZ$ value_list = "log_level"
|
||||
*/
|
||||
#define USB_KEYBOARD_LOG_LEVEL LOG_LVL_INFO
|
||||
|
||||
/**
|
||||
* module logging format.
|
||||
*
|
||||
* $WIZ$ type = "enum"
|
||||
* $WIZ$ value_list = "log_format"
|
||||
*/
|
||||
#define USB_KEYBOARD_LOG_FORMAT LOG_FMT_TERSE
|
||||
|
||||
/**
|
||||
* USB vendor ID (please change this in your project, using a valid ID number!).
|
||||
*
|
||||
* $WIZ$ type = "hex"
|
||||
*/
|
||||
#define USB_KEYBOARD_VENDOR_ID 0x046d
|
||||
|
||||
/**
|
||||
* USB product ID (please change this in your project, using a valid ID number!).
|
||||
*
|
||||
* $WIZ$ type = "hex"
|
||||
*/
|
||||
#define USB_KEYBOARD_PRODUCT_ID 0xffff
|
||||
|
||||
#endif /* CFG_USB_KEYBOARD_H */
|
|
@ -0,0 +1,78 @@
|
|||
/**
|
||||
* \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 2010 Develer S.r.l. (http://www.develer.com/)
|
||||
*
|
||||
* -->
|
||||
*
|
||||
* \author Andrea Righi <arighi@develer.com>
|
||||
*
|
||||
* \brief Configuration file for the usbmouse driver module
|
||||
*/
|
||||
|
||||
#ifndef CFG_USBMOUSE_H
|
||||
#define CFG_USBMOUSE_H
|
||||
|
||||
/**
|
||||
* Enable the usbmouse module.
|
||||
*
|
||||
* $WIZ$ type = "autoenabled"
|
||||
*/
|
||||
#define CONFIG_USBMOUSE 0
|
||||
|
||||
/**
|
||||
* Module logging level.
|
||||
*
|
||||
* $WIZ$ type = "enum"
|
||||
* $WIZ$ value_list = "log_level"
|
||||
*/
|
||||
#define USB_MOUSE_LOG_LEVEL LOG_LVL_INFO
|
||||
|
||||
/**
|
||||
* module logging format.
|
||||
*
|
||||
* $WIZ$ type = "enum"
|
||||
* $WIZ$ value_list = "log_format"
|
||||
*/
|
||||
#define USB_MOUSE_LOG_FORMAT LOG_FMT_TERSE
|
||||
|
||||
/**
|
||||
* USB vendor ID (please change this in your project, using a valid ID number!).
|
||||
*
|
||||
* $WIZ$ type = "hex"
|
||||
*/
|
||||
#define USB_MOUSE_VENDOR_ID 0xffff
|
||||
|
||||
/**
|
||||
* USB product ID (please change this in your project, using a valid ID number!).
|
||||
*
|
||||
* $WIZ$ type = "hex"
|
||||
*/
|
||||
#define USB_MOUSE_PRODUCT_ID 0x0000
|
||||
|
||||
#endif /* CFG_USBMOUSE_H */
|
|
@ -0,0 +1,78 @@
|
|||
/**
|
||||
* \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 2010 Develer S.r.l. (http://www.develer.com/)
|
||||
*
|
||||
* -->
|
||||
*
|
||||
* \author Andrea Righi <arighi@develer.com>
|
||||
*
|
||||
* \brief Configuration file for the USB serial driver module
|
||||
*/
|
||||
|
||||
#ifndef CFG_USBSER_H
|
||||
#define CFG_USBSER_H
|
||||
|
||||
/**
|
||||
* Enable the usb-serial module.
|
||||
*
|
||||
* $WIZ$ type = "autoenabled"
|
||||
*/
|
||||
#define CONFIG_USBSER 0
|
||||
|
||||
/**
|
||||
* Module logging level.
|
||||
*
|
||||
* $WIZ$ type = "enum"
|
||||
* $WIZ$ value_list = "log_level"
|
||||
*/
|
||||
#define USB_SERIAL_LOG_LEVEL LOG_LVL_INFO
|
||||
|
||||
/**
|
||||
* module logging format.
|
||||
*
|
||||
* $WIZ$ type = "enum"
|
||||
* $WIZ$ value_list = "log_format"
|
||||
*/
|
||||
#define USB_SERIAL_LOG_FORMAT LOG_FMT_TERSE
|
||||
|
||||
/**
|
||||
* USB vendor ID (please change this in your project, using a valid ID number!).
|
||||
*
|
||||
* $WIZ$ type = "hex"
|
||||
*/
|
||||
#define USB_SERIAL_VENDOR_ID 0x05f9
|
||||
|
||||
/**
|
||||
* USB product ID (please change this in your project, using a valid ID number!).
|
||||
*
|
||||
* $WIZ$ type = "hex"
|
||||
*/
|
||||
#define USB_SERIAL_PRODUCT_ID 0xffff
|
||||
|
||||
#endif /* CFG_USBSER_H */
|
|
@ -0,0 +1,47 @@
|
|||
/**
|
||||
* \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 2008 Develer S.r.l. (http://www.develer.com/)
|
||||
* All Rights Reserved.
|
||||
* -->
|
||||
*
|
||||
* \brief Configuration file for watchdog module.
|
||||
*
|
||||
*
|
||||
* \author Daniele Basile <asterix@develer.com>
|
||||
*/
|
||||
|
||||
#ifndef CFG_WDT_H
|
||||
#define CFG_WDT_H
|
||||
|
||||
/// Enable watchdog timer. $WIZ$ type = "autoenabled"
|
||||
#define CONFIG_WATCHDOG 0
|
||||
|
||||
#endif /* CFG_WDT_H */
|
||||
|
||||
|
|
@ -0,0 +1,79 @@
|
|||
/**
|
||||
* \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 2008 Develer S.r.l. (http://www.develer.com/)
|
||||
* All Rights Reserved.
|
||||
* -->
|
||||
*
|
||||
* \brief Configuration file for xmodem module.
|
||||
*
|
||||
* \author Daniele Basile <asterix@develer.com>
|
||||
*/
|
||||
|
||||
#ifndef CFG_XMODEM_H
|
||||
#define CFG_XMODEM_H
|
||||
|
||||
/**
|
||||
* Module logging level.
|
||||
* $WIZ$ type = "enum"
|
||||
* $WIZ$ value_list = "log_level"
|
||||
*/
|
||||
#define CONFIG_XMODEM_LOG_LEVEL LOG_LVL_ERR
|
||||
/**
|
||||
* Module logging format.
|
||||
* $WIZ$ type = "enum"
|
||||
* $WIZ$ value_list = "log_format"
|
||||
*/
|
||||
#define CONFIG_XMODEM_LOG_FORMAT LOG_FMT_TERSE
|
||||
|
||||
|
||||
/// Enable Rx. $WIZ$ type = "boolean"
|
||||
#define CONFIG_XMODEM_RECV 1
|
||||
|
||||
/// Enable TX. $WIZ$ type = "boolean"
|
||||
#define CONFIG_XMODEM_SEND 1
|
||||
|
||||
/// Allow a Rx/Tx of 1Kbyte block. $WIZ$ type = "boolean"
|
||||
#define CONFIG_XMODEM_1KCRC 1
|
||||
|
||||
/**
|
||||
* Max retries before giving up.
|
||||
* $WIZ$ type = "int"
|
||||
* $WIZ$ min = 1
|
||||
*/
|
||||
#define CONFIG_XMODEM_MAXRETRIES 15
|
||||
|
||||
/**
|
||||
* Max retries before switching to BCC.
|
||||
* $WIZ$ type = "int"
|
||||
* $WIZ$ min = 1
|
||||
*/
|
||||
#define CONFIG_XMODEM_MAXCRCRETRIES 7
|
||||
|
||||
#endif /* CFG_XMODEM_H */
|
||||
|
|
@ -0,0 +1,77 @@
|
|||
|
||||
#ifndef CFG_AFSK_H
|
||||
#define CFG_AFSK_H
|
||||
|
||||
/**
|
||||
* Module logging level.
|
||||
*
|
||||
* $WIZ$ type = "enum"
|
||||
* $WIZ$ value_list = "log_level"
|
||||
*/
|
||||
#define AFSK_LOG_LEVEL LOG_LVL_WARN
|
||||
|
||||
/**
|
||||
* Module logging format.
|
||||
*
|
||||
* $WIZ$ type = "enum"
|
||||
* $WIZ$ value_list = "log_format"
|
||||
*/
|
||||
#define AFSK_LOG_FORMAT LOG_FMT_TERSE
|
||||
|
||||
|
||||
/**
|
||||
* AFSK discriminator filter type.
|
||||
*
|
||||
* $WIZ$ type = "enum"; value_list = "afsk_filter_list"
|
||||
*/
|
||||
#define CONFIG_AFSK_FILTER AFSK_CHEBYSHEV
|
||||
|
||||
|
||||
/**
|
||||
* AFSK receiver buffer length.
|
||||
*
|
||||
* $WIZ$ type = "int"
|
||||
* $WIZ$ min = 2
|
||||
*/
|
||||
#define CONFIG_AFSK_RX_BUFLEN 64
|
||||
|
||||
/**
|
||||
* AFSK transimtter buffer length.
|
||||
*
|
||||
* $WIZ$ type = "int"
|
||||
* $WIZ$ min = 2
|
||||
*/
|
||||
#define CONFIG_AFSK_TX_BUFLEN 64
|
||||
|
||||
/**
|
||||
* AFSK DAC sample rate for modem outout.
|
||||
* $WIZ$ type = "int"
|
||||
* $WIZ$ min = 2400
|
||||
*/
|
||||
#define CONFIG_AFSK_DAC_SAMPLERATE 9600
|
||||
|
||||
/**
|
||||
* AFSK RX timeout in ms, set to -1 to disable.
|
||||
* $WIZ$ type = "int"
|
||||
* $WIZ$ min = -1
|
||||
*/
|
||||
#define CONFIG_AFSK_RXTIMEOUT 0
|
||||
|
||||
|
||||
/**
|
||||
* AFSK Preamble length in [ms], before starting transmissions.
|
||||
* $WIZ$ type = "int"
|
||||
* $WIZ$ min = 1
|
||||
*/
|
||||
#define CONFIG_AFSK_PREAMBLE_LEN 300UL
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* AFSK Trailer length in [ms], before stopping transmissions.
|
||||
* $WIZ$ type = "int"
|
||||
* $WIZ$ min = 1
|
||||
*/
|
||||
#define CONFIG_AFSK_TRAILER_LEN 50UL
|
||||
|
||||
#endif /* CFG_AFSK_H */
|
|
@ -0,0 +1,63 @@
|
|||
|
||||
#include "hardware.h"
|
||||
|
||||
#include <net/afsk.h>
|
||||
#include <cpu/irq.h>
|
||||
|
||||
#include <avr/io.h>
|
||||
#include <avr/interrupt.h>
|
||||
|
||||
|
||||
/*
|
||||
* Here we are using only one modem. If you need to receive
|
||||
* from multiple modems, you need to define an array of contexts.
|
||||
*/
|
||||
static Afsk *ctx;
|
||||
|
||||
void hw_afsk_adcInit(int ch, Afsk *_ctx)
|
||||
{
|
||||
ctx = _ctx;
|
||||
ASSERT(ch <= 5);
|
||||
|
||||
AFSK_STROBE_INIT();
|
||||
AFSK_STROBE_OFF();
|
||||
/* Set prescaler to clk/8 (2 MHz), CTC, top = ICR1 */
|
||||
TCCR1A = 0;
|
||||
TCCR1B = BV(CS11) | BV(WGM13) | BV(WGM12);
|
||||
/* Set max value to obtain a 9600Hz freq */
|
||||
ICR1 = ((CPU_FREQ / 8) / 9600) - 1;
|
||||
|
||||
/* Set reference to AVCC (5V), select CH */
|
||||
ADMUX = BV(REFS0) | ch;
|
||||
|
||||
DDRC &= ~BV(ch);
|
||||
PORTC &= ~BV(ch);
|
||||
DIDR0 |= BV(ch);
|
||||
|
||||
/* Set autotrigger on Timer1 Input capture flag */
|
||||
ADCSRB = BV(ADTS2) | BV(ADTS1) | BV(ADTS0);
|
||||
/* Enable ADC, autotrigger, 1MHz, IRQ enabled */
|
||||
/* We are using the ADC a bit out of specifications otherwise it's not fast enough for our
|
||||
* purposes */
|
||||
ADCSRA = BV(ADEN) | // ADC Enable
|
||||
BV(ADSC) | // ADC Start converting
|
||||
BV(ADATE) | // Enable autotriggering
|
||||
BV(ADIE) | // ADC Interrupt enable
|
||||
BV(ADPS2); // Enable prescaler flag 2 (1-0-0 = division by 16 = 1MHz)
|
||||
}
|
||||
|
||||
|
||||
bool hw_afsk_dac_isr;
|
||||
|
||||
/*
|
||||
* This is how you declare an ISR.
|
||||
*/
|
||||
DECLARE_ISR(ADC_vect)
|
||||
{
|
||||
TIFR1 = BV(ICF1);
|
||||
afsk_adc_isr(ctx, ((int16_t)((ADC) >> 2) - 128));
|
||||
if (hw_afsk_dac_isr)
|
||||
PORTD = afsk_dac_isr(ctx) & 0xF0;
|
||||
else
|
||||
PORTD = 128;
|
||||
}
|
|
@ -0,0 +1,73 @@
|
|||
|
||||
#ifndef HW_AFSK_H
|
||||
#define HW_AFSK_H
|
||||
|
||||
#include "cfg/cfg_arch.h"
|
||||
|
||||
#include <avr/io.h>
|
||||
|
||||
struct Afsk;
|
||||
void hw_afsk_adcInit(int ch, struct Afsk *_ctx);
|
||||
void hw_afsk_dacInit(int ch, struct Afsk *_ctx);
|
||||
|
||||
/**
|
||||
* Initialize the specified channel of the ADC for AFSK needs.
|
||||
* The adc should be configured to have a continuos stream of convertions.
|
||||
* For every convertion there must be an ISR that read the sample
|
||||
* and call afsk_adc_isr(), passing the context and the sample.
|
||||
*
|
||||
* \param ch channel to be used for AFSK demodulation.
|
||||
* \param ctx AFSK context (\see Afsk). This parameter must be saved and
|
||||
* passed back to afsk_adc_isr() for every convertion.
|
||||
*/
|
||||
|
||||
/*
|
||||
* This macro will be called for AFSK initialization. We could implement everything here as a macro,
|
||||
* but since initialization is rather complicated we decided to split its own function. Such function
|
||||
* is defined in hw_afsk.c.
|
||||
* Remember: since this .c file is not created by the wizard, you must add it to your_project_name.mk.
|
||||
* If you create the file using BeRTOS SDK, it will be added for you.
|
||||
*/
|
||||
#define AFSK_ADC_INIT(ch, ctx) hw_afsk_adcInit(ch, ctx)
|
||||
|
||||
/*
|
||||
* Activate strobe pin. We use it for debugging purposes. If you don't use it, simply
|
||||
* leave empty the following macros
|
||||
*/
|
||||
#define AFSK_STROBE_INIT() do { DDRB |= BV(5); } while (0)
|
||||
|
||||
/*
|
||||
* Set the pin high. This macro is called at the beginning of the interrupt routine
|
||||
*/
|
||||
#define AFSK_STROBE_ON() do { PORTB |= BV(5); } while (0)
|
||||
|
||||
/*
|
||||
* Set the pin low. This macro is called at the end of the interrupt routine
|
||||
*/
|
||||
#define AFSK_STROBE_OFF() do { PORTB &= ~BV(5); } while (0)
|
||||
|
||||
/**
|
||||
* Initialize the specified channel of the DAC for AFSK needs.
|
||||
* The DAC has to be configured in order to call an ISR for every sample sent.
|
||||
* The DAC doesn't have to start the IRQ immediatly but have to wait
|
||||
* the AFSK driver to call AFSK_DAC_IRQ_START().
|
||||
* The ISR must then call afsk_dac_isr() passing the AFSK context.
|
||||
* \param ch DAC channel to be used for AFSK modulation.
|
||||
* \param ctx AFSK context (\see Afsk). This parameter must be saved and
|
||||
* passed back to afsk_dac_isr() for every convertion.
|
||||
*/
|
||||
#define AFSK_DAC_INIT(ch, ctx) do { (void)ch, (void)ctx; DDRD |= 0xF0; DDRB |= BV(3); } while (0)
|
||||
|
||||
/**
|
||||
* Start DAC convertions on channel \a ch.
|
||||
* \param ch DAC channel.
|
||||
*/
|
||||
#define AFSK_DAC_IRQ_START(ch) do { (void)ch; extern bool hw_afsk_dac_isr; PORTB |= BV(3); hw_afsk_dac_isr = true; } while (0)
|
||||
|
||||
/**
|
||||
* Stop DAC convertions on channel \a ch.
|
||||
* \param ch DAC channel.
|
||||
*/
|
||||
#define AFSK_DAC_IRQ_STOP(ch) do { (void)ch; extern bool hw_afsk_dac_isr; PORTB &= ~BV(3); hw_afsk_dac_isr = false; } while (0)
|
||||
|
||||
#endif /* HW_AFSK_H */
|
|
@ -0,0 +1,97 @@
|
|||
/**
|
||||
* \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 2010 Develer S.r.l. (http://www.develer.com/)
|
||||
* All Rights Reserved.
|
||||
* -->
|
||||
*
|
||||
* \brief AFSK modem hardware-specific definitions.
|
||||
*
|
||||
*
|
||||
* \author Francesco Sacchi <batt@develer.com>
|
||||
*/
|
||||
|
||||
|
||||
#include "hw_afsk.h"
|
||||
|
||||
#include <net/afsk.h>
|
||||
#include <cpu/irq.h>
|
||||
|
||||
#include <avr/io.h>
|
||||
#include <avr/interrupt.h>
|
||||
|
||||
|
||||
/*
|
||||
* Here we are using only one modem. If you need to receive
|
||||
* from multiple modems, you need to define an array of contexts.
|
||||
*/
|
||||
static Afsk *ctx;
|
||||
|
||||
void hw_afsk_adcInit(int ch, Afsk *_ctx)
|
||||
{
|
||||
ctx = _ctx;
|
||||
ASSERT(ch <= 5);
|
||||
|
||||
AFSK_STROBE_INIT();
|
||||
AFSK_STROBE_OFF();
|
||||
/* Set prescaler to clk/8 (2 MHz), CTC, top = ICR1 */
|
||||
TCCR1A = 0;
|
||||
TCCR1B = BV(CS11) | BV(WGM13) | BV(WGM12);
|
||||
/* Set max value to obtain a 9600Hz freq */
|
||||
ICR1 = ((CPU_FREQ / 8) / 9600) - 1;
|
||||
|
||||
/* Set reference to AVCC (5V), select CH */
|
||||
ADMUX = BV(REFS0) | ch;
|
||||
|
||||
DDRC &= ~BV(ch);
|
||||
PORTC &= ~BV(ch);
|
||||
DIDR0 |= BV(ch);
|
||||
|
||||
/* Set autotrigger on Timer1 Input capture flag */
|
||||
ADCSRB = BV(ADTS2) | BV(ADTS1) | BV(ADTS0);
|
||||
/* Enable ADC, autotrigger, 1MHz, IRQ enabled */
|
||||
/* We are using the ADC a bit out of specifications otherwise it's not fast enough for our
|
||||
* purposes */
|
||||
ADCSRA = BV(ADEN) | BV(ADSC) | BV(ADATE) | BV(ADIE) | BV(ADPS2);
|
||||
}
|
||||
|
||||
|
||||
bool hw_afsk_dac_isr;
|
||||
|
||||
/*
|
||||
* This is how you declare an ISR.
|
||||
*/
|
||||
DECLARE_ISR(ADC_vect)
|
||||
{
|
||||
TIFR1 = BV(ICF1);
|
||||
afsk_adc_isr(ctx, ((int16_t)((ADC) >> 2) - 128));
|
||||
if (hw_afsk_dac_isr)
|
||||
PORTD = afsk_dac_isr(ctx) & 0xF0;
|
||||
else
|
||||
PORTD = 128;
|
||||
}
|
|
@ -0,0 +1,110 @@
|
|||
/**
|
||||
* \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 AFSK modem hardware-specific definitions.
|
||||
*
|
||||
*
|
||||
* \author Francesco Sacchi <batt@develer.com>
|
||||
*/
|
||||
|
||||
#ifndef HW_AFSK_H
|
||||
#define HW_AFSK_H
|
||||
|
||||
#include "cfg/cfg_arch.h"
|
||||
|
||||
#include <avr/io.h>
|
||||
|
||||
struct Afsk;
|
||||
void hw_afsk_adcInit(int ch, struct Afsk *_ctx);
|
||||
void hw_afsk_dacInit(int ch, struct Afsk *_ctx);
|
||||
|
||||
/**
|
||||
* Initialize the specified channel of the ADC for AFSK needs.
|
||||
* The adc should be configured to have a continuos stream of convertions.
|
||||
* For every convertion there must be an ISR that read the sample
|
||||
* and call afsk_adc_isr(), passing the context and the sample.
|
||||
*
|
||||
* \param ch channel to be used for AFSK demodulation.
|
||||
* \param ctx AFSK context (\see Afsk). This parameter must be saved and
|
||||
* passed back to afsk_adc_isr() for every convertion.
|
||||
*/
|
||||
|
||||
/*
|
||||
* This macro will be called for AFSK initialization. We could implement everything here as a macro,
|
||||
* but since initialization is rather complicated we decided to split its own function. Such function
|
||||
* is defined in hw_afsk.c.
|
||||
* Remember: since this .c file is not created by the wizard, you must add it to your_project_name.mk.
|
||||
* If you create the file using BeRTOS SDK, it will be added for you.
|
||||
*/
|
||||
#define AFSK_ADC_INIT(ch, ctx) hw_afsk_adcInit(ch, ctx)
|
||||
|
||||
/*
|
||||
* Activate strobe pin. We use it for debugging purposes. If you don't use it, simply
|
||||
* leave empty the following macros
|
||||
*/
|
||||
#define AFSK_STROBE_INIT() do { DDRB |= BV(5); } while (0)
|
||||
|
||||
/*
|
||||
* Set the pin high. This macro is called at the beginning of the interrupt routine
|
||||
*/
|
||||
#define AFSK_STROBE_ON() do { PORTB |= BV(5); } while (0)
|
||||
|
||||
/*
|
||||
* Set the pin low. This macro is called at the end of the interrupt routine
|
||||
*/
|
||||
#define AFSK_STROBE_OFF() do { PORTB &= ~BV(5); } while (0)
|
||||
|
||||
/**
|
||||
* Initialize the specified channel of the DAC for AFSK needs.
|
||||
* The DAC has to be configured in order to call an ISR for every sample sent.
|
||||
* The DAC doesn't have to start the IRQ immediatly but have to wait
|
||||
* the AFSK driver to call AFSK_DAC_IRQ_START().
|
||||
* The ISR must then call afsk_dac_isr() passing the AFSK context.
|
||||
* \param ch DAC channel to be used for AFSK modulation.
|
||||
* \param ctx AFSK context (\see Afsk). This parameter must be saved and
|
||||
* passed back to afsk_dac_isr() for every convertion.
|
||||
*/
|
||||
#define AFSK_DAC_INIT(ch, ctx) do { (void)ch, (void)ctx; DDRD |= 0xF0; DDRB |= BV(3); } while (0)
|
||||
|
||||
/**
|
||||
* Start DAC convertions on channel \a ch.
|
||||
* \param ch DAC channel.
|
||||
*/
|
||||
#define AFSK_DAC_IRQ_START(ch) do { (void)ch; extern bool hw_afsk_dac_isr; PORTB |= BV(3); hw_afsk_dac_isr = true; } while (0)
|
||||
|
||||
/**
|
||||
* Stop DAC convertions on channel \a ch.
|
||||
* \param ch DAC channel.
|
||||
*/
|
||||
#define AFSK_DAC_IRQ_STOP(ch) do { (void)ch; extern bool hw_afsk_dac_isr; PORTB &= ~BV(3); hw_afsk_dac_isr = false; } while (0)
|
||||
|
||||
#endif /* HW_AFSK_H */
|
|
@ -0,0 +1,51 @@
|
|||
/**
|
||||
* \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, 2005, 2006, 2008 Develer S.r.l. (http://www.develer.com/)
|
||||
* Copyright 2000 Bernie Innocenti
|
||||
* All Rights Reserved.
|
||||
* -->
|
||||
*
|
||||
* \brief Buzzer hardware-specific definitions
|
||||
*
|
||||
*
|
||||
* \author Francesco Sacchi <batt@develer.com>
|
||||
*/
|
||||
|
||||
#ifndef HW_BUZZER_H
|
||||
#define HW_BUZZER_H
|
||||
|
||||
#warning TODO:This is an example implementation, you must implement it!
|
||||
|
||||
#define BUZZER_BIT 1
|
||||
#define IS_BUZZER_ON 0
|
||||
#define BUZZER_HW_INIT do { /* Implement me! */ } while (0)
|
||||
#define BUZZER_ON do { /* Implement me! */ } while (0)
|
||||
#define BUZZER_OFF do { /* Implement me! */ } while (0)
|
||||
|
||||
#endif /* HW_BUZZER_H */
|
|
@ -0,0 +1,125 @@
|
|||
/**
|
||||
* \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 2008 Develer S.r.l. (http://www.develer.com/)
|
||||
* All Rights Reserved.
|
||||
* -->
|
||||
*
|
||||
* \brief Dataflash HW control routines.
|
||||
*
|
||||
* \author Francesco Sacchi <batt@develer.com>
|
||||
*/
|
||||
|
||||
#include "hw/hw_dataflash.h"
|
||||
|
||||
#include <cfg/compiler.h>
|
||||
#include <cfg/module.h>
|
||||
#include <cfg/macros.h>
|
||||
|
||||
#warning TODO:This is an example implementation, you must implement it!
|
||||
|
||||
MOD_DEFINE(hw_dataflash);
|
||||
|
||||
/**
|
||||
* Data flash init function.
|
||||
*
|
||||
* This function provide to initialize all that
|
||||
* needs to drive a dataflash memory.
|
||||
* Generaly needs to init pins to drive a CS line
|
||||
* and reset line.
|
||||
*/
|
||||
void dataflash_hw_init(void)
|
||||
{
|
||||
|
||||
//Disable CS line (remove if not needed)
|
||||
dataflash_hw_setCS(false);
|
||||
|
||||
/*
|
||||
* Put here your code!
|
||||
*
|
||||
* Note:
|
||||
* - if you drive manualy CS line, here init a CS pin
|
||||
* - if you use a dedicated reset line, here init a reset pin
|
||||
*/
|
||||
|
||||
MOD_INIT(hw_dataflash);
|
||||
}
|
||||
|
||||
/**
|
||||
* Chip Select drive.
|
||||
*
|
||||
* This function enable or disable a CS line.
|
||||
* You must implement this function comply to a dataflash
|
||||
* memory datasheet to allow the drive to enable a memory
|
||||
* when \p enable flag is true, and disable it when is false.
|
||||
*/
|
||||
void dataflash_hw_setCS(bool enable)
|
||||
{
|
||||
if (enable)
|
||||
{
|
||||
/*
|
||||
* Put here your code to enable
|
||||
* dataflash memory
|
||||
*/
|
||||
}
|
||||
else
|
||||
{
|
||||
/*
|
||||
* Put here your code to disable
|
||||
* dataflash memory
|
||||
*/
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Reset data flash memory.
|
||||
*
|
||||
* This function provide to send reset signal to
|
||||
* dataflash memory. You must impement it comly to a dataflash
|
||||
* memory datasheet to allow the drive to set a reset pin
|
||||
* when \p enable flag is true, and disable it when is false.
|
||||
*
|
||||
*/
|
||||
void dataflash_hw_setReset(bool enable)
|
||||
{
|
||||
if (enable)
|
||||
{
|
||||
/*
|
||||
* Put here your code to set reset of
|
||||
* dataflash memory
|
||||
*/
|
||||
}
|
||||
else
|
||||
{
|
||||
/*
|
||||
* Put here your code to clear reset of
|
||||
* dataflash memory
|
||||
*/
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,47 @@
|
|||
/**
|
||||
* \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 2008 Develer S.r.l. (http://www.develer.com/)
|
||||
* All Rights Reserved.
|
||||
* -->
|
||||
*
|
||||
* \brief Dataflash HW control routines (interface).
|
||||
*
|
||||
* \author Francesco Sacchi <batt@develer.com>
|
||||
*/
|
||||
|
||||
#ifndef HW_DATAFLASH_H
|
||||
#define HW_DATAFLASH_H
|
||||
|
||||
#include <cfg/compiler.h>
|
||||
|
||||
void dataflash_hw_init(void);
|
||||
void dataflash_hw_setCS(bool enable);
|
||||
void dataflash_hw_setReset(bool enable);
|
||||
|
||||
#endif /* HW_DATAFLASH_H */
|
|
@ -0,0 +1,84 @@
|
|||
/**
|
||||
* \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 DC motor hardware-specific definitions
|
||||
*
|
||||
*
|
||||
* \author Daniele Basile <asterix@develer.com>
|
||||
*/
|
||||
|
||||
#ifndef HW_DC_MOTOR_H
|
||||
#define HW_DC_MOTOR_H
|
||||
|
||||
typedef enum MotorDCMap
|
||||
{
|
||||
|
||||
/* Put here motor dc declaration */
|
||||
MOTOR_DC_CNT
|
||||
|
||||
} MotorDCMap;
|
||||
|
||||
/*
|
||||
* Init all pin and device to manage dc motor.
|
||||
*/
|
||||
#define MOTOR_DC_INIT() \
|
||||
do { \
|
||||
/* Implement me! */ \
|
||||
} while (0)
|
||||
|
||||
|
||||
/*
|
||||
* Enable DC motor.
|
||||
*/
|
||||
#define DC_MOTOR_ENABLE(dev) \
|
||||
do { \
|
||||
/* Implement me! */ \
|
||||
} while (0)
|
||||
|
||||
/*
|
||||
* Disable DC motor.
|
||||
*/
|
||||
#define DC_MOTOR_DISABLE(dev) \
|
||||
do { \
|
||||
/* Implement me! */ \
|
||||
} while (0)
|
||||
|
||||
/*
|
||||
* Set direction for DC motor.
|
||||
*/
|
||||
#define DC_MOTOR_SET_DIR(dev, dir) \
|
||||
do { \
|
||||
/* Implement me! */ \
|
||||
} while (0)
|
||||
|
||||
|
||||
#endif /* HW_DC_MOTOR_H */
|
|
@ -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 Develer S.r.l. (http://www.develer.com/)
|
||||
* All Rights Reserved.
|
||||
* -->
|
||||
*
|
||||
* \brief FT245RL USB interface hardware-specific definitions
|
||||
*
|
||||
*
|
||||
* \author Francesco Sacchi <batt@develer.com>
|
||||
*/
|
||||
|
||||
#ifndef HW_FT245RL_H
|
||||
#define HW_FT245RL_H
|
||||
|
||||
#warning TODO:This is an example implementation, you must implement it!
|
||||
|
||||
#define FT245RL_DATA_IN() /* Implement me! */
|
||||
#define FT245RL_DATA_OUT() /* Implement me! */
|
||||
#define WR_HI /* Implement me! */
|
||||
#define WR_LO /* Implement me! */
|
||||
|
||||
#define RD_HI /* Implement me! */
|
||||
#define RD_LO /* Implement me! */
|
||||
|
||||
#define FT245RL_INIT() \
|
||||
do \
|
||||
{ \
|
||||
/* Implement me! */ \
|
||||
} while(0)
|
||||
|
||||
#define FT245RL_DATA_RDY() (/* Implement me! */ false)
|
||||
#define FT245RL_GETDATA() ({/* Implement me! */ (0);})
|
||||
#define FT245RL_TX_ALLOWED() (/* Implement me! */ false)
|
||||
#define FT245RL_SETDATA(data) do {/* Implement me! */ (void)((data)); } while(0)
|
||||
|
||||
#endif /* HW_FT245RL_H */
|
||||
|
|
@ -0,0 +1,127 @@
|
|||
/**
|
||||
* \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, 2008 Develer S.r.l. (http://www.develer.com/)
|
||||
* Copyright 2000 Bernie Innocenti <bernie@codewiz.org>
|
||||
* All Rights Reserved.
|
||||
* -->
|
||||
*
|
||||
* \brief Macro for I2C bitbang operation.
|
||||
*
|
||||
*
|
||||
*
|
||||
* \author Francesco Sacchi <batt@develer.com>
|
||||
*/
|
||||
|
||||
#ifndef HW_I2C_BITBANG_H
|
||||
#define HW_I2C_BITBANG_H
|
||||
|
||||
#warning TODO:This is an example implementation, you must implement it!
|
||||
|
||||
#define SDA_HI do { /* Implement me:Set SDA High by setting SDA pin as input */ } while (0)
|
||||
#define SDA_LO do { /* Implement me:Set SDA Low by setting SDA pin as open collector output */ } while (0)
|
||||
#define SCL_HI do { /* Implement me:Set SCL High by setting SCL pin as input */ } while (0)
|
||||
#define SCL_LO do { /* Implement me:Set SCL Low by setting SCL pin as open collector output */ } while (0)
|
||||
|
||||
|
||||
#define SCL_IN (true) /* Implement me: read SDA pin state */
|
||||
#define SDA_IN (true) /* Implement me: read SCL pin state */
|
||||
|
||||
/**
|
||||
* This macro should set SDA and SCL lines as input.
|
||||
*/
|
||||
#define I2C_BITBANG_HW_INIT do { /* Implement me! */ } while (0)
|
||||
|
||||
/**
|
||||
* Half bit delay routine used to generate the correct timings.
|
||||
*/
|
||||
#define I2C_HALFBIT_DELAY() do { /* Implement me! */ } while (0)
|
||||
|
||||
|
||||
/*
|
||||
* New api
|
||||
*/
|
||||
#include <cfg/compiler.h>
|
||||
|
||||
INLINE void i2c_sdaHi(int dev)
|
||||
{
|
||||
(void)(dev);
|
||||
/* Implement me:Set SDA High by setting SDA pin as input */
|
||||
}
|
||||
|
||||
INLINE void i2c_sdaLo(int dev)
|
||||
{
|
||||
(void)(dev);
|
||||
/* Implement me:Set SDA Low by setting SDA pin as open collector output */
|
||||
}
|
||||
|
||||
INLINE void i2c_sclHi(int dev)
|
||||
{
|
||||
(void)(dev);
|
||||
/* Implement me:Set SCL High by setting SCL pin as input */
|
||||
}
|
||||
|
||||
INLINE void i2c_sclLo(int dev)
|
||||
{
|
||||
(void)(dev);
|
||||
/* Implement me:Set SCL Low by setting SCL pin as open collector output */
|
||||
}
|
||||
|
||||
INLINE bool i2c_sdaIn(int dev)
|
||||
{
|
||||
(void)(dev);
|
||||
/* Implement me: read SDA pin state */
|
||||
return true;
|
||||
}
|
||||
|
||||
INLINE bool i2c_sclIn(int dev)
|
||||
{
|
||||
(void)(dev);
|
||||
/* Implement me: read SCL pin state */
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Half bit delay routine used to generate the correct timings.
|
||||
*/
|
||||
INLINE void i2c_halfbitDelay(int dev)
|
||||
{
|
||||
(void)(dev);
|
||||
/* Implement me! */
|
||||
}
|
||||
|
||||
/**
|
||||
* This macro should set SDA and SCL lines as input.
|
||||
*/
|
||||
INLINE void i2c_bitbangInit(int dev)
|
||||
{
|
||||
(void)(dev);
|
||||
/* Implement me! */
|
||||
}
|
||||
|
||||
#endif /* HW_I2C_BITBANG_H */
|
|
@ -0,0 +1,71 @@
|
|||
/**
|
||||
* \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, 2005, 2006, 2008 Develer S.r.l. (http://www.develer.com/)
|
||||
* Copyright 2000 Bernie Innocenti
|
||||
* All Rights Reserved.
|
||||
* -->
|
||||
*
|
||||
* \brief Keyboard hardware-specific definitions
|
||||
*
|
||||
*
|
||||
* \author Francesco Sacchi <batt@develer.com>
|
||||
* \author Stefano Fedrigo <a@develer.com>
|
||||
*/
|
||||
|
||||
#ifndef HW_KBD_H
|
||||
#define HW_KBD_H
|
||||
|
||||
#include "hw/kbd_map.h"
|
||||
|
||||
#include <cfg/macros.h>
|
||||
|
||||
#warning TODO:This is an example implementation, you must implement it!
|
||||
|
||||
#define K_RPT_MASK (K_UP | K_DOWN | K_OK | K_CANCEL)
|
||||
|
||||
#define KBD_HW_INIT \
|
||||
do { \
|
||||
/* Put here code to init hw */ \
|
||||
} while (0)
|
||||
|
||||
EXTERN_C int emul_kbdReadCols(void);
|
||||
|
||||
/**
|
||||
* Read the keyboard ports and return the mask of
|
||||
* depressed keys.
|
||||
*/
|
||||
INLINE keymask_t kbd_readkeys(void)
|
||||
{
|
||||
/* Implement me! */
|
||||
|
||||
//Only for test remove when implement this function
|
||||
return 0;
|
||||
}
|
||||
|
||||
#endif /* HW_KBD_H */
|
|
@ -0,0 +1,155 @@
|
|||
/**
|
||||
* \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, 2005, 2006, 2010 Develer S.r.l. (http://www.develer.com/)
|
||||
* Copyright 2001 Bernie Innocenti <bernie@codewiz.org>
|
||||
*
|
||||
* -->
|
||||
*
|
||||
* \brief Displaytech 32122A LCD driver
|
||||
*
|
||||
* \author Bernie Innocenti <bernie@codewiz.org>
|
||||
* \author Stefano Fedrigo <aleph@develer.com>
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef HW_LCD_32122A_H
|
||||
#define HW_LCD_32122A_H
|
||||
|
||||
#include <cpu/types.h>
|
||||
#include <cpu/irq.h>
|
||||
|
||||
#warning TODO:This is an example implementation, you must implement it!
|
||||
|
||||
/**
|
||||
* Predefined LCD PWM contrast values
|
||||
*/
|
||||
#define LCD_DEF_PWM 145
|
||||
#define LCD_MAX_PWM 505
|
||||
#define LCD_MIN_PWM 130
|
||||
#define LCD_PWM_CH 0
|
||||
|
||||
|
||||
/**
|
||||
* \name LCD I/O pins/ports
|
||||
* @{
|
||||
*/
|
||||
#define LCD_RS /* Implement me! */
|
||||
#define LCD_RW /* Implement me! */
|
||||
#define LCD_PE_E1 /* Implement me! */
|
||||
#define LCD_PE_E2 /* Implement me! */
|
||||
#define LCD_DB0 /* Implement me! */
|
||||
#define LCD_DB1 /* Implement me! */
|
||||
#define LCD_DB2 /* Implement me! */
|
||||
#define LCD_DB3 /* Implement me! */
|
||||
#define LCD_DB4 /* Implement me! */
|
||||
#define LCD_DB5 /* Implement me! */
|
||||
#define LCD_DB6 /* Implement me! */
|
||||
#define LCD_DB7 /* Implement me! */
|
||||
#define LCD_PF_DB0 /* Implment me! */
|
||||
/*@}*/
|
||||
|
||||
/**
|
||||
* \name LCD bus control macros
|
||||
* @{
|
||||
*/
|
||||
#define LCD_CLR_A0 do { /* Implement me! */ } while (0)
|
||||
#define LCD_SET_A0 do { /* Implement me! */ } while (0)
|
||||
#define LCD_CLR_RD do { /* Implement me! */ } while (0)
|
||||
#define LCD_SET_RD do { /* Implement me! */ } while (0)
|
||||
#define LCD_CLR_E1 do { /* Implement me! */ } while (0)
|
||||
#define LCD_SET_E1 do { /* Implement me! */ } while (0)
|
||||
#define LCD_CLR_E2 do { /* Implement me! */ } while (0)
|
||||
#define LCD_SET_E2 do { /* Implement me! */ } while (0)
|
||||
#define LCD_SET_E(x) do { (void)x; /* Implement me! */ } while (0)
|
||||
#define LCD_CLR_E(x) do { (void)x; /* Implement me! */ } while (0)
|
||||
/*@}*/
|
||||
|
||||
/**
|
||||
* \name Chip select bits for LCD_SET_E()
|
||||
* @{
|
||||
*/
|
||||
#define LCDF_E1 ( 0/* Implement me! */)
|
||||
#define LCDF_E2 ( 0/* Implement me! */)
|
||||
/*@}*/
|
||||
/** Read from the LCD data bus (DB[0-7]) */
|
||||
#define LCD_WRITE(x) ((void)x)/* Implement me! */
|
||||
/** Write to the LCD data bus (DB[0-7]) */
|
||||
#define LCD_READ (0 /* Implement me! */ )
|
||||
|
||||
/** Set data bus direction to output (write to display) */
|
||||
#define LCD_DB_OUT /* Implement me! */
|
||||
|
||||
/** Set data bus direction to input (read from display) */
|
||||
#define LCD_DB_IN /* Implement me! */
|
||||
|
||||
/** Delay for write (Enable pulse width, 220ns) */
|
||||
#define LCD_DELAY_WRITE \
|
||||
do { \
|
||||
NOP; \
|
||||
NOP; \
|
||||
NOP; \
|
||||
NOP; \
|
||||
NOP; \
|
||||
} while (0)
|
||||
|
||||
/** Delay for read (Data ouput delay time, 120ns) */
|
||||
#define LCD_DELAY_READ \
|
||||
do { \
|
||||
NOP; \
|
||||
NOP; \
|
||||
NOP; \
|
||||
NOP; \
|
||||
} while (0)
|
||||
|
||||
|
||||
#define LCD_32122_RESET() do { /* Implement me! */ } while (0)
|
||||
|
||||
INLINE void lcd_32122a_hw_bus_init(void)
|
||||
{
|
||||
cpu_flags_t flags;
|
||||
IRQ_SAVE_DISABLE(flags);
|
||||
|
||||
/*
|
||||
* Here set bus pin!
|
||||
* to init a lcd device.
|
||||
*
|
||||
*/
|
||||
|
||||
/*
|
||||
* Data bus is in output state most of the time:
|
||||
* LCD r/w functions assume it is left in output state
|
||||
*/
|
||||
LCD_DB_OUT;
|
||||
|
||||
|
||||
IRQ_RESTORE(flags);
|
||||
}
|
||||
|
||||
#endif /* HW_LCD_32122A_H */
|
||||
|
|
@ -0,0 +1,157 @@
|
|||
/**
|
||||
* \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, 2005, 2008 Develer S.r.l. (http://www.develer.com/)
|
||||
* Copyright 2001 Bernie Innocenti <bernie@codewiz.org>
|
||||
*
|
||||
* -->
|
||||
*
|
||||
* \brief LCD low-level hardware macros
|
||||
*
|
||||
* \author Bernie Innocenti <bernie@codewiz.org>
|
||||
* \author Stefano Fedrigo <aleph@develer.com>
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef HW_LCD_HD44_H
|
||||
#define HW_LCD_HD44_H
|
||||
|
||||
#include "cfg/cfg_lcd_hd44.h" /* CONFIG_LCD_4BIT */
|
||||
|
||||
#include <cpu/types.h>
|
||||
#include <cpu/irq.h>
|
||||
|
||||
#warning TODO:This is an example implementation, you must implement it!
|
||||
|
||||
/**
|
||||
* \name LCD I/O pins/ports
|
||||
* @{
|
||||
*/
|
||||
#define LCD_RS /* Implement me! */
|
||||
#define LCD_RW /* Implement me! */
|
||||
#define LCD_E /* Implement me! */
|
||||
#define LCD_DB0 /* Implement me! */
|
||||
#define LCD_DB1 /* Implement me! */
|
||||
#define LCD_DB2 /* Implement me! */
|
||||
#define LCD_DB3 /* Implement me! */
|
||||
#define LCD_DB4 /* Implement me! */
|
||||
#define LCD_DB5 /* Implement me! */
|
||||
#define LCD_DB6 /* Implement me! */
|
||||
#define LCD_DB7 /* Implement me! */
|
||||
/*@}*/
|
||||
|
||||
/**
|
||||
* \name DB high nibble (DB[4-7])
|
||||
* @{
|
||||
*/
|
||||
|
||||
#if CONFIG_LCD_4BIT
|
||||
#define LCD_MASK (LCD_DB7 | LCD_DB6 | LCD_DB5 | LCD_DB4)
|
||||
#define LCD_SHIFT 4
|
||||
#else
|
||||
#define LCD_MASK (uint8_t)0xff
|
||||
#define LCD_SHIFT 0
|
||||
#endif
|
||||
/*@}*/
|
||||
|
||||
/**
|
||||
* \name LCD bus control macros
|
||||
* @{
|
||||
*/
|
||||
#define LCD_CLR_RS /* Implement me! */
|
||||
#define LCD_SET_RS /* Implement me! */
|
||||
#define LCD_CLR_RD /* Implement me! */
|
||||
#define LCD_SET_RD /* Implement me! */
|
||||
#define LCD_CLR_E /* Implement me! */
|
||||
#define LCD_SET_E /* Implement me! */
|
||||
|
||||
/* Enter command mode */
|
||||
#define LCD_SET_COMMAND() /* Implement me! */
|
||||
|
||||
/* Enter data mode */
|
||||
#define LCD_SET_DATA() /* Implement me! */
|
||||
|
||||
#if CONFIG_LCD_4BIT
|
||||
#define LCD_WRITE_H(x) ((void)x)/* Implement me! */
|
||||
#define LCD_WRITE_L(x) ((void)x)/* Implement me! */
|
||||
#define LCD_READ_H ( 0 /* Implement me! */ )
|
||||
#define LCD_READ_L ( 0 /* Implement me! */ )
|
||||
#else
|
||||
#define LCD_WRITE(x) ((void)x)/* Implement me! */
|
||||
#define LCD_READ (0 /* Implement me! */ )
|
||||
#endif
|
||||
/*@}*/
|
||||
|
||||
/** Set data bus direction to output (write to display) */
|
||||
#define LCD_DB_OUT /* Implement me! */
|
||||
|
||||
/** Set data bus direction to input (read from display) */
|
||||
#define LCD_DB_IN /* Implement me! */
|
||||
/** Delay for write (Enable pulse width, 220ns) */
|
||||
#define LCD_DELAY_WRITE \
|
||||
do { \
|
||||
NOP; \
|
||||
NOP; \
|
||||
NOP; \
|
||||
NOP; \
|
||||
NOP; \
|
||||
} while (0)
|
||||
|
||||
/** Delay for read (Data ouput delay time, 120ns) */
|
||||
#define LCD_DELAY_READ \
|
||||
do { \
|
||||
NOP; \
|
||||
NOP; \
|
||||
NOP; \
|
||||
NOP; \
|
||||
} while (0)
|
||||
|
||||
|
||||
|
||||
INLINE void lcd_hd44_hw_bus_init(void)
|
||||
{
|
||||
cpu_flags_t flags;
|
||||
IRQ_SAVE_DISABLE(flags);
|
||||
|
||||
/*
|
||||
* Here set bus pin!
|
||||
* to init a lcd device.
|
||||
*
|
||||
*/
|
||||
|
||||
/*
|
||||
* Data bus is in output state most of the time:
|
||||
* LCD r/w functions assume it is left in output state
|
||||
*/
|
||||
LCD_DB_OUT;
|
||||
|
||||
|
||||
IRQ_RESTORE(flags);
|
||||
}
|
||||
|
||||
#endif /* HW_LCD_HD44_H */
|
|
@ -0,0 +1,47 @@
|
|||
/**
|
||||
* \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 2010 Develer S.r.l. (http://www.develer.com/)
|
||||
* All Rights Reserved.
|
||||
* -->
|
||||
*
|
||||
* \brief Led on/off macros.
|
||||
*
|
||||
* \author Daniele Basile <asterix@develer.com>
|
||||
*/
|
||||
|
||||
#ifndef HW_LED_H
|
||||
#define HW_LED_H
|
||||
|
||||
#include <avr/io.h>
|
||||
|
||||
#define LED_ON() PORTB |= BV(5)
|
||||
#define LED_OFF() PORTB &= ~BV(5)
|
||||
#define LED_INIT() DDRB |= BV(5)
|
||||
|
||||
#endif /* HW_LED_H */
|
|
@ -0,0 +1,49 @@
|
|||
/**
|
||||
* \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 2009 Develer S.r.l. (http://www.develer.com/)
|
||||
* All Rights Reserved.
|
||||
* -->
|
||||
*
|
||||
* \brief Hardware macro definition.
|
||||
*
|
||||
* \author Daniele Basile <asterix@develer.com>
|
||||
*/
|
||||
|
||||
#ifndef HW_LM75_H
|
||||
#define HW_LM75_H
|
||||
|
||||
#warning TODO:This is an example implentation, you must implement it!
|
||||
|
||||
#define LM75_HW_INIT() \
|
||||
do { \
|
||||
/* Pin init */\
|
||||
} while (0)
|
||||
|
||||
#endif /* HW_LM75_H */
|
||||
|
|
@ -0,0 +1,52 @@
|
|||
/**
|
||||
* \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/)
|
||||
* -->
|
||||
*
|
||||
* \brief MCP41 hardware-specific definitions
|
||||
*
|
||||
* \author Francesco Sacchi <batt@develer.com>
|
||||
*/
|
||||
|
||||
#include "hw/hw_mcp41.h"
|
||||
|
||||
#include <cfg/macros.h>
|
||||
#include <cfg/compiler.h>
|
||||
|
||||
#warning TODO:This is an example implementation, you must implement it!
|
||||
|
||||
const uint16_t mcp41_ports[MCP41_CNT] =
|
||||
{
|
||||
0, /* add here mcp41 ports */
|
||||
};
|
||||
const uint8_t mcp41_pins [MCP41_CNT] =
|
||||
{
|
||||
0, /* add here mcp41 ports */
|
||||
};
|
||||
|
|
@ -0,0 +1,74 @@
|
|||
/**
|
||||
* \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 2005 Develer S.r.l. (http://www.develer.com/)
|
||||
* -->
|
||||
*
|
||||
* \brief MCP41 hardware-specific definitions
|
||||
*
|
||||
* \author Francesco Sacchi <batt@develer.com>
|
||||
*/
|
||||
|
||||
#ifndef HW_MCP41_H
|
||||
#define HW_MCP41_H
|
||||
|
||||
#include "hw/mcp41_map.h"
|
||||
|
||||
#include <cfg/compiler.h>
|
||||
|
||||
|
||||
#warning TODO:This is an example implementation, you must implement it!
|
||||
|
||||
|
||||
INLINE void SET_MCP41_DDR(Mcp41Dev dev)
|
||||
{
|
||||
/* Implement me! */
|
||||
//Warning: this funtions is like avr target name,
|
||||
//fix it to comply for all target.
|
||||
|
||||
//Only for test remove when implement this function
|
||||
(void)dev;
|
||||
}
|
||||
|
||||
INLINE void MCP41_ON(Mcp41Dev i)
|
||||
{
|
||||
/* Implement me! */
|
||||
|
||||
//Only for test remove when implement this function
|
||||
(void)i;
|
||||
}
|
||||
|
||||
INLINE void MCP41_OFF(Mcp41Dev i)
|
||||
{
|
||||
/* Implement me! */
|
||||
|
||||
//Only for test remove when implement this function
|
||||
(void)i;
|
||||
}
|
||||
|
||||
#endif /* HW_MCP41_H */
|
|
@ -0,0 +1,45 @@
|
|||
/**
|
||||
* \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 2008 Develer S.r.l. (http://www.develer.com/)
|
||||
* All Rights Reserved.
|
||||
* -->
|
||||
*
|
||||
* \brief NTC hardware-specific definition
|
||||
*
|
||||
* \author Lorenzo Berni <duplo@develer.com>
|
||||
*
|
||||
*/
|
||||
|
||||
#include <drv/ntc.h>
|
||||
#include "hw/ntc_map.h"
|
||||
|
||||
const res_t NTC_RSER[NTC_CNT];
|
||||
const res_t NTC_RPAR[NTC_CNT];
|
||||
const amp_t NTC_AMP[NTC_CNT];
|
||||
const NtcHwInfo* NTC_INFO[NTC_CNT];
|
|
@ -0,0 +1,135 @@
|
|||
/**
|
||||
* \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 2008 Develer S.r.l. (http://www.develer.com/)
|
||||
* All Rights Reserved.
|
||||
* -->
|
||||
*
|
||||
* \brief NTC hardware-specific definition
|
||||
*
|
||||
* \author Francesco Sacchi <batt@develer.com>
|
||||
*
|
||||
* A NTC acts as a variable resistor, whose resistance changes as a
|
||||
* function of the temperature it measures. To sample it correctly, it is
|
||||
* usually parallelized and serialized with two fixed resistor. The following diagram shows
|
||||
* what is the exact disposition of the components, as handled by this
|
||||
* library:
|
||||
*
|
||||
*<pre>
|
||||
* o Vref
|
||||
* |
|
||||
* | o Vref
|
||||
* | |
|
||||
* ----- |
|
||||
* | | ---------
|
||||
* | Rser| | |
|
||||
* | | | |
|
||||
* ----- ----- | ADC |
|
||||
* | Vp | | | |
|
||||
* -----------|------| Amp |-------------| |
|
||||
* | | | | Vadc | |
|
||||
* ----- ----- ----- ---------
|
||||
* | | | |
|
||||
* | NTC | | Rpar|
|
||||
* | | | |
|
||||
* ----- -----
|
||||
* | |
|
||||
* | |
|
||||
* ----- -----
|
||||
* --- ---
|
||||
*</pre>
|
||||
* Amp is an amplifier that amplify of AMP times the signal.
|
||||
* If we indicate Rp as the parallel of NTC with Rpar, ADCBITS as the bits of the ad converter
|
||||
* and ADCVAL as the result from the adc convertion (Not Vadc but just the value read
|
||||
* from the adc register), after various calculation, the expression of Rp is:
|
||||
*
|
||||
*<pre>
|
||||
*
|
||||
* ADCVAL * Rser
|
||||
* Rp = ------------------------
|
||||
* ADCBITS
|
||||
* 2 * AMP - ADCVAL
|
||||
*</pre>
|
||||
*
|
||||
* And after that NTC obvisiously is:
|
||||
*<pre>
|
||||
* Rpar * Rp
|
||||
* NTC = ----------
|
||||
* Rpar - Rp
|
||||
*</pre>
|
||||
*
|
||||
*
|
||||
* The function ntc_hw_read() compute the resistence using these formulas above.
|
||||
*/
|
||||
|
||||
#ifndef HW_NTC_H
|
||||
#define HW_NTC_H
|
||||
|
||||
#include "ntc_map.h"
|
||||
|
||||
#include <cfg/debug.h>
|
||||
|
||||
#include <drv/ntc.h>
|
||||
#include <drv/adc.h>
|
||||
|
||||
#warning TODO:This is an example implementation, you must implement it!
|
||||
|
||||
extern const res_t NTC_RSER[NTC_CNT];
|
||||
extern const res_t NTC_RPAR[NTC_CNT];
|
||||
extern const amp_t NTC_AMP[NTC_CNT];
|
||||
extern const NtcHwInfo* NTC_INFO[NTC_CNT];
|
||||
|
||||
|
||||
/*!
|
||||
* Read the resistence of ntc device \a dev.
|
||||
* Return the result in res_t type.
|
||||
*/
|
||||
INLINE res_t ntc_hw_read(NtcDev dev)
|
||||
{
|
||||
ASSERT(dev < NTC_CNT);
|
||||
// See above for formula explanation.
|
||||
adcread_t adcval = adc_read((uint16_t)dev);
|
||||
float rp = (adcval * NTC_RSER[dev] ) / ((1 << adc_bits()) * NTC_AMP[dev] - adcval);
|
||||
|
||||
//kprintf("Rp[%f], Rntc[%f]\n", rp/100, ((NTC_RPAR[dev] * rp) / (NTC_RPAR[dev] - rp)) / 100.0);
|
||||
|
||||
return ( (NTC_RPAR[dev] * rp) / (NTC_RPAR[dev] - rp) );
|
||||
}
|
||||
|
||||
|
||||
/*!
|
||||
* Return the info (aka the table) associated with ntc device \a dev.
|
||||
*/
|
||||
INLINE const NtcHwInfo* ntc_hw_getInfo(NtcDev dev)
|
||||
{
|
||||
return NTC_INFO[dev];
|
||||
}
|
||||
|
||||
#define NTC_HW_INIT do { /* Implement me! */ } while(0)
|
||||
|
||||
#endif /* HW_NTC_H */
|
|
@ -0,0 +1,45 @@
|
|||
/**
|
||||
* \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 2008 Develer S.r.l. (http://www.develer.com/)
|
||||
* All Rights Reserved.
|
||||
* -->
|
||||
*
|
||||
* \brief Phase control hardware-specific definitions
|
||||
*
|
||||
* \author Francesco Sacchi <batt@develer.com>
|
||||
*/
|
||||
|
||||
#ifndef HW_PHASE_H
|
||||
#define HW_PHASE_H
|
||||
|
||||
#include "hw/hw_phase.h"
|
||||
|
||||
#warning TODO:This is an example implementation, you must implement it!
|
||||
|
||||
#endif /* HW_PHASE_H */
|
|
@ -0,0 +1,79 @@
|
|||
/**
|
||||
* \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 2008 Develer S.r.l. (http://www.develer.com/)
|
||||
*
|
||||
* -->
|
||||
*
|
||||
* \brief Phase control hardware-specific definitions
|
||||
*
|
||||
*
|
||||
* \author Francesco Sacchi <batt@develer.com>
|
||||
*/
|
||||
|
||||
#ifndef HW_PHASE_H
|
||||
#define HW_PHASE_H
|
||||
|
||||
#include "hw/phase_map.h"
|
||||
|
||||
#include <cfg/compiler.h>
|
||||
|
||||
#warning TODO:This is an example implementation, you must implement it!
|
||||
|
||||
#define PHASE_HW_INIT do { /* Implement me! */ }while (0)
|
||||
|
||||
INLINE void TRIAC_OFF(TriacDev i)
|
||||
{
|
||||
/* Implement me! */
|
||||
|
||||
//Only for test remove when implement this function
|
||||
(void)i;
|
||||
}
|
||||
|
||||
|
||||
INLINE void TRIAC_ON(TriacDev i)
|
||||
{
|
||||
/* Implement me! */
|
||||
|
||||
//Only for test remove when implement this function
|
||||
(void)i;
|
||||
}
|
||||
|
||||
INLINE void SET_TRIAC_DDR(TriacDev i)
|
||||
{
|
||||
/* Implement me! */
|
||||
|
||||
//Only for test remove when implement this function
|
||||
(void)i;
|
||||
}
|
||||
|
||||
void zerocross_isr(void);
|
||||
#define DEFINE_ZEROCROSS_ISR() void zerocross_isr(void)
|
||||
|
||||
|
||||
#endif /* HW_PHASE_H */
|
|
@ -0,0 +1,78 @@
|
|||
/**
|
||||
* \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 2010 Develer S.r.l. (http://www.develer.com/)
|
||||
*
|
||||
* -->
|
||||
*
|
||||
* \brief LM3S1986: OLED-RIT-128x96 (P14201) low-level hardware macros
|
||||
*
|
||||
* \author Andrea Righi <arighi@develer.com>
|
||||
*/
|
||||
|
||||
#ifndef HW_RIT128x96_H
|
||||
#define HW_RIT128x96_H
|
||||
|
||||
#include "cfg/macros.h" /* BV() */
|
||||
#include "cfg/debug.h"
|
||||
|
||||
#include <cpu/attr.h>
|
||||
#include <cpu/irq.h>
|
||||
#include <cpu/types.h>
|
||||
|
||||
/**
|
||||
* \name LCD I/O pins/ports
|
||||
* @{
|
||||
*/
|
||||
/* OLED Data/Command control pin */
|
||||
#define GPIO_OLEDDC_PIN 0 /* Implement me! */
|
||||
|
||||
/* OLED enable pin */
|
||||
#define GPIO_OLEDEN_PIN 0 /* Implement me! */
|
||||
/*@}*/
|
||||
|
||||
/**
|
||||
* \name LCD bus control macros
|
||||
* @{
|
||||
*/
|
||||
/* Enter command mode */
|
||||
#define LCD_SET_COMMAND() /* Implement me! */
|
||||
|
||||
/* Enter data mode */
|
||||
#define LCD_SET_DATA() /* Implement me! */
|
||||
|
||||
/* Send data to the display */
|
||||
#define LCD_WRITE(x) ((void)x)/* Implement me! */
|
||||
/*@}*/
|
||||
|
||||
INLINE void lcd_rit128x96_hw_bus_init(void)
|
||||
{
|
||||
/* Implement me! */
|
||||
}
|
||||
|
||||
#endif /* HW_RIT128x96_H */
|
|
@ -0,0 +1,52 @@
|
|||
/**
|
||||
* \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 2009 Develer S.r.l. (http://www.develer.com/)
|
||||
* All Rights Reserved.
|
||||
* -->
|
||||
*
|
||||
* \brief SD driver hardware-specific definitions.
|
||||
*
|
||||
*
|
||||
* \author Luca Ottaviano <lottaviano@develer.com>
|
||||
*/
|
||||
|
||||
#ifndef HW_SD_H
|
||||
#define HW_SD_H
|
||||
|
||||
#warning FIXME: This is an example implementation, you must implement it
|
||||
|
||||
#define SD_CS_INIT() do { /* implement me */} while(0)
|
||||
#define SD_CS_ON() do { /* implement me */} while(0)
|
||||
#define SD_CS_OFF() do { /* implement me */} while(0)
|
||||
|
||||
#define SD_PIN_INIT() do { /* implement me */} while(0)
|
||||
#define SD_CARD_PRESENT() true /* implement me */
|
||||
#define SD_WRITE_PROTECT() false /* implement me */
|
||||
|
||||
#endif /* HW_SD_H */
|
|
@ -0,0 +1,52 @@
|
|||
/**
|
||||
* \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 Serial hardware-specific definitions
|
||||
*
|
||||
*
|
||||
* \author Daniele Basile <asterix@develer.com>
|
||||
*/
|
||||
|
||||
#ifndef HW_SER_H
|
||||
#define HW_SER_H
|
||||
|
||||
#include "cfg/cfg_ser.h"
|
||||
|
||||
#if CONFIG_SER_STROBE
|
||||
#warning FIXME: this is an example implementation, you must implement it
|
||||
|
||||
#define SER_STROBE_INIT do { /* implement me */ } while (0)
|
||||
#define SER_STROBE_ON do { /* implement me */ } while (0)
|
||||
#define SER_STROBE_OFF do { /* implement me */ } while (0)
|
||||
#endif
|
||||
|
||||
#endif /* HW_SER_H */
|
|
@ -0,0 +1,108 @@
|
|||
/**
|
||||
* \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, 2008, 2009 Develer S.r.l. (http://www.develer.com/)
|
||||
* Copyright 2000 Bernie Innocenti <bernie@codewiz.org>
|
||||
* All Rights Reserved.
|
||||
* -->
|
||||
*
|
||||
* \brief Macro for HW_SIPO_H
|
||||
*
|
||||
*
|
||||
*
|
||||
* \author Andrea Grandi <andrea@develer.com>
|
||||
* \author Daniele Basile <asterix@develer.com>
|
||||
*/
|
||||
|
||||
#ifndef HW_SIPO_H
|
||||
#define HW_SIPO_H
|
||||
|
||||
/**
|
||||
* Map sipo connection on board.
|
||||
*/
|
||||
typedef enum SipoMap
|
||||
{
|
||||
SIPO_CNT
|
||||
} SipoMap;
|
||||
|
||||
/**
|
||||
* Define generic macro to set pins logic level
|
||||
*/
|
||||
#define SIPO_SET_LEVEL_LOW(dev) do { /* Implement me! */ } while (0)
|
||||
#define SIPO_SET_LEVEL_HIGH(dev) do { /* Implement me! */ } while (0)
|
||||
|
||||
|
||||
/**
|
||||
* Generate one low pulse on select line.
|
||||
*/
|
||||
#define PULSE_LOW(dev) do { /* Implement me! */ } while (0)
|
||||
|
||||
/**
|
||||
* Generate one hight pulse on select line.
|
||||
*/
|
||||
#define PULSE_HIGH(dev) do { /* Implement me! */ } while (0)
|
||||
|
||||
|
||||
/**
|
||||
* Define the procedure to drive serial input in sipo device (SI).
|
||||
*/
|
||||
#define SIPO_SI_HIGH() do { /* Implement me! */ } while (0)
|
||||
#define SIPO_SI_LOW() do { /* Implement me! */ } while (0)
|
||||
|
||||
/**
|
||||
* Drive clock to shift SI data into latch.
|
||||
*/
|
||||
#define SIPO_SI_CLOCK(clk_pol) \
|
||||
do { \
|
||||
(void)clk_pol; \
|
||||
/* Implement me! */ \
|
||||
} while (0)
|
||||
|
||||
/**
|
||||
* Do everything needed in order to load dato into sipo.
|
||||
*/
|
||||
#define SIPO_LOAD(device, load_pol) do { /* Implement me! */ } while (0)
|
||||
|
||||
/**
|
||||
* Enable the shift register output.
|
||||
*/
|
||||
#define SIPO_ENABLE() do { /* Implement me! */ } while (0)
|
||||
|
||||
/**
|
||||
* Set polarity for Load, Clk, SI signals.
|
||||
*/
|
||||
#define SIPO_SET_LD_LEVEL(device, load_pol) do { /* Implement me! */ } while (0)
|
||||
#define SIPO_SET_CLK_LEVEL(clock_pol) do { /* Implement me! */ } while (0)
|
||||
#define SIPO_SET_SI_LEVEL() do { /* Implement me! */ } while (0)
|
||||
|
||||
/**
|
||||
* Do anything that needed to init sipo pins.
|
||||
*/
|
||||
#define SIPO_INIT_PIN() do { /* Implement me! */ } while (0)
|
||||
|
||||
#endif /* HW_SIPO_H */
|
|
@ -0,0 +1,114 @@
|
|||
/**
|
||||
* \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 2008 Develer S.r.l. (http://www.develer.com/)
|
||||
* All Rights Reserved.
|
||||
* -->
|
||||
*
|
||||
* \brief Hardware macro definition.
|
||||
*
|
||||
*
|
||||
* \author Daniele Basile <asterix@develer.com>
|
||||
*/
|
||||
|
||||
#ifndef HW_SPI_H
|
||||
#define HW_SPI_H
|
||||
|
||||
#warning TODO:This is an example implentation, you must implement it!
|
||||
|
||||
#include <cfg/macros.h>
|
||||
|
||||
/**
|
||||
* SPI pin definition.
|
||||
*
|
||||
* \note CS is assert when level
|
||||
* is low.
|
||||
*
|
||||
* \{
|
||||
*/
|
||||
#define CS /* pin */ ///Connect to CS pin of Flash memory.
|
||||
#define SCK /* pin */ ///Connect to SCK pin of Flash memory.
|
||||
#define MOSI /* pin */ ///Connect to SI pin of Flash memory.
|
||||
#define MISO /* pin */ ///Connect to SO pin of Flash memory.
|
||||
#define SPI_PORT /* pin */ ///Micro pin PORT register.
|
||||
#define SPI_PIN /* pin */ ///Micro pin PIN register.
|
||||
#define SPI_DDR /* pin */ ///Micro pin DDR register.
|
||||
/*\}*/
|
||||
|
||||
/**
|
||||
* Pin logic level.
|
||||
*
|
||||
* \{
|
||||
*/
|
||||
#define MOSI_LOW() do { /* Implement me! */ } while(0)
|
||||
#define MOSI_HIGH() do { /* Implement me! */ } while(0)
|
||||
#define MISO_HIGH() do { /* Implement me! */ } while(0)
|
||||
#define SCK_LOW() do { /* Implement me! */ } while(0)
|
||||
#define SCK_HIGH() do { /* Implement me! */ } while(0)
|
||||
#define CS_LOW() do { /* Implement me! */ } while(0)
|
||||
#define CS_HIGH() do { /* Implement me! */ } while(0)
|
||||
/*\}*/
|
||||
|
||||
/**
|
||||
* SPI pin commands.
|
||||
*
|
||||
* \{
|
||||
*/
|
||||
#define CS_ENABLE() CS_LOW()
|
||||
#define CS_DISABLE() CS_HIGH()
|
||||
#define SS_ACTIVE() CS_LOW()
|
||||
#define SS_INACTIVE() CS_HIGH()
|
||||
#define SCK_INACTIVE() SCK_LOW()
|
||||
#define SCK_ACTIVE() SCK_HIGH()
|
||||
#define CS_OUT() do { /* Implement me! */ } while(0)
|
||||
#define MOSI_IN() do { /* Implement me! */ } while(0)
|
||||
#define MOSI_OUT() do { /* Implement me! */ } while(0)
|
||||
#define IS_MISO_HIGH() (false /* Implement me! */ )
|
||||
#define MISO_IN() do { /* Implement me! */ } while(0)
|
||||
#define MISO_OUT() do { /* Implement me! */ } while(0)
|
||||
#define SCK_OUT() do { /* Implement me! */ } while(0)
|
||||
|
||||
#define SCK_PULSE()\
|
||||
do {\
|
||||
SCK_HIGH();\
|
||||
SCK_LOW();\
|
||||
} while (0)
|
||||
/*\}*/
|
||||
|
||||
|
||||
#define SPI_HW_INIT() \
|
||||
CS_DISABLE();\
|
||||
MOSI_LOW();\
|
||||
SCK_LOW();\
|
||||
MISO_IN();\
|
||||
MOSI_OUT();\
|
||||
SCK_OUT();\
|
||||
CS_OUT();
|
||||
|
||||
#endif /* HW_SPI_H */
|
||||
|
|
@ -0,0 +1,308 @@
|
|||
/**
|
||||
* \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 2008 Develer S.r.l. (http://www.develer.com/)
|
||||
* All Rights Reserved.
|
||||
* -->
|
||||
*
|
||||
* \brief Stepper hardware-specific definitions
|
||||
*
|
||||
*
|
||||
* \author Daniele Basile <asterix@develer.com>
|
||||
*/
|
||||
|
||||
|
||||
#ifndef HW_STEPPER_H
|
||||
#define HW_STEPPER_H
|
||||
|
||||
#include <hw/hw_cpufreq.h>
|
||||
|
||||
#include <cfg/macros.h>
|
||||
|
||||
#include <drv/timer.h>
|
||||
|
||||
#warning TODO:This is an example implentation, you must implement it!
|
||||
|
||||
#define STEPPER_STROBE_INIT \
|
||||
do { \
|
||||
/* put init code for strobe */ \
|
||||
} while (0)
|
||||
|
||||
|
||||
#define STEPPER_STROBE_ON do { /* Implement me! */ } while(0)
|
||||
#define STEPPER_STROBE_OFF do { /* Implement me! */ } while(0)
|
||||
|
||||
/**
|
||||
* CPU clock frequency is divided by 2^STEPPER_PRESCALER_LOG2 to
|
||||
* obtain stepper clock.
|
||||
*/
|
||||
#define STEPPER_PRESCALER_LOG2 1
|
||||
|
||||
/**
|
||||
* Stepper timer clock frequency.
|
||||
*/
|
||||
#define STEPPER_CLOCK ((CPU_FREQ) >> STEPPER_PRESCALER_LOG2)
|
||||
|
||||
/**
|
||||
* us delay to reset a stepper motor.
|
||||
* This is the time neccessary to reset
|
||||
* the stepper controll chip. (see datasheet for more detail).
|
||||
*/
|
||||
#define STEPPER_RESET_DELAY 1
|
||||
|
||||
/*
|
||||
* Pins define for each stepper
|
||||
*/
|
||||
#define STEPPER_1_CW_CCW_PIN 0
|
||||
#define STEPPER_1_HALF_FULL_PIN 0
|
||||
#define STEPPER_1_CONTROL_PIN 0
|
||||
#define STEPPER_1_ENABLE_PIN 0
|
||||
#define STEPPER_1_RESET_PIN 0
|
||||
|
||||
/* put here other stepper motor */
|
||||
|
||||
#define STEPPER_1_SET do { /* Implement me! */ } while(0)
|
||||
/* add here the set for other stepper motor */
|
||||
|
||||
#define STEPPER_1_CLEAR do { /* Implement me! */ } while(0)
|
||||
/* add here the clear for other stepper motor */
|
||||
|
||||
/*
|
||||
* Generic macro definition
|
||||
*/
|
||||
|
||||
/*
|
||||
* Stepper init macro
|
||||
*/
|
||||
#define STEPPER_PIN_INIT_MACRO(port, index) do { \
|
||||
/* Add here init pin code */ \
|
||||
} while (0)
|
||||
|
||||
/*
|
||||
* Stepper commands macros
|
||||
*/
|
||||
#define STEPPER_SET_CW(index) do { /* Implement me! */ } while (0)
|
||||
#define STEPPER_SET_CCW(index) do { /* Implement me! */ } while (0)
|
||||
#define STEPPER_SET_HALF(index) do { /* Implement me! */ } while (0)
|
||||
#define STEPPER_SET_FULL(index) do { /* Implement me! */ } while (0)
|
||||
#define STEPPER_SET_CONTROL_LOW(index) do { /* Implement me! */ } while (0)
|
||||
#define STEPPER_SET_CONTROL_HIGHT(index) do { /* Implement me! */ } while (0)
|
||||
#define STEPPER_SET_ENABLE(index) do { /* Implement me! */ } while (0)
|
||||
#define STEPPER_SET_DISABLE(index) do { /* Implement me! */ } while (0)
|
||||
#define STEPPER_SET_RESET_ENABLE(index) do { /* Implement me! */ } while (0)
|
||||
#define STEPPER_SET_RESET_DISABLE(index) do { /* Implement me! */ } while (0)
|
||||
|
||||
|
||||
/*
|
||||
* Reset stepper macro
|
||||
*/
|
||||
|
||||
#define STEPPER_RESET_MACRO(index) do { \
|
||||
STEPPER_SET_RESET_ENABLE(index); \
|
||||
timer_udelay(STEPPER_RESET_DELAY); \
|
||||
STEPPER_SET_RESET_DISABLE(index); \
|
||||
} while (0)
|
||||
|
||||
/*
|
||||
* Set half or full step macro
|
||||
*/
|
||||
#define STEPPER_SET_STEP_MODE_MACRO(index, flag) do { \
|
||||
if (flag) \
|
||||
STEPPER_SET_HALF(index); \
|
||||
else \
|
||||
STEPPER_SET_FULL(index); \
|
||||
} while (0)
|
||||
|
||||
/*
|
||||
* Set control status macro
|
||||
*/
|
||||
#warning TODO: This macro is not implemented (see below)
|
||||
|
||||
#define STEPPER_SET_CONTROL_BIT_MACRO(index, flag) do { \
|
||||
/* if (flag) */ \
|
||||
/* WARNING This macros not implemented */ \
|
||||
/* else */ \
|
||||
/* WARNING This macros not implemented */ \
|
||||
} while (0)
|
||||
|
||||
/*
|
||||
* Set current power macro
|
||||
*/
|
||||
#warning TODO: This macro is not implemented (see below)
|
||||
|
||||
#define STEPPER_SET_POWER_CURRENT_MACRO(index, flag) do { \
|
||||
/* if (flag) */ \
|
||||
/* WARNING This macrois not implemented */ \
|
||||
/* else */ \
|
||||
/* WARNING This macrois not implemented */ \
|
||||
} while (0)
|
||||
|
||||
/*
|
||||
* Set rotation of stepper motor
|
||||
* - dir = 1: positive rotation
|
||||
* - dir = 0: no motor moviment
|
||||
* - dir = -1: negative rotation
|
||||
*
|
||||
*/
|
||||
#define STEPPER_SET_DIRECTION_MACRO(index, dir) do { \
|
||||
switch (dir) \
|
||||
{ \
|
||||
case 1: \
|
||||
STEPPER_SET_CW(index); \
|
||||
break; \
|
||||
case -1: \
|
||||
STEPPER_SET_CCW(index); \
|
||||
break; \
|
||||
case 0: \
|
||||
break; \
|
||||
} \
|
||||
} while (0)
|
||||
|
||||
|
||||
/*
|
||||
* Define macros for manage low level of stepper.
|
||||
*/
|
||||
|
||||
#define STEPPER_INIT() do { \
|
||||
STEPPER_PIN_INIT_MACRO(A, 1); \
|
||||
/* Add here code for other stepper motor */ \
|
||||
} while (0)
|
||||
|
||||
|
||||
/*
|
||||
* Enable select stepper motor
|
||||
*/
|
||||
#define STEPPER_ENABLE(index) do { \
|
||||
switch (index) \
|
||||
{ \
|
||||
case 1: \
|
||||
STEPPER_SET_ENABLE(1); \
|
||||
break; \
|
||||
/* Add here code for other stepper motor */ \
|
||||
} \
|
||||
} while (0)
|
||||
|
||||
/*
|
||||
* Enable all stepper connect to micro
|
||||
*/
|
||||
#define STEPPER_ENABLE_ALL() do { \
|
||||
STEPPER_SET_ENABLE(1); \
|
||||
/* Add here code for other stepper motor */ \
|
||||
} while (0)
|
||||
|
||||
/*
|
||||
* Disable select stepper motor
|
||||
*/
|
||||
#define STEPPER_DISABLE(index) do { \
|
||||
switch (index) \
|
||||
{ \
|
||||
case 1: \
|
||||
STEPPER_SET_DISABLE(1); \
|
||||
break; \
|
||||
/* Add here code for other stepper motor */ \
|
||||
} \
|
||||
} while (0)
|
||||
|
||||
/*
|
||||
* Disable all stepper connect to micro
|
||||
*/
|
||||
#define STEPPER_DISABLE_ALL() do { \
|
||||
STEPPER_SET_DISABLE(1); \
|
||||
/* Add here code for other stepper motor */ \
|
||||
} while (0)
|
||||
|
||||
/*
|
||||
* Reset selected stepper motor
|
||||
*/
|
||||
#define STEPPER_RESET(index) do { \
|
||||
switch (index) \
|
||||
{ \
|
||||
case 1: \
|
||||
STEPPER_RESET_MACRO(1); \
|
||||
break; \
|
||||
/* Add here code for other stepper motor */ \
|
||||
} \
|
||||
} while (0)
|
||||
|
||||
/*
|
||||
* Reset all stepper motor
|
||||
*/
|
||||
#define STEPPER_RESET_ALL() do { \
|
||||
STEPPER_RESET_MACRO(1) \
|
||||
/* Add here code for other stepper motor */ \
|
||||
} while (0)
|
||||
|
||||
// Set half/full step macros
|
||||
#define STEPPER_SET_HALF_STEP(index, flag) do { \
|
||||
switch (index) \
|
||||
{ \
|
||||
case 1: \
|
||||
STEPPER_SET_STEP_MODE_MACRO(1, flag); \
|
||||
break; \
|
||||
/* Add here code for other stepper motor */ \
|
||||
} \
|
||||
} while (0)
|
||||
|
||||
|
||||
// Control status
|
||||
#define STEPPER_SET_CONTROL_BIT(index, flag) do { \
|
||||
switch (index) \
|
||||
{ \
|
||||
case 1: \
|
||||
STEPPER_SET_CONTROL_BIT_MACRO(1, flag); \
|
||||
break; \
|
||||
/* Add here code for other stepper motor */ \
|
||||
} \
|
||||
} while (0)
|
||||
|
||||
|
||||
// Set stepper power current
|
||||
#define STEPPER_SET_POWER_CURRENT(index, flag) do { \
|
||||
switch (index) \
|
||||
{ \
|
||||
case 1: \
|
||||
STEPPER_SET_POWER_CURRENT_MACRO(1, flag); \
|
||||
break; \
|
||||
/* Add here code for other stepper motor */ \
|
||||
} \
|
||||
} while (0)
|
||||
|
||||
// Set rotation dirction of stepper motor
|
||||
#define STEPPER_SET_DIRECTION(index, dir) do { \
|
||||
switch (index) \
|
||||
{ \
|
||||
case 1: \
|
||||
STEPPER_SET_DIRECTION_MACRO(1, dir); \
|
||||
break; \
|
||||
/* Add here code for other stepper motor */ \
|
||||
} \
|
||||
} while (0)
|
||||
|
||||
#endif /* HW_STEPPER_H */
|
||||
|
||||
|
|
@ -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 2009 Develer S.r.l. (http://www.develer.com/)
|
||||
* All Rights Reserved.
|
||||
* -->
|
||||
*
|
||||
* \brief HW pin handling.
|
||||
*
|
||||
*
|
||||
* \author Francesco Sacchi <batt@develer.com>
|
||||
*/
|
||||
|
||||
#ifndef HW_TAS5706A_H
|
||||
#define HW_TAS5706A_H
|
||||
|
||||
#include <cfg/macros.h>
|
||||
|
||||
#warning FIXME: This is an example implementation, you must implement it
|
||||
|
||||
#define TAS5706A_SETPOWERDOWN(val) do { (void) val; /* implement me */ } while (0)
|
||||
#define TAS5706A_SETRESET(val) do { (void) val; /* implement me */ } while (0)
|
||||
#define TAS5706A_SETMUTE(val) do { (void) val; /* implement me */ } while (0)
|
||||
|
||||
#define TAS5706A_PIN_INIT() \
|
||||
do { \
|
||||
TAS5706A_SETPOWERDOWN(true); \
|
||||
TAS5706A_SETRESET(true); \
|
||||
TAS5706A_SETMUTE(true); \
|
||||
/* complete me */ \
|
||||
} while (0)
|
||||
|
||||
#define TAS5706A_MCLK_INIT() \
|
||||
do { \
|
||||
/* implement me */ \
|
||||
} while(0)
|
||||
|
||||
|
||||
#endif /* HW_TAS5706A_H */
|
|
@ -0,0 +1,181 @@
|
|||
/**
|
||||
* \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 2008 Develer S.r.l. (http://www.develer.com/)
|
||||
* All Rights Reserved.
|
||||
* -->
|
||||
*
|
||||
* \brief thermo hardware-specific control functions.
|
||||
*
|
||||
* \author Francesco Sacchi <batt@develer.com>
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef HW_THERMO_H
|
||||
#define HW_THERMO_H
|
||||
|
||||
#include "thermo_map.h"
|
||||
#include "ntc_map.h"
|
||||
|
||||
#include <drv/phase.h>
|
||||
#include <drv/ntc.h>
|
||||
|
||||
#include <cfg/debug.h>
|
||||
#include <cfg/compiler.h>
|
||||
|
||||
#warning TODO:This is an example implentation, you must implement it!
|
||||
|
||||
/*!
|
||||
* This function should return the temperature set tolerance.
|
||||
*/
|
||||
INLINE deg_t thermo_hw_tolerance(ThermoDev dev)
|
||||
{
|
||||
ASSERT(dev < THERMO_CNT);
|
||||
|
||||
switch (dev)
|
||||
{
|
||||
case THERMO_TEST:
|
||||
/* Put here convertion function to temperature size */
|
||||
break;
|
||||
|
||||
/* Put here your thermo device */
|
||||
|
||||
default:
|
||||
ASSERT(0);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
/*!
|
||||
* This function should return the timeout for reaching the
|
||||
* target temperature.
|
||||
*/
|
||||
INLINE ticks_t thermo_hw_timeout(ThermoDev dev)
|
||||
{
|
||||
ASSERT(dev < THERMO_CNT);
|
||||
|
||||
switch (dev)
|
||||
{
|
||||
case THERMO_TEST:
|
||||
/* return ms_to_ticks(60000); */
|
||||
break;
|
||||
|
||||
/* Put here a time out for select thermo device */
|
||||
|
||||
default:
|
||||
ASSERT(0);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*!
|
||||
* Read the temperature of the hw device \a dev.
|
||||
*/
|
||||
INLINE deg_t thermo_hw_read(ThermoDev dev)
|
||||
{
|
||||
return ntc_read(dev);
|
||||
}
|
||||
|
||||
|
||||
/*!
|
||||
* Turns off a specific device.
|
||||
* This function is usefull to handle errors.
|
||||
*/
|
||||
INLINE void thermo_hw_off(ThermoDev dev)
|
||||
{
|
||||
ASSERT(dev < THERMO_CNT);
|
||||
|
||||
switch (dev)
|
||||
{
|
||||
case THERMO_TEST:
|
||||
phase_setPower(TRIAC_TEST, 0);
|
||||
break;
|
||||
|
||||
/* Put here a thermo device to turn off */
|
||||
|
||||
default:
|
||||
ASSERT(0);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
/*!
|
||||
* Based on the current temperature \a cur_temp and the target temperature \a target, this function turns on and off specific
|
||||
* triac channel and handles the freezer alarm.
|
||||
* It may use also PID control for thermo-regolations.
|
||||
*/
|
||||
INLINE void thermo_hw_set(ThermoDev dev, deg_t target, deg_t cur_temp)
|
||||
{
|
||||
ASSERT(dev < THERMO_CNT);
|
||||
|
||||
deg_t dist = target - cur_temp;
|
||||
//kprintf("dev[%d], dist[%d]\n", dev, dist);
|
||||
|
||||
switch(dev)
|
||||
{
|
||||
case THERMO_TEST:
|
||||
if (dist > 0)
|
||||
{
|
||||
/* phase_setPower(TRIAC_TEST, dist * PID_TEST_K); */
|
||||
}
|
||||
else
|
||||
{
|
||||
/* phase_setPower(TRIAC_TEST, 0); */
|
||||
}
|
||||
break;
|
||||
|
||||
/* Put here an other thermo device */
|
||||
|
||||
default:
|
||||
ASSERT(0);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
#define THERMO_HW_INIT _thermo_hw_init()
|
||||
|
||||
/*!
|
||||
* Init hw associated with thermo-control.
|
||||
*/
|
||||
INLINE void _thermo_hw_init(void)
|
||||
{
|
||||
ASSERT(phase_initialized);
|
||||
ASSERT(ntc_initialized);
|
||||
|
||||
phase_setPower(TRIAC_TEST, 0);
|
||||
|
||||
/* Add here the other thermo device */
|
||||
}
|
||||
|
||||
#endif /* HW_THERMO_H */
|
|
@ -0,0 +1,69 @@
|
|||
/**
|
||||
* \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 2010 Develer S.r.l. (http://www.develer.com/)
|
||||
* All Rights Reserved.
|
||||
* -->
|
||||
*
|
||||
* \brief TLV5816 DAC hardware-specific definitions
|
||||
*
|
||||
*
|
||||
* \author Francesco Sacchi <batt@develer.com>
|
||||
*/
|
||||
|
||||
#ifndef HW_TLV5816_H
|
||||
#define HW_TLV5816_H
|
||||
|
||||
#warning TODO:This is an example implementation, you must implement it!
|
||||
|
||||
#define TLV5618_CSINIT(pin) \
|
||||
do \
|
||||
{ \
|
||||
(void)pin; \
|
||||
/* Implement me! */ \
|
||||
TLV5618_CSHIGH(pin); \
|
||||
} while(0)
|
||||
|
||||
#define TLV5618_CSLOW(pin) \
|
||||
do \
|
||||
{ \
|
||||
(void)pin; \
|
||||
/* Implement me! */ \
|
||||
} while(0)
|
||||
|
||||
|
||||
#define TLV5618_CSHIGH(pin) \
|
||||
do \
|
||||
{ \
|
||||
(void)pin; \
|
||||
/* Implement me! */ \
|
||||
} while(0)
|
||||
|
||||
|
||||
#endif /* HW_TLV5816_H */
|
||||
|
|
@ -0,0 +1,52 @@
|
|||
/**
|
||||
* \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 2009 Develer S.r.l. (http://www.develer.com/)
|
||||
* All Rights Reserved.
|
||||
* -->
|
||||
*
|
||||
* \brief Hardware macro definition.
|
||||
*
|
||||
* \author Daniele Basile <asterix@develer.com>
|
||||
*/
|
||||
|
||||
#ifndef HW_TMP123_H
|
||||
#define HW_TMP123_H
|
||||
|
||||
#warning TODO:This is an example implentation, you must implement it!
|
||||
|
||||
#define TMP123_HW_CS_EN() /* Implement me! */
|
||||
#define TMP123_HW_CS_DIS() /* Implement me! */
|
||||
|
||||
#define TMP123_HW_INIT() \
|
||||
do { \
|
||||
/* Pin init */\
|
||||
} while (0)
|
||||
|
||||
#endif /* HW_TMP123_H */
|
||||
|
|
@ -0,0 +1,70 @@
|
|||
/**
|
||||
* \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, 2005, 2006, 2008 Develer S.r.l. (http://www.develer.com/)
|
||||
* Copyright 2000 Bernie Innocenti
|
||||
* All Rights Reserved.
|
||||
* -->
|
||||
*
|
||||
* \brief Keyboard map definitions.
|
||||
*
|
||||
*
|
||||
* \author Francesco Sacchi <batt@develer.com>
|
||||
* \author Stefano Fedrigo <a@develer.com>
|
||||
*/
|
||||
|
||||
#ifndef HW_KBD_MAP_H
|
||||
#define HW_KBD_MAP_H
|
||||
|
||||
#include <cfg/macros.h>
|
||||
|
||||
#warning TODO:This is an example implentation, you must implement it!
|
||||
|
||||
|
||||
/**
|
||||
* Type for keyboard mask.
|
||||
*/
|
||||
typedef uint16_t keymask_t;
|
||||
|
||||
/**
|
||||
* \name Keycodes.
|
||||
*/
|
||||
/*@{*/
|
||||
#define K_UP BV(0)
|
||||
#define K_DOWN BV(1)
|
||||
#define K_OK BV(2)
|
||||
#define K_CANCEL BV(3)
|
||||
|
||||
#define K_REPEAT BV(13) /**< This is a repeated keyevent. */
|
||||
#define K_TIMEOUT BV(14) /**< Fake key event for timeouts. */
|
||||
#define K_LONG BV(15)
|
||||
/*@}*/
|
||||
|
||||
#define K_LNG_MASK 0
|
||||
|
||||
#endif /* HW_KBD_MAP_H */
|
|
@ -0,0 +1,58 @@
|
|||
/**
|
||||
* \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 MCP41 digital potentiometer map definitions.
|
||||
*
|
||||
*
|
||||
* \author Francesco Sacchi <batt@develer.com>
|
||||
*/
|
||||
|
||||
#ifndef MCP41_MAP_H
|
||||
#define MCP41_MAP_H
|
||||
|
||||
#warning TODO:This is an example implentation, you must implement it!
|
||||
|
||||
/** \name Enum for mcp41 pot evices.
|
||||
* \{
|
||||
*
|
||||
*/
|
||||
typedef enum Mcp41Dev
|
||||
{
|
||||
MCP41_LED,
|
||||
|
||||
/* put here other mcp41 device */
|
||||
|
||||
MCP41_CNT,
|
||||
} Mcp41Dev;
|
||||
/* \} */
|
||||
|
||||
#endif /* MCP41_MAP_H */
|
|
@ -0,0 +1,60 @@
|
|||
/**
|
||||
* \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 2008 Develer S.r.l. (http://www.develer.com/)
|
||||
* All Rights Reserved.
|
||||
* -->
|
||||
*
|
||||
* \brief NTC map definitions.
|
||||
*
|
||||
*
|
||||
* \author Giovanni Bajo <rasky@develer.com>
|
||||
* \author Francesco Sacchi <batt@develer.com>
|
||||
*/
|
||||
|
||||
#ifndef NTC_MAP_H
|
||||
#define NTC_MAP_H
|
||||
|
||||
#include <cfg/compiler.h>
|
||||
|
||||
#warning TODO:This is an example implentation, you must implement it!
|
||||
|
||||
/*! \name Enum for ntc devices.
|
||||
* \{
|
||||
*/
|
||||
typedef enum NtcDev
|
||||
{
|
||||
NTC_TEST,
|
||||
|
||||
/* Put here your thermo device */
|
||||
|
||||
NTC_CNT
|
||||
} NtcDev;
|
||||
/* \} */
|
||||
|
||||
#endif /* NTC_MAP_H */
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue