none
Embedded-Software mit VS2010, C++ möglich? RRS feed

  • Frage

  • Hallo,

    man kennt sich in C# etwas aus,
    man kennt sich in C++ etwas aus,
    nicht jedoch in der Embedded Welt.

    Kennt jemand gute Bücher, Einstiegstutorials?
    Evtl. auch Einstiegsstarterkit bzgl. Hardware.
    Das lernt man ja nirgends, die Chance zum einarbeiten gibt einem niemand.

    Die Problematik heute.
    Mit On-the-Job Training, europaweiten Schulungen und intensivem Mentoring sollen Nachwuchskräfte damit schnell auf Karrierekurs kommen.
    -> Das macht keine Mittelstandsfirma.
    -> Die Zeit gibt einem niemand.


    http://www.karriere-ing.de/uni-job/article/85893/0/Wie_man_zum_Embedded-Software-Spezialisten_wird/

    Grüße Andy

    Dienstag, 19. Februar 2013 18:45

Antworten

  • "Windows Embedded" ist letzltich auch von der Hardware nur ein "normaler PC". Halt in aller Regel entsprechend klein gehalten, und nicht so erweiterbar wie ein "handelsüblicher PC". Solche "Mini PCs" findet man z.B. in modernen Logicanalyzern oder Speicheroszilloskopen oder auch Fahrscheinautomaten.

    Windows Embedded basiert auf ganz normalen WinXP-Win7. (http://de.wikipedia.org/wiki/Windows_Embedded)

    Wenn Du auf Windows Embedded Compact (war WinCE) möchtest, benötigast Du eine entsprechend kompatible Hardware. Zu der kann ich aber nicht viel sagen, da ich mit CE noch nichts gemacht habe.

    Für beides ist aber VisualStudio ausreichend.


    Best regards

    Bordon

    Note: Posted code pieces may not have a good programming style and may not perfect. It is also possible that they do not work in all situations. Code pieces are only indended to explain something particualar.

    • Als Antwort markiert Andy Bauer Dienstag, 5. März 2013 21:13
    Montag, 25. Februar 2013 09:06

Alle Antworten

  • Nun die embedded Welt ist in der Art erst einmal anders, dass nicht zwingend ein Betriebssystem verwendet werden mußt. Du hast einen Controller mit einer wie auch immer gearteten Hardware drumherum, die irgendetwas machen soll.

    Generell sind die Unterschiede zwischen VC2010 und einer modernen Entwicklungsumgebung für z.B. 8051 Derivate, C166/XC166/..., ARM nicht wirklich so groß. Der Unterschied im Embedded Bereich ist eher der, dass die Limitierung der Hardware (RAM / FLASH) durchaus noch eine Berücksichtigung finden muß, gerade blei kleineren Controllern. Moderne Umgebungen mit entsprechend deignter Hardware bieten ebenfalls die Möglichkeit z.B. über JTAG den Code des Controller zu debuggen, wie es bei VC2010 ebenfalls ist.

    Ob Bücher alleine der richtige Weg sind weis ich nicht. Ich persönlich würde sagen nein. Man sollte mit einem Controller,der auf irgendeiner Platie verbaut ist mal rumspielen, und dort aktiv was lernen. Dieses aktive lernen ist das wichtige, und das wird mit Büchern nicht klappen. C/C++ kannst u ja schon, daher sind eigentlich nur die unterschiede zwischen der Windows Welt in Deinem Fall und einer Embedded Welt mit einem Mikrokontroller.

    Ein einfacher einstieg in die welt der Mikrocontroller wäre die Atmel ATMega Serie. Da gibt es für wenig Geld ein nettes Experimentierboard

    http://www.ecrostech.com/AtmelAvr/DragonRider/index.htm 

    In Verbindung mit dem AVR DRagon (gibt es bei Reichelt in Deutschland) und dem AVR Studio, dass es bei Atmel kostenlos gibt hat man viel Möglichkeiten rumzuspielen, an ein paar Portpins ein AD oder DA Wandler löten, und irgendwelche Signale erfassen oder erzeugen, auf eiem LCD was anzeigen, ... In der Embedded Welt ist es aber so, dass Du in der Regel nicht um das Datenblatt des Controllers herum kommst. Die von mir genannten Atmel Chips haben den vorteil sie sind einfach zu handhaben.

    Andere Controller, wie z.B. Arm7 Devices, oder noch schlimmer Arm9 benötigen da schon etwas mehr Erfahrung. Bei diesen Devices wird man kaum um eine Änderung des Starupcodes herumkommen, um die nötigen anpassungen an die eigene Hardware durchzuführen.

    Als weitere Lernmöglichkeit nenne ich noch die Firma Phytec. Die bieten verschiedense Experimentierboards 7 Starterkits an. Ein vorteil ist, dass bei diesen Starterkits alles dabei ist, incl. einer "Try Out" Entwicklungssoftware, und einer guten Dokumentation der Hardware. Die Produkte von Phytec haben aber ihren Preis, die Produkte sind aber auch eher für Firmen gedacht als einen Hobbyanwender.

    Um ie Frage aus Deiner Überschrift noch zu beantworten: "Embedded-Software mit VS2010, C++ möglich?"

    Die Antwort: VC2010 ist dafür nicht geeignet. C++ auf Embedded Systemen ist aber Möglich und durchaus Sinnvoll. Moderne Entwicklungsumgebungen für uC's können auch in der Regel C++.


    Best regards

    Bordon

    Note: Posted code pieces may not have a good programming style and may not perfect. It is also possible that they do not work in all situations. Code pieces are only indended to explain something particualar.

    Mittwoch, 20. Februar 2013 06:24
  • Hallo Bordon,

    zunächst Danke für die Antwort.

    Vielleicht bekomme ich auch etwas durcheinander.

    >Die Antwort: VC2010 ist dafür nicht geeignet.
    >C++ auf Embedded Systemen ist aber Möglich und durchaus Sinnvoll. >Moderne Entwicklungsumgebungen für uC's können auch in der Regel C++.

    Mit welchem Tool entwickle ich dann für Windows Embedded 7 oder 8, falls es das gibt?

    Viele Grüße Andy

    Mittwoch, 20. Februar 2013 18:52
  • Mit welchem Tool entwickle ich dann für Windows Embedded 7 oder 8, falls es das gibt?

    Windows Embedded 7 oder 8 ist auch nur Windows, deshalb kannst Du dafür VS nehmen.


    Jochen Kalmbach (MVP VC++)
    Donnerstag, 21. Februar 2013 06:00
  • Mit welchem Tool entwickle ich dann für Windows Embedded 7 oder 8, falls es das gibt?

    Nun Windows Embedded ist für mich auch etwas anderes als C/C++  entwicklung von Embedded Software. Wie Jochen sagte Windows Embedded ist Windows, dafür kann VC natürlich verwendet werden.

    Für Embedded Systeme, also ein Stück Hardware mit einem Controller drauf, halt ein Embedded System für mich, wird eine Toolchain benötigt, die auf den verwendeten controller zugeschnitten ist. Daher auch meine ausführung mitdem Debuggen via JATG, ... ich habe mit meiner 1. Antwort tief in der Hardware gesteckt in Systemen die nichts mit Windows im entferntesten zu tun haben.


    Best regards

    Bordon

    Note: Posted code pieces may not have a good programming style and may not perfect. It is also possible that they do not work in all situations. Code pieces are only indended to explain something particualar.


    • Bearbeitet Bordon Donnerstag, 21. Februar 2013 10:42
    Donnerstag, 21. Februar 2013 10:35
  • Hallo Bordon,

    >Nun Windows Embedded ist für mich auch etwas anderes als C/C++  entwicklung von

    >Embedded Software. Wie Jochen sagte Windows Embedded ist Windows, dafür kann VC

    >natürlich verwendet werden.

    ja ok. Abschließend noch die Frage.

    Was konkret benötige ich um ein App. in C# , C++, MFC, CLI auf einem Embedded PC laufen zu lassen.

    a) Hardware ?
    b) Software, möglich mit VS2008,2010,2012, richtig?

    Grüße Andy

    Freitag, 22. Februar 2013 18:53
  • "Windows Embedded" ist letzltich auch von der Hardware nur ein "normaler PC". Halt in aller Regel entsprechend klein gehalten, und nicht so erweiterbar wie ein "handelsüblicher PC". Solche "Mini PCs" findet man z.B. in modernen Logicanalyzern oder Speicheroszilloskopen oder auch Fahrscheinautomaten.

    Windows Embedded basiert auf ganz normalen WinXP-Win7. (http://de.wikipedia.org/wiki/Windows_Embedded)

    Wenn Du auf Windows Embedded Compact (war WinCE) möchtest, benötigast Du eine entsprechend kompatible Hardware. Zu der kann ich aber nicht viel sagen, da ich mit CE noch nichts gemacht habe.

    Für beides ist aber VisualStudio ausreichend.


    Best regards

    Bordon

    Note: Posted code pieces may not have a good programming style and may not perfect. It is also possible that they do not work in all situations. Code pieces are only indended to explain something particualar.

    • Als Antwort markiert Andy Bauer Dienstag, 5. März 2013 21:13
    Montag, 25. Februar 2013 09:06
  • Hallo Bordon,
    >Windows Embedded" ist letzltich auch von der Hardware nur ein "normaler PC".
    >Halt in aller Regel entsprechend klein gehalten, und nicht so erweiterbar wie
    >ein "handelsüblicher PC". Solche "Mini PCs" findet man z.B. in modernen Logicanalyzern
    >oder Speicheroszilloskopen oder auch Fahrscheinautomaten.
    ja auskennen tue ich mich leider auch nicht.
    Frage also mal beantwortet.

    Im Klartext heißt das ja dann auch, dass mir Windows Embedded keine
    SPS, ersetzen kann?
    >Fahrscheinautomaten
    Hat ja mit Hardware schon zu tun. Tastendruck, Userinterface.....
    https://www.google.de/search?q=Windows+Embedded+fahrzeugautomat+webcast&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:de:official&client=firefox-a

    http://www.computerwoche.de/a/lieber-sicher-entwickeln-als-flicken,2512505,3

    Das ist alt.
    http://www.microsoft.com/germany/msdn/webcasts/serien/msdnwcs-0609-01.mspx

    Falls du noch was weißt, gerne ansonsten belassen wir es einfach mal.
    Grüße Andy

    Dienstag, 5. März 2013 21:13
  • Hi,

    also ich habe schon auf CE entwickelt....

    Also ce ist nur RTOS solange du die GUI aus dem spiel läßt (ob es als sps ersatz dient hängt ganz von dein Problem ab)...

    Bei der momentan neuesten Version Windows Embedded Compact 7 entwickelst du unter VS2008, die neueste Version die im Q2 2013 rauskommen soll benutzt dann VS2012....

    Wenn du mit GUI entwickeln willst dann steht dir mit Compact 7 entweder nativ(c++) Silverlight for embedded Systems ode managed .net compact Framework zur Seite...

    Beide Versionen sind stark kastratiert, so das ich glaube das das Grauen nur einen Namen haben kann: Windows Embedded Compact 7...

    Als alternative für GUI sei noch QT erwähnt...

    Daher ist auch das vorherschende OS bei Embedded halt Linux.... Microsoft macht einem es das LEben ganz schön schwer was für seine Bedürfnisse zu entwickeln

    Montag, 18. März 2013 08:24
  • Hi Andy,

    zu a) es empfiehlt sich ein entsprechendes Evaluationsboard zu kaufen (CE unterstützt sowohl ARM als auch Intel Atom was ein x86 ist). Einfach googeln nach windows ce eval board da wirst du sicherlich schon fündig...

    b) also Microsoft unterstützt direkt zur Zeit nur VS2008 (ja das ist grausam).... Du kannst vom prinzip her auch VS2010 nehmen, da es halt auch multitargetting unterstützt, aber dies nur zur Softwareentwicklung und du wirst die damit nur das Leben schwer machen wenn du GUI mit C++ schreiben willst da du Silverlight for embedded systems benutzt und die Konvertierungstools von xaml nach c++ nur vs2008 unterstützen... Mir wäre auch nciht bekannt das VS2010 das Building von Board support packages unterstützt... zwar geht es prinzipiell auch über shell aber das Konzept sieht hier ganz klar VS2008 vor ... Das .Net Compact Framework wird meines wissen halt nicht von Vs2010 unterstützt aber hier had jemand ein Workaround gefunden http://joel.fjorden.se/index.php?entry=entry091228-170025

    Abschließend kann ich nur sagen das das Windows embedded Compact 7 nur dann benutzt werden sollte wenn wirklich gui im spiel ist oder es ein anderen zwingenden Grund dafür gibt...

    Bei reiner Datenverarbeitung im Hintergrund fährt man meistens mit einem nativen Compiler (z.b. Keil für 8051 oder gcc) besser man muß halt wissen was man für Rechenkapazitäten gebraucht und danach sollte man sich den Prozessor (oder halt microcontroller) aussuchen und dann die entsprechenden Tools...

    Montag, 18. März 2013 08:39
  • zu a) es empfiehlt sich ein entsprechendes Evaluationsboard zu kaufen (CE unterstützt sowohl ARM als auch Intel Atom was ein x86 ist). Einfach googeln nach windows ce eval board da wirst du sicherlich schon fündig...

    Hallo Brian,

    Evaluationsboard

    hast einen guten Tipp?

    Einsteigerkit?

    Die machen das, glaube ich Franzis

    Grüße Andy


    • Bearbeitet Andy Bauer Dienstag, 19. März 2013 04:42 Format
    Dienstag, 19. März 2013 04:41
  • Schau mal da http://www.karo-electronics.de/starterkit_5.html ....

    Ob es jetzt das Gelbe vom Ei ist für Anfänger lass ich mal im Raumstehen....

    Ich hab da nix für WinCE gesehen sondern halt nur nativ C Board (typischerweise Atmel AVR Familie)...

    Ich habe mit dem Atmel STK 500 angefangen, da ist aber kein WIN CE möglich... Dafür aber für Anfänger geeignet ( und nicht teuer)

    Beim STK 500 kann man halt mit C einfache Programme schreiben, also die Pins abfragen, ADC abfragen, DAC benutzen, I2C benutzen....

    Das höchste der (graphischen) Gefühle wird eine 2-3 Zeilige LCD Anzeige sein...

    • Als Antwort vorgeschlagen Brian Dahl Mittwoch, 20. März 2013 08:38
    • Bearbeitet Brian Dahl Mittwoch, 20. März 2013 08:41
    Dienstag, 19. März 2013 15:38
  • Hallo,

    oder eben das vermutlich.

    Sicher nicht für den Privatgebrauch, zu teuer.

    Grüße Andy

    Beckhoff

    Dienstag, 19. März 2013 19:54