git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@2114 35acf78f-673a-0410-8e92-d51de3d6d3f4
This commit is contained in:
parent
31981145cf
commit
04e29829b6
|
@ -78,6 +78,32 @@ typedef void (*pwmcallback_t)(void);
|
|||
/* Driver macros. */
|
||||
/*===========================================================================*/
|
||||
|
||||
/**
|
||||
* @brief Enables a PWM channel.
|
||||
* @details Programs (or reprograms) a PWM channel.
|
||||
* @note This function has to be invoked from a lock zone.
|
||||
*
|
||||
* @param[in] pwmp pointer to a @p PWMDriver object
|
||||
* @param[in] channel PWM channel identifier
|
||||
* @param[in] width PWM pulse width as clock pulses number
|
||||
*/
|
||||
#define pwmEnableChannelI(pwmp, channel, width) { \
|
||||
pwm_lld_enable_channel(pwmp, channel, width); \
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Disables a PWM channel.
|
||||
* @details The channel is disabled and its output line returned to the
|
||||
* idle state.
|
||||
* @note This function has to be invoked from a lock zone.
|
||||
*
|
||||
* @param[in] pwmp pointer to a @p PWMDriver object
|
||||
* @param[in] channel PWM channel identifier
|
||||
*/
|
||||
#define pwmDisableChannelI(pwmp, channel) { \
|
||||
pwm_lld_disable_channel(pwmp, channel); \
|
||||
}
|
||||
|
||||
/*===========================================================================*/
|
||||
/* External declarations. */
|
||||
/*===========================================================================*/
|
||||
|
|
|
@ -112,11 +112,10 @@ void adcStop(ADCDriver *adcp) {
|
|||
* @brief Starts an ADC conversion.
|
||||
* @details Starts a conversion operation, there are two kind of conversion
|
||||
* modes:
|
||||
* - <b>LINEAR</b>, this mode is activated when the @p callback
|
||||
* parameter is set to @p NULL, in this mode the buffer is filled
|
||||
* once and then the conversion stops automatically.
|
||||
* - <b>CIRCULAR</b>, when a callback function is defined the
|
||||
* conversion never stops and the buffer is filled circularly.
|
||||
* - <b>LINEAR</b>, in this mode the buffer is filled once and then
|
||||
* the conversion stops automatically.
|
||||
* - <b>CIRCULAR</b>, in this mode the conversion never stops and
|
||||
* the buffer is filled circularly.<br>
|
||||
* During the conversion the callback function is invoked when
|
||||
* the buffer is 50% filled and when the buffer is 100% filled,
|
||||
* this way is possible to process the conversion stream in real
|
||||
|
@ -133,7 +132,8 @@ void adcStop(ADCDriver *adcp) {
|
|||
* @param[out] samples pointer to the samples buffer
|
||||
* @param[in] depth buffer depth (matrix rows number). The buffer depth
|
||||
* must be one or an even number.
|
||||
* @param[in] callback pointer to the conversion callback function
|
||||
* @param[in] callback pointer to the conversion callback function, this
|
||||
* parameter can be @p NULL if a callback is not required
|
||||
* @return The operation status.
|
||||
* @retval FALSE the conversion has been started.
|
||||
* @retval TRUE the driver is busy, conversion not started.
|
||||
|
|
|
@ -20,6 +20,7 @@
|
|||
/**
|
||||
* @file pwm.c
|
||||
* @brief PWM Driver code.
|
||||
*
|
||||
* @addtogroup PWM
|
||||
* @{
|
||||
*/
|
||||
|
@ -104,6 +105,7 @@ void pwmStop(PWMDriver *pwmp) {
|
|||
|
||||
/**
|
||||
* @brief Enables a PWM channel.
|
||||
* @details Programs (or reprograms) a PWM channel.
|
||||
*
|
||||
* @param[in] pwmp pointer to a @p PWMDriver object
|
||||
* @param[in] channel PWM channel identifier
|
||||
|
|
|
@ -0,0 +1,133 @@
|
|||
/*
|
||||
ChibiOS/RT - Copyright (C) 2006,2007,2008,2009,2010 Giovanni Di Sirio.
|
||||
|
||||
This file is part of ChibiOS/RT.
|
||||
|
||||
ChibiOS/RT 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 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
ChibiOS/RT 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, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
/**
|
||||
* @file chfiles.h
|
||||
* @brief Data files.
|
||||
* @details This header defines abstract interfaces useful to access generic
|
||||
* data files in a standardized way.
|
||||
*
|
||||
* @addtogroup data_files
|
||||
* @details This module define an abstract interface for generic data files.
|
||||
* Note that no code is present, data files are just abstract
|
||||
* interface-like structures, you should look at the systems as to
|
||||
* a set of abstract C++ classes (even if written in C). This system
|
||||
* has the advantage to make the access to streams independent
|
||||
* from the implementation logic.<br>
|
||||
* The data files interface can be used as base class for high level
|
||||
* object types such as an API for a File System implementation.
|
||||
* @{
|
||||
*/
|
||||
|
||||
#ifndef _CHFILES_H_
|
||||
#define _CHFILES_H_
|
||||
|
||||
/**
|
||||
* @brief Error code from the file stream methods.
|
||||
*/
|
||||
#define FILE_ERROR 0xFFFFFFFFUL
|
||||
|
||||
/**
|
||||
* @brief File offset type.
|
||||
*/
|
||||
typedef uint32_t fileoffset_t;
|
||||
|
||||
/**
|
||||
* @brief BaseFileStream specific methods.
|
||||
*/
|
||||
#define _base_file_stream_methods \
|
||||
_base_sequential_stream_methods \
|
||||
/* File close method.*/ \
|
||||
uint32_t (*close)(void *instance); \
|
||||
/* Get last error code method.*/ \
|
||||
int (*geterror)(void *instance); \
|
||||
/* File get size method.*/ \
|
||||
fileoffset_t (*getsize)(void *instance); \
|
||||
/* File get current position method.*/ \
|
||||
fileoffset_t (*getposition)(void *instance); \
|
||||
/* File seek method.*/ \
|
||||
fileoffset_t (*lseek)(void *instance, fileoffset_t offset);
|
||||
|
||||
/**
|
||||
* @brief @p BaseFileStream specific data.
|
||||
* @note It is empty because @p BaseFileStream is only an interface
|
||||
* without implementation.
|
||||
*/
|
||||
#define _base_file_stream_data \
|
||||
_base_sequential_stream_data
|
||||
|
||||
/**
|
||||
* @brief @p BaseFileStream virtual methods table.
|
||||
*/
|
||||
struct BaseFilelStreamVMT {
|
||||
_base_file_stream_methods
|
||||
};
|
||||
|
||||
/**
|
||||
* @extends BaseSequentialStream
|
||||
*
|
||||
* @brief Base file stream class.
|
||||
* @details This class represents a generic file data stream.
|
||||
*/
|
||||
typedef struct {
|
||||
/** @brief Virtual Methods Table.*/
|
||||
const struct FileStreamVMT *vmt;
|
||||
_base_file_stream_data
|
||||
} BaseFileStream;
|
||||
|
||||
/**
|
||||
* @brief Base file Stream close.
|
||||
* @details The function closes a file stream.
|
||||
*
|
||||
* @param[in] ip pointer to a @p BaseFileStream or derived class
|
||||
*/
|
||||
#define chFileStreamClose(ip) ((ip)->vmt->close(ip))
|
||||
|
||||
/**
|
||||
* @brief Returns an implementation dependent error code.
|
||||
*
|
||||
* @param[in] ip pointer to a @p BaseFileStream or derived class
|
||||
*/
|
||||
#define chFileStreamGetError ((ip)->vmt->geterror(ip))
|
||||
|
||||
/**
|
||||
* @brief Returns the current file size.
|
||||
*
|
||||
* @param[in] ip pointer to a @p BaseFileStream or derived class
|
||||
*/
|
||||
#define chFileStreamGetSize ((ip)->vmt->getposition(ip))
|
||||
|
||||
/**
|
||||
* @brief Returns the current file pointer position.
|
||||
*
|
||||
* @param[in] ip pointer to a @p BaseFileStream or derived class
|
||||
*/
|
||||
#define chFileStreamGetPosition ((ip)->vmt->getposition(ip))
|
||||
|
||||
/**
|
||||
* @brief Moves the file current pointer to an absolute position.
|
||||
*
|
||||
* @param[in] ip pointer to a @p BaseFileStream or derived class
|
||||
* @param[in] offset new absolute position
|
||||
*/
|
||||
#define chFileStreamSeek ((ip)->vmt->lseek(ip, offset))
|
||||
|
||||
#endif /* _CHFILES_H_ */
|
||||
|
||||
/** @} */
|
10
readme.txt
10
readme.txt
|
@ -55,13 +55,23 @@
|
|||
+--test/ - Kernel test suite source code.
|
||||
| +--coverage/ - Code coverage project.
|
||||
+--testhal/ - HAL integration test demos.
|
||||
+--STM32/ - STM32 HAL demos.
|
||||
|
||||
*****************************************************************************
|
||||
*** Releases ***
|
||||
*****************************************************************************
|
||||
|
||||
*** 2.1.2 ***
|
||||
- FIX: Fixed a documentation error regarding the ADC driver function
|
||||
adcStartConversion() (bug 3039890)(backported to 2.0.3).
|
||||
- NEW: Added a simple STM32 ADC demo under ./testhal/STM32/ADC.
|
||||
- NEW: Added pwmEnableChannelI() and pwmDisableChannelI() APIs to the PWM
|
||||
driver in order to allow channel reprogramming from within callbacks or
|
||||
other interrupt handlers. The new APIs are implemented as macros so there
|
||||
is no footprint overhead.
|
||||
- NEW: Added a generic BaseFileStream interface for future File System
|
||||
implementations or integrations (untested and not sure if it will stay or
|
||||
change).
|
||||
|
||||
*** 2.1.1 ***
|
||||
- FIX: Fixed insufficient stack size for idle thread (bug 3033624)(backported
|
||||
|
|
9
todo.txt
9
todo.txt
|
@ -14,11 +14,12 @@ Within 2.1.x (hopefully)
|
|||
verifiable.
|
||||
X Resist doing more changes and optimizations in the kernel, fixes only.
|
||||
X Rework STM32 drivers to use friendly IRQ names and centralized DMA macros.
|
||||
- Merge the Coldfire branch in mainline.
|
||||
- Merge the H8S branch in mainline.
|
||||
- File System infrastructure.
|
||||
X File System infrastructure.
|
||||
X General HAL improvements.
|
||||
- Add a *very simple* ADC API for simgle one shot sampling (implement it as
|
||||
an injected conversion on the STM32).
|
||||
- Evaluate if reimplement the SPI/CAN drivers to be callback-based like the
|
||||
ADC, PWM and UART drivers, the current API could be rebuilt on top.
|
||||
- MAC driver for STM32F105/STM32F107 (hardware missing).
|
||||
- Device drivers for STM8 (SPI, ADC, PWM, bring it on par with STM32).
|
||||
- Support for more compilers (ARMCMx only initially).
|
||||
|
@ -26,6 +27,8 @@ X Rework STM32 drivers to use friendly IRQ names and centralized DMA macros.
|
|||
- Batch testing of the ARM7/ARMCMx port using OpenOCD, with reports.
|
||||
|
||||
Later but within 2.x.x
|
||||
- Merge the Coldfire branch in mainline.
|
||||
- Merge the H8S branch in mainline.
|
||||
- Debug-related features and tools.
|
||||
- I2C device driver class support.
|
||||
- USB device driver class support.
|
||||
|
|
Loading…
Reference in New Issue