Forum: Mikrocontroller und Digitale Elektronik Padauk IDE: .hex erzeugen


von Jürgen (derkleinemuck)


Lesenswert?

Hallo
Ich will mit den billigen Chips "spielen". Das meiste ist am Start. Auch 
ein Easy PDK Programmer etc. und die IDE von Padauk. Allerdings finde 
ich nicht heraus, wie ich unter Windows nun bei "build" eine Intel-Hex 
Datei erzeuge, die ich für den Programmer brauche.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Jürgen schrieb:
> wie ich unter Windows nun bei "build" eine Intel-Hex
> Datei erzeuge, die ich für den Programmer brauche.

Das macht normalerweise ein Aufruf von objcopy. Aber das Buildsystem von 
Padauk ist mir ansonsten nicht bekannt.

von Nemopuk (nemopuk)


Lesenswert?

Bin und elf sind auch gängige Formate zum Flashen. Erzeugt deine IDE 
vielleicht eine bin Datei?

: Bearbeitet durch User
von Jürgen (derkleinemuck)


Lesenswert?

Leider nein.
Das ist halt alles wohl sehr auf deren eigene Programmiergeräte 
zugeschnitten, wenn ich die verteilten Infos im Web richtig verstehe und 
finde.
Es gibt
.PDK
.PRE
.PRJ

Die beiden letzten sind Textdateien aber enthalten nichts diesbezüglich 
sinnvolles. Die erste ist eine Binärdatei aber angeblich voll mit 
Steueranweisungen.
Ich hatte gehofft, daß es inzwischen schon mehr Nutzer/Infos gibt. Mit 
dem SDCC bin ich schon etwas weiter aber der ist eigentlich mir zu 
Befehlszeilenlastig und da gibt's auch nicht die vielen Beispiele aus 
der Original-IDE

Beitrag #7891312 wurde vom Autor gelöscht.
von Hans (ths23)


Lesenswert?

Nemopuk schrieb:
> Bin und elf sind auch gängige Formate zum Flashen.
Beste Antwort im ganzen Thread, aber leider die Fragestellung verfehlt.

@TO
Kannst Du denn überhaupt den Buildvorgang starten (mit F7) und läuft 
dieser fehlerfrei durch? Wenn ja dann sollte sich der generierte Code in 
der Zwischenablage befinden, sofern ich den diesbezüglichen Abschnitt im 
Handbuch (S.20) richtig verstanden habe. Vermutlich ist das dann ein 
Hex-Listing. Wie man den dann in eine Datei bekommt die man auf den µC 
laden kann, da bin ich überfragt. Aber vielleicht ist das ja sogar schon 
vom Aufbau her eine binäre Datei und man muß den ganzen Schrums nur als 
bin speichern. Ich kann es nicht ausprobieren, da ich weder die 
Padauk-IDE noch die passenden Chips habe.

von Jürgen (derkleinemuck)


Angehängte Dateien:

Lesenswert?

Danke so weit. Nur leider keine Lösung

Die IDE gibt's for free: 
https://www.padauk.com.tw/en/technical/index.aspx?kind=26

Das compilieren klappt (einfaches Pin toggeln). Dabei erzeugt er die 
drei Dateien und eine Reihe Objektdateien.
Das mit der Zwischenablage ist schlecht formuliert. Es gibt 
Code-Beispiele (die sind das Interessante, warum ich das nutzen wollen 
würde). Die kann man über die Zwischenablage in den Sourcecode einfügen.
Anbei die drei Dateien.
Ich habe mal beim Hersteller angefragt. Aber ich befürchte es geht 
nicht.

: Bearbeitet durch User
von Harald A. (embedded)


Lesenswert?

Es gibt ja den SDCC Compiler für die Padauks. Der sollte doch HEX 
erzeugen können. Wenn es unbedingt aus der IDE heraus sein muss können 
Dir folgende User bestimmt weiterhelfen, die an dem SDCC Projekt 
mitgebarbeitet haben.

Tim (User cpldcpu)
und
Philipp Klaus Krause (Username unbekannt)

Siehe auch:
https://sdcc.sourceforge.net/

: Bearbeitet durch User
von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Jürgen schrieb:
> und eine Reihe Objektdateien

Was hat es damit auf sich?

von Hans (ths23)


Lesenswert?

Jürgen schrieb:
> Die IDE gibt's for free:
> https://www.padauk.com.tw/en/technical/index.aspx?kind=26
Das hatte ich schon herausgefunden.  Da ich derzeit nix mit Padauk 
mache, werde ich mir die IDE auch nicht installieren - wozu auch.

