Browse Source

update

master
zhaohe 1 year ago
parent
commit
779bd8d709
  1. 2
      .cproject
  2. 4
      .settings/language.settings.xml
  3. 1
      Core/Inc/stm32f4xx_it.h
  4. 3
      Core/Src/dma.c
  5. 32
      Core/Src/gpio.c
  6. 15
      Core/Src/stm32f4xx_it.c
  7. 46
      Core/Src/usart.c
  8. 178
      camera_light_src_timing_controller_stm32.ioc
  9. 28
      usrc/service/extern_if_service.c

2
.cproject

@ -40,7 +40,7 @@
</tool>
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.782799112" name="MCU GCC Compiler" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler">
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.debuglevel.1115926827" name="Debug level" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.debuglevel" useByScannerDiscovery="false" value="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.debuglevel.value.g3" valueType="enumerated"/>
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.optimization.level.390305872" name="Optimization level" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.optimization.level" useByScannerDiscovery="false" value="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.optimization.level.value.ofast" valueType="enumerated"/>
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.optimization.level.390305872" name="Optimization level" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.optimization.level" useByScannerDiscovery="false" value="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.optimization.level.value.o0" valueType="enumerated"/>
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.definedsymbols.1156405800" name="Define symbols (-D)" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.definedsymbols" useByScannerDiscovery="false" valueType="definedSymbols">
<listOptionValue builtIn="false" value="DEBUG"/>
<listOptionValue builtIn="false" value="USE_HAL_DRIVER"/>

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="201303414476292090" 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="1899454659046248567" 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="148507298767213675" 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="1846658543337170152" 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>

1
Core/Inc/stm32f4xx_it.h

@ -54,7 +54,6 @@ void UsageFault_Handler(void);
void DebugMon_Handler(void);
void DMA1_Stream1_IRQHandler(void);
void DMA1_Stream3_IRQHandler(void);
void DMA1_Stream4_IRQHandler(void);
void TIM1_TRG_COM_TIM11_IRQHandler(void);
void SPI1_IRQHandler(void);
void USART3_IRQHandler(void);

3
Core/Src/dma.c

@ -50,9 +50,6 @@ void MX_DMA_Init(void)
/* DMA1_Stream3_IRQn interrupt configuration */
HAL_NVIC_SetPriority(DMA1_Stream3_IRQn, 5, 0);
HAL_NVIC_EnableIRQ(DMA1_Stream3_IRQn);
/* DMA1_Stream4_IRQn interrupt configuration */
HAL_NVIC_SetPriority(DMA1_Stream4_IRQn, 5, 0);
HAL_NVIC_EnableIRQ(DMA1_Stream4_IRQn);
/* DMA2_Stream0_IRQn interrupt configuration */
HAL_NVIC_SetPriority(DMA2_Stream0_IRQn, 5, 0);
HAL_NVIC_EnableIRQ(DMA2_Stream0_IRQn);

32
Core/Src/gpio.c

