Coder Social home page Coder Social logo

vsfteam / vsf Goto Github PK

View Code? Open in Web Editor NEW
276.0 21.0 84.0 84.32 MB

Versaloon Software Framework -- a tiny preemptive-capable event-driven incremental software framework for embedded systems

License: Apache License 2.0

C 98.64% Assembly 0.42% C++ 0.61% Objective-C 0.03% Python 0.03% CMake 0.25% Batchfile 0.01% Pawn 0.02% HTML 0.01% Gherkin 0.01% Makefile 0.01%

vsf's Introduction

VSF -- Versaloon Software Framework

GitHub

windows-build cmake-native-build cmake-arm-cross-build

vsf.linux windows build cmake-arm-cross-build cmake-native-build

中文 |

Full name of VSF is "Versaloon Software Framework". VSF is an open-source software framework for embedded applications based on Apache2 license. VSF includes hal, a pre-emptive multi-thread kernel, services and components. VSF is implemented by C language with object-oriented programming methods(PLOOC).

Overall Framework

Catalogue

Name Description
document document
doxygen configuration of doxygen
example demo codes
hardware hardware of VSF development boards
patch some patches(for 3rd-party components, etc)
script
 cmake cmake scripts
source source code of VSF
 component component(filesystem, stacks, UI, drivers, etc)
 hal hardware abstraction layer(ARCH support, chip drivers)
 kernel VSF pre-emptive/collaborative kernel
 osa_service software services based on kernel
 service software services
 shell shell to use application software for other systems
 utilities base software utilities(preprocessor, compiler, list, etc)

Kernel

Pre-emptive kernel based on event-driven architecture, supporting mcs51, 8bit MCU, 32/64 bit ARM, riscv, x86, etc.

  • event-driven architecture, sleep if no event occurred, lower-power naturally
  • in pre-emptive mode, task switch is implemented by hardware swi(software interrupt), priority of task is the priority of the swi.
  • pre-emptive scheduling for tasks with different priority, collaborative scheduling for tasks with the same priority
  • can run in other RTOS as a task, or as swi ISR
  • different tasks
    • event handler task -- minimum resources usage, 20 bytes ram usage for minimum configuration, 40 bytes ram usage for normal configuration
    • pt task
    • thread with dedicated stack -- depending on setjmp in libc
    • fsm task
    • other tasks in shell, eg pthread
  • IPC: semaphore, mutex, trigger, queue, etc

Components

  • Reasonable framework for code re-use
  • declarative development model
  • standard interface, standard port for 3rd-party components
  • software components
    • distbus -- distributed bus framework
    • fifo
    • heap
    • json
    • pool
    • stream
    • trace
  • Components
    • fs -- filesystem with vfs support
    • input -- input sub-system
    • mal -- memory abstraction layer(normally known as 'block' device)
    • scsi -- SCSI device
    • tcpip -- TCPIP stack and netdrv drivers
    • ui -- UI and display drivers
    • usb -- USB host/slave stacks
    • bt -- bt stack(using btstack)

HAL -- hardware abstraction layer

  • standard hal interface and API -- eg: vsf_spi_init can be used with hardware SPI, GPIO emulated SPI, SPI from external usb device, etc
  • IP core driver -- simplify porting by implement clock, reset, interrupt functions which is not provided by IP core
  • template for different intefaces and functionalities
  • interfaces
    • PM
    • GPIO
    • SPI
    • I2C
    • PWM
    • ADC
    • SWI
    • USART
    • FLASH
    • USB
    • ethernet

Shell

To use applications from other system, shell can be used.

  • SDL -- use applications based on SDL directly
  • linux -- use applications based on linux directly
    • posix
    • devfs
    • socket
    • console
    • libraries
      • libusb
      • libgen
      • libsdl2
      • libcurl
      • etc

3rd-party

