Contents
- STM8S/A Standard Peripherals Library Drivers update history
- License
STM8S/A Standard Peripherals Library Drivers update history
V2.3.0 / 16-June-2017Main
Changes
- Peripheral drivers updated to support the STM8S001J3 8K (STM8S001)
product family devices
- stm8s.h
- Add new definition of STM8S001 product family devices
- Add new define UNUSED to fix compilation warning with RAISONANCE
- stm8s_flash.c
- Update FLASH_WaitForLastOperation() to use UNUSED macro to fix compilation warning with RAISONANCE
V2.2.0 / 30-September-2014Main
Changes
- Peripheral drivers updated to support the STM8AF 8K (STM8AF6223 and STM8AF6226)
product family devices
- Impacted drivers are FLASH and ITC
- Add a new driver stm8s_uart4.c/.h for the UART4 peripheral.
- Peripheral drivers updated to support the STM8AF 8K (STM8AF6223 and STM8AF6226)
product family device
- Peripheral drivers code Formatting and Cleanup.
- stm8s.h
- Add new definition of STM8AF622x product family devices
- Add UART4 defines (Struct, Registers Reset Value, Registers Bits Definition)
- Add a new define MemoryAddressCast to fix the memory cast issue
- stm8s_clk.c/.h
- Update the CLK automatic switch sequence
- stm8s_uart1.c
- update UART1_ITConfig() description to add as possible parameter the UART1_IT_RXNE_OR instead of UART1_IT_RXNE and UART1_IT_OR
- stm8s_flash.c/.h
- Fix memory address cast in the following functions: FALSH_ProgramBlock(), FALSH_ProgramByte(), FALSH_ProgramWord(), FALSH_EraseByte() and FALSH_ReadByte().
- Update timeout variable declaration on 16 bit instead of 32 bit in the FLASH_WaitForLastOperation() function to avoid __ramfunc issue with IAR.
- Add this note in the FLASH Driver to clarify the execution from RAM situation with IAR Toolchain:
1- Ignore the IAR compiler warnings, these warnings don't impact the FLASH Program/Erase operations. The code performing the Flash Program/erase must be executed from RAM; the variables initializations don't necessary require the execution from RAM, only CR2 registers configuration and data programing must be executed from RAM. 2- These warnings depends on IAR compiler: as the code generation is made using many runtime library functions to keep code size to a minimum. 3- It is recommended to use High Speed Optimization with IAR (-Ohs), in order to reduce the runtime library calls in the generated code..
- stm8s_rst.c/.h
- Update the RST_GetFlagStatus() function implementation to return the state SET/RESET.
V2.1.0 / 18-November-2011Main
Changes
- Peripheral drivers updated to support the STM8S Value Line
product family devices
- Impacted drivers are CLK, FLASH, I2C and ITC
- stm8s.h
- Add definition of STM8S Value Line product family devices
- Replace #include <intrist7.h> by #include <intrins.h> in the interrupt macro for raisonance compiler
- Replace __wait_for_interrup() by __wait_for_interrupt() in the wfi macro definition with EWSTM8 toolchain
V2.0.0 / 25-February-2011Main
Changes
- Overall peripheral drivers updated to support STM8A
product family devices
- stm8s.h
- Add definition of STM8A product family devices
- Add "error" directive to
force device family choice
- Updated to
support IAR Embedded Workbench for STM8
(EWSTM8) toolchain specific declarations
- Add HSE_Value definition depending on device choice
- Add definition of Device on-chip RC oscillator frequencies HSI_VALUE and LSI_VALUE
- Add EEPROM definition in
compiler defines (COSMIC, RAISONANCE, IAR)
- Add MEMCPY definition per
devices family in RAISONANCE compiler defines
- Add RAM_EXECUTION define to allow handling functions execution from RAM
- Add IN_RAM macro to manage functions execution from RAM
- Remove "stm8s_type.h" inclusion and replace it by the file content
- Remove AWU_CSR_MR bit definition
- Remove CANCCR register from CLK controller registers
- Remove CLK_CANCCR_RESET_VALUE definition
- Remove CLK_CANCCR_CANDIV definition
- Remove SWIM_struct definition
- Remove CAN_BTR2_CLKS bit definition
- Remove SWIM_BaseAddress definition
- INTERRUPT_HANDLER" macro added to
manage interrupt vector declarations for all supported
toochains.
- stm8s_adc1.c/.h
- Add the support of analog channel 12
- Update ADC1_SetHighThreshold() and ADC1_SetLowThreshold() functions
- stm8s_awu.c/.h
- Remove AWU_ReInitCounter() function
- Change "const" by "CONST" in the APR_Array and TBR_Array declarations
- Change LSI_FREQUENCY_MIN value to 110000 instead of 100000
- Change LSI_FREQUENCY_MAX value to 150000 instead of 200000
- stm8s_beep.c/.h
- Change LSI_FREQUENCY_MIN value to 110000 instead of 100000
- Change LSI_FREQUENCY_MAX value to 150000 instead of 200000
- stm8s_can.c/.h
- Remove CAN_SelectClock() function
- Update CAN_Init() function
- Update CAN_Transmit() function
- stm8s_clk.c/.h
- Replace uc8 by CONST uint8_t in HSIDivFactor and CLKPrescTable declaration
- Remove CLK_CANDivider_TypeDef
- Remove CLK_CANConfig(CLK_CANDivider_TypeDef CLK_CANDivider) function
- stm8s_flash.c/.h
- Update FLASH_Lock() function by using the new definition of FLASH_MemType_TypeDef enum variables
- Update
FLASH_ProgramOptionByte() and FLASH_EraseOptionByte() functions to
handle the case of ROP option byte and to check on EOP flag instead of
HVOFF
- Change OPERATION_TIMEOUT value to 0xFFFFF
- Update FLASH_EraseBlock() function to use new definition of PointerAttr
- Update FLASH_ProgramBlock() function to use new definition of PointerAttr
- Add
detailed description of execution from RAM using functions provided by this
driver and with the different supported toolchains. For more information, refer
to stm8s_flash.h and stm8s_flash.c files.
- stm8s_gpio.c/.h
- Update GPIO_Mode_TypeDef enum variables by hexadecimal definition
- stm8s_I2c.c/.h
- Update I2C_Flag_TypeDef definition enum variable
- Update IS_I2C_CLEAR_FLAG_OK macro definition
- Update I2C_Event_TypeDef definition and naming:
- I2C_EVENT_MASTER_START_SENT changed to I2C_EVENT_MASTER_MODE_SELECT
- I2C_EVENT_MASTER_ADDRESS_ACKED
removed and replaced by I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED and
I2C_EVENT_MASTER_RECEIVER_MODE_SELECTED
- I2C_EVENT_MASTER_HEADER_ACKED changed to I2C_EVENT_MASTER_MODE_ADDRESS10
- I2C_EVENT_SLAVE_ADDRESS_MATCHED removed and replaced by I2C_EVENT_SLAVE_RECEIVER_ADDRESS_MATCHED and
I2C_EVENT_SLAVE_TRANSMITTER_ADDRESS_MATCHED and I2C_EVENT_SLAVE_GENERALCALLADDRESS_MATCHED - I2C_EVENT_SLAVE_BYTE_TRANSMITTING event added
- Update I2C_ITPendingBit_TypeDef enum variabale definition
- Update I2C_GetITStatus() function to check on the interrupt configuration bits
- Add defines for REGISTER_Mask, REGISTER_SR1_Index, REGISTER_SR2_Index, FLAG_Mask and ITEN_Mask
- Update I2C_ClearFlag() function to clear only the flags that are cleared by writing 0
- Add IS_I2C_CLEAR_ITPENDINGBIT_OK macro
- Update I2C_ClearITPendingBit() function to clear only the flags that are cleared by writing 0
- Update I2C_GetFlagStatus() function
- Add new function I2C_GetLastEvent()
- Update I2C_CheckEvent() function
- Add detailed description of
I2C events and how to manage them using the functions provided by this driver.
For more information, refer to stm8s_i2c.h and stm8s_i2c.c files
- stm8s_itc.c /.h
- Update ITC_GetCPUCC() function to support EWSTM8 toolchain
- stm8s_spi.c/.h
- Update SPI_CalculateCRCCmd() function by removing the the disable of SPI (should be done outside the function)
- stm8s_uartx.c/.h
- Remove CLK driver inclusion
V1.1.1 / 06-05-2009Main
Changes
- General
- Project template updated for both STVD and RIDE toolchains
- Almost peripheral examples reviewed and validated with both Cosmic and Raisonance compilers
- Library
- stm8s.h:
- __CONST definition added for Cosmic and Raisonance compilers
- TINY definition added for Cosmic and Raisonance compilers
- NEAR definition added for Raisonance compilers
- CAN registers declaration updated
- ADC1 registers declaration updated
- stm8s_adc1.h:
- IS_ADC1_BUFFER_OK macro definition updated
- stm8s_beep.c:
- BEEP_Init function updated: BEEP->CSR |= BEEP_CSR_BEEPEN; removed from init function
- stm8s_can.c/.h:
- Private variables declaration changed to volatile
- CAN_DeInit function updated
- CAN_Receive function updated
- CAN_FilterInit funtion updated
- CAN_Transmit function updated
- CAN_IT_TypeDef enum updated: CAN_IT_ERR and CAN_IT_LEC definition updated to avoid ANSI check error with Cosmic
- stm8s_clk.h:
- CLK_Peripheral_TypeDef enum updated:
- CLK_PERIPHERAL_UART1 definition updated and conditioned by the device to use
- stm8s_gpio.h:
- The GPIO_Mode_TypeDef enum element definition updated:
- GPIO_MODE_OUT_OD_LOW_FAST - GPIO_MODE_OUT_PP_LOW_FAST - GPIO_MODE_OUT_OD_LOW_SLOW - GPIO_MODE_OUT_PP_LOW_SLOW - GPIO_MODE_OUT_OD_HIZ_FAST - GPIO_MODE_OUT_PP_HIGH_FAST - GPIO_MODE_OUT_OD_HIZ_SLOW - GPIO_MODE_OUT_PP_HIGH_SLOW
- stm8s_tim3.h:
- IS_TIM3_CLEAR_FLAG_OK macro definition updated
- TIM3_GetITStatus and TIM3_GetFlagStatus functions updated: Local varaiables changed to volatile
- stm8s_usart1.h:
- UART1_IT_TypeDef enum description updated to give more details on the element values convention.
- stm8s_usart2.h:
- UART2_IT_TypeDef enum description updated to give more details on the element values convention.
- stm8s_usart3.h:
- UART3_IT_TypeDef enum description updated to give more details on the element values convention.
- stm8s_gpio.c:
- GPIO_ReadInputPin function updated
- stm8s_i2c.c:
- I2C_ClearFlag function description and code updated
- I2C_ClearITPendingBit function description and code updated
- stm8s_itc.c:
- The private function ITC_GetCPUCC definition updated for Raisonance
- stm8s_tim1.c:
- TIM1_GetITStatus and TIM1_GetFlagStatus functions updated: Local varaiables changed to volatile
- stm8s_tim2.c:
- TIM2_GetITStatus and TIM2_GetFlagStatus functions updated:Local varaiables changed to volatile
- stm8s_tim5.c:
- TIM5_GetITStatus and TIM5_GetFlagStatus functions updated:Local varaiables changed to volatile
- stm8s_tim6.c:
- TIM6_GetITStatus and TIM6_GetFlagStatus functions updated: Local varaiables changed to volatile
- Examples
- Almost examples were updated with both Cosmic and Raisonance compilers using STVD toolchain.
- Exception is made for the following FLASH examples:
- FLASH_EraseBlockOnFlashProgramMemory - FLASH_WriteEraseBlockOnDataEepromMemory - FLASH_BlockOperationOnFlashProgramMemory --> Dependency related to linkerfile edition
- All examples readme.txt files were updated :
- @par Directory contents section updated
- @par Hardware and Software environment section updated
- @par How to use it ? section updated
- Mono LCD driver updated: mono_lcd.c
- LCD_SendByte function updated by adding a delay (LCD_Delay(80);) after sending the last byte
- Micro Sd driver updated : micro_sd.c
- MSD_WriteByte function updated to support 2G SD card (type: kingston)
- AWU example updated
- AWU_AutoLSICalibration
private function removed and replaced by u32 LSIMeasurment to measure
LSI w/ either TIM1 or TIM3 depending on the used device
- BEEP example updated
- BEEP_AutoLSICalibration
private function removed and replaced by u32 LSIMeasurment to measure
LSI w/ either TIM1 or TIM3 depending on the used device
- Add BEEP_Cmd function call in the example due to BEEP_Init function update.
- CLK example
- CLK_ClockSelection updated
- SPI example
- SPI_FastCommunication example renamed to SPI_FastCommunicationMicroSD
- Projects
- Project templates updated for STVD and RIDE toolchain
- asm_functions.asm file removed from both projects STVD with Raisonance and RIDE7
- stm8s_it.c file updated to support both Cosmic and Raisonance compiler
- stm8_interrupt_vector.c and stm8s_it.h files were updated to use @far instead of @near
- Optimization option updated for STVD with Raisonance project
- SCINAME(STM8) linker option added for STVD with Raisonance project
- STM8_OB.asm file added within RIDE7 project to configure option bytes
V1.1.0 / 02-27-2009Main
Changes
- General
- The
STM8S Firmware library supports now STM8S Performance line (STM8S208
and STM8S207 sub-families), Access line (STM8S105 and STM8S103
sub-families) and STM8S903.
- RN0022 "STM8S firmware library Release note" document merged in "stm8s_fwlib_um.chm" user manual.
- "stm8s_fwlib_um.chm"
user manual: structure and content enhanced to provide complete
information about the library and how it can be used.
- List
of peripheral examples reviewed: redundant examples were removed (same
example provided for two or more peripherals) and others were added
- Library
- stm8_map.h renamed to stm8.h and the following modification were performed:
- add the library configuration section
- add definition of the used compiler
- add definition of the library supported devices
- add definition of the standard peripheral driver use
- add definition of pointer declaration for FLASH routines
- Update
peripheral registers and bit definition to support STM8S103
& STM8S903 devices: TIM5 & TIM6 registers and structures
added
- OPT base address updated
- Peripheral declaration conditioned by supported devices
- add macros added for interrupts and bits handling (content of legacy stm8s_macro.h file)
- stm8s_macro.h file removed and its content is copied to stm8s.h file
- stm8s_conf.h:
- Include stm8.h file instead of stm8s_type.h and stm8s_macro.h files
- #define DEBUG removed
- Cosmic section definition removed
- HSE value definition conditioned by supported devices
- CAN definition added
- TIM5 & TIM6 definition added
- Peripheral definition conditioned by supported devices
- add section for peripheral header file inclusion (content of legacy stm8s_lib.h file)
- stm8s_lib.h file removed and its content is copied to stm8s_conf.h file
- All peripheral drivers (tm8s_ppp.c)
- '#include "stm8s_map.h"' replaced by '#include "stm8s.h"'
- Cosmic sections removed, except from stm8s_falsh.c
- stm8s_awu.h/.c:
- AWU_AutoLSICalibration function removed and added in AWU example
- stm8s_beep.h/.c:
- BEEP_AutoLSICalibration function removed and added in BEEP example
- stm8s_can.h/.c:
- stm8s_clk.h:
- CLK_Peripheral_TypeDef enum updated :
- CLK_PERIPHERAL_USART replaced by CLK_PERIPHERAL_UART1
- CLK_PERIPHERAL_LINUART replaced by CLK_PERIPHERAL_UART2
- CLK_PERIPHERAL_UART3, CLK_PERIPHERAL_TIMER6 and CLK_PERIPHERAL_TIMER5 added
- IS_CLK_PERIPHERAL_OK macro updated
- stm8s_flash.h/.c:
- FLASH_ProgramWord function updated to write data in big endian format
- Only FLASH_EraseBlock() & FLASH_ProgramBlock() functions can be executed from RAM
- FLASH_EraseBlock()function is updated to support the lower memory size devices
- Add
a check on the HVOFF flag in the FLASH_EraseBlock
and FLASH_ProgramBlock functions before coming back to fetch from
flash
- Parameter FLASH_STATUS_END_HIGH_VOLTAGE added in the FLASH_Status_TypeDef enumeration
- stm8s_i2c.h :
- IS_I2C_INPUT_CLOCK_FREQ_OK macro updated
- stm8s_itc.h/c:
- ITC_Irq_TypeDef updated: thefollowing parameters removed:
- ITC_IRQ_USART_TX - ITC_IRQ_USART_RX - ITC_IRQ_LINUART_TX - ITC_IRQ_LINUART_RX - ITC_IRQ_ADC , and the following parameters added : - ITC_IRQ_UART2_RX - ITC_IRQ_UART2_TX - ITC_IRQ_UART3_TX - ITC_IRQ_UART3_RX - ITC_IRQ_ADC2 - ITC_IRQ_ADC1 - ITC_IRQ_TIM6_OVFTRI - ITC_IRQ_PORTF - ITC_SetSoftwarePriority() function updated
- Examples
- All examples readme.txt files were updated :
- @par Directory contents section updated
- @par Hardware and Software environment section updated
- @par How to use it ? section updated
- Micro SD driver
- microsd.c file: MSD_WriteBlock function updated to support buffer size lower than block size for the MicroSD memory card
- ADC1 examples removed (equivalent examples are available for ADC2)
- AWU example updated
- AWU_AutoLSICalibration private function added to calibrate LSI w/ TIM3
- BEEP example updated
- BEEP_AutoLSICalibration private function added to calibrate LSI w/ TIM3
- CAN example added
- CLK examples
- ManualClcokSwitch example removed
- FLASH examples updated to support STM8S105, STM8S103 and STM8S903
- Rename and update the example " FLASH_WriteErase" by "FLASH_WriteEraseBlockOnDataEepromMemory"
- Rename and update the example " FLASH_EraseBlock" by "FLASH_EraseBlockOnFlashProgramMemory"
- FLASH_BlockOperationOnFlashProgramMemory
example added to show the possibility to continue execution from
RAM while program operation on FLASH Program is on going
- I2C_EEPROMRandomRead, I2C_EEPROMReadWrite and I2C_EEPROMSequentialRead examples merged in one single example: I2C_EEPROM
- add driver for I2C EEPROM: i2c_ee.c/.h
- TIM3 examples removed (equivalent examples are available for TIM1 and TIM2)
- TIM5 example added
- UART2 & UART3 examples removed (equivalent examples are available for UART1)
- Projects
- Project templates updated for STVD and RIDE toolchain
- project.stw: one Workspace file including five projects related to the FW Lib STM8S supported devices
- stm8s103.stp Project file for STM8S103 product - stm8s105.stp Project file for STM8S105 product - stm8s207.stp Project file for STM8S207 product - stm8s208.stp Project file for STM8S208 product - stm8s903.stp Project file for STM8S903 product (not available on RIDE)
V1.0.1 - 09/22/2008Main
Changes
- I2C driver Update
- stm8s_i2c.c: I2C_ClearFlag, I2C_GetITStatus and I2C_ClearITPendingBit functions updated
- stm8s_i2c.h: I2C_IT_TypeDef enumeration updated & new I2C_ITPendingBit_TypeDef enumeration added
- I2C IAP, SPI IAP, UART3 Lin & TIM3 OCActiveMode examples removed from the package.
- TIMx_GetCapturex functions updated on TIM1, TIM2 and TIM3
- CLK driver updated (CLK_AdjustHSICalibrationValue function optimized)
- Projects template updated
- stm8s_map.h file updated (CAN registers structure added)
- User manual updated: new section added (Usage of STM8S Firmware Library Examples)
V1.0.0 - 08/15/2008Main
Changes
Licensecensed
under MCD-ST Liberty SW License Agreement V2, (the "License"); You may not use
this package
except in compliance with the License. You may obtain a copy of the License
at:
Unless
required by applicable law or agreed to in writing, software distributed under
the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
CONDITIONS OF ANY KIND, either express or implied. See the License for the
specific language governing permissions and limitations under the
License.
For complete documentation on
STM8S 8-bit microcontrollers platform visit www.st.com
|