Skip to content
Snippets Groups Projects
Select Git revision
  • nas-pitot-correction
  • nd015x-dma
  • main default protected
  • logger-documentation
  • arp
  • arp-gyro
  • async-fsm
  • chipselect-mux
  • nas-catch-dev
  • parafoil-mavlink-upd
  • mockup-main-software
  • quadspi-flash
  • quadspi-flash2
  • sx1278-resilience
  • units-impl
  • nokia-tm-dev
  • spi
  • cc3135
  • ARP-pre-2.7
  • PYXIS_ROCCARASO
  • PYXIS_EUROC
  • lynx-euroc
  • hermes-v1.0
  • hermes-flight-1
24 results

skyward-boardcore

  • Clone with SSH
  • Clone with HTTPS
  • Nicolò Caruso's avatar
    Nicolò Caruso authored
    BSP: Added the bsp with the hwmapping for the new GS and the bsp.cpp updated.
    Make: Updated the boards.cmake with the new BSP
    c_cpp_properties: Added the properties for the new GS board
    WIP: bsp_impl.h is still in WIP
    
    [GS] Formatting fix
    
    [GS] Fixed pipeline.
    
    Fixed pipeline: Wrong boardname was set on board_options, c_cpp_properties.
    Also an #endif in hwmapping.h from old code now removed.
    
    [BSP] Updated BSP: bsp_impl and hwmapping
    
    bsp_impl: Added the sd and ram functions
    hwmapping: Fixed the names in the dip switch namespace, added pins for remote controller (TLC) for ARP
    
    [BSP] Updated bsp_impl, missing I/O and radio pin initialization
    
    Some pin initialization was missing (Radio, TLC, dipSwitch)
    
    [BSP] GS BSP update: Remote command box arm/disarm and leds
    
    hwmapping: Added LEDs (Compute unit), command box arm/disarm switch.
    bsp/bsp_impl: Led functions and initialization
    
    [BSP] GS BSP fix ledOn, commandbox leds
    
    bsp_impl: Fixed ledOn userLedx typo.
    hwmapping: Added into the namespace the leds-timers mapping of the commandbox.
    
    [BSP] GS bsp fixes
    
    Fixes about the namespaces used, switchArm/Disarm in bsp.cpp, ifdef in hwmapping.h, also commandBox now outside interfaces namespace.
    
    [BSP] GS bsp changed on top of the Compute unit v2 ones
    
    The BSP was based on the old gemini gs instead of the compute unit v2 ones.
    Now changed to those configurations and hw implementations with the mapping of the lyra gs.
    
    [BSP] Automated_antennas BSP txen, rxen alias for the radio
    
    Added txen and rxen namespace alias
    
    [BSP] Added stepper pins initialization
    
    Stepper pins initialization was missing from the BSP
    
    [BSP] Minor reorder of the stepper enable in bsp.cpp
    
    [BSP] GS: Removed CAN1
    
    Removed CAN1 since no integral chip on the board for CAN
    
    [BSP] GS Led naming
    
    Changed led naming since color have changed
    
    [BSP] GS BSP fixed switchActive was signed as switchDisarm
    
    The active switch of the command box was incorrectly signed as switchDisarm, now correctly switchActive
    
    [BSP] GS BSP now using leds as pins and not timers
    
    Using now leds of the command box as pin and not timers, since using a thread for its control.
    
    [BSP] Led bsp update for commandBox
    
    [BSP] GS Fix on enable and disable pin of the steppers
    
    The enable and disable pins was switched. Now fixed
    
    [BSP] USART2 rx to pull up open drain and tx pull up for VN300
    
    Fix: RX to pull up open drain since there are issues without the VN300 with the IDLE register.
    
    [BSP] SD one bit data bus and divider
    
    Was missing flag for one bit data bus SD and divider for maximum frequency
    84ef1127
    History
    Skyward Experimental Rocketry

    Skyward Boardcore

    Boardcore is a C++14 rocket software framework targeting custom embedded boards designed by Skyward Experimental Rocketry.

    Boardcore runs on top of Miosix, a lightweight operating system for microcontrollers. It implements a POSIX-like API, the C standard library and the C++ standard library. It also provides a pre-emptive scheduler (among others) and a custom concurrency API with support for Threads and synchronization primitives. A FAT32 filesystem, a serial port driver, platform timers and General Purpose I/O functionalities (GPIO) are also exposed through a custom API.

    We maintain a fork of the Miosix OS to fit our needs: skyward/miosix-kernel

    The project is built with the CMake build system. We also have our own script that is built on top of CMake, to automate compilation and deployment to different hardware targets, SBS.

    Content

    Path Description
    src/bsps/ Board Support Packages (BSP)
    src/shared/ Device drivers and general-purpose classes/utilities
    src/entrypoints/ Entry points for general tasks (e.g. calibration)
    src/tests/ Entry points for on-device unit testing
    build/ Build output directory
    libs/ External libraries (git submodules)
    scripts/ Various tools and utilities (e.g. linting, log decoder)

    Getting Started

    Dependencies

    • CMake 3.25
    • Git
    • Miosix Toolchain

    We also recommend to install Ccache, Ninja, OpenOCD, Cppcheck,ClangFormat and pre-commit for a smoother development experience.

    Cloning the repo

    Clone the repository with the --recursive option:

    git clone --recursive https://git.skywarder.eu/avn/swd/skyward-boardcore.git
    cd skyward-boardcore

    Building

    Using the SBS script is the recommended way to build the project. When called with no arguments, it will build all targets:

    ./sbs

    This may take a while depending on how many targets there are. If ccache is installed, it will be used to cache intermediate compilation artifacts to speed-up incremental builds.

    Alternatively, you can build with CMake commands:

    mkdir build
    cd build
    cmake -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DCMAKE_TOOLCHAIN_FILE=../libs/miosix-kernel/miosix/_tools/toolchain.cmake -GNinja ..
    cmake --build .

    Documentation

    The code is documented with Doxygen, check it out here.

    Contributing

    You can install a pre-commit hook to ensure changes to the code will pass CI:

    pre-commit install

    What's next?

    You can find first-step guides in the Wiki (configuring the IDE, building examples, etc.) as well our code guidelines and best practices that we follow.

    If you want to contribute to this repository, please read our Git Workflow.

    If you want to start messing around with the code, check out the LED blink guide.