aboutsummaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
authorchrysn2012-10-18 17:57:59 +0200
committerchrysn2012-10-18 17:58:12 +0200
commitc69916ffb6d515b1dd644830ba27daef4fc75b58 (patch)
treea46efc5067f2bec546514cdfccaddd0587cc6268 /scripts
parentae832b4ee87f2cf94b29f790bc04d7b570109919 (diff)
integrate irq2nvic_h script in buildprocess
Diffstat (limited to 'scripts')
-rwxr-xr-xscripts/irq2nvic_h14
1 files changed, 8 insertions, 6 deletions
diff --git a/scripts/irq2nvic_h b/scripts/irq2nvic_h
index fc5e571..92d63b8 100755
--- a/scripts/irq2nvic_h
+++ b/scripts/irq2nvic_h
@@ -65,7 +65,7 @@ template_nvic_h = '''\
#endif /* {includeguard} */
'''
-template_vector_nvic_h = '''\
+template_vector_nvic_c = '''\
/* This file is part of the libopencm3 project.
*
* It was generated by the irq2nvic_h script.
@@ -110,13 +110,15 @@ def convert(infile, outfile_nvic, outfile_vectornvic):
data['vectortableinitialization'] = ', \\\n '.join('[NVIC_%s_IRQ] = %s_isr'%(name.upper(), name.lower()) for name in irqnames)
outfile_nvic.write(template_nvic_h.format(**data))
- # FIXME: the vector_nvic.h file could just as well be a vector_nvic.c file
- # in lib/, but that'd spread this mechanism over the whole library; just
- # needs some thingking over
- outfile_vectornvic.write(template_vector_nvic_h.format(**data))
+ outfile_vectornvic.write(template_vector_nvic_c.format(**data))
def main():
- convert(open('irq.yaml'), open('nvic.h', 'w'), open('vector_nvic.h', 'w'))
+ infile = sys.argv[1]
+ if not infile.startswith('./include/libopencm3/') or not infile.endswith('/irq.yaml'):
+ raise ValueError("Arguent must match ./include/libopencm3/**/irq.yaml")
+ nvic_h = infile.replace('irq.yaml', 'nvic.h')
+ vector_nvic_c = infile.replace('./include/libopencm3/', './lib/').replace('irq.yaml', 'vector_nvic.c')
+ convert(open(infile), open(nvic_h, 'w'), open(vector_nvic_c, 'w'))
if __name__ == "__main__":
main()