Software Path License Link
btstack source/component/3rd-party/btstack/raw Other https://github.com/bluekitchen/btstack
coremark source/component/3rd-party/coremark/raw Apache https://github.com/eembc/coremark
freetype source/component/3rd-party/freetype/raw FreeType https://freetype.org/
zlib source/component/3rd-party/zlib/raw zlib http://zlib.net/
nuklear source/component/3rd-party/nuklear/raw MTI https://github.com/Immediate-Mode-UI/Nuklear
nnom source/component/3rd-party/nnom/raw Apache 2.0 https://github.com/majianjia/nnom
lua source/component/3rd-party/lua/raw MIT https://www.lua.org/
lwip source/component/3rd-party/lwip/raw BSD https://savannah.nongnu.org/projects/lwip/
libpng source/component/3rd-party/libpng/raw PNG2 https://libpng.sf.net
libjpeg-turbo source/component/3rd-party/libjpeg-turbo/raw BSD https://libjpeg-turbo.org/
SDL_ttf source/shell/media/sdl2/3rd-party/SDL_ttf zlib https://hg.libsdl.org/SDL_ttf/
SDL_image source/shell/media/sdl2/3rd-party/SDL_image zlib https://hg.libsdl.org/SDL_image/
lvgl source/component/3rd-party/lvgl/raw/lvgl MIT https://lvgl.io/
lv_lib_freetype source/component/3rd-party/lvgl/extension/lv_lib_freetype/raw MIT https://lvgl.io/
CMSIS source/utilities/compiler/arm/3rd-party/CMSIS Apache 2.0 https://github.com/ARM-software/CMSIS_5
evm source/component/3rd-party/evm/raw Apache 2.0 https://github.com/scriptiot/evm
LingLongGUI source/component/3rd-party/LingLongGUI/raw Apache 2.0 https://gitee.com/gzbkey/LingLongGUI
PLOOC source/utilities/3rd-party/PLOOC/raw Apache 2.0 https://github.com/GorgonMeducer/PLOOC
mbedtls source/component/3rd-party/mbedtls/raw Apache 2.0 https://tls.mbed.org/
GuiLite source/component/3rd-party/GuiLite/raw Apache 2.0 https://github.com/idea4good/GuiLite
Segger_RTT source/component/3rd-party/segger/raw/RTT segger https://wiki.segger.com/RTT
Segger_SystemView source/component/3rd-party/segger/raw/SystemView segger https://wiki.segger.com/SystemView
nuconsole source/component/3rd-party/nuconsole/raw nuvoton https://www.nuvoton.com.cn/
AIC8800M_SDK source/hal/driver/AIC/AIC8800/vendor aic http://www.aicsemi.com/
awtk LGPL 2.1 https://www.zlg.cn/index/pub/awtk.html
littlefs source/component/3rd-party/littlefs/raw BSD https://github.com/littlefs-project/littlefs
getopt_long source/shell/sys/linux/lib/3rd-party/getopt OpenBSD https://github.com/openbsd/src
regex source/shell/sys/linux/lib/3rd-party/regex OpenBSD https://github.com/openbsd/src
fnmatch source/shell/sys/linux/lib/3rd-party/fnmatch BSD http://www.jbox.dk/sanos/source/lib/fnmatch.c.html
glob source/shell/sys/linux/lib/3rd-party/glob BSD https://github.com/cloudius-systems/musl
setjmp source/hal/arch/x86/win BSD
libtuv source/shell/sys/linux/lib/3rd-party/libtuv/raw Apache 2.0 https://github.com/Samsung/libtuv

vsf's People

Contributors

gorgonmeducer avatar liangyongxiang avatar versaloon avatar vsfos avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

vsf's Issues

Example CMake Error

您好,感谢您贡献的 vsf。我在尝试编译 vsf/example/template/project/cmake/esp32s2 示例工程时,出现了多处 CMake Error ,应该是之前您有一次提交改变了工程的目录结构导致,尝试修改关联的 CMakeLists 最终也没编起来,报了 Unknown CMake command "add_subdirectory_ifdef" 我在最新的 CMake 文档中未找到这个 API ,请问需要特殊的处理步骤吗?

aic8800里运行gpio demo出错

使用默认IAR工程,短接PA10和PB3引脚。

