PER Firmware
Loading...
Searching...
No Matches
main.c File Reference

"DAQ" node source code More...

#include "main.h"
#include "can_library/generated/MCAN.h"
#include "can_library/generated/VCAN.h"
#include "common/rtos/rtos.h"
#include "common/heartbeat/heartbeat.h"
#include "common/phal_F4/can/can.h"
#include "common/phal_F4/gpio/gpio.h"
#include "common/phal_F4/rcc/rcc.h"
#include "common/phal_F4/rtc/rtc.h"
#include "common/phal_F4/spi/spi.h"
#include "common/utils/countof.h"
#include "common/watchdog/watchdog.h"
#include "ethernet.h"
#include "rtc_sync.h"
#include "spmc.h"
Include dependency graph for main.c:

Macros

#define TargetCoreClockrateHz   168'000'000
 

Functions

 RTOS_DEFINE_MUTEX (spi1_lock)
 
static void configure_interrupts (void)
 
void shutdown (void)
 
 RTOS_DEFINE_TASK (sd_card_periodic, SD_FSM_PERIOD_MS, TASK_PRIORITY_HIGH, STACK_4096)
 
 RTOS_DEFINE_TASK (ethernet_periodic, 0, TASK_PRIORITY_NORMAL, STACK_4096)
 
 RTOS_DEFINE_TASK (RTC_sync, 0, TASK_PRIORITY_LOW, STACK_512)
 
 DEFINE_WATCHDOG_TASK ()
 
 DEFINE_HEARTBEAT_TASK (nullptr)
 
int main ()
 
void power_loss_callback (void)
 
void EXTI15_10_IRQHandler ()
 
void HardFault_Handler ()
 

Variables

GPIOInitConfig_t gpio_config []
 
uint32_t APB1ClockRateHz
 
uint32_t APB2ClockRateHz
 
uint32_t AHBClockRateHz
 
uint32_t PLLClockRateHz
 
ClockRateConfig_t clock_config
 
dma_init_t spi_rx_dma_config = SPI1_RXDMA_CONT_CONFIG(NULL, 2)
 
dma_init_t spi_tx_dma_config = SPI1_TXDMA_CONT_CONFIG(NULL, 1)
 
SPI_InitConfig_t eth_spi_config
 
volatile TaskHandle_t sd_task_handle = nullptr
 

Detailed Description

"DAQ" node source code

Author
Irving Wang (irvin.nosp@m.gw@p.nosp@m.urdue.nosp@m..edu)
Luke Oxley (lcoxl.nosp@m.ey@p.nosp@m.urdue.nosp@m..edu)

Macro Definition Documentation

◆ TargetCoreClockrateHz

#define TargetCoreClockrateHz   168'000'000

Function Documentation

◆ configure_interrupts()

static void configure_interrupts ( void )
static
Here is the caller graph for this function:

◆ DEFINE_HEARTBEAT_TASK()

DEFINE_HEARTBEAT_TASK ( nullptr )

◆ DEFINE_WATCHDOG_TASK()

DEFINE_WATCHDOG_TASK ( )

◆ EXTI15_10_IRQHandler()

void EXTI15_10_IRQHandler ( void )

◆ HardFault_Handler()

void HardFault_Handler ( void )

◆ main()

int main ( void )
Here is the call graph for this function:

◆ power_loss_callback()

void power_loss_callback ( void )
Here is the call graph for this function:

◆ RTOS_DEFINE_MUTEX()

RTOS_DEFINE_MUTEX ( spi1_lock )

◆ RTOS_DEFINE_TASK() [1/3]

RTOS_DEFINE_TASK ( ethernet_periodic ,
0 ,
TASK_PRIORITY_NORMAL ,
STACK_4096  )

◆ RTOS_DEFINE_TASK() [2/3]

RTOS_DEFINE_TASK ( RTC_sync ,
0 ,
TASK_PRIORITY_LOW ,
STACK_512  )

◆ RTOS_DEFINE_TASK() [3/3]

◆ shutdown()

void shutdown ( void )

Variable Documentation

◆ AHBClockRateHz

uint32_t AHBClockRateHz
extern

◆ APB1ClockRateHz

uint32_t APB1ClockRateHz
extern

◆ APB2ClockRateHz

uint32_t APB2ClockRateHz
extern

◆ clock_config

ClockRateConfig_t clock_config
Initial value:
= {
.clock_source = CLOCK_SOURCE_HSE,
.use_pll = true,
.pll_src = PLL_SRC_HSE,
.vco_output_rate_target_hz = 336'000'000,
.system_clock_target_hz = TargetCoreClockrateHz,
.ahb_clock_target_hz = (TargetCoreClockrateHz / 1),
.apb1_clock_target_hz = (TargetCoreClockrateHz / 4),
.apb2_clock_target_hz = (TargetCoreClockrateHz / 4),
}
#define TargetCoreClockrateHz
Definition main.c:71
@ CLOCK_SOURCE_HSE
Definition rcc.h:65
@ PLL_SRC_HSE
Definition rcc.h:43

◆ eth_spi_config

SPI_InitConfig_t eth_spi_config
Initial value:
= {
.data_len = 8,
.nss_sw = false,
.nss_gpio_port = ETH_CS_PORT,
.nss_gpio_pin = ETH_CS_PIN,
.rx_dma_cfg = &spi_rx_dma_config,
.tx_dma_cfg = &spi_tx_dma_config,
.periph = SPI1,
}
dma_init_t spi_rx_dma_config
Definition main.c:84
dma_init_t spi_tx_dma_config
Definition main.c:85
#define ETH_CS_PORT
Definition main.h:36
#define ETH_CS_PIN
Definition main.h:37
DMA_TypeDef * periph
Definition dma.h:35

◆ gpio_config

GPIOInitConfig_t gpio_config[]

◆ PLLClockRateHz

uint32_t PLLClockRateHz
extern

◆ sd_task_handle

volatile TaskHandle_t sd_task_handle = nullptr

◆ spi_rx_dma_config

dma_init_t spi_rx_dma_config = SPI1_RXDMA_CONT_CONFIG(NULL, 2)

◆ spi_tx_dma_config

dma_init_t spi_tx_dma_config = SPI1_TXDMA_CONT_CONFIG(NULL, 1)