Browse Source

v6

tags/v6.0.3
zhaohe 11 months ago
parent
commit
240ec55462
  1. 4
      .settings/language.settings.xml
  2. 8
      Core/Src/gpio.c
  3. 8
      Core/Src/spi.c
  4. 2
      Core/Src/usart.c
  5. 2
      iflytop_xsync
  6. 18
      usrc/base_service/fpga_if.c
  7. 18
      usrc/base_service/fpga_if.h
  8. 37
      usrc/main.cpp
  9. 5
      usrc/project_configs.h
  10. 62
      xsync_stm32.ioc

4
.settings/language.settings.xml

@ -5,7 +5,7 @@
<provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/>
<provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/>
<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/>
<provider class="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" console="false" env-hash="-1118597297850324375" id="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" keep-relative-paths="false" name="MCU ARM GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true">
<provider class="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" console="false" env-hash="-1208648385819186583" id="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" keep-relative-paths="false" name="MCU ARM GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true">
<language-scope id="org.eclipse.cdt.core.gcc"/>
<language-scope id="org.eclipse.cdt.core.g++"/>
</provider>
@ -16,7 +16,7 @@
<provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/>
<provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/>
<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/>
<provider class="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" console="false" env-hash="-1233234830099897766" id="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" keep-relative-paths="false" name="MCU ARM GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true">
<provider class="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" console="false" env-hash="-1237641533571421798" id="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" keep-relative-paths="false" name="MCU ARM GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true">
<language-scope id="org.eclipse.cdt.core.gcc"/>
<language-scope id="org.eclipse.cdt.core.g++"/>
</provider>

8
Core/Src/gpio.c

@ -79,10 +79,10 @@ void MX_GPIO_Init(void)
GPIO_InitStruct.Pull = GPIO_NOPULL;
HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
/*Configure GPIO pins : PA0 PA3 PA8 PA11
PA12 PA15 */
GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_3|GPIO_PIN_8|GPIO_PIN_11
|GPIO_PIN_12|GPIO_PIN_15;
/*Configure GPIO pins : PA0 PA3 PA4 PA8
PA11 PA12 PA15 */
GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_3|GPIO_PIN_4|GPIO_PIN_8
|GPIO_PIN_11|GPIO_PIN_12|GPIO_PIN_15;
GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
GPIO_InitStruct.Pull = GPIO_NOPULL;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);

8
Core/Src/spi.c

@ -48,7 +48,7 @@ void MX_SPI1_Init(void)
hspi1.Init.DataSize = SPI_DATASIZE_8BIT;
hspi1.Init.CLKPolarity = SPI_POLARITY_HIGH;
hspi1.Init.CLKPhase = SPI_PHASE_2EDGE;
hspi1.Init.NSS = SPI_NSS_HARD_OUTPUT;
hspi1.Init.NSS = SPI_NSS_SOFT;
hspi1.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_128;
hspi1.Init.FirstBit = SPI_FIRSTBIT_LSB;
hspi1.Init.TIMode = SPI_TIMODE_DISABLE;
@ -111,12 +111,11 @@ void HAL_SPI_MspInit(SPI_HandleTypeDef* spiHandle)
__HAL_RCC_GPIOA_CLK_ENABLE();
__HAL_RCC_GPIOB_CLK_ENABLE();
/**SPI1 GPIO Configuration
PA4 ------> SPI1_NSS
PA5 ------> SPI1_SCK
PA6 ------> SPI1_MISO
PB5 ------> SPI1_MOSI
*/
GPIO_InitStruct.Pin = GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6;
GPIO_InitStruct.Pin = GPIO_PIN_5|GPIO_PIN_6;
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
@ -261,12 +260,11 @@ void HAL_SPI_MspDeInit(SPI_HandleTypeDef* spiHandle)
__HAL_RCC_SPI1_CLK_DISABLE();
/**SPI1 GPIO Configuration
PA4 ------> SPI1_NSS
PA5 ------> SPI1_SCK
PA6 ------> SPI1_MISO
PB5 ------> SPI1_MOSI
*/
HAL_GPIO_DeInit(GPIOA, GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6);
HAL_GPIO_DeInit(GPIOA, GPIO_PIN_5|GPIO_PIN_6);
HAL_GPIO_DeInit(GPIOB, GPIO_PIN_5);

2
Core/Src/usart.c

@ -40,7 +40,7 @@ void MX_USART1_UART_Init(void)
/* USER CODE END USART1_Init 1 */
huart1.Instance = USART1;
huart1.Init.BaudRate = 921600;
huart1.Init.BaudRate = 460800;
huart1.Init.WordLength = UART_WORDLENGTH_8B;
huart1.Init.StopBits = UART_STOPBITS_1;
huart1.Init.Parity = UART_PARITY_NONE;

2
iflytop_xsync

