Added config and SPI driver skeleton.

This commit is contained in:
imi415 2021-03-14 16:24:55 +08:00
parent 952d410fd1
commit 5e6a2dfaae
Signed by: imi415
GPG Key ID: 17F01E106F9F5E0A
9 changed files with 90 additions and 119 deletions

3
.gitmodules vendored
View File

@ -1,3 +1,6 @@
[submodule "lib/LittleVGL"]
path = lib/LittleVGL
url = https://github.com/lvgl/lvgl.git
[submodule "lib/libconfig"]
path = lib/libconfig
url = https://github.com/hyperrealm/libconfig.git

View File

@ -4,6 +4,9 @@ project(SystemAgent)
set(C_SOURCES
"src/main.c"
"src/drivers/user_spi_driver.c"
"src/drivers/user_config_driver.c"
"src/impl/user_lvgl_impl.c"
"src/tasks/user_lvgl_task.c"
)
@ -13,7 +16,6 @@ set(C_INCLUDES
)
set(C_DEFINES
"LV_CONF_INCLUDE_SIMPLE"
"_GNU_SOURCE"
)
@ -22,6 +24,7 @@ set(C_LIBRARIES
"iio"
"mosquitto"
"pthread"
"config"
"lvgl"
)

14
arm-buildroot.cmake Normal file
View File

@ -0,0 +1,14 @@
set(CMAKE_SYSTEM_NAME Linux)
set(CMAKE_SYSTEM_PROCESSOR arm)
set(CMAKE_SYSROOT ${BUILDROOT_SDK_PATH}/arm-buildroot-linux-gnueabihf/sysroot)
set(CMAKE_C_COMPILER ${BUILDROOT_SDK_PATH}/bin/arm-buildroot-linux-gnueabihf-gcc)
set(CMAKE_CXX_COMPILER ${BUILDROOT_SDK_PATH}/bin/arm-buildroot-linux-gnueabihf-g++)
set(CMAKE_TRY_COMPILE_TARGET_TYPE "STATIC_LIBRARY")
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)

View File

@ -0,0 +1,15 @@
#ifndef __USER_CONFIG_DRIVER_H
#define __USER_CONFIG_DRIVER_H
#include <libconfig.h>
typedef enum {
USER_CONFIG_OK,
USER_CONFIG_ERROR
} user_config_ret_t;
typedef struct {
config_t libconfig_cfg;
} user_config_t;
#endif

View File

@ -1,11 +1,15 @@
#ifndef __USER_SPI_DRIVER_H
#define __USER_SPI_DRIVER_H
#include <stdint.h>
typedef enum {
SPI_OK,
SPI_ERROR
USER_SPI_OK,
USER_SPI_ERROR
} user_spi_ret_t;
typedef struct {
int spidev_fd;
} user_spi_driver_t;
} user_spi_driver_t;
#endif

View File