von Jürgen (derkleinemuck)


Lesenswert?

Harald A. schrieb:
> Es gibt ja den SDCC Compiler für die Padauks. Der sollte doch HEX
> erzeugen können. Wenn es unbedingt aus der IDE heraus sein muss können
> Dir folgende User bestimmt weiterhelfen, die an dem SDCC Projekt
> mitgebarbeitet haben.

Ja und? Wenn ich nach einer Funktion in Word frage, brauche ich keine 
Antwort, daß es auch LibreOffice gibt. Zumal ich das schon schrieb und 
auch warum ich gerne das Tool von Padauk nutzen möchte.

Die Antwort vom Hersteller: Sie haben kein Interesse an Drittanbietern 
und bieten kein Hex-Format an.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Jürgen schrieb:
> Die Antwort vom Hersteller: Sie haben kein Interesse an Drittanbietern
> und bieten kein Hex-Format an.

Wenn du es ernst meinst, ist der Preis für den Padauk 5S-P-003(x) 
Programmer mit rund 90$-100$ doch nicht so viel.
Der kleinere 5S-I-S02B kostet rund 60-70$. Du solltest darauf achten, 
das der gewählte Programmer deine MC unterstützt, es gibt bei Padauk 
kein Modell, das alle abdeckt.

Recht günstig liefert LCSC:
https://lcsc.com/products/Programmers-Emulators-and-Debuggers_11136.html
und dann nach Padauk filtern.

: Bearbeitet durch User
von Hans (ths23)


Lesenswert?

Jürgen schrieb:
> Ja und? Wenn ich nach einer Funktion in Word frage, brauche ich keine
> Antwort, daß es auch LibreOffice gibt. Zumal ich das schon schrieb und
> auch warum ich gerne das Tool von Padauk nutzen möchte.
Prinzipiell hast Du ja recht, wenn Du aber diese µC, die Du ja auch 
schon hast, nutzen möchtest, dann mußt Du halt irgendwie die FW auf das 
Teil drauf bekommen. Wenn das die Padauk-IDE mit Deinem Equipment nicht 
hergibt, weil sie kein dafür verwertbares Binery erzeugt, dann muß man 
da auf eine Alternative ausweichen und froh sein wenn es überhaupt eine 
gibt. Insofern war der Hinweis von Harald schon zielführend.
Deine Anfrage beim Hersteller zeigt ja das an so einer Alternative 
offensichtlich kein Weg vorbei führt oder man kauft das nötige Equipment 
von Padauk. Da ganz offensichtlich beides nicht für Dich in Frage kommt, 
kannst Du nur noch den Deckel der Tonne öffnen - ist leider so.

von Johann L. (gjlayde) Benutzerseite


Lesenswert?

Jürgen schrieb:
> Sie haben kein Interesse an Drittanbietern und bieten
> kein Hex-Format an.

Wird iHex denn überhaupt gebraucht?

Viele moderne Tools können ELF erzeugen und verarbeiten. iHex ist da nur 
ein unnötiges Zwischenformat aus grauer Vorzeit.

von Harald A. (embedded)


Lesenswert?

Jürgen schrieb:.
> Ja und? Wenn ich nach einer Funktion in Word frage, brauche ich keine
> Antwort, daß es auch LibreOffice gibt. Zumal ich das schon schrieb…

Du scheinst mir ja ein besonders toller Zeitgenosse zu sein. Vlt. beim 
nächsten Mal vor dem Herummaulen erstmal LESEN:

Harald A. schrieb:
> Wenn es unbedingt aus der IDE heraus sein muss können
> Dir folgende User bestimmt weiterhelfen…

Falls Du den Satz nicht verstehst: Jeder, der sich mit den Padauks 
beschäftigt, hat natürlich auch viele Berührungspunkte mit dem 
Padauk-Tool gehabt.

: Bearbeitet durch User
von Ralph S. (jjflash)


Lesenswert?

Jürgen schrieb:
> Ich hatte gehofft, daß es inzwischen schon mehr Nutzer/Infos gibt. Mit
> dem SDCC bin ich schon etwas weiter aber der ist eigentlich mir zu
> Befehlszeilenlastig und da gibt's auch nicht die vielen Beispiele aus
> der Original-IDE

Die allermeisten Nutzer (Bastler / Maker) verwenden eben gerade die 
originale IDE von Padauk nicht!

