Usage

AVR

>>> from pyavrutils import AvrGcc
>>> cc = AvrGcc(mcu='atmega48')
>>> cc.targets
[u'avr1', u'avr2', u'avr25', u'avr3', u'avr31', u'avr35', u'avr4', u'avr5', u'avr51', u'avr6', u'avrxmega1', u'avrxmega2', u'avrxmega3', u'avrxmega4', u'avrxmega5', u'avrxmega6', u'avrxmega7', u'avrtiny10', u'at90s1200', u'attiny11', u'attiny12', u'attiny15', u'attiny28', u'at90s2313', u'at90s2323', u'at90s2333', u'at90s2343', u'attiny22', u'attiny26', u'at90s4414', u'at90s4433', u'at90s4434', u'at90s8515', u'at90c8534', u'at90s8535', u'attiny13', u'attiny13a', u'attiny2313', u'attiny2313a', u'attiny24', u'attiny24a', u'attiny4313', u'attiny44', u'attiny44a', u'attiny84', u'attiny84a', u'attiny25', u'attiny45', u'attiny85', u'attiny261', u'attiny261a', u'attiny461', u'attiny461a', u'attiny861', u'attiny861a', u'attiny87', u'attiny43u', u'attiny48', u'attiny88', u'at86rf401', u'ata6289', u'at43usb355', u'at76c711', u'atmega103', u'at43usb320', u'attiny167', u'at90usb82', u'at90usb162', u'atmega8u2', u'atmega16u2', u'atmega32u2', u'attiny1634', u'atmega8', u'atmega48', u'atmega48a', u'atmega48pa', u'atmega48p', u'atmega88', u'atmega88a', u'atmega88p', u'atmega88pa', u'atmega8515', u'atmega8535', u'atmega8hva', u'at90pwm1', u'at90pwm2', u'at90pwm2b', u'at90pwm3', u'at90pwm3b', u'at90pwm81', u'at90pwm161', u'atmega16', u'atmega16a', u'atmega161', u'atmega162', u'atmega163', u'atmega164a', u'atmega164p', u'atmega165', u'atmega165a', u'atmega165p', u'atmega168', u'atmega168a', u'atmega168p', u'atmega169', u'atmega169a', u'atmega169p', u'atmega169pa', u'atmega32', u'atmega323', u'atmega324a', u'atmega324p', u'atmega324pa', u'atmega325', u'atmega325a', u'atmega325p', u'atmega325pa', u'atmega3250', u'atmega3250a', u'atmega3250p', u'atmega3250pa', u'atmega328', u'atmega328p', u'atmega329', u'atmega329a', u'atmega329p', u'atmega329pa', u'atmega3290', u'atmega3290a', u'atmega3290p', u'atmega3290pa', u'atmega406', u'atmega64', u'atmega640', u'atmega644', u'atmega644a', u'atmega644p', u'atmega644pa', u'atmega645', u'atmega645a', u'atmega645p', u'atmega649', u'atmega649p', u'atmega649a', u'atmega6450', u'atmega6450a', u'atmega6450p', u'atmega6490', u'atmega6490a', u'atmega6490p', u'atmega64hve', u'atmega16hva', u'atmega16hva2', u'atmega16hvb', u'atmega16hvbrevb', u'atmega32hvb', u'atmega32hvbrevb', u'at90can32', u'at90can64', u'at90pwm216', u'at90pwm316', u'atmega32c1', u'atmega64c1', u'atmega16m1', u'atmega32m1', u'atmega64m1', u'atmega16u4', u'atmega32u4', u'atmega32u6', u'at90usb646', u'at90usb647', u'at90scr100', u'at94k', u'm3000', u'atmega128', u'atmega1280', u'atmega1281', u'atmega1284p', u'atmega128rfa1', u'at90can128', u'at90usb1286', u'at90usb1287', u'atmega2560', u'atmega2561', u'atxmega16a4', u'atxmega16d4', u'atxmega16x1', u'atxmega32a4', u'atxmega32d4', u'atxmega32x1', u'atxmega64a3', u'atxmega64d3', u'atxmega64a1', u'atxmega64a1u', u'atxmega128a3', u'atxmega128b1', u'atxmega128d3', u'atxmega192a3', u'atxmega192d3', u'atxmega256a3', u'atxmega256a3b', u'atxmega256a3bu', u'atxmega256d3', u'atxmega128a1', u'atxmega128a1u', u'attiny4', u'attiny5', u'attiny9', u'attiny10', u'attiny20', u'attiny40']
>>> cc.options_generated()
['avr-gcc', '-Df_cpu=4000000', '-mmcu=atmega48', '--std=gnu99', '-Wl,--relax', '-Wl,--gc-sections', '-ffunction-sections', '-fdata-sections', '-fno-inline-small-functions', '-Os']
>>> cc.build('int main(){}')
>>> cc.output
'/tmp/pyavrutils_kkuDCB.elf'
>>> cc.size()
AvrSize <prog:80 bytes 2.0% mem:0 bytes 0.0% >
>>> cc.size().program_bytes
80
>>> cc.mcu='atmega168'
>>> cc.options_generated()
['avr-gcc', '-Df_cpu=4000000', '-mmcu=atmega168', '--std=gnu99', '-Wl,--relax', '-Wl,--gc-sections', '-ffunction-sections', '-fdata-sections', '-fno-inline-small-functions', '-Os']
>>> cc.build('int main(){}')
>>> cc.output
'/tmp/pyavrutils_kkuDCB.elf'
>>> cc.size().program_bytes
132

arduino

>>> from pyavrutils import Arduino
>>> cc = Arduino(board='mini')
>>> cc.build('void setup(){};void loop(){}')
>>> cc.output
path('/tmp/pyavrutils_bJXXaG/pyavrutils_tSXb4Y/pyavrutils_tSXb4Y.elf')
>>> cc.size()
AvrSize <prog:436 bytes 2.7% mem:9 bytes 0.9% >
>>> cc.size().program_bytes
436
>>> cc.board='pro'
>>> cc.build('void setup(){};void loop(){}')
>>> cc.output
path('/tmp/pyavrutils_brP9G4/pyavrutils_asCNCd/pyavrutils_asCNCd.elf')
>>> cc.size().program_bytes
460
>>> cc.warnings
[u'build/core/IPAddress.h:51:55: warning: dereferencing type-punned pointer will break strict-aliasing rules', u'build/core/IPAddress.h:52:108: warning: dereferencing type-punned pointer will break strict-aliasing rules', u'build/core/IPAddress.h:52:75: warning: dereferencing type-punned pointer will break strict-aliasing rules', u'build/core/Tone.cpp:108:45: warning: only initialized variables can be placed into program memory area']

display warnings on console:

$ python -m pyavrutils.cli.arduino.build /usr/share/arduino/examples/4.Communication/Dimmer/Dimmer.ino
backend: arscons
MCU: atmega168

=============================================
SIZE
=============================================
program: 2406
data: 192

=============================================
WARNINGS
=============================================

core
-------------------
build/core/IPAddress.h:51:55: warning: dereferencing type-punned pointer will break strict-aliasing rules
build/core/IPAddress.h:52:108: warning: dereferencing type-punned pointer will break strict-aliasing rules
build/core/IPAddress.h:52:75: warning: dereferencing type-punned pointer will break strict-aliasing rules
build/core/Tone.cpp:108:45: warning: only initialized variables can be placed into program memory area

lib
-------------------


sketch
-------------------

Table Of Contents

Previous topic

About

Next topic

Examples

This Page