foxBMS 2 - 1.9.0 Logo

General Information

  • 1. Releases
  • 2. Changelog
  • 3. Motivation
  • 4. Safety
  • 5. License
  • 6. Team

Introduction

  • 1. Abbreviations and Definitions
  • 2. Naming Conventions
  • 3. The foxBMS 2 Platform
  • 4. Use Case

Getting Started

  • 1. Getting Started with foxBMS 2
  • 2. Repository Structure
  • 3. Software Installation
  • 4. fox CLI
  • 5. Creating a Workspace
  • 6. First Steps on Hardware

Software Documentation

  • 1. Configuration
  • 2. Building the Application
  • 3. Software Structure Overview
  • 4. Software Modules
  • 5. Unit Tests
  • 6. Build Process
  • 7. Build Environment
  • 8. How-to
    • 8.1.1. How to Use the CAN Module
    • 8.1.2. How to Use the Diagnosis Module
    • 8.1.3. How to Use the Database Module
    • 8.1.4. How to Use the FTASK Module
    • 8.1.5. How to Use assertions
    • 8.1.6. How to Implement an Analog Front-End Driver
    • 8.1.7. How to Implement a New Temperature Sensor Driver
    • 8.1.8. How to reach STANDBY state
    • 8.1.9. How to recalibrate the SOC
    • 8.1.10. How to update the foxBMS application using the bootloader
    • 8.2.1. How to Write State Machines
    • 8.2.2. How to Use Generated Sources from HALCoGen
    • 8.2.3. How to use Unit Tests
    • 8.2.4. How to exclude files from unit tests
    • 8.2.5. Using ceedling directly
    • 8.2.6. Linux specific Usage
    • 8.2.7. How to Build a Library and Link it in a foxBMS 2 Project
    • 8.2.8. How to Ping foxBMS 2
  • 9. Linker Script
  • 10. Software Architecture
  • 11. Operating System
  • 12. Bootloader

Hardware Documentation

  • 1. Hardware
  • 2. Design Resources
  • 3. Connectors
  • 4. Master Overview
  • 5. Slaves Overview
  • 6. Interfaces Overview

System Documentation

  • 1. System Introduction
  • 2. System Voltage And Current Monitoring
  • 3. Precharging
  • 4. IMD Testing
  • 5. Communication

Tools Documentation

  • 1. fox.py
  • 2. fox.py API
  • 3. Waf Tools
  • 4. Debugging the Application
  • 5. HALCoGen tool documentation
  • 6. Axivion Bauhaus Suite

Developer Manual

  • 1. Preface
  • 2. Style Guide
  • 3. Software Developer Manual
  • 4. Hardware Developer Manual
  • 5. fox CLI Implementation
  • 6. Developing fox CLI
  • 7. Dependency Management
  • 8. Release Management

Miscellaneous Information

  • 1. Acknowledgements
  • 2. Indices and Tables
  • 3. Bibliography
foxBMS 2 - 1.9.0
  • 8. How-to
  • 8.2.7. How to Build a Library and Link it in a foxBMS 2 Project
  • View page source

8.2.7. How to Build a Library and Link it in a foxBMS 2 Project

Sometimes source code can not be shared between parties. For these cases the foxBMS 2 project provides a mechanism to ship a minimal development project to the other party. This allows the partner to build a static library. This library and the accompanying headers can then be shared with the partner and be included in the application.

The following example describes the workflow. In this scenario Partner A develops on foxBMS 2 while Partner B should only provide a library to Partner A.

8.2.7.1. Bootstrapping a minimal development Project

  • Partner A bootstraps a minimal development project. This minimal project is named library-project.tar.gz.

    .\fox.ps1 waf bootstrap-library-project
    
    ./fox.ps1 waf bootstrap-library-project
    
    ./fox.ps1 waf bootstrap-library-project
    
  • Partner A shares the archive library-project.tar.gz with Partner B.

8.2.7.2. Building a Library

  • Partner B installs a TI Code Composer Studio as described in Install TI Code Composer Studio.

  • Partner B installs a Python environment as described in Software Installation.

  • Partner B builds a library by adding sources etc. to the minimal project as needed and builds the library.

    .\fox.ps1 waf build
    
    ./fox.ps1 waf build
    
    ./fox.ps1 waf build
    
  • Partner B shares the library and accompanying headers with Partner A.

8.2.7.3. Including the Library

  • Partner A saves the library and accompanying headers and adds the path to the library to the search path, the library name the list of used libraries and the path to the headers to the include path (in cc-options.yaml).

  • For including the library the library path has to be updated:
    LIBRARY_PATHS:
       win32:
       - ..\..\src\app\driver\<library folder name>
       linux:
    
  • In the section libraries the name of the library has to be added:
    LIBRARIES:
       ST: # libraries following the pattern "lib<name>.a"
       TARGET: # libraries following the pattern "<name>.lib"
       - <name>
    
  • For the changes to take effect execute: ./fox.ps1 waf configure

  • Now the project should build with: ./fox.ps1 waf build_app_embedded

Fork me on GitHub
Previous Next

© Copyright 2010 - 2025, Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V. All rights reserved. See license section for further information..

Built with Sphinx using a theme provided by Read the Docs.