Skip to content
This repository was archived by the owner on Mar 31, 2023. It is now read-only.

Commit 021f65b

Browse files
ridhaosWi6labsVVESTM
authored andcommitted
Add NUCLEO_8S208RB variant
Signed-off-by: Ridha Noomane <ridha.noomane@wi6labs.com> Signed-off-by: Frederic Pillon <frederic.pillon@st.com>
1 parent 153fa2f commit 021f65b

File tree

6 files changed

+1154
-0
lines changed

6 files changed

+1154
-0
lines changed
+174
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,174 @@
1+
/*
2+
*******************************************************************************
3+
* Copyright (c) 2018, STMicroelectronics
4+
* All rights reserved.
5+
*
6+
* Redistribution and use in source and binary forms, with or without
7+
* modification, are permitted provided that the following conditions are met:
8+
*
9+
* 1. Redistributions of source code must retain the above copyright notice,
10+
* this list of conditions and the following disclaimer.
11+
* 2. Redistributions in binary form must reproduce the above copyright notice,
12+
* this list of conditions and the following disclaimer in the documentation
13+
* and/or other materials provided with the distribution.
14+
* 3. Neither the name of STMicroelectronics nor the names of its contributors
15+
* may be used to endorse or promote products derived from this software
16+
* without specific prior written permission.
17+
*
18+
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
19+
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20+
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
21+
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
22+
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
23+
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
24+
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
25+
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
26+
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
27+
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28+
*******************************************************************************
29+
* Automatically generated from STM8S208RBTx.xml
30+
*/
31+
#include "Arduino.h"
32+
#include "PeripheralPins.h"
33+
34+
/* =====
35+
* Note: Commented lines are alternative possibilities which are not used per default.
36+
* If you change them, you will have to know what you do
37+
* =====
38+
*/
39+
40+
//*** ADC ***
41+
42+
#if !defined(NO_HWADC)
43+
const PinMap PinMap_ADC[] = {
44+
{PB_0, ADCx, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_MODE_IN_FL_NO_IT, 0, 0, 0)}, // ADC_IN0
45+
{PB_1, ADCx, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_MODE_IN_FL_NO_IT, 0, 1, 0)}, // ADC_IN1
46+
{PB_2, ADCx, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_MODE_IN_FL_NO_IT, 0, 2, 0)}, // ADC_IN2
47+
{PB_3, ADCx, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_MODE_IN_FL_NO_IT, 0, 3, 0)}, // ADC_IN3
48+
{PB_4, ADCx, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_MODE_IN_FL_NO_IT, 0, 4, 0)}, // ADC_IN4
49+
{PB_5, ADCx, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_MODE_IN_FL_NO_IT, 0, 5, 0)}, // ADC_IN5
50+
{PB_6, ADCx, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_MODE_IN_FL_NO_IT, 0, 6, 0)}, // ADC_IN6
51+
{PB_7, ADCx, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_MODE_IN_FL_NO_IT, 0, 7, 0)}, // ADC_IN7
52+
{PE_6, ADCx, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_MODE_IN_FL_NO_IT, 0, 9, 0)}, // ADC_IN9
53+
{PE_7, ADCx, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_MODE_IN_FL_NO_IT, 0, 8, 0)}, // ADC_IN8
54+
{PF_0, ADCx, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_MODE_IN_FL_NO_IT, 0, 10, 0)}, // ADC_IN10
55+
{PF_3, ADCx, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_MODE_IN_FL_NO_IT, 0, 11, 0)}, // ADC_IN11
56+
{PF_4, ADCx, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_MODE_IN_FL_NO_IT, 0, 12, 0)}, // ADC_IN12
57+
{PF_5, ADCx, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_MODE_IN_FL_NO_IT, 0, 13, 0)}, // ADC_IN13
58+
{PF_6, ADCx, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_MODE_IN_FL_NO_IT, 0, 14, 0)}, // ADC_IN14
59+
{PF_7, ADCx, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_MODE_IN_FL_NO_IT, 0, 15, 0)}, // ADC_IN15
60+
{NC, NP, 0}
61+
};
62+
#endif
63+
64+
//*** DAC ***
65+
66+
//*** No DAC ***
67+
68+
//*** I2C ***
69+
70+
#if !defined(NO_HWI2C)
71+
const PinMap PinMap_I2C_SDA[] = {
72+
{PB_5, I2C, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_MODE_IN_FL_NO_IT, AFIO_NONE)},
73+
{PE_2, I2C, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_MODE_IN_FL_NO_IT, AFIO_NONE)},
74+
{NC, NP, 0}
75+
};
76+
#endif
77+
78+
#if !defined(NO_HWI2C)
79+
const PinMap PinMap_I2C_SCL[] = {
80+
{PB_4, I2C, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_MODE_IN_FL_NO_IT, AFIO_NONE)},
81+
{PE_1, I2C, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_MODE_IN_FL_NO_IT, AFIO_NONE)},
82+
{NC, NP, 0}
83+
};
84+
#endif
85+
86+
//*** PWM ***
87+
88+
#if !defined(NO_HWTIM)
89+
const PinMap PinMap_PWM[] = {
90+
{PA_3, TIM2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_MODE_OUT_PP_LOW_FAST, AFIO_NONE, 3, 0)}, // TIM2_CH3
91+
{PA_3, TIM3, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_MODE_OUT_PP_LOW_FAST, AFIO_NONE, 1, 0)}, // TIM3_CH1
92+
{PB_0, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_MODE_OUT_PP_LOW_FAST, AFIO_NONE, 1, 1)}, // TIM1_CH1N
93+
{PB_1, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_MODE_OUT_PP_LOW_FAST, AFIO_NONE, 2, 1)}, // TIM1_CH2N
94+
{PB_2, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_MODE_OUT_PP_LOW_FAST, AFIO_NONE, 3, 1)}, // TIM1_CH3N
95+
{PC_1, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_MODE_OUT_PP_LOW_FAST, AFIO_NONE, 1, 0)}, // TIM1_CH1
96+
{PC_2, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_MODE_OUT_PP_LOW_FAST, AFIO_NONE, 2, 0)}, // TIM1_CH2
97+
{PC_3, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_MODE_OUT_PP_LOW_FAST, AFIO_NONE, 3, 0)}, // TIM1_CH3
98+
{PC_4, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_MODE_OUT_PP_LOW_FAST, AFIO_NONE, 4, 0)}, // TIM1_CH4
99+
{PD_0, TIM3, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_MODE_OUT_PP_LOW_FAST, AFIO_NONE, 2, 0)}, // TIM3_CH2
100+
{PD_2, TIM2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_MODE_OUT_PP_LOW_FAST, AFIO_NONE, 3, 0)}, // TIM2_CH3
101+
{PD_2, TIM3, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_MODE_OUT_PP_LOW_FAST, AFIO_NONE, 1, 0)}, // TIM3_CH1
102+
{PD_3, TIM2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_MODE_OUT_PP_LOW_FAST, AFIO_NONE, 2, 0)}, // TIM2_CH2
103+
{PD_4, TIM2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_MODE_OUT_PP_LOW_FAST, AFIO_NONE, 1, 0)}, // TIM2_CH1
104+
{NC, NP, 0}
105+
};
106+
#endif
107+
108+
//*** SERIAL ***
109+
110+
#if !defined(NO_HWSERIAL)
111+
const PinMap PinMap_UART_TX[] = {
112+
{PA_5, UART1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_MODE_OUT_PP_LOW_FAST, AFIO_NONE)},
113+
{PD_5, UART3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_MODE_OUT_PP_LOW_FAST, AFIO_NONE)},
114+
{NC, NP, 0}
115+
};
116+
#endif
117+
118+
#if !defined(NO_HWSERIAL)
119+
const PinMap PinMap_UART_RX[] = {
120+
{PA_4, UART1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_MODE_IN_PU_NO_IT, AFIO_NONE)},
121+
{PD_6, UART3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_MODE_IN_PU_NO_IT, AFIO_NONE)},
122+
{NC, NP, 0}
123+
};
124+
#endif
125+
126+
//*** SPI ***
127+
128+
#if !defined(NO_HWSPI)
129+
const PinMap PinMap_SPI_MOSI[] = {
130+
{PC_6, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_MODE_IN_PU_NO_IT, AFIO_NONE)},
131+
{NC, NP, 0}
132+
};
133+
#endif
134+
135+
#if !defined(NO_HWSPI)
136+
const PinMap PinMap_SPI_MISO[] = {
137+
{PC_7, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_MODE_IN_PU_NO_IT, AFIO_NONE)},
138+
{NC, NP, 0}
139+
};
140+
#endif
141+
142+
#if !defined(NO_HWSPI)
143+
const PinMap PinMap_SPI_SCLK[] = {
144+
{PC_5, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_MODE_IN_PU_NO_IT, AFIO_NONE)},
145+
{NC, NP, 0}
146+
};
147+
#endif
148+
149+
#if !defined(NO_HWSPI)
150+
const PinMap PinMap_SPI_SSEL[] = {
151+
{PE_5, SPI1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_MODE_IN_PU_NO_IT, AFIO_NONE)},
152+
{NC, NP, 0}
153+
};
154+
#endif
155+
156+
//*** CAN ***
157+
158+
#if !defined(NO_HWCAN)
159+
const PinMap PinMap_CAN_RD[] = {
160+
{PG_1, CAN, STM_PIN_DATA(STM_MODE_INPUT, GPIO_MODE_IN_PU_NO_IT, AFIO_NONE)},
161+
{NC, NP, 0}
162+
};
163+
#endif
164+
165+
#if !defined(NO_HWCAN)
166+
const PinMap PinMap_CAN_TD[] = {
167+
{PG_0, CAN, STM_PIN_DATA(STM_MODE_INPUT, GPIO_MODE_IN_PU_NO_IT, AFIO_NONE)},
168+
{NC, NP, 0}
169+
};
170+
#endif
171+
172+
//*** QUADSPI ***
173+
174+
//*** No QUADSPI ***