@ -1 +1 @@
Subproject commit eb4ecc5d11b62c90e6164c663132dcccb8e9ed1f
Subproject commit 280a6b62027ac3a0c8ee59e675b9c35425a85fbe

18
usrc/base_service/fpga_if.c

@ -19,8 +19,15 @@ void fpga_if_init() { //
* 使线
*/
fpga_if.spi2 = &hspi2;
xs_gpio_init_as_output(&spi2_cs, PB9, kxs_gpio_nopull, false, true);
/**
* @brief
*
* CPOL:1
* CPHA:1
* LSB-FIRST
*/
fpga_if.spi2 = &hspi1;
xs_gpio_init_as_output(&spi2_cs, PA4, kxs_gpio_pullup, false, true);
HAL_SPI_Receive(fpga_if.spi2, rxbuf, 1, 1000);
// fpga_if.spi2 = &hspi1;
@ -38,7 +45,7 @@ void fpga_if_init() { //
xs_gpio_init_as_output(&fpga_if.reset_pin_io, fpga_if.reset_pin, kxs_gpio_pullup, false, false);
xs_gpio_write(&fpga_if.reset_pin_io, false);
xs_delay_us(1);
xs_delay_ms(10);
xs_gpio_write(&fpga_if.reset_pin_io, true);
#endif
}
@ -98,11 +105,6 @@ static void _fpga_if_spi_read_data(SPI_HandleTypeDef *hspi, uint32_t add, uint32
*rxdata = rxbuf[2] | (rxbuf[3] << 8) | (rxbuf[4] << 16) | (rxbuf[5] << 24);
}
void fpga_if_spi_write_data_01(uint32_t add, uint32_t txdata, uint32_t *rxdata) {
_fpga_if_spi_write_data(fpga_if.spi1, add, txdata, rxdata);
_fpga_if_spi_read_data(fpga_if.spi1, add, rxdata);
}
void fpga_if_spi_read_data_01(uint32_t add, uint32_t *rxdata) { _fpga_if_spi_read_data(fpga_if.spi1, add, rxdata); }
void fpga_if_spi_write_data_02(uint32_t add, uint32_t txdata, uint32_t *rxdata) {
xSemaphoreTakeRecursive(m_spilock, portMAX_DELAY);
xs_gpio_write(&spi2_cs, false);

18
usrc/base_service/fpga_if.h

@ -10,7 +10,6 @@ typedef struct {
/**
* @brief SPI
*/
SPI_HandleTypeDef *spi1;
SPI_HandleTypeDef *spi2;
/**
@ -46,21 +45,8 @@ void fpga_if_init();
* @param timecode1
*/
void fpga_if_get_timecode(uint32_t *timecode0, uint32_t *timecode1);
/**
* @brief SPI寄存器写指令_01 FPGA寄存器读写SPI
*
* @param add
* @param txdata
* @param rxdata
*/
void fpga_if_spi_write_data_01(uint32_t add, uint32_t txdata, uint32_t *rxdata);
/**
* @brief SPI寄存器读指令 FPGA寄存器读写SPI
*
* @param add
* @param rxdata
*/
void fpga_if_spi_read_data_01(uint32_t add, uint32_t *rxdata);
/**
* @brief SPI寄存器写指令 FPGA备用SPI

37
usrc/main.cpp

@ -37,7 +37,21 @@ void StartDefaultTask(void const* argument) { umain(); }
xs_gpio_t m_debug_led;
xs_gpio_t m_factory_reset_key;
xs_gpio_t m_power_led;
xs_gpio_t m_power_led0;
xs_gpio_t m_power_led1;
xs_gpio_t m_power_led2;
void power_light_init() {
xs_gpio_init_as_output(&m_power_led0, PB6, kxs_gpio_nopull, false, true); // r
xs_gpio_init_as_output(&m_power_led1, PB7, kxs_gpio_nopull, false, true); // g
xs_gpio_init_as_output(&m_power_led2, PB8, kxs_gpio_nopull, false, true); // b
}
void power_light_ctrl(bool state) {
xs_gpio_write(&m_power_led0, 0);
xs_gpio_write(&m_power_led1, state);
xs_gpio_write(&m_power_led2, state);
}
extern "C" {
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) { ReportGeneratorService_irq_trigger(GPIO_Pin); }
}
@ -49,9 +63,9 @@ void debug_light_ctrl() {
light_status = !light_status;
xs_gpio_write(&m_debug_led, light_status);
if (network_service_network_is_ready()) {
xs_gpio_write(&m_power_led, 1);
power_light_ctrl(1);
} else {
xs_gpio_write(&m_power_led, light_status);
power_light_ctrl(light_status);
}
lastcall = xs_get_ticket();
}
@ -77,9 +91,9 @@ void factory_reset_key_detect() {
// m_power_led
while (xs_gpio_read(&m_factory_reset_key)) {
xs_gpio_write(&m_power_led, false);
power_light_ctrl(false);
osDelay(1000);
xs_gpio_write(&m_power_led, true);
power_light_ctrl(true);
osDelay(1000);
}
ZLOGI(TAG, "system reset");
@ -90,8 +104,12 @@ void factory_reset_key_detect() {
}
}
// PB6
// PB7
// PB8
void umain() {
XS_LOGI(TAG, "%s:%d", PC_PROJECT_NAME, PC_VERSION);
XS_LOGI(TAG, "%s:%d-%d-%d", PC_PROJECT_NAME, VERSION_MAIN, VERSION_SUB, VERSION_FIX);
XS_LOGI(TAG, "sn: %02d%02d%04d", xs_device_info_get()->year, xs_device_info_get()->weak, xs_device_info_get()->index);
// XS_LOGI(TAG, "sn: %x:%x:%x", sn.sn0, sn.sn1, sn.sn2);
@ -102,7 +120,8 @@ void umain() {
* 3.
*/
xs_gpio_init_as_output(&m_debug_led, PC_DEBUG_LIGHT_GPIO, kxs_gpio_nopull, false, false);
xs_gpio_init_as_output(&m_power_led, POWER_LED_PIN, kxs_gpio_nopull, false, true);
// xs_gpio_init_as_output(&m_power_led, POWER_LED_PIN, kxs_gpio_nopull, false, true);
power_light_init();
xs_gpio_init_as_input(&m_factory_reset_key, FACTORY_RESET_KEY, kxs_gpio_pullup, kxs_gpio_no_irq, true);
// m_power_led
/**
@ -147,6 +166,10 @@ void umain() {
network_service_schedule();
HAL_IWDG_Refresh(&hiwdg);
// uint32_t val;
// fpga_if_spi_read_data_02(0x0020, &val);
// ZLOGI(TAG, "fpga_if_spi_read_data_02 %x", val);
// if (xs_has_passedms(0) >= * 60 * 60 * 1000) {
// 限制客户使用时长
// reset_pin_io

5
usrc/project_configs.h

@ -1,7 +1,10 @@
#pragma once
#define VERSION(main, sub, fix) (main << 16 | sub << 8 | fix << 0)
#define PC_VERSION VERSION(5, 0, 0)
#define PC_VERSION VERSION(6, 0, 0)
#define VERSION_MAIN (PC_VERSION >> 16)
#define VERSION_SUB ((PC_VERSION >> 8) & 0xff)
#define VERSION_FIX (PC_VERSION & 0xff)
#define PC_MANUFACTURER0 ('i' | 'f' << 8 | 'l' << 16 | 'y' << 24)
#define PC_MANUFACTURER1 ('t' | 'o' << 8 | 'p' << 16 | '\0' << 24)

62
xsync_stm32.ioc

@ -135,39 +135,38 @@ Mcu.Name=STM32F407V(E-G)Tx
Mcu.Package=LQFP100
Mcu.Pin0=PH0-OSC_IN
Mcu.Pin1=PH1-OSC_OUT
Mcu.Pin10=PA7
Mcu.Pin11=PC4
Mcu.Pin12=PC5
Mcu.Pin13=PB10
Mcu.Pin14=PB11
Mcu.Pin15=PB12
Mcu.Pin16=PB13
Mcu.Pin17=PA9
Mcu.Pin18=PA10
Mcu.Pin19=PA13
Mcu.Pin10=PC4
Mcu.Pin11=PC5
Mcu.Pin12=PB10
Mcu.Pin13=PB11
Mcu.Pin14=PB12
Mcu.Pin15=PB13
Mcu.Pin16=PA9
Mcu.Pin17=PA10
Mcu.Pin18=PA13
Mcu.Pin19=PA14
Mcu.Pin2=PC1
Mcu.Pin20=PA14
Mcu.Pin21=PD3
Mcu.Pin22=PB3
Mcu.Pin23=PB5
Mcu.Pin24=VP_CRC_VS_CRC
Mcu.Pin25=VP_FREERTOS_VS_CMSIS_V1
Mcu.Pin26=VP_IWDG_VS_IWDG
Mcu.Pin27=VP_LWIP_VS_Enabled
Mcu.Pin28=VP_RNG_VS_RNG
Mcu.Pin29=VP_SYS_VS_tim11
Mcu.Pin20=PD3
Mcu.Pin21=PB3
Mcu.Pin22=PB5
Mcu.Pin23=VP_CRC_VS_CRC
Mcu.Pin24=VP_FREERTOS_VS_CMSIS_V1
Mcu.Pin25=VP_IWDG_VS_IWDG
Mcu.Pin26=VP_LWIP_VS_Enabled
Mcu.Pin27=VP_RNG_VS_RNG
Mcu.Pin28=VP_SYS_VS_tim11
Mcu.Pin29=VP_TIM1_VS_ClockSourceINT
Mcu.Pin3=PC2
Mcu.Pin30=VP_TIM1_VS_ClockSourceINT
Mcu.Pin31=VP_TIM3_VS_ClockSourceINT
Mcu.Pin32=VP_TIM6_VS_ClockSourceINT
Mcu.Pin33=VP_TIM7_VS_ClockSourceINT
Mcu.Pin30=VP_TIM3_VS_ClockSourceINT
Mcu.Pin31=VP_TIM6_VS_ClockSourceINT
Mcu.Pin32=VP_TIM7_VS_ClockSourceINT
Mcu.Pin4=PC3
Mcu.Pin5=PA1
Mcu.Pin6=PA2
Mcu.Pin7=PA4
Mcu.Pin8=PA5
Mcu.Pin9=PA6
Mcu.PinsNb=34
Mcu.Pin7=PA5
Mcu.Pin8=PA6
Mcu.Pin9=PA7
Mcu.PinsNb=33
Mcu.ThirdPartyNb=0
Mcu.UserConstants=
Mcu.UserName=STM32F407VETx
@ -210,8 +209,6 @@ PA14.Mode=Trace_Asynchronous_SW
PA14.Signal=SYS_JTCK-SWCLK
PA2.Mode=RMII
PA2.Signal=ETH_MDIO
PA4.Mode=NSS_Signal_Hard_Output
PA4.Signal=SPI1_NSS
PA5.Mode=Full_Duplex_Master
PA5.Signal=SPI1_SCK
PA6.Mode=Full_Duplex_Master
@ -282,7 +279,7 @@ ProjectManager.ToolChainLocation=
ProjectManager.UAScriptAfterPath=
ProjectManager.UAScriptBeforePath=
ProjectManager.UnderRoot=true
ProjectManager.functionlistsort=1-SystemClock_Config-RCC-false-HAL-false,2-MX_GPIO_Init-GPIO-false-HAL-true,3-MX_DMA_Init-DMA-false-HAL-true,4-MX_USART1_UART_Init-USART1-false-HAL-true,5-MX_TIM3_Init-TIM3-false-HAL-true,6-MX_CRC_Init-CRC-false-HAL-true,7-MX_RNG_Init-RNG-false-HAL-true,8-MX_TIM7_Init-TIM7-false-HAL-true,9-MX_TIM6_Init-TIM6-false-HAL-true,10-MX_TIM1_Init-TIM1-false-HAL-true,11-MX_LWIP_Init-LWIP-false-HAL-false,12-MX_SPI1_Init-SPI1-false-HAL-true,13-MX_SPI2_Init-SPI2-false-HAL-true
ProjectManager.functionlistsort=1-SystemClock_Config-RCC-false-HAL-false,2-MX_GPIO_Init-GPIO-false-HAL-true,3-MX_DMA_Init-DMA-false-HAL-true,4-MX_USART1_UART_Init-USART1-false-HAL-true,5-MX_TIM3_Init-TIM3-false-HAL-true,6-MX_CRC_Init-CRC-false-HAL-true,7-MX_RNG_Init-RNG-false-HAL-true,8-MX_TIM7_Init-TIM7-false-HAL-true,9-MX_TIM6_Init-TIM6-false-HAL-true,10-MX_TIM1_Init-TIM1-false-HAL-true,11-MX_LWIP_Init-LWIP-false-HAL-false,12-MX_SPI1_Init-SPI1-false-HAL-true,13-MX_SPI2_Init-SPI2-false-HAL-true,14-MX_IWDG_Init-IWDG-false-HAL-true
RCC.48MHZClocksFreq_Value=48000000
RCC.AHBFreq_Value=144000000
RCC.APB1CLKDivider=RCC_HCLK_DIV4
@ -329,9 +326,8 @@ SPI1.CLKPolarity=SPI_POLARITY_HIGH
SPI1.CalculateBaudRate=562.5 KBits/s
SPI1.Direction=SPI_DIRECTION_2LINES
SPI1.FirstBit=SPI_FIRSTBIT_LSB
SPI1.IPParameters=VirtualType,Mode,Direction,CalculateBaudRate,VirtualNSS,BaudRatePrescaler,FirstBit,CLKPolarity,CLKPhase
SPI1.IPParameters=VirtualType,Mode,Direction,CalculateBaudRate,BaudRatePrescaler,FirstBit,CLKPolarity,CLKPhase
SPI1.Mode=SPI_MODE_MASTER
SPI1.VirtualNSS=VM_NSSHARD
SPI1.VirtualType=VM_MASTER
SPI2.BaudRatePrescaler=SPI_BAUDRATEPRESCALER_64
SPI2.CLKPhase=SPI_PHASE_2EDGE

Loading…
Cancel
Save