Core MCU Framework Documentation

Core MCU Framework Documentation

Core MCU Framework Overview

Core MCU Framework Overview

What is Core MCU Framework?

The Core MCU Framework is a specialized software platform designed for developing applications that run on microcontroller units (MCUs).

The goal of Core MCU Framework is to make it easy to move between various MCU processor platforms.

Portability Across Different MCUs

One of the primary challenges in embedded systems development is dealing with the heterogeneity of hardware. Different MCUs have their own sets of instructions, peripherals, and memory architectures. Core MCU Framework aims to abstract these differences so that developers can write code that is portable across various MCU processors. This means you can take a program designed for one MCU and adapt it to another with minimal changes.

Simplified Development Process

Core MCU Framework provides a collection of libraries and tools that simplify common tasks in embedded systems programming.

For example, Core MCU Framework offer standardized libraries for handling I/O operations, timers, interrupts, and other peripherals common to MCUs. This can significantly speed up the development process and reduce the learning curve when moving between different MCUs.

Consistent API

A uniform application programming interface (API) across various MCUs allows developers to apply the same code structure and calls, regardless of the underlying hardware. Core MCU Framework’s consistent API ensures that developers don’t need to relearn command sets or libraries when switching MCUs, thus saving time and reducing errors.

Core MCU Framework Overview

License

Core MCU Framework is free for non-commerical use.

This means, if you are a hobbyist or just want to play around with Core MCU Framework, you may do so.

However, if you are selling a product, making money from something using it – we need to talk. I think it is only fair to get a cut, so I can support my hobbies and create more cool stuff. Don’t you think so?


Core MCU Framework Software License Agreement

1. Definitions

2. Grant of License

3. Portability and API Consistency

4. Restrictions

5. Rights of the Licensor

6. Limitation of Liability

7. Termination

8. Miscellaneous

Core MCU Framework Overview

Versions

Core MCU Framework – Version is based on the specific MCU device you’re working with.

Core8-16F – Designed for PIC16 Series Devices – Compatible with:

Core8-18F – Designed for PIC18 Series Devices – Compatible with:

Core MCU Framework Overview

Releases

Core8-16F Releases

Date Version Notes
2024/09/09 1.0.0 Initial Version
2024/09/24 1.0.1 Added HAL Interfaces

 

Core8-18F Releases

Date Version Notes
2024/10/11 1.0.0 Initial Version - Beta
     

Core MCU Framework Overview

Core MCU Framework – Download

The Core MCU Framework Versions, along with drivers can be found in my Github Repo.

Core MCU Framework Download – Link

Getting Started

Getting Started

Directory Layout CORE8-16F Version

Directory Structure Documentation for CORE8-16F Version

Overview

This documentation provides an overview of the directory structure of the CORE8-16F microcontroller framework. The purpose of this guide is to help developers quickly understand the framework's layout, where to find specific components, and the function of each directory and file.

Top-Level Directory (src/)

Core Framework Directory (core16F/)

Core System Subdirectory (core16F_system/)

Core Interface Documentation

The core interface provides essential functions and definitions that are crucial for developers to interact with the CORE8-16F framework effectively. Below are the key files and their purposes:

Device Configuration (device/)

Driver Directory (drivers/)

Hardware Abstraction Layer (hal/)

Interrupt Service Routines (isr/)

Purpose and Use

The structure of the CORE8-16F framework is designed to provide modular and reusable components, allowing developers to easily add, modify, or remove features as needed. By understanding the purpose of each directory and its contents, developers can efficiently navigate the codebase and make effective contributions or adaptations to their specific needs.

CORE Interface

CORE Interface

CORE API Documentation - Core8-16F

The CORE object is an instance of the CORE16F_System_Interface_t structure, which provides a collection of core functionalities available in the CORE8-16F framework. Below is a brief overview of the key functions and features available through CORE.

CORE Definition

 

const CORE16F_System_Interface_t CORE = {
    .Initialize = &CORE16F_init,
     
  #ifdef _CORE16F_SYSTEM_INCLUDE_DELAYS_ENABLE
        .Delay_MS = &CORE16F_Delay_BlockingMS,
      #endif /_CORE16F_SYSTEM_INCLUDE_DELAYS_ENABLE/
      
  #ifdef _CORE16F_SYSTEM_EVENTS_ENABLE
        .Events_Initialize = &TimedEventSystem_Init,
        .Events_Add = &ScheduleEvent,
        .Events_Check = &CheckEvents,
        .Events_Remove = &CancelEvent,
      #endif

  .Make16 = &CORE_Make_16,
  .Low4 = &CORE_Return_4bit_Low,
  .High4 = &CORE_Return_4bit_High,
  .Set_Bit = &CORE_Set_Bit,
  .Clear_Bit = &CORE_Clear_Bit,
  .FloatToString = &CORE_floatToString,
  .IntToString = &CORE_intToString,
};

Key Functionalities of CORE

The CORE object provides a convenient and centralized interface for accessing key functions of the CORE8-16F system, making it easier for developers to initialize, control, and manage the microcontroller's features effectively.

HAL Interface

Drivers