@ -1,121 +1,12 @@
set(LVGL_SOURCES
"LittleVGL/src/lv_font/lv_font_montserrat_14.c"
"LittleVGL/src/lv_font/lv_font_montserrat_12_subpx.c"
"LittleVGL/src/lv_font/lv_font_dejavu_16_persian_hebrew.c"
"LittleVGL/src/lv_font/lv_font_montserrat_42.c"
"LittleVGL/src/lv_font/lv_font_simsun_16_cjk.c"
"LittleVGL/src/lv_font/lv_font_montserrat_16.c"
"LittleVGL/src/lv_font/lv_font_fmt_txt.c"
"LittleVGL/src/lv_font/lv_font_montserrat_28_compressed.c"
"LittleVGL/src/lv_font/lv_font_montserrat_20.c"
"LittleVGL/src/lv_font/lv_font_montserrat_28.c"
"LittleVGL/src/lv_font/lv_font_montserrat_48.c"
"LittleVGL/src/lv_font/lv_font_montserrat_18.c"
"LittleVGL/src/lv_font/lv_font_loader.c"
"LittleVGL/src/lv_font/lv_font_montserrat_44.c"
"LittleVGL/src/lv_font/lv_font_montserrat_46.c"
"LittleVGL/src/lv_font/lv_font_montserrat_38.c"
"LittleVGL/src/lv_font/lv_font_montserrat_34.c"
"LittleVGL/src/lv_font/lv_font_montserrat_26.c"
"LittleVGL/src/lv_font/lv_font_montserrat_36.c"
"LittleVGL/src/lv_font/lv_font_unscii_8.c"
"LittleVGL/src/lv_font/lv_font_montserrat_40.c"
"LittleVGL/src/lv_font/lv_font_montserrat_12.c"
"LittleVGL/src/lv_font/lv_font_montserrat_10.c"
"LittleVGL/src/lv_font/lv_font_montserrat_8.c"
"LittleVGL/src/lv_font/lv_font_montserrat_30.c"
"LittleVGL/src/lv_font/lv_font.c"
"LittleVGL/src/lv_font/lv_font_montserrat_32.c"
"LittleVGL/src/lv_font/lv_font_unscii_16.c"
"LittleVGL/src/lv_font/lv_font_montserrat_24.c"
"LittleVGL/src/lv_font/lv_font_montserrat_22.c"
"LittleVGL/src/lv_draw/lv_img_decoder.c"
"LittleVGL/src/lv_draw/lv_draw_img.c"
"LittleVGL/src/lv_draw/lv_img_cache.c"
"LittleVGL/src/lv_draw/lv_draw_mask.c"
"LittleVGL/src/lv_draw/lv_draw_blend.c"
"LittleVGL/src/lv_draw/lv_draw_label.c"
"LittleVGL/src/lv_draw/lv_draw_arc.c"
"LittleVGL/src/lv_draw/lv_draw_rect.c"
"LittleVGL/src/lv_draw/lv_draw_line.c"
"LittleVGL/src/lv_draw/lv_img_buf.c"
"LittleVGL/src/lv_draw/lv_draw_triangle.c"
"LittleVGL/src/lv_hal/lv_hal_indev.c"
"LittleVGL/src/lv_hal/lv_hal_disp.c"
"LittleVGL/src/lv_hal/lv_hal_tick.c"
"LittleVGL/src/lv_gpu/lv_gpu_nxp_pxp_osa.c"
"LittleVGL/src/lv_gpu/lv_gpu_nxp_vglite.c"
"LittleVGL/src/lv_gpu/lv_gpu_nxp_pxp.c"
"LittleVGL/src/lv_gpu/lv_gpu_stm32_dma2d.c"
"LittleVGL/src/lv_misc/lv_debug.c"
"LittleVGL/src/lv_misc/lv_mem.c"
"LittleVGL/src/lv_misc/lv_log.c"
"LittleVGL/src/lv_misc/lv_async.c"
"LittleVGL/src/lv_misc/lv_math.c"
"LittleVGL/src/lv_misc/lv_gc.c"
"LittleVGL/src/lv_misc/lv_printf.c"
"LittleVGL/src/lv_misc/lv_color.c"
"LittleVGL/src/lv_misc/lv_txt_ap.c"
"LittleVGL/src/lv_misc/lv_task.c"
"LittleVGL/src/lv_misc/lv_anim.c"
"LittleVGL/src/lv_misc/lv_ll.c"
"LittleVGL/src/lv_misc/lv_bidi.c"
"LittleVGL/src/lv_misc/lv_area.c"
"LittleVGL/src/lv_misc/lv_fs.c"
"LittleVGL/src/lv_misc/lv_utils.c"
"LittleVGL/src/lv_misc/lv_txt.c"
"LittleVGL/src/lv_misc/lv_templ.c"
"LittleVGL/src/lv_core/lv_style.c"
"LittleVGL/src/lv_core/lv_refr.c"
"LittleVGL/src/lv_core/lv_obj.c"
"LittleVGL/src/lv_core/lv_disp.c"
"LittleVGL/src/lv_core/lv_indev.c"
"LittleVGL/src/lv_core/lv_group.c"
"LittleVGL/src/lv_themes/lv_theme_empty.c"
"LittleVGL/src/lv_themes/lv_theme_material.c"
"LittleVGL/src/lv_themes/lv_theme_template.c"
"LittleVGL/src/lv_themes/lv_theme_mono.c"
"LittleVGL/src/lv_themes/lv_theme.c"
"LittleVGL/src/lv_widgets/lv_dropdown.c"
"LittleVGL/src/lv_widgets/lv_cpicker.c"
"LittleVGL/src/lv_widgets/lv_objmask.c"
"LittleVGL/src/lv_widgets/lv_label.c"
"LittleVGL/src/lv_widgets/lv_gauge.c"
"LittleVGL/src/lv_widgets/lv_bar.c"
"LittleVGL/src/lv_widgets/lv_spinner.c"
"LittleVGL/src/lv_widgets/lv_keyboard.c"
"LittleVGL/src/lv_widgets/lv_msgbox.c"
"LittleVGL/src/lv_widgets/lv_win.c"
"LittleVGL/src/lv_widgets/lv_arc.c"
"LittleVGL/src/lv_widgets/lv_led.c"
"LittleVGL/src/lv_widgets/lv_switch.c"
"LittleVGL/src/lv_widgets/lv_btn.c"
"LittleVGL/src/lv_widgets/lv_textarea.c"
"LittleVGL/src/lv_widgets/lv_cont.c"
"LittleVGL/src/lv_widgets/lv_objx_templ.c"
"LittleVGL/src/lv_widgets/lv_table.c"
"LittleVGL/src/lv_widgets/lv_checkbox.c"
"LittleVGL/src/lv_widgets/lv_calendar.c"
"LittleVGL/src/lv_widgets/lv_imgbtn.c"
"LittleVGL/src/lv_widgets/lv_btnmatrix.c"
"LittleVGL/src/lv_widgets/lv_tabview.c"
"LittleVGL/src/lv_widgets/lv_spinbox.c"
"LittleVGL/src/lv_widgets/lv_tileview.c"
"LittleVGL/src/lv_widgets/lv_canvas.c"
"LittleVGL/src/lv_widgets/lv_page.c"
"LittleVGL/src/lv_widgets/lv_list.c"
"LittleVGL/src/lv_widgets/lv_line.c"
"LittleVGL/src/lv_widgets/lv_slider.c"
"LittleVGL/src/lv_widgets/lv_roller.c"
"LittleVGL/src/lv_widgets/lv_img.c"
"LittleVGL/src/lv_widgets/lv_chart.c"
"LittleVGL/src/lv_widgets/lv_linemeter.c"
# Note: LittleVGL officially supports Zephyr and ESP-IDF, we are neither.
file(GLOB_RECURSE LVGL_SOURCES
"LittleVGL/src/*.c"
)
set(LVGL_INCLUDES
"../include"
)
add_library(lvgl ${LVGL_SOURCES})
target_include_directories(lvgl PRIVATE ${LVGL_INCLUDES})
add_library(lvgl STATIC ${LVGL_SOURCES})
target_include_directories(lvgl PRIVATE ${LVGL_INCLUDES})
target_compile_definitions(lvgl PRIVATE "LV_CONF_INCLUDE_SIMPLE")

View File

@ -0,0 +1,13 @@
version = "1.0";
agent: {
drivers: {
spi: {
path = "/dev/spidev0.0"
};
i2c: {
path = "/dev/i2c-1"
}
};
};

View File

@ -0,0 +1,13 @@
#include "drivers/user_config_driver.h"
user_config_ret_t user_config_init(user_config_t *config, char *config_file) {
config_init(&config->libconfig_cfg);
if(!config_read_file(&config->libconfig_cfg, config_file)) {
return USER_CONFIG_ERROR;
}
}
user_config_ret_t user_config_deinit(user_config_t *config) {
//
}

View File

@ -0,0 +1,15 @@
#include "drivers/user_config_driver.h"
#include "drivers/user_spi_driver.h"
user_spi_ret_t user_spi_driver_init(user_spi_driver_t *spi) {
}
user_spi_ret_t user_spi_driver_deinit(user_spi_driver_t *spi) {
}
user_spi_ret_t user_spi_driver_xfer(user_spi_driver_t *spi, uint8_t * tx_buf, uint8_t rx_buf, uint32_t len) {
//
}