This is sample program for Nucleo L152RE (and F401RE & F411RE) mbed-rtos. You need to modify mbed-src and mbed-rtos before compile it.

Dependencies:   mbed-rtos mbed-src SetRTC

Fork of GR-PEACH_test_on_rtos_works_well by Kenji Arai

Please refer below link.
/users/kenjiArai/notebook/necleo-l152re-rtos-sample-also-for-f401re--f411re-/

Committer:
kenjiArai
Date:
Tue May 19 23:32:57 2015 +0000
Revision:
12:2db841307633
Parent:
11:587b8f1bab9d
Child:
13:d0d1da1fae4c
updated comments in "modification_notice.h"

Who changed what in which revision?

UserRevisionLine numberNew contents of line
kenjiArai 10:1c0f58b9c048 1 /*
kenjiArai 10:1c0f58b9c048 2 * mbed Application program for the mbed
kenjiArai 10:1c0f58b9c048 3 * Library differ part (This is only information document)
kenjiArai 10:1c0f58b9c048 4 *
kenjiArai 10:1c0f58b9c048 5 * Copyright (c) 2014,'15 Kenji Arai / JH1PJL
kenjiArai 10:1c0f58b9c048 6 * http://www.page.sannet.ne.jp/kenjia/index.html
kenjiArai 10:1c0f58b9c048 7 * http://mbed.org/users/kenjiArai/
kenjiArai 10:1c0f58b9c048 8 * Created: May 14th, 2015
kenjiArai 11:587b8f1bab9d 9 * Revised: May 16th, 2015, 11:05 a.m.(JST)
kenjiArai 10:1c0f58b9c048 10 *
kenjiArai 10:1c0f58b9c048 11 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
kenjiArai 10:1c0f58b9c048 12 * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
kenjiArai 10:1c0f58b9c048 13 * AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
kenjiArai 10:1c0f58b9c048 14 * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
kenjiArai 10:1c0f58b9c048 15 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
kenjiArai 10:1c0f58b9c048 16 */
kenjiArai 10:1c0f58b9c048 17
kenjiArai 10:1c0f58b9c048 18 #if 0 ///////////////////////////////////////////////////////////////////////////////////////////
kenjiArai 10:1c0f58b9c048 19
kenjiArai 10:1c0f58b9c048 20 //-------------------------------------------------------------------------------------------------
kenjiArai 10:1c0f58b9c048 21 // ----- Hardware configuration ---------------
kenjiArai 10:1c0f58b9c048 22 //-------------------------------------------------------------------------------------------------
kenjiArai 10:1c0f58b9c048 23
kenjiArai 10:1c0f58b9c048 24 // Direct connection between below two pins.
kenjiArai 10:1c0f58b9c048 25 // DAC0 output connected to ADC1 input
kenjiArai 10:1c0f58b9c048 26 PA_4 : PA_1
kenjiArai 10:1c0f58b9c048 27 // DAC1 to ADC3
kenjiArai 10:1c0f58b9c048 28 PA_5 : PB_0
kenjiArai 10:1c0f58b9c048 29 // I2C1 master connected to I2C2 slave
kenjiArai 10:1c0f58b9c048 30 PB_8 : PB_10 // Need 3.3Kohm pull-up
kenjiArai 10:1c0f58b9c048 31 PB_9 : PB_11 // Need 3.3Kohm pull-up
kenjiArai 10:1c0f58b9c048 32 // Connecetd with CR network
kenjiArai 10:1c0f58b9c048 33 // LED's connected each pin with R=330Ohm to GND
kenjiArai 10:1c0f58b9c048 34 PC_2
kenjiArai 10:1c0f58b9c048 35 PC_3
kenjiArai 10:1c0f58b9c048 36 PC_10
kenjiArai 10:1c0f58b9c048 37 PC_11
kenjiArai 10:1c0f58b9c048 38 PC_12
kenjiArai 10:1c0f58b9c048 39
kenjiArai 10:1c0f58b9c048 40 //-------------------------------------------------------------------------------------------------
kenjiArai 10:1c0f58b9c048 41 // ----- Software Modification ---------------
kenjiArai 10:1c0f58b9c048 42 //-------------------------------------------------------------------------------------------------
kenjiArai 10:1c0f58b9c048 43 // SUMMARY information
kenjiArai 10:1c0f58b9c048 44 // Nucleo_rtos_sample
kenjiArai 10:1c0f58b9c048 45 + debug_tools_L152_F4x1RE <- Created as new lib.
kenjiArai 10:1c0f58b9c048 46 + SetRTC <- Lib. updated by myself
kenjiArai 10:1c0f58b9c048 47 // + files
kenjiArai 11:587b8f1bab9d 48 + mbed-rtos <- Rev.77 (checked on May 16, 2015)
kenjiArai 10:1c0f58b9c048 49 // + rtos
kenjiArai 10:1c0f58b9c048 50 // + rtx
kenjiArai 10:1c0f58b9c048 51 // + TARGET_CORTEX_M
kenjiArai 11:587b8f1bab9d 52 + RTX_Conf_CM.c <- (1) Need to modify before compile by yourself
kenjiArai 10:1c0f58b9c048 53 // + DIRs & Files
kenjiArai 10:1c0f58b9c048 54 // + DIRs & Files + DIRs & Files
kenjiArai 10:1c0f58b9c048 55 + mbe-src <- Rev.541 (checked on May 16, 2015)
kenjiArai 10:1c0f58b9c048 56 // + targets
kenjiArai 10:1c0f58b9c048 57 // + cmsis
kenjiArai 10:1c0f58b9c048 58 // + TARGET_STM
kenjiArai 10:1c0f58b9c048 59 // + TARGET_STM32L1
kenjiArai 10:1c0f58b9c048 60 // + TARGET_NUCLEO_L152RE
kenjiArai 10:1c0f58b9c048 61 // + system_stm32l1xx.c
kenjiArai 11:587b8f1bab9d 62 <- (2) Need to modify before compile by yourself
kenjiArai 10:1c0f58b9c048 63 // + DIRs & Files
kenjiArai 10:1c0f58b9c048 64 // + hal
kenjiArai 10:1c0f58b9c048 65 // + TARGET_STM
kenjiArai 10:1c0f58b9c048 66 // + TARGET_STM32F4
kenjiArai 10:1c0f58b9c048 67 // + rtc_api.c
kenjiArai 11:587b8f1bab9d 68 <- (3) Need to modify before compile by yourself
kenjiArai 10:1c0f58b9c048 69 // + DIRs & Files
kenjiArai 10:1c0f58b9c048 70 // + TARGET_NUCLEO_L152RE
kenjiArai 10:1c0f58b9c048 71 // + rtc_api.c
kenjiArai 11:587b8f1bab9d 72 <- (4) Need to modify before compile by yourself
kenjiArai 10:1c0f58b9c048 73 // + DIRs & Files
kenjiArai 10:1c0f58b9c048 74 // + DIR & Files + DIRs & Files + DIRs & Files
kenjiArai 10:1c0f58b9c048 75
kenjiArai 10:1c0f58b9c048 76 (1) CAUTION!! for Nucleo L152RE mbed
kenjiArai 10:1c0f58b9c048 77 L152 mbed has following setting both mbed lib. and mbed-src lib.
kenjiArai 10:1c0f58b9c048 78 System Clock = 24 MHz (started as 32 MHz but due to USB clock creation, changed to 24 MHz)
kenjiArai 11:587b8f1bab9d 79 If you would like to use 24 MHz, do NOT modify (1) and (2).
kenjiArai 10:1c0f58b9c048 80
kenjiArai 12:2db841307633 81 As of May 20th, 2015
kenjiArai 12:2db841307633 82 Followings are investigation result.
kenjiArai 12:2db841307633 83 Case L152 (C-01 old ver with internal RC clock)
kenjiArai 12:2db841307633 84 before and rev.81 20140319 -> 16000000Hz
kenjiArai 12:2db841307633 85 rev.82 and after 20140407 -> 32000000Hz
kenjiArai 12:2db841307633 86 Case L152 (C-02 new ver)
kenjiArai 12:2db841307633 87 before and rev.81 20140319 -> 16000000Hz
kenjiArai 12:2db841307633 88 rev.82 and after 20140407 -> 24000000Hz
kenjiArai 12:2db841307633 89
kenjiArai 12:2db841307633 90 Currently L152RE has two type of operation, 24MHz and 32MHz.
kenjiArai 12:2db841307633 91
kenjiArai 10:1c0f58b9c048 92 (2) CAUTION!! for Nucleo F411RE mbed
kenjiArai 10:1c0f58b9c048 93 F411 med has been changed System clock = 96 MHz (former setting 100 MHz).
kenjiArai 10:1c0f58b9c048 94 Please modify #ifndef OS_CLOCK related part.
kenjiArai 10:1c0f58b9c048 95
kenjiArai 10:1c0f58b9c048 96 //-------------------------------------------------------------------------------------------------
kenjiArai 11:587b8f1bab9d 97 // (1) /mbed-rtos/mbed-rtos/rtx/TARGET_CORTEX_M/RTX_Conf_CM.c
kenjiArai 10:1c0f58b9c048 98 //-------------------------------------------------------------------------------------------------
kenjiArai 10:1c0f58b9c048 99 // Insert & Modifiy (from line 118)
kenjiArai 10:1c0f58b9c048 100 /*
kenjiArai 10:1c0f58b9c048 101 // Insert (below 2 lines)
kenjiArai 10:1c0f58b9c048 102 #elif defined(TARGET_STM32L152RE)
kenjiArai 10:1c0f58b9c048 103 //# define OS_CLOCK 24000000
kenjiArai 10:1c0f58b9c048 104 # define OS_CLOCK 32000000
kenjiArai 10:1c0f58b9c048 105 // Modify (100MHz to 96MHz)
kenjiArai 10:1c0f58b9c048 106 # elif defined(TARGET_STM32F411RE)
kenjiArai 10:1c0f58b9c048 107 # define OS_CLOCK 96000000
kenjiArai 10:1c0f58b9c048 108 */
kenjiArai 10:1c0f58b9c048 109 // Copy & Paste from next line
kenjiArai 10:1c0f58b9c048 110 #ifndef OS_CLOCK
kenjiArai 10:1c0f58b9c048 111 # if defined(TARGET_LPC1768) || defined(TARGET_LPC2368)
kenjiArai 10:1c0f58b9c048 112 # define OS_CLOCK 96000000
kenjiArai 10:1c0f58b9c048 113
kenjiArai 10:1c0f58b9c048 114 # elif defined(TARGET_LPC1347) || defined(TARGET_STM32F303VC) || defined(TARGET_LPC1549) || defined(TARGET_STM32F334R8) || defined(TARGET_STM32F334C8) || defined(TARGET_STM32F303RE)
kenjiArai 10:1c0f58b9c048 115 # define OS_CLOCK 72000000
kenjiArai 10:1c0f58b9c048 116
kenjiArai 10:1c0f58b9c048 117 # elif defined(TARGET_LPC11U24) || defined(TARGET_LPC11U35_401) || defined(TARGET_LPC11U35_501) || defined(TARGET_LPCCAPPUCCINO) || defined(TARGET_LPC1114) || defined(TARGET_KL25Z) \
kenjiArai 10:1c0f58b9c048 118 || defined(TARGET_KL05Z) || defined(TARGET_KL46Z) || defined(TARGET_KL43Z) || defined(TARGET_STM32F051R8) || defined(TARGET_LPC11U68) || defined(TARGET_STM32F072RB) || defined(TARGET_STM32F091RC)
kenjiArai 10:1c0f58b9c048 119 # define OS_CLOCK 48000000
kenjiArai 10:1c0f58b9c048 120
kenjiArai 10:1c0f58b9c048 121 # elif defined(TARGET_LPC812)
kenjiArai 10:1c0f58b9c048 122 # define OS_CLOCK 36000000
kenjiArai 10:1c0f58b9c048 123
kenjiArai 10:1c0f58b9c048 124 # elif defined(TARGET_LPC824)
kenjiArai 10:1c0f58b9c048 125 # define OS_CLOCK 30000000
kenjiArai 10:1c0f58b9c048 126
kenjiArai 10:1c0f58b9c048 127 # elif defined(TARGET_STM32F100RB)
kenjiArai 10:1c0f58b9c048 128 # define OS_CLOCK 24000000
kenjiArai 10:1c0f58b9c048 129
kenjiArai 10:1c0f58b9c048 130 # elif defined(TARGET_LPC4088) || defined(TARGET_LPC4088_DM) || defined(TARGET_K64F) || defined(TARGET_K22F)
kenjiArai 10:1c0f58b9c048 131 # define OS_CLOCK 120000000
kenjiArai 10:1c0f58b9c048 132
kenjiArai 10:1c0f58b9c048 133 # elif defined(TARGET_LPC4330)
kenjiArai 10:1c0f58b9c048 134 # define OS_CLOCK 204000000
kenjiArai 10:1c0f58b9c048 135
kenjiArai 10:1c0f58b9c048 136 # elif defined(TARGET_LPC4337)
kenjiArai 10:1c0f58b9c048 137 # define OS_CLOCK 204000000
kenjiArai 10:1c0f58b9c048 138
kenjiArai 10:1c0f58b9c048 139 # elif defined(TARGET_STM32F407) || defined(TARGET_F407VG)
kenjiArai 10:1c0f58b9c048 140 # define OS_CLOCK 168000000
kenjiArai 10:1c0f58b9c048 141
kenjiArai 10:1c0f58b9c048 142 # elif defined(TARGET_STM32F401RE)
kenjiArai 10:1c0f58b9c048 143 # define OS_CLOCK 84000000
kenjiArai 10:1c0f58b9c048 144
kenjiArai 10:1c0f58b9c048 145 # elif defined(TARGET_STM32F411RE)
kenjiArai 10:1c0f58b9c048 146 # define OS_CLOCK 96000000
kenjiArai 10:1c0f58b9c048 147
kenjiArai 10:1c0f58b9c048 148 #elif defined(TARGET_STM32F103RB)
kenjiArai 10:1c0f58b9c048 149 # define OS_CLOCK 72000000
kenjiArai 10:1c0f58b9c048 150
kenjiArai 10:1c0f58b9c048 151 #elif defined(TARGET_STM32F429ZI)
kenjiArai 10:1c0f58b9c048 152 # define OS_CLOCK 168000000
kenjiArai 10:1c0f58b9c048 153
kenjiArai 10:1c0f58b9c048 154 #elif defined(TARGET_STM32F302R8)
kenjiArai 10:1c0f58b9c048 155 # define OS_CLOCK 64000000
kenjiArai 10:1c0f58b9c048 156
kenjiArai 10:1c0f58b9c048 157 #elif defined(TARGET_STM32L053R8) || defined(TARGET_STM32L053C8)
kenjiArai 10:1c0f58b9c048 158 # define OS_CLOCK 32000000
kenjiArai 10:1c0f58b9c048 159
kenjiArai 10:1c0f58b9c048 160 #elif defined(TARGET_STM32F401VC)
kenjiArai 10:1c0f58b9c048 161 # define OS_CLOCK 84000000
kenjiArai 10:1c0f58b9c048 162
kenjiArai 10:1c0f58b9c048 163 #elif defined(TARGET_MAX32610) || defined(TARGET_MAX32600)
kenjiArai 10:1c0f58b9c048 164 # define OS_CLOCK 24000000
kenjiArai 10:1c0f58b9c048 165
kenjiArai 10:1c0f58b9c048 166 #elif defined(TARGET_STM32L152RE)
kenjiArai 10:1c0f58b9c048 167 //# define OS_CLOCK 24000000
kenjiArai 10:1c0f58b9c048 168 # define OS_CLOCK 32000000
kenjiArai 10:1c0f58b9c048 169
kenjiArai 10:1c0f58b9c048 170 # else
kenjiArai 10:1c0f58b9c048 171 # error "no target defined"
kenjiArai 10:1c0f58b9c048 172 # endif
kenjiArai 10:1c0f58b9c048 173 #endif
kenjiArai 10:1c0f58b9c048 174
kenjiArai 10:1c0f58b9c048 175 // <o>Timer tick value [us] <1-1000000>
kenjiArai 10:1c0f58b9c048 176 // <i> Defines the timer tick value.
kenjiArai 10:1c0f58b9c048 177 // <i> Default: 1000 (1ms)
kenjiArai 10:1c0f58b9c048 178 #ifndef OS_TICK
kenjiArai 10:1c0f58b9c048 179 #define OS_TICK 1000
kenjiArai 10:1c0f58b9c048 180 #endif
kenjiArai 10:1c0f58b9c048 181 // to above line
kenjiArai 10:1c0f58b9c048 182
kenjiArai 10:1c0f58b9c048 183 //-------------------------------------------------------------------------------------------------
kenjiArai 11:587b8f1bab9d 184 // (2) /mbed-src/targets/cmsis/TARGET_STM/TARGET_STM32L1/TARGET_NUCLEO_L152RE/system_stm32l1xx.c
kenjiArai 10:1c0f58b9c048 185 //-------------------------------------------------------------------------------------------------
kenjiArai 10:1c0f58b9c048 186 // inside SetSysClock_PLL_HSE() function (line 483)
kenjiArai 10:1c0f58b9c048 187 // Modify (from line 511)
kenjiArai 10:1c0f58b9c048 188 // Copy & Paste from next line
kenjiArai 10:1c0f58b9c048 189 #if 0
kenjiArai 10:1c0f58b9c048 190 // SYSCLK = 24 MHz ((8 MHz * 6) / 2)
kenjiArai 10:1c0f58b9c048 191 // USBCLK = 48 MHz (8 MHz * 6) --> USB OK
kenjiArai 10:1c0f58b9c048 192 RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
kenjiArai 10:1c0f58b9c048 193 RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
kenjiArai 10:1c0f58b9c048 194 RCC_OscInitStruct.PLL.PLLMUL = RCC_PLL_MUL6;
kenjiArai 10:1c0f58b9c048 195 RCC_OscInitStruct.PLL.PLLDIV = RCC_PLL_DIV2;
kenjiArai 10:1c0f58b9c048 196 #else
kenjiArai 10:1c0f58b9c048 197 // SYSCLK = 32 MHz ((8 MHz * 8) / 2)
kenjiArai 10:1c0f58b9c048 198 // USBCLK = 48 MHz (8 MHz * 8) --> USB NG
kenjiArai 10:1c0f58b9c048 199 RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
kenjiArai 10:1c0f58b9c048 200 RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
kenjiArai 10:1c0f58b9c048 201 RCC_OscInitStruct.PLL.PLLMUL = RCC_PLL_MUL8;
kenjiArai 10:1c0f58b9c048 202 RCC_OscInitStruct.PLL.PLLDIV = RCC_PLL_DIV2;
kenjiArai 10:1c0f58b9c048 203 #endif
kenjiArai 10:1c0f58b9c048 204 // to above line
kenjiArai 10:1c0f58b9c048 205
kenjiArai 10:1c0f58b9c048 206 //-------------------------------------------------------------------------------------------------
kenjiArai 11:587b8f1bab9d 207 // (3) /mbed-src/targets/hal/TARGET_STM/TARGET_STM/TARGET_STM32F4/rtc_api.c
kenjiArai 10:1c0f58b9c048 208 //-------------------------------------------------------------------------------------------------
kenjiArai 10:1c0f58b9c048 209 Please see /debug_tools_L152_F4x1RE/SetRTC/modify_info_F4xx.h
kenjiArai 10:1c0f58b9c048 210
kenjiArai 10:1c0f58b9c048 211 //-------------------------------------------------------------------------------------------------
kenjiArai 11:587b8f1bab9d 212 // (4) /mbed-src/targets/hal/TARGET_STM/TARGET_NUCLEO_L152RE/rtc_api.c
kenjiArai 10:1c0f58b9c048 213 //-------------------------------------------------------------------------------------------------
kenjiArai 10:1c0f58b9c048 214 Please see /debug_tools_L152_F4x1RE/SetRTC/modify_info_L152.h
kenjiArai 10:1c0f58b9c048 215
kenjiArai 10:1c0f58b9c048 216 #endif ///////////////////////////////////////////////////////////////////////////////////////