Skip to content
Merged

App #53

Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 3 additions & 5 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,7 @@ jobs:
python-version: '3.11'

- name: Install PlatformIO
run: |
pip install platformio
run: pip install platformio

- name: Build Firmware
run: |
pio run -e esp32dev
- name: Run build script
run: bash scripts/build_esp32dev.sh
38 changes: 35 additions & 3 deletions platformio.ini
Original file line number Diff line number Diff line change
Expand Up @@ -12,17 +12,49 @@
platform = espressif32
board = esp32dev
framework = espidf
build_flags = -Iboards -DBOARD_ESP32DEV
build_flags =
-DBOARD_ESP32DEV
-Isrc/modules/uart/include
-Isrc/modules/fsm/include
-Isrc/modules/display/include
-Isrc/modules/button/include
-Isrc/modules/decode/include
-Isrc/core/include
-Isrc/drivers/include
-Iboards

[env:esp32dev_py]
platform = espressif32
board = esp32dev
framework = espidf
build_flags = -Iboards -DECU_SIM
build_flags =
-DECU_SIM
-DNDEBUG
-Isrc/modules/uart/include
-Isrc/modules/fsm/include
-Isrc/modules/display/include
-Isrc/modules/button/include
-Isrc/modules/decode/include
-Isrc/core/include
-Isrc/drivers/include
-Iboards

[env:esp32_unit_test]
platform = espressif32
board = esp32dev
framework = espidf
test_build_src = true
build_flags = -Iboards -DUNIT_TEST
build_flags =
-DUNIT_TEST
-Isrc/modules/uart/include
-Isrc/modules/fsm/include
-Isrc/modules/display/include
-Isrc/modules/button/include
-Isrc/modules/decode/include
-Isrc/core/include
-Isrc/drivers/include
-Iboards
test_ignore =
unity/*
*/build/*
*/CMakeLists.txt
3 changes: 3 additions & 0 deletions scripts/build_esp32dev.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
#!/usr/bin/env bash

pio run -e esp32dev
72 changes: 72 additions & 0 deletions src/app_init.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
#include "app_init.h"
#include "button_driver.h"
#include "i2c.h"
#include "hd44780.h"
#include "led.h"
#include "uart.h"

#include "assert_handler.h"

#include "fsm_states.h"
#include "fsm_data.h"
#include "uart_data.h"
#include "button_event.h"

#include "uart_task.h"
#include "fsm_task.h"
#include "display_task.h"
#include "decode_task.h"
#include "button_task.h"

#include <freertos/FreeRTOS.h>
#include <freertos/queue.h>

static QueueHandle_t button_isr_queue = NULL;

static QueueHandle_t display_queue = NULL;

static TaskHandle_t uart_task_handle = NULL;
static QueueHandle_t uart_data_queue = NULL;

static QueueHandle_t button_event_queue = NULL;

static i2c_master_bus_handle_t bus_handle = NULL;
static i2c_master_dev_handle_t i2c_handle = NULL;

static void drivers_init(void)
{
button_isr_queue = xQueueCreate(10, sizeof(struct button_isr));
ASSERT(button_isr_queue != NULL);

button_driver_init(button_isr_queue);

i2c_driver_init(&bus_handle, &i2c_handle);

led_driver_init();
uart_driver_init();
hd44780_driver_init(i2c_handle);
}

static void tasks_init(void)
{
display_queue = xQueueCreate(20, sizeof(struct fsm_data));
ASSERT(display_queue != NULL);

uart_data_queue = xQueueCreate(20, sizeof(struct uart_data));
ASSERT(uart_data_queue != NULL);

button_event_queue = xQueueCreate(20, sizeof(button_event_e));
ASSERT(button_event_queue != NULL);

uart_task_handle = uart_task_init(uart_data_queue);
display_task_init(display_queue);
decode_task_init(uart_data_queue, display_queue);
button_task_init(button_isr_queue, button_event_queue);
fsm_task_init(button_event_queue, uart_task_handle);
}

void app_init(void)
{
drivers_init();
tasks_init();
}
6 changes: 6 additions & 0 deletions src/app_init.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
#ifndef APP_INIT_H
#define APP_INIT_H

void app_init(void);

#endif // APP_INIT_H
22 changes: 5 additions & 17 deletions src/main.c
Original file line number Diff line number Diff line change
@@ -1,25 +1,13 @@
#include <freertos/FreeRTOS.h>
#include <freertos/task.h>
#include "drivers/drivers_init.h"
#include "core/log/log.h"
#include "modules/button/button_task.h"
#include "modules/state_machine/state_machine_task.h"
#include "modules/lcd/lcd_task.h"
#include "log.h"
#include "app_init.h"

#define TAG "Main"

#ifndef UNIT_TEST
#if !defined(UNIT_TEST)
void app_main(void)
{
log_init();
LOGI(TAG, "Starting application");

drivers_init();

button_task_init();
state_machine_task_init();
lcd_task_init();

LOGI(TAG, "Startup complete. Free heap: %u bytes", xPortGetFreeHeapSize());
app_init();
}
#endif // UNIT_TEST
#endif // UNIT_TEST
Loading