Die "originale Programmiersprache" ist nicht Fisch und nicht Fleisch, so 
eine Art "Pseudo-C" und sicherlich nicht gängig. Von daher wirst du da 
nicht viel im Netz finden. Programme und Beispiele für SDCC wirst du 
deutlich mehr finden.

Jeder Compiler (und hier beziehe ich mich auf die Kommandozeile und 
nicht, die in der IDE integriert sind) ist "Befehlszeilenlastig" mit 
ewig vielen Argumenten, der Linker ebenso.

Als Einsteiger (und als Fortgeschrittener auch) möchte man sich nicht 
wirklich immer mit den Argumenten des Compiler und Linkers 
auseinandersetzen und dafür, dass man das nicht immer wieder machen muß, 
dafür gibt es u.a. ein Makefile. Leider kommt das klassischer Weise mehr 
unter Linux zum Tragen als auf Windows Rechnern. Damit "Make" 
funktioniert müssen auf einem Windows-Rechner die binutils installiert 
sein.

Dummerweise funktionieren Makefiles auf Windows- und Linuxrechnern nicht 
100% identisch und möchte man auf beiden Welten entwickeln muß man die 
Makefiles anpassen (das hat noch gar nichts alleine mit Padauk zu tun, 
sondern das ist grundsätzlich so).

Ich habe ein github-Repository (für dich leider unter Linux) auf der die 
komplette Toolchain und die Beispiele enthalten sind. Vllt. solltest du 
dir das einmal ansehen:

https://github.com/jjflash65/Padauk-pfs154

Nach diesem Stil kannst du das auch nach Windows portieren. Der Aufbau 
in diesem Repository sieht vor, dass es ein Stammverzeichnis gibt, sagen 
wir pfs154 und innerhalb dieses Verzeichnisses werden Projektordner 
abgelegt. Zudem ist in diesem Verzeichnis aber auch ein Ordner namens 
"src" und einer "include" angelegt. In diesen Ordnern befinden sich die 
zusätzlichen Sourcecodes, die in eigene Programme eingebunden werden 
können. Außerdem gibt es die Datei "makefile.mk" die sozusagen  für alle 
Projekte enthaltene gemeinsame Funktionalität aufweist. Diese Datei wird 
von einem Projekt-Makefile aufgerufen, so dass im Makefile des Projekts 
vom Compileraufruf nichts mehr zu sehen ist (Beispiel für eine 
Uart-Demo):
1
############################################################
2
#
3
#                         Makefile
4
#
5
############################################################
6
7
PROJECT       = uart_demo
8
MCU           = PFS154
9
MEMORG        = pdk14
10
F_CPU         = 8000000
11
FACTORYCAL    = 1
12
13
# hier alle zusaetzlichen Softwaremodule angegeben
14
SRCS          = ../src/my_printf.rel
15
SRCS         += ../src/uart.rel
16
17
INC_DIR       = -I./ -I../include
18
19
# benutzbare Programmer:
20
#  1 : easypdkprogrammer  ==> serielle Portangabe kann frei bleiben
21
#  2 : pfsprog            ==> benoetigt serielle Portangabe
22
23
PROGRAMMER    = 2
24
SERPORT       = /dev/ttyUSB0
25
CH340RESET    = 1
26
27
include ../makefile.mk

Im diesem Falle muß man hier nur das Programm angeben, das die 
Main-Funktion beinhaltet (hier uart_demo.c als uart_demo angegeben) und 
welche zusätzlichen Quellcodes übersetzt werden müssen, hier dann 
"my_printf.c" und "uart.c" (angegeben als "my_printf.rel" und 
"uart.rel"), die sich im übergeordneten Ordner des Projektes und dort 
dann eben im Verzeichnis "src" befinden. Für ein neues Projekt muß man 
sich also nur dieses Makefile kopieren und die Dateinamen anpassen. Ein 
erster Schritt ist hier aus den "/" der Ordnertrenner von Linux ein "\" 
von Windows zu machen.

