Skip to content

Recommended Integration Strategy for CANopenNode with STM32 #94

@zaaynn123

Description

@zaaynn123

I am integrating the CANopenNode stack into an STM32 project. I understand that this typically requires including both:

The core stack from CANopenNode
https://github.com/CANopenNode/CANopenNode

The STM32-specific port from CANopenNode_STM32
https://github.com/CANopenNode/CANopenNode_STM32
(CanOpenSTM32)

My questions are mainly around long-term maintainability and configuration management:

Repository integration strategy
From a maintainability perspective, is it recommended to:
Add both repositories as git submodules, or
Vendor (copy) the required source files into the project, or
Use some other recommended approach?
The goal s to allow clean updates from upstream while keeping the project stable.
Configuration management (CO_config.h / CO_driver_target.h)
In my case, I need to customize:

CO_config.h
CO_driver_target.h

These configurations are project-specific and must remain consistent when:
The CANopenNode repositories are updated
The project is cloned or initialized by other team members
What is the recommended and most maintainable way to manage these configuration files?
Should they live outside the submodule and be injected via include paths?
Is it acceptable to override them at build time?
Or is there an established best practice for this use case?
I’d appreciate guidance on the recommended workflow for using CANopenNode in STM32 projects, especially in team environments where multiple developers will be pulling and updating dependencies.

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions