Modified xInitPLL2 vInitMCU

This commit is contained in:
Alexei 2023-02-03 00:39:01 +07:00
parent a216f29ef2
commit b3e7d2c947
2 changed files with 30 additions and 58 deletions

View File

@ -175,31 +175,10 @@
<Mm>
<WinNumber>1</WinNumber>
<SubType>0</SubType>
<ItemText>0x40028014</ItemText>
<ItemText>0x40011000</ItemText>
<AccSizeX>0</AccSizeX>
</Mm>
</MemoryWindow1>
<MemoryWindow2>
<Mm>
<WinNumber>2</WinNumber>
<SubType>0</SubType>
<ItemText>0x20001FCC</ItemText>
<AccSizeX>0</AccSizeX>
</Mm>
</MemoryWindow2>
<MemoryWindow3>
<Mm>
<WinNumber>3</WinNumber>
<SubType>0</SubType>
<ItemText>reg</ItemText>
<AccSizeX>0</AccSizeX>
</Mm>
</MemoryWindow3>
<ScvdPack>
<Filename>C:\Users\User\AppData\Local\Arm\Packs\ARM\CMSIS-FreeRTOS\10.5.1\CMSIS\RTOS2\FreeRTOS\FreeRTOS.scvd</Filename>
<Type>ARM.CMSIS-FreeRTOS.10.5.1</Type>
<SubType>1</SubType>
</ScvdPack>
<Tracepoint>
<THDelay>0</THDelay>
</Tracepoint>
@ -623,7 +602,7 @@
<Group>
<GroupName>::Device</GroupName>
<tvExp>1</tvExp>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<cbSel>0</cbSel>
<RteFlg>1</RteFlg>

63
main.c
View File