image

预期输出是

read pin value: 0x00000000
read pin value: 0x00000400
read pin value: 0x00000000
read pin value: 0x00000400
......

实际输出是:

read pin value: 0x00000000
read pin value: 0x00000000
read pin value: 0x00000400
read pin value: 0x00000000
read pin value: 0x00000400
......

linux.spi代码的一些细节问题

对于最新增加的linux下的spi的代码

  1. 缩进使用4个空格,不适用tab。 -- VSF代码缩进规则
  2. __vsf_linux_spi_config里,不应该依赖i2c
  3. __vsf_linux_spi_ioc_transfer和spi_ioc_transfer结构,这里并没有看出明显的ioc层
    vsf的命名规范可以在表示层次结构的'_'改成'.'。比如:__vsf_linux_spi_ioc_transfer表示private vsf.linux.spi.ioc.transfer
    如果没有明显的ioc层的话,命名上不需要加ioc

i2c的multiplex实现

注意复用的时候,是从start开始,到了stop之后,才能复用下一个。

vsf json

vsf_json_get_number, 应该删掉引号判断代码
if (*json++ != '"') {
return -1;
}
考虑添加isdigit,判断

使用armclang编译有大量的'-Wcast-align'警告

警告列表如下:

../../../../source/component/3rd-party/segger/raw/RTT/SEGGER_RTT.c(306): warning: cast from 'char *' to 'volatile SEGGER_RTT_CB *' increases required alignment from 1 to 4 [-Wcast-align]
../../../../source/component/3rd-party/segger/raw/RTT/SEGGER_RTT.c(567): warning: cast from 'char *' to 'volatile SEGGER_RTT_CB *' increases required alignment from 1 to 4 [-Wcast-align]
../../../../source/component/3rd-party/segger/raw/RTT/SEGGER_RTT.c(568): warning: cast from 'char *' to 'SEGGER_RTT_BUFFER_UP *' increases required alignment from 1 to 4 [-Wcast-align]
../../../../source/component/3rd-party/segger/raw/RTT/SEGGER_RTT.c(659): warning: cast from 'char *' to 'volatile SEGGER_RTT_CB *' increases required alignment from 1 to 4 [-Wcast-align]
../../../../source/component/3rd-party/segger/raw/RTT/SEGGER_RTT.c(660): warning: cast from 'char *' to 'SEGGER_RTT_BUFFER_DOWN *' increases required alignment from 1 to 4 [-Wcast-align]
../../../../source/component/3rd-party/segger/raw/RTT/SEGGER_RTT.c(827): warning: cast from 'char *' to 'SEGGER_RTT_BUFFER_UP *' increases required alignment from 1 to 4 [-Wcast-align]
../../../../source/component/3rd-party/segger/raw/RTT/SEGGER_RTT.c(938): warning: cast from 'char *' to 'SEGGER_RTT_BUFFER_UP *' increases required alignment from 1 to 4 [-Wcast-align]
../../../../source/component/3rd-party/segger/raw/RTT/SEGGER_RTT.c(1019): warning: cast from 'char *' to 'SEGGER_RTT_BUFFER_UP *' increases required alignment from 1 to 4 [-Wcast-align]
../../../../source/component/3rd-party/segger/raw/RTT/SEGGER_RTT.c(1093): warning: cast from 'char *' to 'SEGGER_RTT_BUFFER_UP *' increases required alignment from 1 to 4 [-Wcast-align]
../../../../source/component/3rd-party/segger/raw/RTT/SEGGER_RTT.c(1163): warning: cast from 'char *' to 'volatile SEGGER_RTT_CB *' increases required alignment from 1 to 4 [-Wcast-align]
../../../../source/component/3rd-party/segger/raw/RTT/SEGGER_RTT.c(1192): warning: cast from 'char *' to 'volatile SEGGER_RTT_CB *' increases required alignment from 1 to 4 [-Wcast-align]
../../../../source/component/3rd-party/segger/raw/RTT/SEGGER_RTT.c(1257): warning: cast from 'char *' to 'SEGGER_RTT_BUFFER_UP *' increases required alignment from 1 to 4 [-Wcast-align]
../../../../source/component/3rd-party/segger/raw/RTT/SEGGER_RTT.c(1307): warning: cast from 'char *' to 'volatile SEGGER_RTT_CB *' increases required alignment from 1 to 4 [-Wcast-align]
../../../../source/component/3rd-party/segger/raw/RTT/SEGGER_RTT.c(1312): warning: cast from 'char *' to 'SEGGER_RTT_BUFFER_UP *' increases required alignment from 1 to 4 [-Wcast-align]
../../../../source/component/3rd-party/segger/raw/RTT/SEGGER_RTT.c(1366): warning: cast from 'char *' to 'volatile SEGGER_RTT_CB *' increases required alignment from 1 to 4 [-Wcast-align]
../../../../source/component/3rd-party/segger/raw/RTT/SEGGER_RTT.c(1371): warning: cast from 'char *' to 'SEGGER_RTT_BUFFER_UP *' increases required alignment from 1 to 4 [-Wcast-align]
../../../../source/component/3rd-party/segger/raw/RTT/SEGGER_RTT.c(1477): warning: cast from 'char *' to 'volatile SEGGER_RTT_CB *' increases required alignment from 1 to 4 [-Wcast-align]
../../../../source/component/3rd-party/segger/raw/RTT/SEGGER_RTT.c(1478): warning: cast from 'char *' to 'SEGGER_RTT_BUFFER_DOWN *' increases required alignment from 1 to 4 [-Wcast-align]
../../../../source/component/3rd-party/segger/raw/RTT/SEGGER_RTT.c(1504): warning: cast from 'char *' to 'SEGGER_RTT_BUFFER_DOWN *' increases required alignment from 1 to 4 [-Wcast-align]
../../../../source/component/3rd-party/segger/raw/RTT/SEGGER_RTT.c(1525): warning: cast from 'char *' to 'SEGGER_RTT_BUFFER_UP *' increases required alignment from 1 to 4 [-Wcast-align]
../../../../source/component/3rd-party/segger/raw/RTT/SEGGER_RTT.c(1553): warning: cast from 'char *' to 'volatile SEGGER_RTT_CB *' increases required alignment from 1 to 4 [-Wcast-align]
../../../../source/component/3rd-party/segger/raw/RTT/SEGGER_RTT.c(1555): warning: cast from 'unsigned char *' to 'volatile SEGGER_RTT_CB *' increases required alignment from 1 to 4 [-Wcast-align]
../../../../source/component/3rd-party/segger/raw/RTT/SEGGER_RTT.c(1601): warning: cast from 'char *' to 'volatile SEGGER_RTT_CB *' increases required alignment from 1 to 4 [-Wcast-align]
../../../../source/component/3rd-party/segger/raw/RTT/SEGGER_RTT.c(1603): warning: cast from 'unsigned char *' to 'volatile SEGGER_RTT_CB *' increases required alignment from 1 to 4 [-Wcast-align]
../../../../source/component/3rd-party/segger/raw/RTT/SEGGER_RTT.c(1656): warning: cast from 'char *' to 'volatile SEGGER_RTT_CB *' increases required alignment from 1 to 4 [-Wcast-align]
../../../../source/component/3rd-party/segger/raw/RTT/SEGGER_RTT.c(1657): warning: cast from 'unsigned char *' to 'volatile SEGGER_RTT_CB *' increases required alignment from 1 to 4 [-Wcast-align]
../../../../source/component/3rd-party/segger/raw/RTT/SEGGER_RTT.c(1707): warning: cast from 'char *' to 'volatile SEGGER_RTT_CB *' increases required alignment from 1 to 4 [-Wcast-align]
../../../../source/component/3rd-party/segger/raw/RTT/SEGGER_RTT.c(1708): warning: cast from 'unsigned char *' to 'volatile SEGGER_RTT_CB *' increases required alignment from 1 to 4 [-Wcast-align]
../../../../source/component/3rd-party/segger/raw/RTT/SEGGER_RTT.c(1750): warning: cast from 'char *' to 'volatile SEGGER_RTT_CB *' increases required alignment from 1 to 4 [-Wcast-align]
../../../../source/component/3rd-party/segger/raw/RTT/SEGGER_RTT.c(1751): warning: cast from 'unsigned char *' to 'volatile SEGGER_RTT_CB *' increases required alignment from 1 to 4 [-Wcast-align]
../../../../source/component/3rd-party/segger/raw/RTT/SEGGER_RTT.c(1785): warning: cast from 'char *' to 'volatile SEGGER_RTT_CB *' increases required alignment from 1 to 4 [-Wcast-align]
../../../../source/component/3rd-party/segger/raw/RTT/SEGGER_RTT.c(1786): warning: cast from 'unsigned char *' to 'volatile SEGGER_RTT_CB *' increases required alignment from 1 to 4 [-Wcast-align]
../../../../source/component/3rd-party/segger/raw/RTT/SEGGER_RTT.c(1820): warning: cast from 'char *' to 'volatile SEGGER_RTT_CB *' increases required alignment from 1 to 4 [-Wcast-align]
../../../../source/component/3rd-party/segger/raw/RTT/SEGGER_RTT.c(1821): warning: cast from 'unsigned char *' to 'volatile SEGGER_RTT_CB *' increases required alignment from 1 to 4 [-Wcast-align]
../../../../source/component/3rd-party/segger/raw/RTT/SEGGER_RTT.c(1855): warning: cast from 'char *' to 'volatile SEGGER_RTT_CB *' increases required alignment from 1 to 4 [-Wcast-align]
../../../../source/component/3rd-party/segger/raw/RTT/SEGGER_RTT.c(1856): warning: cast from 'unsigned char *' to 'volatile SEGGER_RTT_CB *' increases required alignment from 1 to 4 [-Wcast-align]
../../../../source/component/3rd-party/segger/raw/RTT/SEGGER_RTT.c(1905): warning: cast from 'char *' to 'volatile SEGGER_RTT_CB *' increases required alignment from 1 to 4 [-Wcast-align]
../../../../source/component/3rd-party/segger/raw/RTT/SEGGER_RTT.c(1910): warning: cast from 'char *' to 'SEGGER_RTT_BUFFER_UP *' increases required alignment from 1 to 4 [-Wcast-align]
../../../../source/component/3rd-party/segger/raw/RTT/SEGGER_RTT.c(1954): warning: cast from 'char *' to 'volatile SEGGER_RTT_CB *' increases required alignment from 1 to 4 [-Wcast-align]
../../../../source/component/3rd-party/segger/raw/RTT/SEGGER_RTT.c(1962): warning: cast from 'char *' to 'SEGGER_RTT_BUFFER_UP *' increases required alignment from 1 to 4 [-Wcast-align]
../../../../source/component/3rd-party/segger/raw/RTT/SEGGER_RTT.c(2039): warning: cast from 'char *' to 'SEGGER_RTT_BUFFER_UP *' increases required alignment from 1 to 4 [-Wcast-align]
../../../../source/component/3rd-party/segger/raw/RTT/SEGGER_RTT.c(2066): warning: cast from 'unsigned char *' to 'volatile SEGGER_RTT_CB *' increases required alignment from 1 to 4 [-Wcast-align]
../../../../source/component/3rd-party/segger/raw/SystemView/SEGGER_SYSVIEW.c(852): warning: cast from 'char *' to 'SEGGER_RTT_BUFFER_DOWN *' increases required alignment from 1 to 4 [-Wcast-align]
../../../../source/component/3rd-party/segger/raw/SystemView/SEGGER_SYSVIEW.c(852): warning: cast from 'char *' to 'SEGGER_RTT_BUFFER_DOWN *' increases required alignment from 1 to 4 [-Wcast-align]
../../../../source/component/3rd-party/segger/raw/SystemView/SEGGER_SYSVIEW.c(3051): warning: cast from 'char *' to 'SEGGER_RTT_BUFFER_DOWN *' increases required alignment from 1 to 4 [-Wcast-align]
../../../../source/component/3rd-party/segger/raw/SystemView/SEGGER_SYSVIEW.c(3051): warning: cast from 'char *' to 'SEGGER_RTT_BUFFER_DOWN *' increases required alignment from 1 to 4 [-Wcast-align]
../../../../source/component/3rd-party/vsfvm/raw/extension/std/vsfvm_ext_std.c(437): warning: cast from 'uint8_t *' (aka 'unsigned char *') to 'uint16_t *' (aka 'unsigned short *') increases required alignment from 1 to 2 [-Wcast-align]
../../../../source/component/3rd-party/vsfvm/raw/extension/std/vsfvm_ext_std.c(440): warning: cast from 'uint8_t *' (aka 'unsigned char *') to 'uint32_t *' (aka 'unsigned int *') increases required alignment from 1 to 4 [-Wcast-align]
../../../../source/component/3rd-party/vsfvm/raw/extension/std/vsfvm_ext_std.c(466): warning: cast from 'uint8_t *' (aka 'unsigned char *') to 'uint16_t *' (aka 'unsigned short *') increases required alignment from 1 to 2 [-Wcast-align]
../../../../source/component/3rd-party/vsfvm/raw/extension/std/vsfvm_ext_std.c(469): warning: cast from 'uint8_t *' (aka 'unsigned char *') to 'uint32_t *' (aka 'unsigned int *') increases required alignment from 1 to 4 [-Wcast-align]
../../../../source/component/input/driver/hid/vsf_input_hid.c(253): warning: cast from 'uint8_t *' (aka 'unsigned char *') to 'uint16_t *' (aka 'unsigned short *') increases required alignment from 1 to 2 [-Wcast-align]
../../../../source/component/input/driver/hid/vsf_input_hid.c(255): warning: cast from 'uint8_t *' (aka 'unsigned char *') to 'uint32_t *' (aka 'unsigned int *') increases required alignment from 1 to 4 [-Wcast-align]
../../../../source/kernel/./__eda/vsf_eda_bmpevt.c(86): warning: cast from 'vsf_bmpevt_adapter_t *' (aka 'struct vsf_bmpevt_adapter_t *') to 'vsf_bmpevt_adapter_eda_t *' (aka 'struct vsf_bmpevt_adapter_eda_t *') increases required alignment from 4 to 8 [-Wcast-align]
../../../../source/kernel/./__eda/vsf_eda_bmpevt.c(96): warning: cast from 'vsf_bmpevt_adapter_t *' (aka 'struct vsf_bmpevt_adapter_t *') to 'vsf_bmpevt_adapter_sync_t *' (aka 'struct vsf_bmpevt_adapter_sync_t *') increases required alignment from 4 to 8 [-Wcast-align]
../../../../source/kernel/./__eda/vsf_eda_bmpevt.c(135): warning: cast from 'vsf_bmpevt_adapter_t *' (aka 'struct vsf_bmpevt_adapter_t *') to 'vsf_bmpevt_adapter_eda_t *' (aka 'struct vsf_bmpevt_adapter_eda_t *') increases required alignment from 4 to 8 [-Wcast-align]
../../../../source/kernel/./__eda/vsf_eda_bmpevt.c(146): warning: cast from 'vsf_bmpevt_adapter_t *' (aka 'struct vsf_bmpevt_adapter_t *') to 'vsf_bmpevt_adapter_bmpevt_t *' (aka 'struct vsf_bmpevt_adapter_bmpevt_t *') increases required alignment from 4 to 8 [-Wcast-align]
../../../../source/shell/sys/linux/include/simple_libc/../sys/../sys/socket.h(168): warning: cast from 'unsigned char *' to 'struct cmsghdr *' increases required alignment from 1 to 4 [-Wcast-align]
../../../../source/shell/sys/linux/kernel/socket/../../include/sys/socket.h(168): warning: cast from 'unsigned char *' to 'struct cmsghdr *' increases required alignment from 1 to 4 [-Wcast-align]
../../../../source/shell/sys/linux/kernel/fs/../socket/../../include/sys/socket.h(168): warning: cast from 'unsigned char *' to 'struct cmsghdr *' increases required alignment from 1 to 4 [-Wcast-align]
../../../../source/shell/sys/linux/kernel/fs/vsf_linux_fs.c(334): warning: cast from 'vsf_linux_fd_priv_t *' (aka 'struct vsf_linux_fd_priv_t *') to 'vsf_linux_eventfd_priv_t *' (aka 'struct vsf_linux_eventfd_priv_t *') increases required alignment from 4 to 8 [-Wcast-align]
../../../../source/shell/sys/linux/kernel/fs/vsf_linux_fs.c(358): warning: cast from 'vsf_linux_fd_priv_t *' (aka 'struct vsf_linux_fd_priv_t *') to 'vsf_linux_eventfd_priv_t *' (aka 'struct vsf_linux_eventfd_priv_t *') increases required alignment from 4 to 8 [-Wcast-align]
../../../../source/shell/sys/linux/kernel/fs/vsf_linux_fs.c(398): warning: cast from 'vsf_linux_fd_priv_t *' (aka 'struct vsf_linux_fd_priv_t *') to 'vsf_linux_eventfd_priv_t *' (aka 'struct vsf_linux_eventfd_priv_t *') increases required alignment from 4 to 8 [-Wcast-align]
../../../../source/shell/sys/linux/kernel/fs/vsf_linux_fs.c(417): warning: cast from 'vsf_linux_fd_priv_t *' (aka 'struct vsf_linux_fd_priv_t *') to 'vsf_linux_eventfd_priv_t *' (aka 'struct vsf_linux_eventfd_priv_t *') increases required alignment from 4 to 8 [-Wcast-align]
../../../../source/shell/sys/linux/kernel/fs/vsf_linux_fs.c(2167): warning: cast from 'peda_cb___vk_vfs_buffer_write *' (aka 'struct peda_cb___vk_vfs_buffer_write *') to 'vk_vfs_file_t *' (aka 'struct vk_vfs_file_t *') increases required alignment from 1 to 8 [-Wcast-align]
../../../../source/shell/sys/linux/kernel/fs/vsf_linux_fs.c(2191): warning: cast from 'peda_cb___vk_vfs_buffer_read *' (aka 'struct peda_cb___vk_vfs_buffer_read *') to 'vk_vfs_file_t *' (aka 'struct vk_vfs_file_t *') increases required alignment from 1 to 8 [-Wcast-align]
../../../../source/shell/sys/linux/port/busybox/busybox.c(44): warning: cast from 'char *' to 'char **' increases required alignment from 1 to 4 [-Wcast-align]

multiplex_spi.c编译警告修复

VC下,llvm编译器:

1>....\vsf\source\hal\driver\common\spi\multiplex_spi.c(364,10): warning : unused variable 'is_hardware' [-Wunused-variable]
1>....\vsf\source\hal\driver\common\spi\multiplex_spi.c(437,9): warning : variable 'result' is used uninitialized whenever 'if' condition is false [-Wsometimes-uninitialized]
1>....\vsf\source\hal\driver\common\spi\multiplex_spi.c(445,12): message : uninitialized use occurs here
1>....\vsf\source\hal\driver\common\spi\multiplex_spi.c(437,5): message : remove the 'if' if its condition is always true
1>....\vsf\source\hal\driver\common\spi\multiplex_spi.c(435,5): message : variable 'result' is declared here
1>....\vsf\source\hal\driver\common\spi\multiplex_spi.c(475,18): warning : unused variable 'result' [-Wunused-variable]

i2c capability里增加mtu

AIC8800M的I2C的MTU是16,在capability里提供。
有些芯片的驱动是可以根据mtu做workaround的。

W600 svd?

You seem to have added some basic support for the W600 chip, do you happen to have the svd files?

vsfsm.c

fsm framework 这个不打算再支持了?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.