Skip to content

Latest commit

 

History

17 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Version: 1.0 Release Release License GPLv3

hal-avr0-system - AVR0 System Hardware Abstraction

Ask DeepWiki

The hal-avr0-system is a lightweight hardware abstraction library for AVR0 microcontrollers. It provides a clean interface for system clock initialization and software-triggered system reset while hiding direct register-level interaction from higher software layers. The library is intended for projects that want to separate low-level device startup code from application logic and establish a small, reusable system layer for AVR0 targets.

Features

  • System clock configuration for AVR0 devices.
  • Software reset support.
  • Encapsulation of low-level register access.
  • Compact and reusable API for embedded projects.
  • Foundation for layered HAL architectures.

The hal-avr0-system library reduces coupling by providing a focused interface for essential system services. This improves portability inside a project, keeps startup code organized, and makes higher-level modules easier to maintain.

File Structure

File Structure

hal/
└── avr0/
    └── system/
        ├── system.c
        └── system.h

Downloads

The library can be downloaded (zip or tar), cloned or used as submodule in a project.

Type File Description
Library zip / tar AVR0 system library

Using with git clone

mkdir -p ./hal/avr0
git clone https://github.com/0x007E/hal-avr0-system.git ./hal/avr0
mv ./hal/avr0/hal-avr0-system ./hal/avr0/system

Using as git submodule

git submodule add https://github.com/0x007E/hal-avr0-system.git ./hal/avr0/system

Programming

Additional parameters like clock and peripheral speed can be setup in the header file. A user friendly description can be found here.

#include "../hal/avr0/system/system.h"

int main(void)
{
	system_init();

    // Application code
    // ...

    // Trigger a software reset if needed
    system_reset();

    while (1) { }
}

Additional Information

Type Link Description
AVR0-Series pdf megaAVR® 0-series family datasheet

R. GAECHTER