@ -71,10 +71,10 @@ void MX_GPIO_Init(void)
/*Configure GPIO pins : PC13 PC14 PC15 PC0
PC2 PC3 PC8 PC9
PC10 PC11 PC12 */
PC12 */
GPIO_InitStruct.Pin = GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_15|GPIO_PIN_0
|GPIO_PIN_2|GPIO_PIN_3|GPIO_PIN_8|GPIO_PIN_9
|GPIO_PIN_10|GPIO_PIN_11|GPIO_PIN_12;
|GPIO_PIN_12;
GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
GPIO_InitStruct.Pull = GPIO_NOPULL;
HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
@ -87,24 +87,24 @@ void MX_GPIO_Init(void)
GPIO_InitStruct.Pull = GPIO_NOPULL;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
/*Configure GPIO pins : PB0 PB1 PB2 PB14
PB15 PB3 PB4 PB6
PB7 PB8 PB9 */
GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_14
|GPIO_PIN_15|GPIO_PIN_3|GPIO_PIN_4|GPIO_PIN_6
|GPIO_PIN_7|GPIO_PIN_8|GPIO_PIN_9;
/*Configure GPIO pins : PB0 PB1 PB2 PB10
PB14 PB15 PB3 PB4
PB6 PB7 PB8 PB9 */
GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_10
|GPIO_PIN_14|GPIO_PIN_15|GPIO_PIN_3|GPIO_PIN_4
|GPIO_PIN_6|GPIO_PIN_7|GPIO_PIN_8|GPIO_PIN_9;
GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
GPIO_InitStruct.Pull = GPIO_NOPULL;
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
/*Configure GPIO pins : PD8 PD10 PD11 PD12
PD13 PD14 PD15 PD0
PD1 PD2 PD4 PD5
PD6 PD7 */
GPIO_InitStruct.Pin = GPIO_PIN_8|GPIO_PIN_10|GPIO_PIN_11|GPIO_PIN_12
|GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_15|GPIO_PIN_0
|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_4|GPIO_PIN_5
|GPIO_PIN_6|GPIO_PIN_7;
/*Configure GPIO pins : PD8 PD9 PD10 PD11
PD12 PD13 PD14 PD15
PD0 PD1 PD2 PD4
PD5 PD6 PD7 */
GPIO_InitStruct.Pin = GPIO_PIN_8|GPIO_PIN_9|GPIO_PIN_10|GPIO_PIN_11
|GPIO_PIN_12|GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_15
|GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_4
|GPIO_PIN_5|GPIO_PIN_6|GPIO_PIN_7;
GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
GPIO_InitStruct.Pull = GPIO_NOPULL;
HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);

15
Core/Src/stm32f4xx_it.c

@ -64,6 +64,7 @@ extern TIM_HandleTypeDef htim6;
extern TIM_HandleTypeDef htim7;
extern DMA_HandleTypeDef hdma_usart1_rx;
extern DMA_HandleTypeDef hdma_usart3_rx;
extern DMA_HandleTypeDef hdma_usart3_tx;
extern DMA_HandleTypeDef hdma_usart6_rx;
extern DMA_HandleTypeDef hdma_usart6_tx;
extern UART_HandleTypeDef huart3;
@ -193,25 +194,13 @@ void DMA1_Stream3_IRQHandler(void)
/* USER CODE BEGIN DMA1_Stream3_IRQn 0 */
/* USER CODE END DMA1_Stream3_IRQn 0 */
HAL_DMA_IRQHandler(&hdma_usart3_tx);
/* USER CODE BEGIN DMA1_Stream3_IRQn 1 */
/* USER CODE END DMA1_Stream3_IRQn 1 */
}
/**
* @brief This function handles DMA1 stream4 global interrupt.
*/
void DMA1_Stream4_IRQHandler(void)
{
/* USER CODE BEGIN DMA1_Stream4_IRQn 0 */
/* USER CODE END DMA1_Stream4_IRQn 0 */
/* USER CODE BEGIN DMA1_Stream4_IRQn 1 */
/* USER CODE END DMA1_Stream4_IRQn 1 */
}
/**
* @brief This function handles TIM1 trigger and commutation interrupts and TIM11 global interrupt.
*/
void TIM1_TRG_COM_TIM11_IRQHandler(void)

46
Core/Src/usart.c