variants/NUCLEO_8S208RB/lkfscript.lkf

+28
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
# link command file for STM8S105C6
2+
# Copyright (c) 2017 by COSMIC Software
3+
#
4+
+seg .vector -b0x8000 -m0x8000 -n .vector -cs code -k # interrupt and rest vectors
5+
+seg .const -a .vector -n .const # constants follow vectors
6+
+seg ._construct_ -a .const -n .construct -k # constructor table
7+
+seg .text -a .construct -n .text # code follow constants
8+
+seg .eeprom -b 0x4000 -m 0x800 -cs eeprom # internal eeprom
9+
+seg .bsct -b 0x0 -m 0x100 -n .bsct -cs data # internal ram
10+
+seg .ubsct -a .bsct -n .ubsct
11+
+seg .bit -a .ubsct -n .bit -id
12+
+seg .data -a .bit -m 0x1300 -n .data
13+
+seg .bss -a .data -n .bss
14+
crtspi0.sm8
15+
@*
16+
libcppsl0.sm8
17+
libfsl0.sm8
18+
libisl0.sm8
19+
libll.sm8
20+
libm0.sm8
21+
+def __memory=@.bss
22+
+def __endzp=@.ubsct
23+
+def __stack=0x17ff
24+
+def __startmem=@.bss
25+
+spc .bss=0x100
26+
+def __endmem=@.bss
27+
+def __ctorstart=start(.construct)
28+
+def __ctorend=end(.construct)