Wenn du diese Anordnung beibehälst, kannst du mit einem Texteditor 
deiner Wahl, Geany ist hier wirklich richtig gut, dein C-Programm 
entwickeln. Geany kann aus dem Editor heraus ein "make" und ein "make 
flash" absetzen, so dass du Geany sozusagen als IDE verwenden kannst 
(hierfür mußt beim Menüpunkt "Erstellen" den Untermenüpunkt "Kommandos 
zum Erstellen konfigurieren".

Hast du das einmal gemacht, kannst du bequem mit Geany hantieren und 
brauchst die IDE von Padauk nicht (ich habe mir die angesehen und finde 
die fürchterlich, aber das ist meine Meinung).

Zu den Beispielen für Padauk halt: So arg viele kann es nicht geben, 
weil der PFS-154 auch nicht so arg viel kann. Ich habe eine lange Zeit 
mit dem "gespielt" und war aufgrund des Preises so richtig begeistert, 
fastziniert bin ich immer noch, aaaaber: er hat halt wirklich sehr 
wenige "interne Peripherie" um den Prozessor herum.

In meinem Repository findest du Beispiele zu:
- Ansteuerung von 7-Segmentanzeige Treibern mit TM1637
- Standart-Textdisplay (HD44780)
- serielle Schnittstelle (BitBanging, Hardware-UART ist nicht vorhanden)
- Charlie Plexing
- Verwendung des internen Komparators
- Verwendung des Timer-Interrupts und Interrupts allgemein
- Tonerzeugung (und "Abspielprogramm" von Noten
- I2C (natürlich nur BitBanging, eine Hardware für I2C hat der nicht)
- Empfänger für IR-Fernbedienungen (NEC-Protokoll... hier noch einmal 
Danke an Frank M. vom Forum, der mir damals Hinweise zu Protokoll und 
Fehler in meiner Source gezeigt hat)
- Auswertung von NTC-Widerständen
- Ansteuerung von NOKIA 5110 Display
- Ansteuerung von SSD1306 Display mit I2C-Interface
- Ansteuerung UKW-Radio-Chip RDA5807
- Auswerten von LM75 Temperatursensor
- Erzeugung von PWM-Signalen
- Ansteuern eines Servomotors
- Ansteuern von 74HC595 Schieberegistern als Port-Expander

Vielleicht ... solltest du noch einmal über den SDCC nachdenken, er ist 
definitiv die bessere Wahl um Programme für die Padauk Controller zu 
schreiben. Abgesehen davon, dass du viele C-Sourcen die nicht abhängig 
vom Zielsystem sind, nutzen kannst.

Oder du installierst dir auf deinem Windows-Rechner Virtual-Box und 
darin ein Linux-System in dem du das Repository ausprobieren kannst.

Mich juckt es zwar in den Fingern, mein Repository auch nach Windows zu 
portieren, aber im Moment fehlt mir die Zeit dazu, weil ich mich wie 
gesagt mit dem CH32V003 beschäftige (und wenn ich damit fertig bin mit 
einem liegen gelassen STM32F411 Projekt).

Aber egal was du machst, ich wünsche dir viel Erfolg und gutes gelingen 
mit Padauk. Wenn du einen SMD Löten kannst und einen "komfortableren" 
easypdkprogrammer haben möchtest, hätte ich noch eine Leerplatine eines 
Programmers für dich. Mit diesem Programmer kannst du vom Sockel des 
Programmers über ein Flachbandkabel eine Verbindung zu einem Steckbrett 
herstellen. Am Programmer sind 4 Schiebeschalter, die umgeschaltet 
werden können von Programm-Mode zu Run-Mode was in den meisten Fällen 
ausreicht, den Controller nicht permanent umstecken zu müssen:

Beitrag "EasyPDKProgrammer - Clone für Padauk MCUs"

von Hans (ths23)


Lesenswert?

Johann L. schrieb:
> Wird iHex denn überhaupt gebraucht?
>
> Viele moderne Tools können ELF erzeugen und verarbeiten. iHex ist da nur
> ein unnötiges Zwischenformat aus grauer Vorzeit.
Das genaue Zielformat steht doch hier gar nicht zur Debatte. Die 
Padauk-IDE erzeugt kein Binary welches man direkt auf den Chip spielen 
könnte. In welchen Format das ist ob HEX, Elf oder sonst was ist doch 
erst mal zweitrangig.
Und ob HEX nun aus grauer Vorzeit stammt ist an dieser Stelle völlig 
uninterressant. Da muß man das Dabla des Padauk lesen, wo drin stehen 
sollte welche Geschmacksrichtung dem Chip nun angenehm wäre.

Harald hat schon darauf hingewiesen das es Leute gibt, die sich damit 
beschäftigen und die vermutlich aus gutem Grund nich auf die IDE von 
Padauk gesetzt haben.  Um dies zu tun haben sich diese Leuts genau damit 
beschäftig und wissen vermutlich welches Format da gefragt ist. Da wäre 
es doch eine gute Idee bei diesen Leuten mal nachzufragen.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.