@ -32,7 +32,7 @@
#define RMII_REF_CLK_PORT GPIOA
#define RMII_REF_CLK GPIO_PIN_1
#define MCO GPIO_PIN_8
#define RMII_MCO GPIO_PIN_8
#define RMII_MDC_PORT GPIOC
#define RMII_MDC GPIO_PIN_1
@ -156,10 +156,10 @@ int stdin_getchar (void)
return usart_data_receive(EVAL_COM1);
}
/**! \brief vInitPLL2(void)
/**! \brief ErrStatus xInitPLL2(void)
* Enable PLL2 to generate 50MHz clocks
*/
static ErrStatus vInitPLL2(void)
static ErrStatus xInitPLL2(void)
{
/*CK_PREDIV1 = (CK_HXTAL)/5 = 5 MHz */
if (!(RCU_CFG1 & RCU_PREDV1_DIV5)) return ERROR;
@ -188,51 +188,46 @@ static void vInitMCU(void)
rcu_periph_clock_enable(RCU_ENET);
rcu_periph_clock_enable(RCU_ENETTX);
rcu_periph_clock_enable(RCU_ENETRX);
/*Configure GPIO Alternate UART function*/
gd_eval_com_init(EVAL_COM1);
gpio_init(GPIOB, GPIO_MODE_IPU, GPIO_OSPEED_2MHZ, BUTTON_USER);
/* Configure GPIO Output function for LEDs */
gpio_init(LED2_USER_PORT, GPIO_MODE_OUT_PP, GPIO_OSPEED_2MHZ, LED2_USER); //gd_eval_led_init(LED2);
gpio_bit_set(LED2_USER_PORT, LED2_USER); //gd_eval_led_on(LED2);
gpio_init(LED5_TICK_PORT, GPIO_MODE_OUT_PP, GPIO_OSPEED_2MHZ, LED5_TICK);
gpio_bit_set(LED5_TICK_PORT, LED5_TICK);
/*Enable PLL2 to generate 50MHz clocks */
if (ERROR == vInitPLL2())
if (ERROR == xInitPLL2())
{
#if defined (DEBUG)
#ifdef DEBUG
printf("PLL2 initialization failed\n");
__ASM("BKPT #0\n");
#endif
#endif
}
/*Put PLL2 clocks into CKOUT0(PA1) as ref clock for ethernet phy*/
/* Put PLL2 clocks into CKOUT0(PA1) as ref clock for ethernet phy */
rcu_ckout0_config(RCU_CKOUT0SRC_CKPLL2);
gpio_ethernet_phy_select(GPIO_ENET_PHY_RMII);
/*
* Configure GPIO Alternate RMII function
*/
gpio_init(RMII_TXD_PORT, GPIO_MODE_AF_PP, GPIO_OSPEED_50MHZ, RMII_TX_EN);
gpio_init(RMII_TXD_PORT, GPIO_MODE_AF_PP, GPIO_OSPEED_50MHZ, RMII_TXD0);
gpio_init(RMII_TXD_PORT, GPIO_MODE_AF_PP, GPIO_OSPEED_50MHZ, RMII_TXD1);
/* Configure GPIO Alternate RMII function */
gpio_init(RMII_TXD_PORT, GPIO_MODE_AF_PP, GPIO_OSPEED_50MHZ, RMII_TX_EN);
gpio_init(RMII_TXD_PORT, GPIO_MODE_AF_PP, GPIO_OSPEED_50MHZ, RMII_TXD0);
gpio_init(RMII_TXD_PORT, GPIO_MODE_AF_PP, GPIO_OSPEED_50MHZ, RMII_TXD1);
gpio_init(RMII_MDC_PORT, GPIO_MODE_AF_PP, GPIO_OSPEED_50MHZ, RMII_MDC);
gpio_init(RMII_MDIO_PORT, GPIO_MODE_AF_PP, GPIO_OSPEED_50MHZ, RMII_MDIO);
gpio_init(RMII_INT_PORT, GPIO_MODE_AF_PP, GPIO_OSPEED_50MHZ, RMII_INT);
gpio_init(RMII_REF_CLK_PORT, GPIO_MODE_AF_PP, GPIO_OSPEED_50MHZ, RMII_MCO);
gpio_init(RMII_REF_CLK_PORT, GPIO_MODE_IN_FLOATING, GPIO_OSPEED_50MHZ, RMII_REF_CLK);
gpio_init(RMII_REF_CLK_PORT, GPIO_MODE_AF_PP, GPIO_OSPEED_50MHZ, MCO);
gpio_init(RMII_RXD_PORT, GPIO_MODE_IN_FLOATING, GPIO_OSPEED_50MHZ, RMII_RXD0);
gpio_init(RMII_RXD_PORT, GPIO_MODE_IN_FLOATING, GPIO_OSPEED_50MHZ, RMII_RXD1);
gpio_init(RMII_CRS_DV_PORT, GPIO_MODE_IN_FLOATING, GPIO_OSPEED_50MHZ, RMII_CRS_DV);
//gpio_init(RMII_RXD_PORT, GPIO_MODE_IN_FLOATING, GPIO_OSPEED_50MHZ, RMII_RXD0);
//gpio_init(RMII_RXD_PORT, GPIO_MODE_IN_FLOATING, GPIO_OSPEED_50MHZ, RMII_RXD1);
//gpio_init(RMII_CRS_DV_PORT, GPIO_MODE_IN_FLOATING, GPIO_OSPEED_50MHZ, RMII_CRS_DV);
/*
* Configure GPIO Output function for LEDs
*/
gpio_init(LED2_USER_PORT, GPIO_MODE_OUT_PP, GPIO_OSPEED_2MHZ, LED2_USER); //gd_eval_led_init(LED2);
gpio_bit_set(LED2_USER_PORT, LED2_USER); //gd_eval_led_on(LED2);
gpio_init(LED5_TICK_PORT, GPIO_MODE_OUT_PP, GPIO_OSPEED_2MHZ, LED5_TICK);
gpio_bit_set(LED5_TICK_PORT, LED5_TICK);
/*
* Configure GPIO Alternate UART function
*/
gd_eval_com_init(EVAL_COM1);
gpio_init(GPIOB, GPIO_MODE_IPU, GPIO_OSPEED_2MHZ, BUTTON_USER);
}
/**! \brief vTaskHelloWorld procedure
@ -375,8 +370,6 @@ static void prvSRand( UBaseType_t ulSeed )
ulNextRand = ulSeed;
}
UBaseType_t uxRand( void )
{
static UBaseType_t ulNextRand;