@ -29,6 +29,7 @@ UART_HandleTypeDef huart3;
UART_HandleTypeDef huart6;
DMA_HandleTypeDef hdma_usart1_rx;
DMA_HandleTypeDef hdma_usart3_rx;
DMA_HandleTypeDef hdma_usart3_tx;
DMA_HandleTypeDef hdma_usart6_rx;
DMA_HandleTypeDef hdma_usart6_tx;
@ -175,25 +176,17 @@ void HAL_UART_MspInit(UART_HandleTypeDef* uartHandle)
/* USART3 clock enable */
__HAL_RCC_USART3_CLK_ENABLE();
__HAL_RCC_GPIOB_CLK_ENABLE();
__HAL_RCC_GPIOD_CLK_ENABLE();
__HAL_RCC_GPIOC_CLK_ENABLE();
/**USART3 GPIO Configuration
PB10 ------> USART3_TX
PD9 ------> USART3_RX
PC10 ------> USART3_TX
PC11 ------> USART3_RX
*/
GPIO_InitStruct.Pin = GPIO_PIN_10;
GPIO_InitStruct.Pin = GPIO_PIN_10|GPIO_PIN_11;
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
GPIO_InitStruct.Alternate = GPIO_AF7_USART3;
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
GPIO_InitStruct.Pin = GPIO_PIN_9;
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
GPIO_InitStruct.Alternate = GPIO_AF7_USART3;
HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
/* USART3 DMA Init */
/* USART3_RX Init */
@ -214,6 +207,24 @@ void HAL_UART_MspInit(UART_HandleTypeDef* uartHandle)
__HAL_LINKDMA(uartHandle,hdmarx,hdma_usart3_rx);
/* USART3_TX Init */
hdma_usart3_tx.Instance = DMA1_Stream3;
hdma_usart3_tx.Init.Channel = DMA_CHANNEL_4;
hdma_usart3_tx.Init.Direction = DMA_MEMORY_TO_PERIPH;
hdma_usart3_tx.Init.PeriphInc = DMA_PINC_DISABLE;
hdma_usart3_tx.Init.MemInc = DMA_MINC_ENABLE;
hdma_usart3_tx.Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE;
hdma_usart3_tx.Init.MemDataAlignment = DMA_MDATAALIGN_BYTE;
hdma_usart3_tx.Init.Mode = DMA_NORMAL;
hdma_usart3_tx.Init.Priority = DMA_PRIORITY_LOW;
hdma_usart3_tx.Init.FIFOMode = DMA_FIFOMODE_DISABLE;
if (HAL_DMA_Init(&hdma_usart3_tx) != HAL_OK)
{
Error_Handler();
}
__HAL_LINKDMA(uartHandle,hdmatx,hdma_usart3_tx);
/* USART3 interrupt Init */
HAL_NVIC_SetPriority(USART3_IRQn, 5, 0);
HAL_NVIC_EnableIRQ(USART3_IRQn);
@ -316,15 +327,14 @@ void HAL_UART_MspDeInit(UART_HandleTypeDef* uartHandle)
__HAL_RCC_USART3_CLK_DISABLE();
/**USART3 GPIO Configuration
PB10 ------> USART3_TX
PD9 ------> USART3_RX
PC10 ------> USART3_TX
PC11 ------> USART3_RX
*/
HAL_GPIO_DeInit(GPIOB, GPIO_PIN_10);
HAL_GPIO_DeInit(GPIOD, GPIO_PIN_9);
HAL_GPIO_DeInit(GPIOC, GPIO_PIN_10|GPIO_PIN_11);
/* USART3 DMA DeInit */
HAL_DMA_DeInit(uartHandle->hdmarx);
HAL_DMA_DeInit(uartHandle->hdmatx);
/* USART3 interrupt Deinit */
HAL_NVIC_DisableIRQ(USART3_IRQn);

178
camera_light_src_timing_controller_stm32.ioc

