Erfahrung mit simpleIDE

Allgemeine Themen rund um den Propeller Mikrocontroller und Elektronik
Benutzeravatar
PIC18F2550
Beiträge: 2659
Registriert: Fr 30. Sep 2011, 13:08

Erfahrung mit simpleIDE

Beitrag von PIC18F2550 »

Hi,

ich werkel gerade etwas mit simpleIDE rum und bin gleich auf ein problem mit den Kontextmenüs gestoßen.
Diese werden unter Spinn nicht angezeigt unter c und c++ sehr wohl.
So sollte es sein
So sollte es sein
Und so sieht es aus
Und so sieht es aus
In derConsole erscheint diese Meldung.

Code: Alles auswählen

showProjectFile Total Tabs 1 Total Editors 1 
showProjectFile_exit Total Tabs 1 Total Editors 1 
TuxFan !!! Und hier kann mann sich auch wieder den Maschienencode ansehen. :mrgreen: :mrgreen: aber nur wenn ich auf C oder C++ umschalte :x
Gruß
PIC18F2550

drone265/278
Barbarus hic ergo sum, quia non intellegor ulli.
Ein Barbar bin ich hier, da ich von keinem verstanden werde.
ʎɐqǝ ıǝq ɹnʇɐʇsɐʇ ǝuıǝ ɹǝpǝıʍ ǝıu ǝɟnɐʞ ɥɔı ´uuɐɯ ɥo
joergd
Beiträge: 123
Registriert: Fr 20. Dez 2013, 20:08
Wohnort: Ronneburg

Re: Erfahrung mit simpleIDE

Beitrag von joergd »

Wenn es hier um SimpleIDE geht, paßt sicher auch openspin:

Hab gerade mal den ersten Test gemacht. Mit bstc:

Code: Alles auswählen

$ bstc -L lib -D __ADM_FAT -D __ADM_HSS -D __ADM_LAN -D __ADM_RTC -D __ADM_COM -b -O a flash/administra/admflash.spin
Brads Spin Tool Compiler v0.15.3 - Copyright 2008,2009 All rights reserved
Compiled for i386 Linux at 08:17:46 on 2009/07/20
Loading Object admflash
Loading Object adm-fat
Loading Object adm-rtc.spin
Loading Object adm-hss
Loading Object adm-rtc
Loading Object adm-com
Loading Object driver_socket
Loading Object driver_enc28j60
Loading Object glob-numbers
Loading Object glob-con
Program size is 21852 longs
4 Constants folded
Compiled 4739 Lines of Code in 0.273 Seconds
Mit openspin kommt das raus:

Code: Alles auswählen

$ openspin -L lib -D __ADM_FAT -D __ADM_HSS -D __ADM_LAN -D __ADM_RTC -D __ADM_COM -b flash/administra/admflash.spin
Propeller Spin/PASM Compiler 'OpenSpin' (c)2012-2013 Parallax Inc. DBA Parallax Semiconductor.
Compiled on Apr 19 2014 18:36:10
Compiling...
flash/administra/admflash.spin
|-adm-fat.spin
  |-adm-rtc.spin
|-glob-con.spin
Done.
Program size is 8104 bytes
openspin nimmt also nur das erste -D und ignoriert die restlichen. Erstmal schade...
Viele Grüße

Jörg
Benutzeravatar
TuxFan
Beiträge: 1006
Registriert: So 6. Sep 2009, 11:18

Re: Erfahrung mit simpleIDE

Beitrag von TuxFan »

Hallo!
Funktioniert die Benutzung mehrerer #defines denn eventuell mit der IDE?
Gruß
TuxFan
Mir fehlen die Worte.......
Benutzeravatar
yeti
Beiträge: 2103
Registriert: Fr 27. Aug 2010, 14:48
Wohnort: Wrong Planet
Kontaktdaten:

Re: Erfahrung mit simpleIDE

Beitrag von yeti »

Code: Alles auswählen

$ openspin-git-r8 -L lib -D __ADM_FAT -D __ADM_HSS -D __ADM_LAN -D __ADM_RTC -D __ADM_COM -b flash/administra/admflash.spin
Propeller Spin/PASM Compiler 'OpenSpin' (c)2012-2013 Parallax Inc. DBA Parallax Semiconductor.
Compiled on Mar  9 2014 19:43:53
Compiling...
flash/administra/admflash.spin
|-adm-fat.spin
  |-adm-rtc.spin
|-adm-hss.spin
|-adm-wav.spin
|-adm-rtc.spin
|-adm-com.spin
|-glob-con.spin
flash/administra/admflash.spin(304:9) : error : Limit of 64 cases exceeded
Line:
        gc#a_hssPeek: hss_peek                          'register lesen
Offending Item: gc
...es liegt wohl an der OpenSpin-Version, wie das mit den Defines gemacht wird... und das mit den 64-cases kann man entweder Roy bitten nochmal wohlwollend zu überdenken oder irgendwie im Quelltext anders umschiffen... da wird sich schon noch 'ne Lösung finden...

.
.
.

Der Hase sei mit euch!
joergd
Beiträge: 123
Registriert: Fr 20. Dez 2013, 20:08
Wohnort: Ronneburg

Re: Erfahrung mit simpleIDE

Beitrag von joergd »

TuxFan hat geschrieben:Funktioniert die Benutzung mehrerer #defines denn eventuell mit der IDE?
Soweit bin ich noch gar nicht, hab erstmal ein openspin-Paket für mein Gentoo Linux gebaut...
yeti hat geschrieben:...es liegt wohl an der OpenSpin-Version, wie das mit den Defines gemacht wird...
Nein, am admflash.spin. Da hast Du die originale Version benutzt, welche gar keine #ifdefine enthält. Die sind nur in dieser Version drin. Inzwischen hab ich auch entdeckt, daß die neueste Version von openspin nicht mehr beo Google-Code, sondern auf Github liegt. Damit wirds aber nicht besser:

Code: Alles auswählen

$ openspin -L lib -D __ADM_FAT -D __ADM_HSS -D __ADM_LAN -D __ADM_RTC -D __ADM_COM -b flash/administra/admflash.spin
Propeller Spin/PASM Compiler 'OpenSpin' (c)2012-2013 Parallax Inc. DBA Parallax Semiconductor.
Version 1.00.70 Compiled on Apr 21 2014 10:41:12
Compiling...
flash/administra/admflash.spin
|-adm-fat.spin
  |-adm-rtc.spin
|-glob-con.spin
flash/administra/admflash.spin(267:19) : error : Expected a constant name
Line:
LED_OPEN     = gc#HBEAT                                 'led-pin für anzeige "dateioperation"
Offending Item: HBEAT
Da gehen die Defines auch nicht, dafür will er nun noch, daß die Objekt-Definition

Code: Alles auswählen

gc : "glob-con"
vor der ersten Benutzung (also ganz oben) steht.
Viele Grüße

Jörg
Benutzeravatar
TuxFan
Beiträge: 1006
Registriert: So 6. Sep 2009, 11:18

Re: Erfahrung mit simpleIDE

Beitrag von TuxFan »

Moin moin!
Hier gibt es das komplette und neueste Paket "SimpleIDE/PropGCC/OpenSpin" vom 17.01.2014. Hab ich unter Kubuntu 12.04, Xubuntu 13.10 und 14.04 installiert. Entpacken, ins Verzeichnis wechseln und unter sudo die setup.sh und damit die Installation starten. Danach steht alles im Verzeichnis /opt.
Gruß
TuxFan
PS.: Ich hab jetzt mal auf die Schnelle admflash.spin innerhalb von SimpleIDE (obige Version) versucht zu compilieren.
1. Versuch mit fat, com, rtc, lan : Es scheitert wie auch bei Yeti an dem Limit mit 64 cases
2. Versuch mit fat, rtc, lan : wieder Limit mit 64 cases
3. Versuch mit fat, com, lan : compilieren funktioniert
4. Versuch mit fat, hss, com, lan : dito
5. Versuch mit fat, hss, hss-play, com, lan : Limit 64 cases
6. Versuch mit fat, hss, hss-play, com : compilieren funktioniert
7. Versuch mit fat,hss, hss-play, wav, com : dito
8. Versuch mit fat, hss, hss-play, wav, com, rtc : Limit 64 cases
9. Versuch mit fat, hss, hss-play, com, rtc : Limit 64 cases
Mir fehlen die Worte.......
Benutzeravatar
PIC18F2550
Beiträge: 2659
Registriert: Fr 30. Sep 2011, 13:08

Re: Erfahrung mit simpleIDE

Beitrag von PIC18F2550 »

:shock: Das währe ja zum :KOTZEN das würde ja das gesamte Konzept des HIVES sprengen.

Kann mann die Limit mit 64 cases mit einer Verschachtelung nicht erweitern?

Code: Alles auswählen

  repeat
    zeichen := bus_getchar                              '1. zeichen empfangen
    if zeichen                                          ' > 0
      print_char(zeichen)
    else
      zeichen := bus_getchar                            '2. zeichen kommando empfangen
      case zeichen
         0...63 :  case zeichen
                     1: sub__1
        64...127:  case zeichen
                     64: sub_64
Gruß
PIC18F2550

drone265/278
Barbarus hic ergo sum, quia non intellegor ulli.
Ein Barbar bin ich hier, da ich von keinem verstanden werde.
ʎɐqǝ ıǝq ɹnʇɐʇsɐʇ ǝuıǝ ɹǝpǝıʍ ǝıu ǝɟnɐʞ ɥɔı ´uuɐɯ ɥo
Benutzeravatar
yeti
Beiträge: 2103
Registriert: Fr 27. Aug 2010, 14:48
Wohnort: Wrong Planet
Kontaktdaten:

Re: Erfahrung mit simpleIDE

Beitrag von yeti »

joergd hat geschrieben:
yeti hat geschrieben:...es liegt wohl an der OpenSpin-Version, wie das mit den Defines gemacht wird...
Nein, am admflash.spin. Da hast Du die originale Version benutzt, welche gar keine #ifdefine enthält. Die sind nur in dieser Version drin.
Plööt... ich dachte "Einmal svn rennen lassen und ich hab dann das Aktuellste..." und das war's dann also doch nicht... sorry... ich misch mich auch nie nicht wieder ein wenn sich Erwachsene unterhalten... :cry:
joergd
Beiträge: 123
Registriert: Fr 20. Dez 2013, 20:08
Wohnort: Ronneburg

Re: Erfahrung mit simpleIDE

Beitrag von joergd »

TuxFan hat geschrieben:Hier gibt es das komplette und neueste Paket "SimpleIDE/PropGCC/OpenSpin" vom 17.01.2014. Hab ich unter Kubuntu 12.04, Xubuntu 13.10 und 14.04 installiert. Entpacken, ins Verzeichnis wechseln und unter sudo die setup.sh und damit die Installation starten.
Das darin enthaltene openspin ist vom Oktober letzten Jahres, also nicht mehr ganz aktuell. Aber damit funktionieren zumindest die Defines auch bei mir. Ich habe mir dann mal die Unterschiede in den Quellen angesehen und bin auf ein überflüssiges "break" gestoßen:

Code: Alles auswählen

--- OpenSpin.orig/SpinSource/openspin.cpp       2014-04-21 17:27:54.000000000 +0200
+++ OpenSpin/SpinSource/openspin.cpp    2014-04-21 17:31:22.000000000 +0200
@@ -716,7 +716,6 @@
                         CleanupMemory();
                         return 1;
                     }
-                    break;
                 }
             }
         }
Mit dieser Änderung funktionieren erstmal alle Defines in den Argumenten von OpenSpin wieder.
PIC18F2550 hat geschrieben:Kann mann die Limit mit 64 cases mit einer Verschachtelung nicht erweitern?
Das wäre sicher machbar, aber jetzt alle Hive-Quellen ändern, nur weil OpenSpin dieses Linit hat, wäre irgendwie doof. Man kann das Limit in OpenSpin aber ganz einfach ändern:

Code: Alles auswählen

