Skip to content

Commit 8b663b6

Browse files
committed
Merge pull request #9 from rogerclarkmelbourne/master
Resync
2 parents 266ab9f + 2e9b4f3 commit 8b663b6

39 files changed

Lines changed: 199 additions & 62 deletions

File tree

GD32F1/cores/maple/libmaple/rcc_f1.c

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -162,3 +162,12 @@ void rcc_set_prescaler(rcc_prescaler prescaler, uint32 divider) {
162162
};
163163
rcc_do_set_prescaler(masks, prescaler, divider);
164164
}
165+
166+
void rcc_clk_disable(rcc_clk_id id) {
167+
static __io uint32* enable_regs[] = {
168+
[APB1] = &RCC_BASE->APB1ENR,
169+
[APB2] = &RCC_BASE->APB2ENR,
170+
[AHB] = &RCC_BASE->AHBENR,
171+
};
172+
rcc_do_clk_disable(enable_regs, id);
173+
}

GD32F1/system/libmaple/include/libmaple/rcc.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -169,6 +169,12 @@ static inline void rcc_disable_css() {
169169
RCC_BASE->CR &= ~RCC_CR_CSSON;
170170
}
171171

172+
/**
173+
* @brief Turn off the clock line on a peripheral
174+
* @param id Clock ID of the peripheral to turn on.
175+
*/
176+
extern void rcc_clk_disable(rcc_clk_id id);
177+
172178
#ifdef __cplusplus
173179
} // extern "C"
174180
#endif

GD32F1/system/libmaple/rcc_private.h

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,4 +64,11 @@ static inline void rcc_do_set_prescaler(const uint32 *masks,
6464
RCC_BASE->CFGR = cfgr;
6565
}
6666

67+
static inline void rcc_do_clk_disable(__io uint32** enable_regs,
68+
rcc_clk_id id) {
69+
__io uint32 *enable_reg = enable_regs[rcc_dev_clk(id)];
70+
uint8 line_num = rcc_dev_table[id].line_num;
71+
bb_peri_set_bit(enable_reg, line_num, 0);
72+
}
73+
6774
#endif

GD32F1/system/libmaple/stm32f1/include/series/stm32.h

