Compatibility with STM32F4

#1

Hi, I’m trying to run mongoose-os in a stm32f429 but I don’t understand how to configure mos.yml.
I Have tried this:

author: Silvio
description: A Mongoose OS test app
version: 0.1

libs_version: ${mos.version}
modules_version: ${mos.version}
mongoose_os_version: ${mos.version}

# Optional. List of tags for online search.
tags:
  - c

# List of files / directories with C sources. No slashes at the end of dir names.
sources:
  - src

# List of dirs. Files from these dirs will be copied to the device filesystem
filesystem:
  - fs
  
libs:
  - origin: https://github.com/mongoose-os-libs/boards
  - origin: https://github.com/mongoose-os-libs/ca-bundle
  - origin: https://github.com/mongoose-os-libs/rpc-service-config
  - origin: https://github.com/mongoose-os-libs/rpc-service-fs
  - origin: https://github.com/mongoose-os-libs/rpc-uart
  # - origin: https://github.com/mongoose-os-libs/ethernet
  - origin: https://github.com/mongoose-os-libs/freertos
  - origin: https://github.com/mongoose-os-libs/mbedtls
    variant: stm32-B-L475E-IOT01A
  - origin: https://github.com/mongoose-os-libs/mongoose
    variant: stm32-B-L475E-IOT01A
  
config_schema:
        - ["debug.stdout_uart", 3]
        - ["debug.stderr_uart", 3]
        - ["rpc.uart.uart_no", 3]

build_vars:
    DEVICE: stm32l475vg
    SRAM_SIZE: 262144
    FLASH_SIZE: 2097152
    HSE_VALUE: 8000000
    LSE_VALUE: 32768
    MGOS_DEBUG_UART: 3
    FLASH_BL_SIZE: 0x10000
    FLASH_BL_CFG_SIZE: 0
    FREERTOS_PORT: GCC/ARM_CM4F
    MGOS_ROOT_DEVTAB: >
      fs0 stm32flash {"offset": 0x8000, "size": 0x80000, "ese": true}
    MGOS_ROOT_FS_TYPE: SPIFFS
    MGOS_ROOT_FS_SIZE: 0x80000
    MGOS_ROOT_FS_OPTS: '{"bs": 4096, "is": 128}'
    MGOS_ROOT_FS_EXTRACT: 0
    MGOS_ROOT_FS_ON_SYS_FLASH: 1


# Used by the mos tool to catch mos binaries incompatible with this file format
manifest_version: 2018-09-24
no_implicit_init_deps: true

But the build fail:

  CC    /opt/STM32Cube_FW_L4_V1.13.0/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_ll_usb.c
  CC    /opt/STM32Cube_FW_L4_V1.13.0/Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_ll_utils.c
  CP    /data/fwbuild-volumes/2.16.0/apps/test1/stm32/build_contexts/build_ctx_773716416/deps/ca-bundle/fs/ca.pem -> /data/fwbuild-volumes/2.16.0/apps/test1/stm32/build_contexts/build_ctx_773716416/build/objs/fs
  CP    /data/fwbuild-volumes/2.16.0/apps/test1/stm32/build_contexts/build_ctx_773716416/fs/index.html -> /data/fwbuild-volumes/2.16.0/apps/test1/stm32/build_contexts/build_ctx_773716416/build/objs/fs
  CP    /data/fwbuild-volumes/2.16.0/apps/test1/stm32/build_contexts/build_ctx_773716416/build/gen/conf0.json -> /data/fwbuild-volumes/2.16.0/apps/test1/stm32/build_contexts/build_ctx_773716416/build/objs/fs
  MKFS  /usr/local/bin/mkspiffs8 0x80000 {bs: 4096, is: 128} /data/fwbuild-volumes/2.16.0/apps/test1/stm32/build_contexts/build_ctx_773716416/build/objs/fs -> /data/fwbuild-volumes/2.16.0/apps/test1/stm32/build_contexts/build_ctx_773716416/build/objs/fw_temp/fs.bin
     FS params: size=524288, bs=4096, ps=256, es=4096
       Adding index.html: 70
       Adding ca.pem: 27949
       Adding conf0.json: 3
     FS stats : space total=474641, used=29618, free=445023
  CC    /data/fwbuild-volumes/2.16.0/apps/test1/stm32/build_contexts/build_ctx_773716416/build/gen/ffi_exports.c
  GEN   /data/fwbuild-volumes/2.16.0/apps/test1/stm32/build_contexts/build_ctx_773716416/build/gen/mg_build_info.c
  AR    /data/fwbuild-volumes/2.16.0/apps/test1/stm32/build_contexts/build_ctx_773716416/build/objs/mongoose-os.a
  GEN   /data/fwbuild-volumes/2.16.0/apps/test1/stm32/build_contexts/build_ctx_773716416/build/gen/fs_img.c
  GEN   /data/fwbuild-volumes/2.16.0/apps/test1/stm32/build_contexts/build_ctx_773716416/build/gen/build_info.c
fatal: not a git repository (or any parent up to mount point /)
Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set).
  CC    /data/fwbuild-volumes/2.16.0/apps/test1/stm32/build_contexts/build_ctx_773716416/build/gen/mg_build_info.c
  CC    /data/fwbuild-volumes/2.16.0/apps/test1/stm32/build_contexts/build_ctx_773716416/build/gen/build_info.c
  CC    /data/fwbuild-volumes/2.16.0/apps/test1/stm32/build_contexts/build_ctx_773716416/build/gen/fs_img.c
  LD    /data/fwbuild-volumes/2.16.0/apps/test1/stm32/build_contexts/build_ctx_773716416/build/objs/test1.elf (BL= LDS=stm32l4_no_ota.ld)
/data/fwbuild-volumes/2.16.0/apps/test1/stm32/build_contexts/build_ctx_773716416/build/objs/libmongoose-stm32-B-L475E-IOT01A-2.16.0.a(mongoose.c.o):(.data.mg_ifaces+0x0): undefined reference to `mg_default_iface_vtable'
collect2: error: ld returned 1 exit status
/data/fwbuild-volumes/2.16.0/apps/test1/stm32/build_contexts/build_ctx_773716416/deps/modules/mongoose-os/platforms/stm32/Makefile.build:288: recipe for target '/data/fwbuild-volumes/2.16.0/apps/test1/stm32/build_contexts/build_ctx_773716416/build/objs/test1.elf' failed
make: *** [/data/fwbuild-volumes/2.16.0/apps/test1/stm32/build_contexts/build_ctx_773716416/build/objs/test1.elf] Error 1
make: Leaving directory '/app'
Error: exit status 2
/go/src/github.com/mongoose-os/mos/mos/build_local.go:693: 
/go/src/github.com/mongoose-os/mos/mos/build_local.go:680: 
/go/src/github.com/mongoose-os/mos/mos/build_local.go:445: 
/go/src/github.com/mongoose-os/mos/mos/build.go:220: 
/go/src/github.com/mongoose-os/mos/mos/build.go:163: 
/go/src/github.com/mongoose-os/mos/mos/main.go:196: build failed

Any suggestions?
Thanks

#2

I think you see this error because no networking is enabled on this board.

Maybe setting a dummy null interface would help. In mos.yml, add:

cdefs:
  MGOS_MG_NET_IF: MG_NET_IF_NULL