@ -3,54 +3,33 @@ CAD.formats=
CAD.pinconfig=
CAD.provider=
Dma.Request0=USART1_RX
Dma.Request1=SPI2_TX
Dma.Request2=SPI2_RX
Dma.Request3=SPI1_RX
Dma.Request4=SPI1_TX
Dma.Request5=USART3_RX
Dma.Request6=USART6_RX
Dma.Request7=USART6_TX
Dma.RequestsNb=8
Dma.SPI1_RX.3.Direction=DMA_PERIPH_TO_MEMORY
Dma.SPI1_RX.3.FIFOMode=DMA_FIFOMODE_DISABLE
Dma.SPI1_RX.3.Instance=DMA2_Stream0
Dma.SPI1_RX.3.MemDataAlignment=DMA_MDATAALIGN_BYTE
Dma.SPI1_RX.3.MemInc=DMA_MINC_ENABLE
Dma.SPI1_RX.3.Mode=DMA_NORMAL
Dma.SPI1_RX.3.PeriphDataAlignment=DMA_PDATAALIGN_BYTE
Dma.SPI1_RX.3.PeriphInc=DMA_PINC_DISABLE
Dma.SPI1_RX.3.Priority=DMA_PRIORITY_LOW
Dma.SPI1_RX.3.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority,FIFOMode
Dma.SPI1_TX.4.Direction=DMA_MEMORY_TO_PERIPH
Dma.SPI1_TX.4.FIFOMode=DMA_FIFOMODE_DISABLE
Dma.SPI1_TX.4.Instance=DMA2_Stream3
Dma.SPI1_TX.4.MemDataAlignment=DMA_MDATAALIGN_BYTE
Dma.SPI1_TX.4.MemInc=DMA_MINC_ENABLE
Dma.SPI1_TX.4.Mode=DMA_NORMAL
Dma.SPI1_TX.4.PeriphDataAlignment=DMA_PDATAALIGN_BYTE
Dma.SPI1_TX.4.PeriphInc=DMA_PINC_DISABLE
Dma.SPI1_TX.4.Priority=DMA_PRIORITY_LOW
Dma.SPI1_TX.4.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority,FIFOMode
Dma.SPI2_RX.2.Direction=DMA_PERIPH_TO_MEMORY
Dma.SPI2_RX.2.FIFOMode=DMA_FIFOMODE_DISABLE
Dma.SPI2_RX.2.Instance=DMA1_Stream3
Dma.SPI2_RX.2.MemDataAlignment=DMA_MDATAALIGN_BYTE
Dma.SPI2_RX.2.MemInc=DMA_MINC_ENABLE
Dma.SPI2_RX.2.Mode=DMA_NORMAL
Dma.SPI2_RX.2.PeriphDataAlignment=DMA_PDATAALIGN_BYTE
Dma.SPI2_RX.2.PeriphInc=DMA_PINC_DISABLE
Dma.SPI2_RX.2.Priority=DMA_PRIORITY_LOW
Dma.SPI2_RX.2.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority,FIFOMode
Dma.SPI2_TX.1.Direction=DMA_MEMORY_TO_PERIPH
Dma.SPI2_TX.1.FIFOMode=DMA_FIFOMODE_DISABLE
Dma.SPI2_TX.1.Instance=DMA1_Stream4
Dma.SPI2_TX.1.MemDataAlignment=DMA_MDATAALIGN_BYTE
Dma.SPI2_TX.1.MemInc=DMA_MINC_ENABLE
Dma.SPI2_TX.1.Mode=DMA_NORMAL
Dma.SPI2_TX.1.PeriphDataAlignment=DMA_PDATAALIGN_BYTE
Dma.SPI2_TX.1.PeriphInc=DMA_PINC_DISABLE
Dma.SPI2_TX.1.Priority=DMA_PRIORITY_LOW
Dma.SPI2_TX.1.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority,FIFOMode
Dma.Request1=SPI1_RX
Dma.Request2=SPI1_TX
Dma.Request3=USART3_RX
Dma.Request4=USART6_RX
Dma.Request5=USART6_TX
Dma.Request6=USART3_TX
Dma.RequestsNb=7
Dma.SPI1_RX.1.Direction=DMA_PERIPH_TO_MEMORY
Dma.SPI1_RX.1.FIFOMode=DMA_FIFOMODE_DISABLE
Dma.SPI1_RX.1.Instance=DMA2_Stream0
Dma.SPI1_RX.1.MemDataAlignment=DMA_MDATAALIGN_BYTE
Dma.SPI1_RX.1.MemInc=DMA_MINC_ENABLE
Dma.SPI1_RX.1.Mode=DMA_NORMAL
Dma.SPI1_RX.1.PeriphDataAlignment=DMA_PDATAALIGN_BYTE
Dma.SPI1_RX.1.PeriphInc=DMA_PINC_DISABLE
Dma.SPI1_RX.1.Priority=DMA_PRIORITY_LOW
Dma.SPI1_RX.1.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority,FIFOMode
Dma.SPI1_TX.2.Direction=DMA_MEMORY_TO_PERIPH
Dma.SPI1_TX.2.FIFOMode=DMA_FIFOMODE_DISABLE
Dma.SPI1_TX.2.Instance=DMA2_Stream3
Dma.SPI1_TX.2.MemDataAlignment=DMA_MDATAALIGN_BYTE
Dma.SPI1_TX.2.MemInc=DMA_MINC_ENABLE
Dma.SPI1_TX.2.Mode=DMA_NORMAL
Dma.SPI1_TX.2.PeriphDataAlignment=DMA_PDATAALIGN_BYTE
Dma.SPI1_TX.2.PeriphInc=DMA_PINC_DISABLE
Dma.SPI1_TX.2.Priority=DMA_PRIORITY_LOW
Dma.SPI1_TX.2.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority,FIFOMode
Dma.USART1_RX.0.Direction=DMA_PERIPH_TO_MEMORY
Dma.USART1_RX.0.FIFOMode=DMA_FIFOMODE_DISABLE
Dma.USART1_RX.0.Instance=DMA2_Stream2
@ -61,36 +40,46 @@ Dma.USART1_RX.0.PeriphDataAlignment=DMA_PDATAALIGN_BYTE
Dma.USART1_RX.0.PeriphInc=DMA_PINC_DISABLE
Dma.USART1_RX.0.Priority=DMA_PRIORITY_LOW
Dma.USART1_RX.0.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority,FIFOMode
Dma.USART3_RX.5.Direction=DMA_PERIPH_TO_MEMORY
Dma.USART3_RX.5.FIFOMode=DMA_FIFOMODE_DISABLE
Dma.USART3_RX.5.Instance=DMA1_Stream1
Dma.USART3_RX.5.MemDataAlignment=DMA_MDATAALIGN_BYTE
Dma.USART3_RX.5.MemInc=DMA_MINC_ENABLE
Dma.USART3_RX.5.Mode=DMA_NORMAL
Dma.USART3_RX.5.PeriphDataAlignment=DMA_PDATAALIGN_BYTE
Dma.USART3_RX.5.PeriphInc=DMA_PINC_DISABLE
Dma.USART3_RX.5.Priority=DMA_PRIORITY_LOW
Dma.USART3_RX.5.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority,FIFOMode
Dma.USART6_RX.6.Direction=DMA_PERIPH_TO_MEMORY
Dma.USART6_RX.6.FIFOMode=DMA_FIFOMODE_DISABLE
Dma.USART6_RX.6.Instance=DMA2_Stream1
Dma.USART6_RX.6.MemDataAlignment=DMA_MDATAALIGN_BYTE
Dma.USART6_RX.6.MemInc=DMA_MINC_ENABLE
Dma.USART6_RX.6.Mode=DMA_NORMAL
Dma.USART6_RX.6.PeriphDataAlignment=DMA_PDATAALIGN_BYTE
Dma.USART6_RX.6.PeriphInc=DMA_PINC_DISABLE
Dma.USART6_RX.6.Priority=DMA_PRIORITY_LOW
Dma.USART6_RX.6.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority,FIFOMode
Dma.USART6_TX.7.Direction=DMA_MEMORY_TO_PERIPH
Dma.USART6_TX.7.FIFOMode=DMA_FIFOMODE_DISABLE
Dma.USART6_TX.7.Instance=DMA2_Stream6
Dma.USART6_TX.7.MemDataAlignment=DMA_MDATAALIGN_BYTE
Dma.USART6_TX.7.MemInc=DMA_MINC_ENABLE
Dma.USART6_TX.7.Mode=DMA_NORMAL
Dma.USART6_TX.7.PeriphDataAlignment=DMA_PDATAALIGN_BYTE
Dma.USART6_TX.7.PeriphInc=DMA_PINC_DISABLE
Dma.USART6_TX.7.Priority=DMA_PRIORITY_LOW
Dma.USART6_TX.7.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority,FIFOMode
Dma.USART3_RX.3.Direction=DMA_PERIPH_TO_MEMORY
Dma.USART3_RX.3.FIFOMode=DMA_FIFOMODE_DISABLE
Dma.USART3_RX.3.Instance=DMA1_Stream1
Dma.USART3_RX.3.MemDataAlignment=DMA_MDATAALIGN_BYTE
Dma.USART3_RX.3.MemInc=DMA_MINC_ENABLE
Dma.USART3_RX.3.Mode=DMA_NORMAL
Dma.USART3_RX.3.PeriphDataAlignment=DMA_PDATAALIGN_BYTE
Dma.USART3_RX.3.PeriphInc=DMA_PINC_DISABLE
Dma.USART3_RX.3.Priority=DMA_PRIORITY_LOW
Dma.USART3_RX.3.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority,FIFOMode
Dma.USART3_TX.6.Direction=DMA_MEMORY_TO_PERIPH
Dma.USART3_TX.6.FIFOMode=DMA_FIFOMODE_DISABLE
Dma.USART3_TX.6.Instance=DMA1_Stream3
Dma.USART3_TX.6.MemDataAlignment=DMA_MDATAALIGN_BYTE
Dma.USART3_TX.6.MemInc=DMA_MINC_ENABLE
Dma.USART3_TX.6.Mode=DMA_NORMAL
Dma.USART3_TX.6.PeriphDataAlignment=DMA_PDATAALIGN_BYTE
Dma.USART3_TX.6.PeriphInc=DMA_PINC_DISABLE
Dma.USART3_TX.6.Priority=DMA_PRIORITY_LOW
Dma.USART3_TX.6.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority,FIFOMode
Dma.USART6_RX.4.Direction=DMA_PERIPH_TO_MEMORY
Dma.USART6_RX.4.FIFOMode=DMA_FIFOMODE_DISABLE
Dma.USART6_RX.4.Instance=DMA2_Stream1
Dma.USART6_RX.4.MemDataAlignment=DMA_MDATAALIGN_BYTE
Dma.USART6_RX.4.MemInc=DMA_MINC_ENABLE
Dma.USART6_RX.4.Mode=DMA_NORMAL
Dma.USART6_RX.4.PeriphDataAlignment=DMA_PDATAALIGN_BYTE
Dma.USART6_RX.4.PeriphInc=DMA_PINC_DISABLE
Dma.USART6_RX.4.Priority=DMA_PRIORITY_LOW
Dma.USART6_RX.4.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority,FIFOMode
Dma.USART6_TX.5.Direction=DMA_MEMORY_TO_PERIPH
Dma.USART6_TX.5.FIFOMode=DMA_FIFOMODE_DISABLE
Dma.USART6_TX.5.Instance=DMA2_Stream6
Dma.USART6_TX.5.MemDataAlignment=DMA_MDATAALIGN_BYTE
Dma.USART6_TX.5.MemInc=DMA_MINC_ENABLE
Dma.USART6_TX.5.Mode=DMA_NORMAL
Dma.USART6_TX.5.PeriphDataAlignment=DMA_PDATAALIGN_BYTE
Dma.USART6_TX.5.PeriphInc=DMA_PINC_DISABLE
Dma.USART6_TX.5.Priority=DMA_PRIORITY_LOW
Dma.USART6_TX.5.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority,FIFOMode
ETH.IPParameters=MediaInterface,RxBuffLen,RxMode,PHY_Name_RMII,PHY_User_Name,PHY_SR,PHY_SPEED_STATUS,PHY_DUPLEX_STATUS,MACAddr
ETH.MACAddr=00\:80\:E1\:00\:00\:01
ETH.MediaInterface=HAL_ETH_RMII_MODE
@ -159,18 +148,18 @@ Mcu.Package=LQFP100
Mcu.Pin0=PH0-OSC_IN
Mcu.Pin1=PH1-OSC_OUT
Mcu.Pin10=PC5
Mcu.Pin11=PB10
Mcu.Pin12=PB11
Mcu.Pin13=PB12
Mcu.Pin14=PB13
Mcu.Pin15=PD9
Mcu.Pin16=PC6
Mcu.Pin17=PC7
Mcu.Pin18=PA9
Mcu.Pin19=PA10
Mcu.Pin11=PB11
Mcu.Pin12=PB12
Mcu.Pin13=PB13
Mcu.Pin14=PC6
Mcu.Pin15=PC7
Mcu.Pin16=PA9
Mcu.Pin17=PA10
Mcu.Pin18=PA13
Mcu.Pin19=PA14
Mcu.Pin2=PC1
Mcu.Pin20=PA13
Mcu.Pin21=PA14
Mcu.Pin20=PC10
Mcu.Pin21=PC11
Mcu.Pin22=PD3
Mcu.Pin23=PB5
Mcu.Pin24=VP_CRC_VS_CRC
@ -198,7 +187,6 @@ MxDb.Version=DB.6.0.70
NVIC.BusFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false\:false
NVIC.DMA1_Stream1_IRQn=true\:5\:0\:false\:false\:true\:true\:false\:true\:true
NVIC.DMA1_Stream3_IRQn=true\:5\:0\:false\:false\:true\:true\:false\:true\:true
NVIC.DMA1_Stream4_IRQn=true\:5\:0\:false\:false\:true\:true\:false\:true\:true
NVIC.DMA2_Stream0_IRQn=true\:5\:0\:false\:false\:true\:true\:false\:true\:true
NVIC.DMA2_Stream1_IRQn=true\:5\:0\:false\:false\:true\:true\:false\:true\:true
NVIC.DMA2_Stream2_IRQn=true\:5\:0\:false\:false\:true\:true\:false\:true\:true
@ -246,8 +234,6 @@ PA7.Signal=ETH_CRS_DV
PA9.Locked=true
PA9.Mode=Asynchronous
PA9.Signal=USART1_TX
PB10.Mode=Asynchronous
PB10.Signal=USART3_TX
PB11.Mode=RMII
PB11.Signal=ETH_TX_EN
PB12.Mode=RMII
@ -258,6 +244,12 @@ PB5.Mode=Full_Duplex_Master
PB5.Signal=SPI1_MOSI
PC1.Mode=RMII
PC1.Signal=ETH_MDC
PC10.Locked=true
PC10.Mode=Asynchronous
PC10.Signal=USART3_TX
PC11.Locked=true
PC11.Mode=Asynchronous
PC11.Signal=USART3_RX
PC4.Mode=RMII
PC4.Signal=ETH_RXD0
PC5.Mode=RMII
@ -268,8 +260,6 @@ PC7.Mode=Asynchronous
PC7.Signal=USART6_RX
PD3.Locked=true
PD3.Signal=GPIO_Output
PD9.Mode=Asynchronous
PD9.Signal=USART3_RX
PH0-OSC_IN.Mode=HSE-External-Oscillator
PH0-OSC_IN.Signal=RCC_OSC_IN
PH1-OSC_OUT.Mode=HSE-External-Oscillator

