This commit is contained in:
Mark Qvist 2014-04-03 22:21:37 +02:00
commit c898b090dd
1049 changed files with 288572 additions and 0 deletions

2
.gitignore vendored Normal file
View File

@ -0,0 +1,2 @@
obj
images

17
Makefile Normal file
View File

@ -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

1215
Modem.project Normal file

File diff suppressed because it is too large Load Diff

12
Modem.workspace Normal file
View File

@ -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>

8
Modem/.spec Normal file
View File

@ -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>
"""

88
Modem/Modem.mk Normal file
View File

@ -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

45
Modem/Modem_user.mk Normal file
View File

@ -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 \
#

534
Modem/afsk.c Normal file
View File

@ -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;
}

185
Modem/afsk.h Normal file
View File

@ -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 */

149
Modem/cfg/cfg_adc.h Normal file
View File

@ -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 */

113
Modem/cfg/cfg_afsk.h Normal file
View File

@ -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 */

75
Modem/cfg/cfg_ax25.h Normal file
View File

@ -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 */

67
Modem/cfg/cfg_battfs.h Normal file
View File

@ -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 */

View File

@ -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 */

88
Modem/cfg/cfg_dac.h Normal file
View File

@ -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 */

55
Modem/cfg/cfg_dataflash.h Normal file
View File

@ -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 */

111
Modem/cfg/cfg_dc_motor.h Normal file
View File

@ -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 */

70
Modem/cfg/cfg_debug.h Normal file
View File

@ -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 */

64
Modem/cfg/cfg_eeprom.h Normal file
View File

@ -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 */

73
Modem/cfg/cfg_emb_flash.h Normal file
View File

@ -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 */

57
Modem/cfg/cfg_eth.h Normal file
View File

@ -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 */

156
Modem/cfg/cfg_fat.h Normal file
View File

@ -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 */

51
Modem/cfg/cfg_flash25.h Normal file
View File

@ -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 */

65
Modem/cfg/cfg_formatwr.h Normal file
View File

@ -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 */

67
Modem/cfg/cfg_gfx.h Normal file
View File

@ -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 */

51
Modem/cfg/cfg_hashtable.h Normal file
View File

@ -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 */

50
Modem/cfg/cfg_heap.h Normal file
View File

@ -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 */

83
Modem/cfg/cfg_i2c.h Normal file
View File

@ -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 */

74
Modem/cfg/cfg_i2s.h Normal file
View File

@ -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 */

View File

@ -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 */

58
Modem/cfg/cfg_kbd.h Normal file
View File

@ -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 */

61
Modem/cfg/cfg_keytag.h Normal file
View File

@ -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 */

61
Modem/cfg/cfg_kfile.h Normal file
View File

@ -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 */

View File

@ -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 */

69
Modem/cfg/cfg_lcd_hd44.h Normal file
View File

@ -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 */

80
Modem/cfg/cfg_led_7seg.h Normal file
View File

@ -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

57
Modem/cfg/cfg_lm75.h Normal file
View File

@ -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 */

1863
Modem/cfg/cfg_lwip.h Normal file

File diff suppressed because it is too large Load Diff

53
Modem/cfg/cfg_md2.h Normal file
View File

@ -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 */

47
Modem/cfg/cfg_monitor.h Normal file
View File

@ -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 */

111
Modem/cfg/cfg_nand.h Normal file
View File

@ -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 */

85
Modem/cfg/cfg_nmea.h Normal file
View File

@ -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 */

66
Modem/cfg/cfg_parser.h Normal file
View File

@ -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 */

55
Modem/cfg/cfg_phase.h Normal file
View File

@ -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 */

71
Modem/cfg/cfg_pocketbus.h Normal file
View File

@ -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 */

113
Modem/cfg/cfg_proc.h Normal file
View File

@ -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 */

64
Modem/cfg/cfg_pwm.h Normal file
View File

@ -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 */

115
Modem/cfg/cfg_ramp.h Normal file
View File

@ -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 */

55
Modem/cfg/cfg_randpool.h Normal file
View File

@ -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 */

75
Modem/cfg/cfg_sd.h Normal file
View File

@ -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 */

47
Modem/cfg/cfg_sem.h Normal file
View File

@ -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 */

222
Modem/cfg/cfg_ser.h Normal file
View File

@ -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 */

47
Modem/cfg/cfg_signal.h Normal file
View File

@ -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 */

View File

@ -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 */

69
Modem/cfg/cfg_stepper.h Normal file
View File

@ -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 */

50
Modem/cfg/cfg_tas5706a.h Normal file
View File

@ -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 */

20
Modem/cfg/cfg_tftp.h Normal file
View File

@ -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 */

71
Modem/cfg/cfg_thermo.h Normal file
View File

@ -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 */

67
Modem/cfg/cfg_timer.h Normal file
View File

@ -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 */

85
Modem/cfg/cfg_usb.h Normal file
View File

@ -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 */

78
Modem/cfg/cfg_usbkbd.h Normal file
View File

@ -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 */

78
Modem/cfg/cfg_usbmouse.h Normal file
View File

@ -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 */

78
Modem/cfg/cfg_usbser.h Normal file
View File

@ -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 */

47
Modem/cfg/cfg_wdt.h Normal file
View File

@ -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 */

79
Modem/cfg/cfg_xmodem.h Normal file
View File

@ -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 */

77
Modem/config.h Normal file
View File

@ -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 */

63
Modem/hardware.c Normal file
View File

@ -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;
}

73
Modem/hardware.h Normal file
View File

@ -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 */

97
Modem/hw/hw_afsk.c Normal file
View File

@ -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;
}

110
Modem/hw/hw_afsk.h Normal file
View File

@ -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 */

51
Modem/hw/hw_buzzer.h Normal file
View File

@ -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 */

125
Modem/hw/hw_dataflash.c Normal file
View File

@ -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
*/
}
}

47
Modem/hw/hw_dataflash.h Normal file
View File

@ -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 */

84
Modem/hw/hw_dc_motor.h Normal file
View File

@ -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 */

64
Modem/hw/hw_ft245rl.h Normal file
View File

@ -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 */

127
Modem/hw/hw_i2c_bitbang.h Normal file
View File

@ -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 */

71
Modem/hw/hw_kbd.h Normal file
View File

@ -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 */

155
Modem/hw/hw_lcd_32122a.h Normal file
View File

@ -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 */

157
Modem/hw/hw_lcd_hd44.h Normal file
View File

@ -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 */

47
Modem/hw/hw_led.h Normal file
View File

@ -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 */

49
Modem/hw/hw_lm75.h Normal file
View File

@ -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 */

52
Modem/hw/hw_mcp41.c Normal file
View File

@ -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 */
};

74
Modem/hw/hw_mcp41.h Normal file
View File

@ -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 */

45
Modem/hw/hw_ntc.c Normal file
View File

@ -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];

135
Modem/hw/hw_ntc.h Normal file
View File

@ -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 */

45
Modem/hw/hw_phase.c Normal file
View File

@ -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 */

79
Modem/hw/hw_phase.h Normal file
View File

@ -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 */

78
Modem/hw/hw_rit128x96.h Normal file
View File

@ -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 */

52
Modem/hw/hw_sd.h Normal file
View File

@ -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 */

52
Modem/hw/hw_ser.h Normal file
View File

@ -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 */

108
Modem/hw/hw_sipo.h Normal file
View File

@ -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 */

114
Modem/hw/hw_spi.h Normal file
View File

@ -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 */

308
Modem/hw/hw_stepper.h Normal file
View File

@ -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 */

64
Modem/hw/hw_tas5706a.h Normal file
View File

@ -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 */

181
Modem/hw/hw_thermo.h Normal file
View File

@ -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 */

69
Modem/hw/hw_tlv5618.h Normal file
View File

@ -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 */

52
Modem/hw/hw_tmp123.h Normal file
View File

@ -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 */

70
Modem/hw/kbd_map.h Normal file
View File

@ -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 */

58
Modem/hw/mcp41_map.h Normal file
View File

@ -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 */

60
Modem/hw/ntc_map.h Normal file
View File

@ -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