--- OpenSpin.orig/PropellerCompiler/PropellerCompiler.h 2014-04-21 17:27:54.000000000 +0200
+++ OpenSpin/PropellerCompiler/PropellerCompiler.h      2014-04-21 17:29:12.000000000 +0200
@@ -50,8 +50,8 @@
 //#define symbol_table_limit  0x8000
 #define pubcon_list_limit   0x2000
 #define block_nest_limit    8
-#define block_stack_limit   256
-#define case_limit          64
+#define block_stack_limit   1024
+#define case_limit          256
 #define if_limit            16
 #define str_limit           256
 #define str_buffer_limit    0x8000
Damit funktionieren dann bis zu 256 Cases, das sollte auch für unseren Hive genügen.
joergd hat geschrieben:dafür will er nun noch, daß die Objekt-Definition vor der ersten Benutzung (also ganz oben) steht
Da hab ich mir auch mal angesehen, was sich in den Quellen geändert hat. Diesen Teil habe ich auf die Schnelle nicht verstanden, aber im Preprozessor werden jetzt Defines gelöscht. Das habe ich mit folg. Patch wieder entfernt:

Code: Alles auswählen

--- OpenSpin.orig/SpinSource/preprocess.c       2014-04-21 17:27:54.000000000 +0200
+++ OpenSpin/SpinSource/preprocess.c    2014-04-21 17:34:43.000000000 +0200
@@ -864,8 +864,8 @@
 pp_finish(struct preprocess *pp)
 {
     flexbuf_addchar(&pp->whole, 0);
-    pp_clear_define_state(pp);
-    flexbuf_delete(&pp->line);
+//    pp_clear_define_state(pp);
+//    flexbuf_delete(&pp->line);
     return flexbuf_get(&pp->whole);
 }
Wie gesagt weiß ich nicht, was damit erreicht werden sollte. Demnach könnte die Entfernung auch negative Effekte haben. Allerdings funktioniert nun mit allen obigen Änderungen das Compilieren von admnet:

Code: Alles auswählen

$ openspin -L lib -D __ADM_FAT -D __ADM_HSS -D __ADM_LAN -D __ADM_RTC -D __ADM_COM -b flash/administra/admflash.spin
Propeller Spin/PASM Compiler 'OpenSpin' (c)2012-2013 Parallax Inc. DBA Parallax Semiconductor.
Version 1.00.70 Compiled on Apr 21 2014 17:42:33
Compiling...
flash/administra/admflash.spin
|-adm-fat.spin
  |-adm-rtc.spin
|-adm-hss.spin
|-adm-rtc.spin
|-adm-com.spin
|-driver_socket.spin
  |-driver_enc28j60.spin
|-glob-numbers.spin
|-glob-con.spin
Done.
Program size is 22716 bytes
Das Binary ist damit zwar um Einiges größer als mit BST, funktioniert aber auch.
yeti hat geschrieben:Plööt... ich dachte "Einmal svn rennen lassen und ich hab dann das Aktuellste..." und das war's dann also doch nicht... sorry... ich misch mich auch nie nicht wieder ein wenn sich Erwachsene unterhalten...
Das SVN ist halt (noch) nicht aktuell, aber da kannst Du ja nichts für. Du solltest Dich schon noch mit uns unterhalten, ohne Dich hätte ich z.B. OpenSpin auch nicht gleich entdeckt...
Viele Grüße

Jörg
Benutzeravatar
TuxFan
Beiträge: 1006
Registriert: So 6. Sep 2009, 11:18

Re: Erfahrung mit simpleIDE

Beitrag von TuxFan »

Hallo Jörg!
Du scheinst Dich ja mit c (wie Chaos ;) ,ich hab bisher nur eine sehr geringe und widerwillige Affinität zu dieser Sprache) recht gut auszukennen. Wäre es zuviel verlangt, wenn Du Deine oben gesammelten Erkenntnisse im Parallax-Forum Roy Eltham mitteilen würdest. Wohl aktueller openspin Thread hier.
Ich persönlich kann im Moment nur ausprobieren ob es mit dem Compiler und der IDE funktioniert oder nicht. Eingriffe in openspin oder simpleide sind mir leider wegen fast völliger Unkenntnis von c verwehrt.
Gruß
TuxFan
Mir fehlen die Worte.......
Antworten