Python package for generation of AVR8 project
Project description
AVR project skeleton generator
gen_avr8 is tool for generation of AVR8 project skeleton for development of embedded applications.
Developed in python code.
The README is used to introduce the tool modules and provide instructions on how to install the tool modules, any machine dependencies it may have and any other information that should be provided before the modules are installed.
Table of Contents
- Installation
- Dependencies
- Usage
- Supported MCUS
- Tool structure
- Docs
- Contributing
- Copyright and Licence
Installation
Used next development environment
Currently there are three ways to install package
- Install process based on using pip mechanism
- Install process based on build mechanism
- Install process based on setup.py mechanism
- Install process based on docker mechanism
Install using pip
Python is located at pypi.org.
You can install by using pip
#python3
pip3 install gen-avr8
Install using build
Navigate to release page download and extract release archive.
To install gen_avr8 type the following
tar xvzf gen_avr8-x.y.z.tar.gz
cd gen_avr8-x.y.z/
# python3
wget https://bootstrap.pypa.io/get-pip.py
python3 get-pip.py
python3 -m pip install --upgrade setuptools
python3 -m pip install --upgrade pip
python3 -m pip install --upgrade build
pip3 install -r requirements.txt
python3 -m build --no-isolation --wheel
pip3 install ./dist/gen_avr8-*-py3-none-any.whl
rm -f get-pip.py
chmod 755 /usr/local/lib/python3.9/dist-packages/usr/local/bin/gen_avr8_run.py
ln -s /usr/local/lib/python3.9/dist-packages/usr/local/bin/gen_avr8_run.py /usr/local/bin/gen_avr8_run.py
Install using py setup
Navigate to release page download and extract release archive.
To install gen_avr8 locate and run setup.py with arguments
tar xvzf gen_avr8-x.y.z.tar.gz
cd gen_avr8-x.y.z
# python3
pip3 install -r requirements.txt
python3 setup.py install_lib
python3 setup.py install_egg_info
Install using docker
You can use Dockerfile to create image/container.
Dependencies
gen_avr8 tool requires other modules/libraries
Usage
Short example of usage gen_avr8 tool
Create workspace directory Blink
mkdir Blink
cd Blink/
Crete AVR8 project files, by using parameters
python gen_avr8_run.py -n Blink -t app
Running build process
cd build/
make all
In case for missing subtool from toolchain, please install the following packages with your favorite package manager
- gcc-avr
- binutils-avr
- gdb-avr
- avr-libc
- avrdude
Install directly from the shell as root user (debian)
apt-get install gcc-avr binutils-avr gdb-avr avr-libc avrdude
Supported MCUS
Current list of supported microcontrollers
attiny2313 atmega128 at90s2313
attiny24 atmega1280 at90s2333
attiny25 atmega1281 at90s4414
attiny26 atmega1284p at90s4433
attiny261 atmega16 at90s4434
attiny44 atmega163 at90s8515
attiny45 atmega164p at90s8535
attiny461 atmega165
attiny84 atmega165p
attiny85 atmega168
attiny861 atmega169
atmega169p
atmega2560
atmega2561
atmega32
atmega324p
atmega325
atmega3250
atmega329
atmega3290
atmega32u4
atmega48
atmega64
atmega640
atmega644
atmega644p
atmega645
atmega6450
atmega649
atmega6490
atmega8
atmega8515
atmega8535
atmega88
Tool structure
gen_avr8 is based on Template mechanism
Generator structure
gen_avr8/
├── conf/
│ ├── fosc.yaml
│ ├── gen_avr8.cfg
│ ├── gen_avr8.logo
│ ├── gen_avr8_util.cfg
│ ├── mcu.yaml
│ ├── project_app.yaml
│ ├── project_lib.yaml
│ └── template/
│ ├── adc/
│ ├── app/
│ │ ├── cflags.template
│ │ ├── csflags.template
│ │ ├── Makefile.template
│ │ ├── module.template
│ │ ├── objects.template
│ │ ├── ocflags.template
│ │ ├── odflags.template
│ │ ├── sources.template
│ │ ├── subdir.template
│ │ └── tools.template
│ ├── eeprom/
│ ├── gpio/
│ ├── lib/
│ │ ├── aflags.template
│ │ ├── avr_lib_c.template
│ │ ├── avr_lib_h.template
│ │ ├── cflags.template
│ │ ├── csflags.template
│ │ ├── Makefile.template
│ │ ├── objects.template
│ │ ├── ocflags.template
│ │ ├── odflags.template
│ │ ├── sources.template
│ │ ├── subdir.template
│ │ └── tools.template
│ └── uart
├── __init__.py
├── log/
│ └── gen_avr8.log
├── pro/
│ ├── __init__.py
│ ├── mcu_selector.py
│ ├── module_type.py
│ ├── osc_selector.py
│ ├── read_template.py
│ ├── template_dir.py
│ ├── template_type.py
│ └── write_template.py
├── py.typed
└── run/
└── gen_avr8_run.py
12 directories, 41 files
Code coverage
Name | Stmts | Miss | Cover |
---|---|---|---|
gen_avr8/__init__.py |
76 | 12 | 84% |
gen_avr8/pro/__init__.py |
81 | 6 | 93% |
gen_avr8/pro/mcu_selector.py |
53 | 2 | 96% |
gen_avr8/pro/module_type.py |
49 | 2 | 96% |
gen_avr8/pro/osc_selector.py |
53 | 2 | 96% |
gen_avr8/pro/read_template.py |
38 | 2 | 95% |
gen_avr8/pro/template_dir.py |
37 | 2 | 95% |
gen_avr8/pro/template_type.py |
45 | 3 | 93% |
gen_avr8/pro/write_template.py |
89 | 2 | 98% |
Total | 521 | 33 | 94% |
Docs
More documentation and info at
Contributing
Copyright and Licence
Copyright (C) 2018 - 2024 by vroncevic.github.io/gen_avr8
gen_avr8 is free software; you can redistribute it and/or modify it under the same terms as Python itself, either Python version 3.x or, at your option, any later version of Python 3 you may have available.
Lets help and support PSF.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file gen_avr8-2.6.2.tar.gz
.
File metadata
- Download URL: gen_avr8-2.6.2.tar.gz
- Upload date:
- Size: 32.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.0 CPython/3.12.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c3b949cf45f14d9be5ed1c8b96f4f649680cb7ebef211915c54a76d12b187016 |
|
MD5 | 251e9867a23f71452e34324b2ff139a5 |
|
BLAKE2b-256 | a44084a0c9b7e141b6632e347a484ab1dc94658ea8697766eed70ae9b24f9389 |
File details
Details for the file gen_avr8-2.6.2-py3-none-any.whl
.
File metadata
- Download URL: gen_avr8-2.6.2-py3-none-any.whl
- Upload date:
- Size: 53.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.0 CPython/3.12.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d86cea535f01180fbe0354656d0289abf4d880def11624b771134009bacb3f73 |
|
MD5 | 2afa46609f6e05ab73bd37af9f87d935 |
|
BLAKE2b-256 | 42ce31b626e4af2505a52b0aae65d0eb1334e9a147b1e41e482a15b0193e0d29 |