variants/NUCLEO_8S208RB/stm8s_conf.h

+117
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,117 @@
1+
/**
2+
******************************************************************************
3+
* @file stm8s_conf.h
4+
* @author MCD Application Team
5+
* @version V2.2.0
6+
* @date 30-September-2014
7+
* @brief This file is used to configure the Library.
8+
******************************************************************************
9+
* @attention
10+
*
11+
* <h2><center>&copy; COPYRIGHT 2014 STMicroelectronics</center></h2>
12+
*
13+
* Licensed under MCD-ST Liberty SW License Agreement V2, (the "License");
14+
* You may not use this file except in compliance with the License.
15+
* You may obtain a copy of the License at:
16+
*
17+
* http://www.st.com/software_license_agreement_liberty_v2
18+
*
19+
* Unless required by applicable law or agreed to in writing, software
20+
* distributed under the License is distributed on an "AS IS" BASIS,
21+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
22+
* See the License for the specific language governing permissions and
23+
* limitations under the License.
24+
*
25+
******************************************************************************
26+
*/
27+
28+
/* Define to prevent recursive inclusion -------------------------------------*/
29+
#ifndef __STM8S_CONF_H
30+
#define __STM8S_CONF_H
31+
32+
/* Includes ------------------------------------------------------------------*/
33+
#include "stm8s.h"
34+
35+
/* Uncomment the line below to enable peripheral header file inclusion */
36+
#if defined(STM8S105) || defined(STM8S005) || defined(STM8S103) || defined(STM8S003) ||\
37+
defined(STM8S903) || defined (STM8AF626x) || defined (STM8AF622x)
38+
#include "stm8s_adc1.h"
39+
#endif /* (STM8S105) ||(STM8S103) || (STM8S903) || (STM8AF626x) || (STM8AF622x) */
40+
#if defined(STM8S208) || defined(STM8S207) || defined(STM8S007) || defined (STM8AF52Ax) ||\
41+
defined (STM8AF62Ax)
42+
#include "stm8s_adc2.h"
43+
#endif /* (STM8S208) || (STM8S207) || (STM8AF62Ax) || (STM8AF52Ax) */
44+
//#include "stm8s_awu.h"
45+
//#include "stm8s_beep.h"
46+
#if defined (STM8S208) || defined (STM8AF52Ax)
47+
//#include "stm8s_can.h"
48+
#endif /* (STM8S208) || (STM8AF52Ax) */
49+
#include "stm8s_clk.h"
50+
#include "stm8s_exti.h"
51+
#include "stm8s_flash.h"
52+
#include "stm8s_gpio.h"
53+
#include "stm8s_i2c.h"
54+
//#include "stm8s_itc.h"
55+
//#include "stm8s_iwdg.h"
56+
//#include "stm8s_rst.h"
57+
#include "stm8s_spi.h"
58+
#include "stm8s_tim1.h"
59+
#if !defined(STM8S903) || !defined(STM8AF622x)
60+
#include "stm8s_tim2.h"
61+
#endif /* (STM8S903) || (STM8AF622x) */
62+
#if defined(STM8S208) || defined(STM8S207) || defined(STM8S007) ||defined(STM8S105) ||\
63+
defined(STM8S005) || defined (STM8AF52Ax) || defined (STM8AF62Ax) || defined (STM8AF626x)
64+
#include "stm8s_tim3.h"
65+
#endif /* (STM8S208) ||defined(STM8S207) || defined(STM8S007) ||defined(STM8S105) */
66+
#if !defined(STM8S903) || !defined(STM8AF622x)
67+
#include "stm8s_tim4.h"
68+
#endif /* (STM8S903) || (STM8AF622x) */
69+
#if defined(STM8S903) || defined(STM8AF622x)
70+
#include "stm8s_tim5.h"
71+
#include "stm8s_tim6.h"
72+
#endif /* (STM8S903) || (STM8AF622x) */
73+
#if defined(STM8S208) ||defined(STM8S207) || defined(STM8S007) ||defined(STM8S103) ||\
74+
defined(STM8S003) || defined(STM8S903) || defined (STM8AF52Ax) || defined (STM8AF62Ax)
75+
#include "stm8s_uart1.h"
76+
#endif /* (STM8S208) || (STM8S207) || (STM8S103) || (STM8S903) || (STM8AF52Ax) || (STM8AF62Ax) */
77+
#if defined(STM8S105) || defined(STM8S005) || defined (STM8AF626x)
78+
#include "stm8s_uart2.h"
79+
#endif /* (STM8S105) || (STM8AF626x) */
80+
#if defined(STM8S208) ||defined(STM8S207) || defined(STM8S007) || defined (STM8AF52Ax) ||\
81+
defined (STM8AF62Ax)
82+
#include "stm8s_uart3.h"
83+
#endif /* STM8S208 || STM8S207 || STM8AF52Ax || STM8AF62Ax */
84+
#if defined(STM8AF622x)
85+
#include "stm8s_uart4.h"
86+
#endif /* (STM8AF622x) */
87+
//#include "stm8s_wwdg.h"
88+
//#define DRIVER_WWDG_MODULE_ENABLED
89+
90+
/* Exported types ------------------------------------------------------------*/
91+
/* Exported constants --------------------------------------------------------*/
92+
/* Uncomment the line below to expanse the "assert_param" macro in the
93+
Standard Peripheral Library drivers code */
94+
//#define USE_FULL_ASSERT (1)
95+
96+
/* Exported macro ------------------------------------------------------------*/
97+
#ifdef USE_FULL_ASSERT
98+
99+
/**
100+
* @brief The assert_param macro is used for function's parameters check.
101+
* @param expr: If expr is false, it calls assert_failed function
102+
* which reports the name of the source file and the source
103+
* line number of the call that failed.
104+
* If expr is true, it returns no value.
105+
* @retval : None
106+
*/
107+
#define assert_param(expr) ((expr) ? (void)0 : assert_failed((uint8_t *)__FILE__, __LINE__))
108+
/* Exported functions ------------------------------------------------------- */
109+
void assert_failed(uint8_t* file, uint32_t line);
110+
#else
111+
#define assert_param(expr) ((void)0)
112+
#endif /* USE_FULL_ASSERT */
113+
114+
#endif /* __STM8S_CONF_H */
115+
116+
117+
/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/

0 commit comments

Comments
 (0)