Hardware-Programmierung?



  • Hi!

    Ich habe mich vor kurzem das neue N95 von Nokia in der hand gehalten und habe mich gefragt: wie würde ich eigentlich selber sowtwas entwickeln? Ich habe überlegt, welcher prinzipjelle Weg, dafür in Frage kommt, wenn ich meine Kenntnisse in C++, jetzt dafür nutzen möchte (bzw darauf hinzuarbeiten) eigene kleine Betriebssysteme für Geräte zu schreiben.
    Genauer genommen bekam ich diese Idee schon mal, als mir ein befreundeter Elektrotechnicker, eine Seite gezeigt hat, auf der Schaltpläne inklusive Anleitung zum Download bereitstanden, mit dennen man in der Lage war, mit Kentnissen in der E-Technick, einen eigenen MP3-Player Zu basteln. Die Firmware, gab es da gratis und fertig zum Download.

    Jetzt überlegew ich wie so was Prinzipiel funktioniert, da ich gerne eine Abstrackte Vorstellung davon bekommen möchte, worauf ich hinarbeiten muss!

    Gibt es nicht schon fertige "Firmware-Kernels" die eine API bereitstellen, mit der man eigene GUIs entwickeln kann? Ich möchte nicht das Rat neu erfinden, aber ich würde schon teile aus eigener Hand entwickeln können. Ich bin gerade auf das Wort SDCC Application gestossen! Ist das mein Ziel? Wenn ich von Grund auf Anfange, müsste ich die Hardware in einem Gerät ansprechen? Mit Assempler?

    Also wenn jemand mir helfen könnte, dann wäre ich sehr dankbar!

    Gruß Baldung



  • Hmm ... du willst ja im Prinzip ein eigenes Betriebssystem programmieren. Brauchst du schon Assembler-Kenntnisse und gefestigte C++ (C) Kenntnisse. http://www.osdever.net/ ist ne ganz gute Quelle zur Thematik ... allerdings jetzt nicht speziell für Handys... gibt da bestimmt noch bessere Seiten zu ...



  • Hey Danke für die schnelle Antwort!
    Ja genau soetwas suche ich! Sieht so aus als würde ich daran eine Weil zu kauen haben. Ich habe bisher nur noch keinen Kontakt mit Assempler gehapt! Kannst mir vielicht noch eine gute Seite dafür empfehlen?

    Danke soweit,
    Baldung



  • hat das J2ME drauf?
    wenn ja, einen mp3-player könnteste vielleicht damit basteln: http://www.javazoom.net/javalayer/javalayer.html
    wenn du tiefer in den eingeweiden des gerätes rumwurschteln willst: http://forum.nokia.com/devices/N95
    🙂



  • pale dog schrieb:

    hat das J2ME drauf?
    wenn ja, einen mp3-player könnteste vielleicht damit basteln: http://www.javazoom.net/javalayer/javalayer.html

    Irgendwie bezweifel ich so ein klein bisschen, dass er nach Java sucht. Schon mal auf den Namen des Forums geschaut? Propagandist...

    Das hier scheint ein ordentliches Tutorial zu sein. Ich bin mir jetzt aber nicht mehr ganz sicher, ob das das ist, dass ich gesucht habe 😉

    Und eigentlich brauchst du nur relativ wenig Assembler, um ein Betriebsystem zu programmieren. Auf einem x86er ist das wirklich nur ein bisschen rumgewurschtel mit dem BIOS und der Wechsel in den Protected-Mode wenn ich mich Recht erinnere. Auf kleinen Geräten wird das wohl noch weniger sein, denk ich.



  • Ja und du musst auch ein paar wenige Funktionen in Assembler halten ... hält sich aber wirklich in Grenzen ... sollte man aber trotzdem verstehen ... auch wenn es nur ein wenig ist ^^



  • Also es kommt immer drauf an auf welcher Hardware du programmieren willst.
    Diese mp3-player geschichten kenn ich auch. Kenn die mit AVR. Das sind Microcontroller (kannst dir vorstellen wie ein kleiner Chip wo ein ganzer Rechner drin ist. Also Prozessor, RAM und der ganze kram) Für die gibt es extra ein C/C++ Compiler. Das heist du kannst die Komplett mit C/C++ Programmieren. Es gibt schon viele Fertige Sachen (Wie du ein Display ansteuerst oder eine Memory-Card oder ähnliches). Aber für ein Handy ne Firmware zu schreiben ist denk ich nicht so einfach weil du sicherlich nicht an die nötigen Informationen rankommst über die Hardware und alles. Wie gesagt es kommt auf die Hardware drauf an worauf du Programmierst. Die AVR's sind ja dafür ausgelegt darauf zu Programmieren und es gibt ne Komplette Dokumentation über die Hardware und über die Befehle die es so gibt.

    schirrmie



  • Also ich muss echt sagen, derard aufschlusreiche und schnelle Antworten habe ich echt nicht erwartet! Danke!

    Ich habe jetzt schon ein leichtes prinzipjelles Verständniss erlangen können!

    Also noch eins: Wie sollte ich jetzt am besten Anfangen? in welche Richtung sollte ich gehen, um dann nächste Woche ein N95 mit meiner Firmware zu versehen? :p

    OK, das dürfte vielleicht doch noch ein wenig dauern, aber ich werde dran bleiben! Also wenn mir jetzt noch jemand einen guten Richtungshinweiß/ Plan nennen kann were das echt cool!

    Gruß Baldung



  • Baldung-chagi schrieb:

    OK, das dürfte vielleicht doch noch ein wenig dauern, aber ich werde dran bleiben! Also wenn mir jetzt noch jemand einen guten Richtungshinweiß/ Plan nennen kann were das echt cool!

    lade dir mal das runter: http://forum.nokia.com/main/resources/tools_and_sdks/carbide_cpp/
    und schau dir die beispiele an etc...

    .filmor: was soll er mit nem PC asm tutorial?



  • Ich würde dir empfehlen - um ein prinzipielles Verständnis für Embedded Software (wie das nämlich schlussendlich heisst) zu erlangen vielleicht mal das Eine oder Andere darüber zu lesen.

    Empfehlenswert ist dabei die H8s ibex-Dokumentation von Reinhard Blum: http://www.tbt1.ch/elektroniker/index.htm Da findest du unter "Downloads" den kompletten Schulstoff für die ersten Schritte in Embeddedsystemen. Wenn du etwas weiter gehen willst, kann ich dir - für einen leichten Einstieg - www.avrfreaks.net empfehlen. Da finden sich viele Tutorials. Ich bin mir sicher es gibt auch einige Starthilfen.

    Andererseits ist mir noch nicht ganz klar auf welchem Level du einsteigen willst. Wenn du wirklich nur auf einem N95 rumbasteln willst, auf reichlich abstraktem Niveau, brauchst du dich nicht an die Embeddedentwicklung zu gewöhnen. Dann reicht wohl ein Einstieg über den Link von Pale Dog.

    Bedenke: Es gibt viele viele CPUs im Embeddedmarkt. Und jede hat ihre Eigenheiten. (zum Beispiel AVR, ARM, etc.) Die Konzepte bleiben allerdings immer ähnlich.


Anmelden zum Antworten