28
usrc/service/extern_if_service.c

@ -10,6 +10,7 @@
typedef struct {
zaf_packet_header_t *rxpacket;
zaf_buf_t receipt;
bool resetBoard;
} extern_if_service_context_t;
static udp_t m_udp_cmd_server; //
@ -60,11 +61,11 @@ static void create_receipt(extern_if_service_context_t *context, uint32_t ecode,
*******************************************************************************/
static bool process_rx_packet(extern_if_service_context_t *cx, uint8_t *data, uint16_t len) {
ZLOGI(TAG, "udp_on_packet %d:", len);
for (int i = 0; i < len; i++) {
printf("%02x ", data[i]);
}
printf("\n");
// ZLOGI(TAG, "process_rx_packet %d:", len);
// for (int i = 0; i < len; i++) {
// printf("%02x ", data[i]);
// }
// printf("\n");
zaf_packet_header_t *rxpacket = (zaf_packet_header_t *)data;
cx->rxpacket = rxpacket;
@ -103,9 +104,11 @@ static bool process_rx_packet(extern_if_service_context_t *cx, uint8_t *data, ui
create_receipt(cx, 0, NULL, 0);
} else if (rxpacket->cmd == kzaf_cmd_factory_reset) {
config_factory_reset();
NVIC_SystemReset();
cx->resetBoard = true;
create_receipt(cx, 0, NULL, 0);
} else if (rxpacket->cmd == kzaf_cmd_reboot) {
NVIC_SystemReset();
cx->resetBoard = true;
create_receipt(cx, 0, NULL, 0);
} else if (rxpacket->cmd == kzaf_cmd_storage_cfg) {
config_flush();
create_receipt(cx, 0, NULL, 0);
@ -116,7 +119,6 @@ static bool process_rx_packet(extern_if_service_context_t *cx, uint8_t *data, ui
/*******************************************************************************
* ¿ò¼Ü *
*******************************************************************************/
/**
* @brief UDPÏûÏ¢½ÓÊÕÏûÏ¢´¦Àí
*
@ -126,21 +128,26 @@ static bool process_rx_packet(extern_if_service_context_t *cx, uint8_t *data, ui
* @param len
*/
static void udp_on_packet(udp_t *server, struct sockaddr_in *client, uint8_t *data, uint16_t len) {
extern_if_service_context_t cx;
extern_if_service_context_t cx = {0};
bool ret = process_rx_packet(&cx, data, len);
if (ret) {
zaf_udp_send_message2(server, client, (const char *)cx.receipt.data, cx.receipt.len);
m_last_rxpacket_client_valid = true;
memcpy(&m_last_rxpacket_client, client, sizeof(struct sockaddr_in));
osDelay(5);
if (cx.resetBoard) NVIC_SystemReset();
}
}
static void uart_on_packet(uint8_t *packet, uint32_t len) {
extern_if_service_context_t cx;
extern_if_service_context_t cx = {0};
bool ret = process_rx_packet(&cx, packet, len);
if (ret) {
HAL_UART_Transmit(&COMMAND_UART, (uint8_t *)cx.receipt.data, cx.receipt.len, 1000);
osDelay(2);
if (cx.resetBoard) NVIC_SystemReset();
}
}
@ -173,7 +180,6 @@ static void uart_receiver_thread(const void *) {
void extern_if_service_init() { //
ZASSERT(zaf_udp_init(&m_udp_cmd_server, "extern_if_udp", ZAF_SERVICE_DEVICE_PORT, udp_on_packet, 1024, NULL));
osThreadDef(cmdUartReceiverThread, uart_receiver_thread, osPriorityNormal, 0, 512);
m_cmd_uart_receiver_thread = osThreadCreate(osThread(cmdUartReceiverThread), NULL);
ZASSERT(m_cmd_uart_receiver_thread != NULL);

Loading…
Cancel
Save