diff --git a/.settings/language.settings.xml b/.settings/language.settings.xml
index 8272cd5..540387d 100644
--- a/.settings/language.settings.xml
+++ b/.settings/language.settings.xml
@@ -6,7 +6,7 @@
-
+
@@ -18,7 +18,7 @@
-
+
diff --git a/Core/Src/freertos.c b/Core/Src/freertos.c
index 3af5a97..127151f 100644
--- a/Core/Src/freertos.c
+++ b/Core/Src/freertos.c
@@ -187,9 +187,8 @@ void StartDefaultTask(void *argument)
MX_USB_DEVICE_Init();
/* USER CODE BEGIN StartDefaultTask */
- NaviKit_var_init();
HAL_GPIO_WritePin(USB2_FS_ENUM_CTL_GPIO_Port,USB2_FS_ENUM_CTL_Pin, GPIO_PIN_SET);
- Beep(50);
+ // Beep(50);
/* Infinite loop */
for(;;)
{
@@ -233,7 +232,6 @@ void StartLedBlinkTask(void *argument)
{
if(!HAL_GPIO_ReadPin(SYS_POWER_LED_CTL_GPIO_Port,SYS_POWER_LED_CTL_Pin))
HAL_GPIO_WritePin(SYS_POWER_LED_CTL_GPIO_Port,SYS_POWER_LED_CTL_Pin,GPIO_PIN_SET);//turn off power led
-
if(HAL_GPIO_ReadPin(SYS_RUN_LED_CTL_GPIO_Port,SYS_RUN_LED_CTL_Pin) == GPIO_PIN_SET)//sys run led is off
{
@@ -246,27 +244,27 @@ void StartLedBlinkTask(void *argument)
osDelay(2000);
}
}
- else if(NaviKit.sys.sta == sleep)
+ else
{
- for(uint16_t i=0;i<20;i++)
+ for(uint16_t i=0;i<25;i++)
{//20 light level
- for(uint16_t j=0;j<4;j++)
+ for(uint16_t j=0;j<3;j++)
{//the time length of every light level
HAL_GPIO_WritePin(SYS_POWER_LED_CTL_GPIO_Port,SYS_POWER_LED_CTL_Pin,GPIO_PIN_SET);
HAL_GPIO_WritePin(SYS_RUN_LED_CTL_GPIO_Port,SYS_RUN_LED_CTL_Pin,GPIO_PIN_SET);
osDelay(i);
HAL_GPIO_WritePin(SYS_POWER_LED_CTL_GPIO_Port,SYS_POWER_LED_CTL_Pin,GPIO_PIN_RESET);
HAL_GPIO_WritePin(SYS_RUN_LED_CTL_GPIO_Port,SYS_RUN_LED_CTL_Pin,GPIO_PIN_RESET);
- osDelay(20-i);
+ osDelay(25-i);
}
}
- for(uint16_t i=0;i<20;i++)
+ for(uint16_t i=0;i<25;i++)
{
- for(uint16_t j=0;j<4;j++)
+ for(uint16_t j=0;j<3;j++)
{
HAL_GPIO_WritePin(SYS_POWER_LED_CTL_GPIO_Port,SYS_POWER_LED_CTL_Pin,GPIO_PIN_SET);
HAL_GPIO_WritePin(SYS_RUN_LED_CTL_GPIO_Port,SYS_RUN_LED_CTL_Pin,GPIO_PIN_SET);
- osDelay(20-i);
+ osDelay(25-i);
HAL_GPIO_WritePin(SYS_POWER_LED_CTL_GPIO_Port,SYS_POWER_LED_CTL_Pin,GPIO_PIN_RESET);
HAL_GPIO_WritePin(SYS_RUN_LED_CTL_GPIO_Port,SYS_RUN_LED_CTL_Pin,GPIO_PIN_RESET);
osDelay(i);
@@ -317,35 +315,23 @@ void StartButtonDetect(void *argument)
osDelay(1000);
if(NaviKit.sys.power_btn == true)
{//power btn has been pushed more than 1000 ms
+ // while(NaviKit.sys.power_btn == true);//wait to release button
if(NaviKit.sys.sta == runing)
{//system is runing now, user request to shutdown
- enter_shutdown_state();
- NaviKit.sys.sta = shutdown;
- printf("shutdown \n");
- Beep(50);
-
-
+ NaviKit.sys.sta = shutdown;
}
else if(NaviKit.sys.sta == shutdown)
{//system is shutdown now , user request to power on
NaviKit.sys.sta = runing;
- printf("power on \n");
- Beep(200);
- osDelay(500);
-
}
}
else
{
- if(NaviKit.sys.sta == runing)
- {
- NaviKit.sys.sta = sleep;
- }
- else if(NaviKit.sys.sta == sleep)
- {
- NaviKit.sys.sta = runing;
- }
-
+ //sleep mode is unused
+// if(NaviKit.sys.sta == runing)
+// NaviKit.sys.sta = sleep;
+// else if(NaviKit.sys.sta == sleep)
+// NaviKit.sys.sta = runing;
}
}
if(NaviKit.sys.custom_btn == true )
@@ -353,9 +339,17 @@ void StartButtonDetect(void *argument)
osDelay(1000);
if(NaviKit.sys.custom_btn == true )
{//custom button has been pushed over 1000 ms
+ // while(NaviKit.sys.custom_btn == true);//wait to release button
if(NaviKit.sys.sta == runing)
{
- // restart();
+ //restart usb3.0 gigabit ethernet controler
+ HAL_GPIO_WritePin(SOC_U3_GEC_PWR_CTL_GPIO_Port,SOC_U3_GEC_PWR_CTL_Pin,GPIO_PIN_RESET);
+// HAL_GPIO_WritePin(SOC_U3_HOST_PWR_CTL_GPIO_Port,SOC_U3_HOST_PWR_CTL_Pin, GPIO_PIN_RESET);
+ Beep(50);
+ osDelay(1000);
+ HAL_GPIO_WritePin(SOC_U3_GEC_PWR_CTL_GPIO_Port,SOC_U3_GEC_PWR_CTL_Pin,GPIO_PIN_SET);
+// HAL_GPIO_WritePin(SOC_U3_HOST_PWR_CTL_GPIO_Port,SOC_U3_HOST_PWR_CTL_Pin, GPIO_PIN_RESET);
+ Beep(50);
}
}
}
@@ -410,6 +404,8 @@ void StartStateSwitchTask(void *argument)
/* Infinite loop */
for(;;)
{
+ NaviKit.sys.last_sta = NaviKit.sys.sta;
+ osDelay(10);
if(NaviKit.sys.last_sta != NaviKit.sys.sta)
switch(NaviKit.sys.sta)
{
@@ -429,7 +425,6 @@ void StartStateSwitchTask(void *argument)
}break;
}
- osDelay(10);
}
/* USER CODE END StartStateSwitchTask */
}
@@ -481,13 +476,16 @@ void sys_stop()
void enter_shutdown_state()
{
+ printf("Enter to shutdown state \n");
+ Beep(50);
+
HAL_GPIO_WritePin(SOM_POWER_EN_GPIO_Port ,SOM_POWER_EN_Pin, GPIO_PIN_RESET); osDelay(100);
- for(uint8_t i=0;i<100;i++)
- {
- if(HAL_GPIO_ReadPin(SOM_SHUTDOWN_REQ_GPIO_Port,SOM_SHUTDOWN_REQ_Pin))
- osDelay(10);
- }
+ // for(uint8_t i=0;i<100;i++)
+ // {
+ // if(HAL_GPIO_ReadPin(SOM_SHUTDOWN_REQ_GPIO_Port,SOM_SHUTDOWN_REQ_Pin))
+ // osDelay(10);
+ // }
HAL_GPIO_WritePin(SOC_U3_HUB_PWR_CTL_GPIO_Port,SOC_U3_HUB_PWR_CTL_Pin, GPIO_PIN_RESET); osDelay(100);
HAL_GPIO_WritePin(SOC_U2_HUB_PWR_CTL_GPIO_Port,SOC_U2_HUB_PWR_CTL_Pin, GPIO_PIN_RESET); osDelay(100);
@@ -519,6 +517,9 @@ void enter_shutdown_state()
}
void enter_sleep_state()
{
+ printf("Enter to sleep state \n");
+ Beep(50);
+
// HAL_GPIO_WritePin(SOC_U3_HUB_PWR_CTL_GPIO_Port,SOC_U3_HUB_PWR_CTL_Pin, GPIO_PIN_RESET); osDelay(100);
HAL_GPIO_WritePin(SOC_U2_HUB_PWR_CTL_GPIO_Port,SOC_U2_HUB_PWR_CTL_Pin, GPIO_PIN_RESET); osDelay(100);
HAL_GPIO_WritePin(SOC_U3_HOST_PWR_CTL_GPIO_Port,SOC_U3_HOST_PWR_CTL_Pin, GPIO_PIN_RESET); osDelay(100);
@@ -548,6 +549,10 @@ void enter_sleep_state()
}
void enter_runing_state()
{
+
+ printf("Enter to runing state \n");
+ Beep(200);
+
HAL_GPIO_WritePin(PMB_PS_ON_GPIO_Port ,PMB_PS_ON_Pin, GPIO_PIN_SET); osDelay(100);
HAL_GPIO_WritePin(SYS_FAN_CTL_1_GPIO_Port,SYS_FAN_CTL_1_Pin,GPIO_PIN_SET); osDelay(100);
diff --git a/Core/Src/gpio.c b/Core/Src/gpio.c
index e92fa4a..b9a39ba 100644
--- a/Core/Src/gpio.c
+++ b/Core/Src/gpio.c
@@ -57,22 +57,30 @@ void MX_GPIO_Init(void)
HAL_GPIO_WritePin(GPIOE, PMB_PS_ON_Pin|SYS_FAN_CTL_1_Pin|SYS_FAN_CTL_2_Pin|SYS_FAN_CTL_3_Pin, GPIO_PIN_RESET);
/*Configure GPIO pin Output Level */
- HAL_GPIO_WritePin(GPIOC, PMB_CHRG_SHDN_Pin|PMB_TEMP_SEN_EN_Pin|SYS_RUN_LED_CTL_Pin|SYS_BUZZ_CTL_Pin
- |SOC_U2_HUB_PWR_CTL_Pin, GPIO_PIN_RESET);
+ HAL_GPIO_WritePin(GPIOC, PMB_CHRG_SHDN_Pin|SYS_BUZZ_CTL_Pin, GPIO_PIN_SET);
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(GPIOC, PMB_TEMP_SEN_EN_Pin|SYS_RUN_LED_CTL_Pin|SOC_U2_HUB_PWR_CTL_Pin, GPIO_PIN_RESET);
/*Configure GPIO pin Output Level */
HAL_GPIO_WritePin(GPIOB, IIC2_SCL_Pin|IIC2_SDA_Pin|USB2_VBUS_CTL_1_Pin|USB2_VBUS_CTL_2_Pin
- |USB2_VBUS_CTL_3_Pin|USB2_VBUS_CTL_4_Pin|SOM_SYS_RESET_Pin, GPIO_PIN_RESET);
+ |USB2_VBUS_CTL_3_Pin|USB2_VBUS_CTL_4_Pin, GPIO_PIN_RESET);
/*Configure GPIO pin Output Level */
HAL_GPIO_WritePin(GPIOD, USB2_VBUS_CTL_5_Pin|USB2_VBUS_CTL_6_Pin|USB3_VBUS_CTL_5_Pin|USB3_VBUS_CTL_6_Pin
|USB3_VBUS_CTL_1_Pin|USB3_VBUS_CTL_2_Pin|USB3_VBUS_CTL_3_Pin|USB3_VBUS_CTL_4_Pin
|SOC_U3_HUB_PWR_CTL_Pin|SOC_U3_HOST_PWR_CTL_Pin|SOC_U3_GEC_PWR_CTL_Pin|SOC_GE_SW_PWR_CTL_Pin
- |SOM_POWER_EN_Pin|SOM_SLEEP_WAKE_Pin|SOM_FORCE_RECOVERY_Pin, GPIO_PIN_RESET);
+ |SOM_POWER_EN_Pin, GPIO_PIN_RESET);
/*Configure GPIO pin Output Level */
HAL_GPIO_WritePin(USB2_FS_ENUM_CTL_GPIO_Port, USB2_FS_ENUM_CTL_Pin, GPIO_PIN_RESET);
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(GPIOD, SOM_SLEEP_WAKE_Pin|SOM_FORCE_RECOVERY_Pin, GPIO_PIN_SET);
+
+ /*Configure GPIO pin Output Level */
+ HAL_GPIO_WritePin(SOM_SYS_RESET_GPIO_Port, SOM_SYS_RESET_Pin, GPIO_PIN_SET);
+
/*Configure GPIO pins : PEPin PEPin PEPin PEPin
PEPin */
GPIO_InitStruct.Pin = SYS_POWER_LED_CTL_Pin|PMB_PS_ON_Pin|SYS_FAN_CTL_1_Pin|SYS_FAN_CTL_2_Pin
@@ -191,7 +199,7 @@ void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
if(HAL_GPIO_ReadPin(SYS_POWER_BTN_GPIO_Port, SYS_POWER_BTN_Pin)==GPIO_PIN_RESET)
{//falling edge trigger
NaviKit.sys.power_btn = false;
- printf("pwr_btn poped \n");
+ printf("pwr_btn released \n");
}
}
else if(GPIO_Pin == SYS_CUSTOM_BTN_Pin)
@@ -199,7 +207,7 @@ void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
if(HAL_GPIO_ReadPin(SYS_CUSTOM_BTN_GPIO_Port, SYS_CUSTOM_BTN_Pin)==GPIO_PIN_SET)
{//Rising edge trigger
NaviKit.sys.custom_btn = false;
- printf("cus_btn poped \n");
+ printf("cus_btn released \n");
}
if(HAL_GPIO_ReadPin(SYS_CUSTOM_BTN_GPIO_Port, SYS_CUSTOM_BTN_Pin)==GPIO_PIN_RESET)
{//falling edge trigger
diff --git a/Core/Src/main.c b/Core/Src/main.c
index 99d433d..168aac8 100644
--- a/Core/Src/main.c
+++ b/Core/Src/main.c
@@ -32,6 +32,7 @@
/* Private includes ----------------------------------------------------------*/
/* USER CODE BEGIN Includes */
#include
+#include "navikit.h"
/* USER CODE END Includes */
/* Private typedef -----------------------------------------------------------*/
@@ -83,6 +84,7 @@ int main(void)
/* USER CODE BEGIN Init */
+ NaviKit_var_init();
/* USER CODE END Init */
/* Configure the system clock */
diff --git a/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pcd.c b/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pcd.c
index 4754352..33fa7e0 100644
--- a/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pcd.c
+++ b/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pcd.c
@@ -1027,7 +1027,7 @@ void HAL_PCD_IRQHandler(PCD_HandleTypeDef *hpcd)
#if (USE_HAL_PCD_REGISTER_CALLBACKS == 1U)
hpcd->SuspendCallback(hpcd);
#else
- HAL_PCD_SuspendCallback(hpcd);
+ //HAL_PCD_SuspendCallback(hpcd);
#endif /* USE_HAL_PCD_REGISTER_CALLBACKS */
}
__HAL_PCD_CLEAR_FLAG(hpcd, USB_OTG_GINTSTS_USBSUSP);
diff --git a/NaviKit_stm32.ioc b/NaviKit_stm32.ioc
index f6e8188..4ec4295 100644
--- a/NaviKit_stm32.ioc
+++ b/NaviKit_stm32.ioc
@@ -260,9 +260,10 @@ PB3.GPIOParameters=GPIO_Label
PB3.GPIO_Label=SYS_SWO
PB3.Mode=Trace_Asynchronous_SW
PB3.Signal=SYS_TRACESWO
-PB4.GPIOParameters=GPIO_Label
+PB4.GPIOParameters=PinState,GPIO_Label
PB4.GPIO_Label=SOM_SYS_RESET
PB4.Locked=true
+PB4.PinState=GPIO_PIN_SET
PB4.Signal=GPIO_Output
PB5.GPIOParameters=GPIO_Label
PB5.GPIO_Label=SOM_MOD_SLEEP
@@ -284,9 +285,10 @@ PB9.GPIO_Label=IIC1_SDA
PB9.Locked=true
PB9.Mode=I2C
PB9.Signal=I2C1_SDA
-PC0.GPIOParameters=GPIO_Label
+PC0.GPIOParameters=PinState,GPIO_Label
PC0.GPIO_Label=PMB_CHRG_SHDN
PC0.Locked=true
+PC0.PinState=GPIO_PIN_SET
PC0.Signal=GPIO_Output
PC1.GPIOParameters=GPIO_Label
PC1.GPIO_Label=PMB_TEMP_SEN_EN
@@ -314,9 +316,10 @@ PC4.GPIOParameters=GPIO_Label
PC4.GPIO_Label=SYS_RUN_LED_CTL
PC4.Locked=true
PC4.Signal=GPIO_Output
-PC5.GPIOParameters=GPIO_Label
+PC5.GPIOParameters=PinState,GPIO_Label
PC5.GPIO_Label=SYS_BUZZ_CTL
PC5.Locked=true
+PC5.PinState=GPIO_PIN_SET
PC5.Signal=GPIO_Output
PD0.GPIOParameters=GPIO_Label
PD0.GPIO_Label=SOC_U3_HUB_PWR_CTL
@@ -366,13 +369,15 @@ PD5.GPIOParameters=GPIO_Label
PD5.GPIO_Label=SOM_SHUTDOWN_REQ
PD5.Locked=true
PD5.Signal=GPIO_Input
-PD6.GPIOParameters=GPIO_Label
+PD6.GPIOParameters=PinState,GPIO_Label
PD6.GPIO_Label=SOM_SLEEP_WAKE
PD6.Locked=true
+PD6.PinState=GPIO_PIN_SET
PD6.Signal=GPIO_Output
-PD7.GPIOParameters=GPIO_Label
+PD7.GPIOParameters=PinState,GPIO_Label
PD7.GPIO_Label=SOM_FORCE_RECOVERY
PD7.Locked=true
+PD7.PinState=GPIO_PIN_SET
PD7.Signal=GPIO_Output
PD8.GPIOParameters=GPIO_Label
PD8.GPIO_Label=USB2_VBUS_CTL_5