Lines changed: 1 addition & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -227,27 +227,8 @@ extern "C" {
227227
# define STM32_PCLK2 F_CPU
228228
# endif
229229
# ifndef STM32_DELAY_US_MULT
230-
#if F_CPU == 120000000
231-
#define STM32_DELAY_US_MULT 40 /* FIXME: value is incorrect. */
232-
#elif F_CPU == 96000000
233-
#define STM32_DELAY_US_MULT 32 /* FIXME: value is incorrect. */
234-
#elif F_CPU == 72000000
235-
#define STM32_DELAY_US_MULT 24 /* FIXME: value is incorrect. */
236-
#endif
237-
# endif
238-
#elif STM32_F1_LINE == STM32_F1_LINE_VALUE /* TODO */
239-
# ifndef STM32_PCLK1
240-
# define STM32_PCLK1 12000000U
241-
# endif
242-
# ifndef STM32_PCLK2
243-
# define STM32_PCLK2 24000000U
244-
# endif
245-
# ifndef STM32_DELAY_US_MULT
246-
# define STM32_DELAY_US_MULT 8 /* FIXME: value is incorrect. */
230+
# define STM32_DELAY_US_MULT (F_CPU / 3000000L)
247231
# endif
248-
#elif STM32_F1_LINE == STM32_F1_LINE_ACCESS /* TODO */
249-
#elif STM32_F1_LINE == STM32_F1_LINE_USB_ACCESS /* TODO */
250-
#elif STM32_F1_LINE == STM32_F1_LINE_CONNECTIVITY /* TODO */
251232
#endif
252233

253234
/*

GD32F1/variants/generic_gd32f103c/wirish/boards_setup.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,12 +79,15 @@ namespace wirish {
7979
rcc_set_prescaler(RCC_PRESCALER_AHB, RCC_AHB_SYSCLK_DIV_1);
8080
rcc_set_prescaler(RCC_PRESCALER_APB1, RCC_APB1_HCLK_DIV_2);
8181
rcc_set_prescaler(RCC_PRESCALER_APB2, RCC_APB2_HCLK_DIV_1);
82+
rcc_clk_disable(RCC_USB);
8283
#if F_CPU == 120000000
8384
rcc_set_prescaler(RCC_PRESCALER_USB, RCC_USB_SYSCLK_DIV_2_5);
8485
#elif F_CPU == 96000000
8586
rcc_set_prescaler(RCC_PRESCALER_USB, RCC_USB_SYSCLK_DIV_2);
8687
#elif F_CPU == 72000000
8788
rcc_set_prescaler(RCC_PRESCALER_USB, RCC_USB_SYSCLK_DIV_1_5);
89+
#elif F_CPU == 48000000
90+
rcc_set_prescaler(RCC_PRESCALER_USB, RCC_USB_SYSCLK_DIV_1_5);
8891
#endif
8992
}
9093

STM32F1/cores/maple/libmaple/rcc_f1.c

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ void rcc_clk_init(rcc_sysclk_src sysclk_src,
104104
ASSERT(sysclk_src == RCC_CLKSRC_PLL &&
105105
pll_src == RCC_PLLSRC_HSE);
106106

107-
RCC_BASE->CFGR = pll_src | pll_mul;
107+
RCC_BASE->CFGR = pll_src | pll_mul | (0x3<<22);
108108

109109
/* Turn on, and wait for, HSE. */
110110
rcc_turn_on_clk(RCC_CLK_HSE);
@@ -125,13 +125,13 @@ void rcc_configure_pll(rcc_pll_cfg *pll_cfg) {
125125
stm32f1_rcc_pll_data *data = pll_cfg->data;
126126
rcc_pll_multiplier pll_mul = data->pll_mul;
127127
uint32 cfgr;
128-
129128
/* Check that the PLL is disabled. */
130129
ASSERT_FAULT(!rcc_is_clk_on(RCC_CLK_PLL));
131130

132131
cfgr = RCC_BASE->CFGR;
133132
cfgr &= ~(RCC_CFGR_PLLSRC | RCC_CFGR_PLLMUL);
134133
cfgr |= pll_cfg->pllsrc | pll_mul;
134+
135135
RCC_BASE->CFGR = cfgr;
136136
}
137137

@@ -162,3 +162,12 @@ void rcc_set_prescaler(rcc_prescaler prescaler, uint32 divider) {
162162
};
163163
rcc_do_set_prescaler(masks, prescaler, divider);
164164
}
165+
166+
void rcc_clk_disable(rcc_clk_id id) {
167+
static __io uint32* enable_regs[] = {
168+
[APB1] = &RCC_BASE->APB1ENR,
169+
[APB2] = &RCC_BASE->APB2ENR,
170+
[AHB] = &RCC_BASE->AHBENR,
171+
};
172+
rcc_do_clk_disable(enable_regs, id);
173+
}

STM32F1/libraries/FreeRTOS/utility/FreeRTOSConfig.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@
6969
#define configUSE_PREEMPTION 1
7070
#define configUSE_IDLE_HOOK 0
7171
#define configUSE_TICK_HOOK 0
72-
#define configCPU_CLOCK_HZ ( ( unsigned long ) 72000000 )
72+
#define configCPU_CLOCK_HZ ( ( unsigned long ) F_CPU )
7373
#define configTICK_RATE_HZ ( ( portTickType ) 1000 )
7474
#define configMAX_PRIORITIES ( ( unsigned portBASE_TYPE ) 5 )
7575
#define configMINIMAL_STACK_SIZE ( ( unsigned short ) 120 )

STM32F1/libraries/FreeRTOS821/utility/FreeRTOSConfig.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@
8585
#define configUSE_PREEMPTION 1
8686
#define configUSE_IDLE_HOOK 0
8787
#define configUSE_TICK_HOOK 0
88-
#define configCPU_CLOCK_HZ ( ( unsigned long ) 72000000 )
88+
#define configCPU_CLOCK_HZ ( ( unsigned long ) F_CPU )
8989
#define configTICK_RATE_HZ ( ( TickType_t ) 1000 )
9090
#define configMAX_PRIORITIES ( 5 )
9191
#define configMINIMAL_STACK_SIZE ( ( unsigned short ) 120 )

STM32F1/libraries/MapleCoOS/utility/OsConfig.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ Idle task stack size(word).
4242
/*!<
4343
System frequency (Hz).
4444
*/
45-
#define CFG_CPU_FREQ (72000000)
45+
#define CFG_CPU_FREQ (F_CPU)
4646

4747
/*!<
4848
systick frequency (Hz).

STM32F1/libraries/MapleCoOS116/utility/OsConfig.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ Idle task stack size(word).
7070
/*!<
7171
System frequency (Hz).
7272
*/
73-
#define CFG_CPU_FREQ (72000000)
73+
#define CFG_CPU_FREQ (F_CPU)
7474

7575
/*!<
7676
systick frequency (Hz).

0 commit comments

Comments
 (0)