# HG changeset patch # User Windel Bouwman # Date 1372493142 -7200 # Node ID 8b2f20aae086ecc743bc398153d536203f3eaa2a # Parent 6c6bf8890d8ac6cd8baa58185d109295746001f8 cleaning of files diff -r 6c6bf8890d8a -r 8b2f20aae086 python/arm_cm3.py --- a/python/arm_cm3.py Fri Jun 28 16:49:38 2013 +0200 +++ b/python/arm_cm3.py Sat Jun 29 10:05:42 2013 +0200 @@ -241,6 +241,8 @@ mnemonic = 'pop' def __init__(self, regs): self.regs = regs + def __repr__(self): + return '{0} {{{1}}}'.format(self.mnemonic, self.regs) def encode(self): reg_list = 0 P = 0 diff -r 6c6bf8890d8a -r 8b2f20aae086 python/astviewer.py --- a/python/astviewer.py Fri Jun 28 16:49:38 2013 +0200 +++ b/python/astviewer.py Sat Jun 29 10:05:42 2013 +0200 @@ -4,8 +4,8 @@ class AstModelBuilder: def __init__(self): - self.functionIco = QIcon(QPixmap('functionicon.png').scaled(32, 32)) - self.variableIco = QIcon(QPixmap('variableicon.png').scaled(32, 32)) + self.functionIco = QIcon(QPixmap('icons/functionicon.png').scaled(32, 32)) + self.variableIco = QIcon(QPixmap('icons/variableicon.png').scaled(32, 32)) self.visitor = Visitor(self.p1, self.p2) self.model = QStandardItemModel() self.model.setHorizontalHeaderLabels(['Object', 'Type']) diff -r 6c6bf8890d8a -r 8b2f20aae086 python/bcanalyzer.py --- a/python/bcanalyzer.py Fri Jun 28 16:49:38 2013 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,19 +0,0 @@ -#!/usr/bin/python - -import sys, os, argparse -from ppci.core import BitcodeReader - -if __name__ == '__main__': - parser = argparse.ArgumentParser(description='Bitcode analyzer') - parser.add_argument('bitcodefile', type=str, help='the bitcode file to analyze') - args = parser.parse_args() - - try: - with open(args.bitcodefile, 'rb') as f: - bcr = BitcodeReader(f) - module = bcr.parseModule() - except IOError: - print('Failed to load {0}'.format(args.bitcodefile)) - sys.exit(3) - print(module) - diff -r 6c6bf8890d8a -r 8b2f20aae086 python/build.py --- a/python/build.py Fri Jun 28 16:49:38 2013 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,21 +0,0 @@ -#!/usr/bin/python - -import sys, os, argparse - -# Compiler imports: -from compiler import Compiler -from project import Project - -if __name__ == '__main__': - parser = argparse.ArgumentParser(description='Build tool to build projects') - parser.add_argument('project', type=str, help='the project to be build') - args = parser.parse_args() - - try: - project = Project(args.project) - except IOError: - print('Failed to load {0}'.format(args.project)) - sys.exit(3) - pc = Compiler() - pc.compileProject(project) - diff -r 6c6bf8890d8a -r 8b2f20aae086 python/c3/builder.py --- a/python/c3/builder.py Fri Jun 28 16:49:38 2013 +0200 +++ b/python/c3/builder.py Sat Jun 29 10:05:42 2013 +0200 @@ -16,6 +16,7 @@ def build(self, src): """ Create IR-code from sources """ pkg = self.parser.parseSource(src) + self.pkg = pkg if not pkg: return if not self.al.analyzePackage(pkg): diff -r 6c6bf8890d8a -r 8b2f20aae086 python/chip.png Binary file python/chip.png has changed diff -r 6c6bf8890d8a -r 8b2f20aae086 python/error.png Binary file python/error.png has changed diff -r 6c6bf8890d8a -r 8b2f20aae086 python/functionicon.png Binary file python/functionicon.png has changed diff -r 6c6bf8890d8a -r 8b2f20aae086 python/hardware.png Binary file python/hardware.png has changed diff -r 6c6bf8890d8a -r 8b2f20aae086 python/icons.py --- a/python/icons.py Fri Jun 28 16:49:38 2013 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,8 +0,0 @@ - - -saveicon = b'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\nveAfetNmUUsM6bsAAAAASUVORK5CYII=\n' - -loadicon = b'iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAACsElEQVR42u2Xf0hTURTHv++ZczlD\n6SeUREVRiRT9gFWM1rbAwr+iYAathPqjMosIQQqJQAhLLDI0CMwflRa1vyQst0oNLKxhCGWR9UfB\nwFCRaqC2vc6d7+1tr/7YnuwW5IEv95y79875vHvP7t4E/GUTpgGmAaL8vaRzpDlx3iuRXpEOkz5N\nFWDhrHR8bL+LtGXLKUqRJcoKyeUk1Q8Fges3gLIKeGlm+1QBHA4rPJ7WxG4eHqLlWoJRcvfJaPHY\nV1LPbwB5Dnja7if+BFUVQEdX7OqETdL48vD+C/DODze5e9iUCmAjgDt6FzJ+m/gG5GyD9OEz1lPY\nqwLQFrQ1JR+Amc0JPO0O941XBbAQQB0nABcBvNACbCGAWk4ABwngpRbATACXEksU7rsJGlnzUSZB\nkEdAbW9lXgnJtx0jAJ8WYCMBnE8MIESFx7+rRQRRLiaPESANmL2EAF6jgaLSCIA9Bx53sZokJpEY\nm4zFzP85BgTn0mUZUL9y7CPpz8CCvAJdA0DrE6D6NnxsLp9UaV2KVfW7Jy8QWcGUyUJhP0piFJA0\nmw6iAn19EAgAmdkICpRw5EEdsjabgXQDYo9gRZENVxVeIJO8Gjqs7y2wxoJ+IXUGxkcHkDrTqC+R\nXrt5D3AVoYU9yJs+L1bnruQLUFJO+34NpxlAc2MVCly7+ALkHQAedSKfAZwq3o/KK2X8ikvUT4ss\nkPyDWMwAtm5ai47uZn4Ag8PAAgvoxxzzGUCGMQ1DI89gMBr4ADymtwHHIXSSa1UOIt/zBqwz5/IB\nqG4Bjl9EDblFCkDN5ZM4csLJB+DoBaDWDTp3cVUBcDntaLx1hg/AzlKgvQc7yH2oAGSbjOg/WwjT\nvMzkFvdT65U34UdgDCtYGP1avoFUSMpK8gKw7q8n9bLgn/pj8n8C/ALihrxpNKi7hQAAAABJRU5E\nrkJggg==\n' - -newicon = b'iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAADSUlEQVR42r2XO0xaURjHLzYmdXRi\nYXBwdDScJl3djQNLw0TSAR88FR9JU6P4QKMCaTqQdGgXsQQMQXFwcGXhCCG+4iNEo6mDMZL45kK/\n76THUO+9Qi/efskJcm4O3+/+v8f51Al/LBaLmTs6Or43gAkq7eHhoXh2dmZva2v7WusZHf9jZGTE\nPz4+blfjuFwuC6IoCsViUbi8vCwDhM1oNH75V4AAANjUAJRKJeYc183NjXB1dVU+Pj7+CIp+qxlg\neHg44PV6VQHg2z8+PjKAu7s7oampSQAVxL29PUtnZ+eP/waA6/r6WtDr9UyJ09NTcXd319LV1aUI\n8QQwNDQUmJiYqBsA5BcMBgPLC4Q4OTkRt7e3LSaTSRbiCWBwcDAwOTmpOgfQOVSBcHFxIbS0tLB9\nDgH5IGYyGYvZbJZAvAoAOsL4IwTEngGxH9fp2MJnhUJBTKfT5t7e3rAsgMfjYQB4oB4V+OJAuI+A\naGtra6nz8/P3o6OjJQnAwMBAYGpqSjUAh8Aw8JLE3OBqIMTGxgbNZrPE5/MVFQFUe6+A4M5xoWMe\nIg4ASksB+vv761aAG3eKMFwBBFhfX6ebm5sEyl0eAHOgjqvgRSBUA3KAghHouFIAt9vNFNACgIci\nmUxSKEcyNjYmBXC5XK8Wgudvz8OAAJgDigD1lGE155UAsiFwOp2vUgVKzisBZJMQAdR2wlqco62s\nrNBcLkfgzpECOByOuhXg5cc733NLJBIMQLYP2O12BqB0uJrjyk8li8fjdGtri4AfeQAMAUpXayJW\ne2MlANlWbLPZGAB2LPagCoQapZaXl+nOzg6ZmZmRB8CBhANoYTB5U5iQyOzsrDwAjmR4hWpl0WiU\nwpxI5ubmpAAwKLAQ4HWqlUUiEbq/v0/m5+flATAEWiqwtLREDw4OyMLCgjyA1iEIh8P08PCQ+P1+\nKUBPTw8D0DIEi4uL9OjoiASDQSlAd3c3A7i/v9cUAKsgFApJAaxWa2B6etp2e3v71yGlen++X60v\n4EwAAOlUKvUO+oEUoLW19UNfX9/nxsbGhsoOxy+Wl75X2+drdXX1J/zX9AkmI+lU3N7e/hYSxAAT\n0Rs+FdX69rXsA1y5ubn5Vz6fL1Q++w30VO4/0/9IewAAAABJRU5ErkJggg==\n' - diff -r 6c6bf8890d8a -r 8b2f20aae086 python/icons/chip.png Binary file python/icons/chip.png has changed diff -r 6c6bf8890d8a -r 8b2f20aae086 python/icons/error.png Binary file python/icons/error.png has changed diff -r 6c6bf8890d8a -r 8b2f20aae086 python/icons/functionicon.png Binary file python/icons/functionicon.png has changed diff -r 6c6bf8890d8a -r 8b2f20aae086 python/icons/hardware.png Binary file python/icons/hardware.png has changed diff -r 6c6bf8890d8a -r 8b2f20aae086 python/icons/logo.png Binary file python/icons/logo.png has changed diff -r 6c6bf8890d8a -r 8b2f20aae086 python/icons/variableicon.png Binary file python/icons/variableicon.png has changed diff -r 6c6bf8890d8a -r 8b2f20aae086 python/ide.py --- a/python/ide.py Fri Jun 28 16:49:38 2013 +0200 +++ b/python/ide.py Sat Jun 29 10:05:42 2013 +0200 @@ -16,8 +16,6 @@ import testc3 import c3 -lcfospng = base64.decodestring(b'iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A\n/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sJEhMKBk7B678AAAA/SURBVFjD\n7dbBCQAgDATBi9h/y7EFA4Kf2QLCwH1S6XQu6sqoujublc8BAAAAAAAAAAB8B+zXT6YJAAAAAKYd\nWSgFQNUyijIAAAAASUVORK5CYII=\n') - class BuildOutput(QTextEdit): """ Build output component """ def __init__(self, parent=None): @@ -33,7 +31,7 @@ model = QStandardItemModel() self.setModel(model) self.clicked.connect(self.itemSelected) - self.errorIcon = QIcon('error.png') + self.errorIcon = QIcon('icons/error.png') self.model = QStandardItemModel() self.model.setHorizontalHeaderLabels(['Message', 'Row', 'Column']) self.setModel(self.model) @@ -64,9 +62,7 @@ self.treeview.setContextMenuPolicy(Qt.CustomContextMenu) l = QVBoxLayout(self) l.addWidget(self.treeview) - pm = QPixmap() - pm.loadFromData(lcfospng) - self.projectIcon = QIcon(pm) + self.projectIcon = QIcon('icons/logo.png') # Connect signals: self.treeview.activated.connect(self.activate) self.treeview.customContextMenuRequested.connect(self.contextMenu) @@ -126,9 +122,7 @@ def __init__(self, parent=None): super(Ide, self).__init__(parent) self.setWindowTitle('LCFOS IDE') - icon = QPixmap() - icon.loadFromData(lcfospng) - self.setWindowIcon(QIcon(icon)) + self.setWindowIcon(QIcon('icons/logo.png')) # Create menus: mb = self.menuBar() @@ -170,7 +164,7 @@ # About dialog: self.aboutDialog = AboutDialog() - self.aboutDialog.setWindowIcon(QIcon(icon)) + self.aboutDialog.setWindowIcon(QIcon('icons/logo.png')) # Create actions: def addMenuEntry(name, menu, callback, shortcut=None): a = QAction(name, self) @@ -361,7 +355,6 @@ self.buildFile() self.builderrors.setErrorList(self.diag.diags) - #self.astViewer.setAst(mods[0]) for err in self.diag.diags: self.buildOutput.append(str(err)) ce = self.activeMdiChild() diff -r 6c6bf8890d8a -r 8b2f20aae086 python/logo.png Binary file python/logo.png has changed diff -r 6c6bf8890d8a -r 8b2f20aae086 python/stm32f4/blink.c3 --- a/python/stm32f4/blink.c3 Fri Jun 28 16:49:38 2013 +0200 +++ b/python/stm32f4/blink.c3 Sat Jun 29 10:05:42 2013 +0200 @@ -1,25 +1,30 @@ +// This file blinks a LED on the STM32F4 discovery board. +package blink; -// This file blinks a LED on the STM32F4 discovery board. - -package blink; +// import bla +//type struct TIM2_s { +// uint32_t SR; +//}; // Globals: var int divider; +//const TIM2_s *TIM2; // Functions: function void tim2_handler() { - divider = 0; -/* if (TIM2->SR & TIM_SR_UIF) +// if (TIM2->SR & TIM_SR_UIF) + if (true) { - divider++; + divider = divider + 1; + /* if (divider > 100000) { divider = 0; GPIOD->ODR ^= (1 << 13); } + */ } - */ } function void main() diff -r 6c6bf8890d8a -r 8b2f20aae086 python/testasm.py --- a/python/testasm.py Fri Jun 28 16:49:38 2013 +0200 +++ b/python/testasm.py Sat Jun 29 10:05:42 2013 +0200 @@ -183,10 +183,7 @@ self.feed('add r4, r5, 0') self.feed('loop: add r6, r4, 7') self.feed('cmp r6, 5') - #self.a.assemble('ble loop') - #self.assertEqual(bytes.fromhex('0325 2c1c e61d 052e fcdd'), self.a.binout) - self.assertEqual(bytes.fromhex('0325 2c1c e61d 052e'), self.a.binout) # without branch - + self.check('0325 2c1c e61d 052e') if __name__ == '__main__': #cProfile.run('unittest.main()') diff -r 6c6bf8890d8a -r 8b2f20aae086 python/variableicon.png Binary file python/variableicon.png has changed diff -r 6c6bf8890d8a -r 8b2f20aae086 python/zcc.py --- a/python/zcc.py Fri Jun 28 16:49:38 2013 +0200 +++ b/python/zcc.py Sat Jun 29 10:05:42 2013 +0200 @@ -11,35 +11,41 @@ parser.add_argument('source', type=argparse.FileType('r'), help='the source file to build') parser.add_argument('-d', '--dumpir', action='store_true', help="Dump IR-code") parser.add_argument('-o', '--output', help='Output file', metavar='filename') -args = parser.parse_args() -# Front end: -src = args.source.read() -diag = ppci.DiagnosticsManager() -c3b = c3.Builder(diag) +def main(args): + # Front end: + src = args.source.read() + args.source.close() + diag = ppci.DiagnosticsManager() + c3b = c3.Builder(diag) -ircode = c3b.build(src) -if not ircode: - diag.printErrors(src) - sys.exit(1) + ircode = c3b.build(src) + if not ircode: + diag.printErrors(src) + sys.exit(1) -if args.dumpir: - ircode.dump() + if args.dumpir: + ircode.dump() + + # Code generation: -# Code generation: + #cg = codegen.CodeGenerator(arm_cm3.armtarget) + outs = outstream.TextOutputStream() + cg = codegenarm.ArmCodeGenerator(outs) + obj = cg.generate(ircode) -#cg = codegen.CodeGenerator(arm_cm3.armtarget) -outs = outstream.TextOutputStream() -cg = codegenarm.ArmCodeGenerator(outs) -obj = cg.generate(ircode) + if args.dumpir: + outs.dump() -if args.dumpir: - outs.dump() + if args.output: + output_filename = args.output + else: + output_filename = 'lc.output' -if args.output: - output_filename = args.output -else: - output_filename = 'lc.output' + # TODO: store data -# TODO: store data +if __name__ == '__main__': + args = parser.parse_args() + print(args, type(args)) + main(args)