Code Monkey home page Code Monkey logo

balena-fin-coprocessor-base's Introduction

BalenaFin Co-Processor Base build

Please be aware that this is currently under beta-release.

This base project is designed to provide a quick and platform independent method of building projects for the balenaFin coprocessor.

Dependencies

Usage

This project can either be used standalone or as a submodule, for example see balena-fin-coprocessor-firmata.

Standalone

  1. Download this repository
  2. Change the project name and device in the CMakeLists.txt file
  3. Move source and include files into the src and inc directories
  4. Add source files to the CMakeLists.txt file

Submodule

  1. Add the submodule to main project using:
    git submodule add https://github.com/balena-io-playground/balena-fin-coprocessor-base.git
    git submodule update
  2. Copy the CMakeLists.txt file from this project (balena-sdk) to the top level of the main project
  3. Update the project name and BASE_LOCATION variables in the new CMakeLists.txt
  4. Add source files (and cmake libraries) to the CMakeLists.txt file

Building

To build the project, the following flow can be used:

make setup
make balena
cd builds/balena
make flash

When configuring the build, (either in CMakeLists.txtor using the -D flag) the variables such as DEVICE, FLASH_ORIGIN, FLASH_LENGTH, RAM_ORIGIN and RAM_LENGTH can be defined. If not defined, the build will use the default memory addresses and sizes for the FLASH and RAM regions specified in the Silicon Labs provided linker script for the selected device.

Debugging

Debugging using a Segger J-Link device (such as on Silabs Dev Kits) requires two processes, a GDB server that connects to the target and provides a local interface as well as a GDB instance that connects to this interface. Open two terminal sessions and run:

  1. make debug-server or make ds from the first session to start the debug server and connect to the target
  2. make debug or make d from the second session to launch GDB in Terminal User Interface (TUI) mode

This can then be used with the GDB interface to interact with the running application.

Updating

Add devices / Update the SDK:

  1. Grab the Silabs Gecko SDK (likely will need to download Simplicity Studio and extract this).
  2. Copy the cmsis, device, drivers, emdrv and emlib folders from the SDK into this repo.
  3. Add provide entry point for building specified device, i.e. make bgm111
  4. Add fixes to the .cmake files through the repo to correct any new naming inconsistencies (ie. EFM32G210F128 vs. EFR32FG13P231F512GM48.
  5. Open a PR against the master

Licensing

TBD - pending Silabs license query.

Based on efm32-base under MIT license.

balena-fin-coprocessor-base's People

Contributors

brando753 avatar bucknalla avatar david-perez avatar paulbendixen avatar rockaport avatar ryankurte avatar travisscott avatar

Stargazers

 avatar

Watchers

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

balena-fin-coprocessor-base's Issues

Add ability to flash bootloader

No bootloaders are currently included in this flashing tool so user can run into issue where application isnt being loaded at system start

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.