-
Notifications
You must be signed in to change notification settings - Fork 1
/
avrdude.py
39 lines (29 loc) · 998 Bytes
/
avrdude.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
from SCons.Script import Builder
def generate(env, **kwargs):
setup_environment(env)
setup_tools(env)
add_flags(env)
add_commands(env)
def exists(env):
return 1
def setup_environment(env):
if env.has_key('AVRPATH'):
env.AppendENVPath('PATH',env['AVRPATH'])
def setup_tools(env):
if None != env.WhereIs('avrdude'):
env['AVRDUDE'] = 'avrdude'
else:
print "ERROR: avrdude not found on path"
def add_flags(env):
env['DUDEFLAGS'] = env['PROGRAMMER'] + ' -p $MCU'
def add_commands(env):
def read_fuse(env,source=None):
env.Command('read_fuses',None,'$AVRDUDE $DUDEFLAGS -qq -U lfuse:r:/dev/stdout:h -U efuse:r:/dev/stdout:h -U hfuse:r:/dev/stdout:h')
def flash(env,source):
assert(len(source)==1)
env.Command('flash',source,'$AVRDUDE $DUDEFLAGS -qq -U flash:w:$SOURCE:i')
def erase_device(env,source=None):
env.Command('erase',None,'$AVRDUDE $DUDEFLAGS -e')
env.AddMethod(read_fuse, "ReadFuses")
env.AddMethod(flash, "Flash")
env.AddMethod(erase_device, "Erase")