STM32 HAL Library für die “Blue pill”

Seit einiger Zeit kann man die sogenannte “Blue Pill” kaufen. Dies sind Mikrocontroller aus der STM32 Familie mit Cortex Kern, konkret STM32F103C8 mit Cortex M3, die auf einem schönen klassischen DIL-Träger aufgelötet sind mit Pinheader und Micro-USB zur Stromversorgung ausgerüstet sind. Dadurch passt alles in ein Steckbrett und kann auch als Arduino betrieben werden.

Ich habe mir ein paar Exemplare beschafft und möchte diese natürlich mehr oder minder “bare metal” benutzen, ähnlich wie ich das im Beruf auch tue. Dort arbeite ich seit gut 7 Jahren ebenfalls mit STM32 Controllern.

ST Microelectronics stellt eine recht gute Bibliothek zum Ansprechen der Controllerperipherie zur Verfügung. Damit man diese nicht immer mit jedem noch so kleinen Projekt von Null auf übersetzen muss, habe ich mir mit CMake ein kleines Framework geschrieben, welches die Library für den konkreten Controller der “Blue Pill” als Binary übersetzt.

Ausprobiert habe ich die Library noch nicht, aber es baut und linkt. Eigentlich müsste das schon reichen, das .a File wird im neuen Projekt referenziert und der Includepfade zu der Headern der HAL Library mitangegeben.

Der Anwender muss ggfs. die STM32 Header für den Controller in seinem Projekt referenzieren, denn einige Headerfiles der HAL Library ziehen die controllerspezifischen Header nochmal rein.

Näheres und technische Updates gibt es auf der Projektablage bei Github:
https://github.com/simonsunnyboy/stm32hal_bluepill

Ich habe den heute aktuellen Stand der HAL Library eingebunden, speziell den vom CubeMX angelegten, STM32Cube_FW_F1_V1.8.0.

WordPress 5 und der klassische Editor

Mit WordPress 5 und neuer wurde ein neuer Editor eingeführt. Der gefällt mir irgendwie überhaupt nicht.

Glücklicherweise kann man auf den klassischen Editor zurück. Dazu muss man nur unter “Plugins” den “Classic Editor” installieren.
Und schon sieht es wieder besser aus und Beiträge können wieder lesbar erstellt werden.

Binary to Wozmon

(c) 2019 by Matthias Arndt <marndt@asmsoftware.de>
The MIT License applies to this project.

Abstract

This is a little file tool to dump a binary file in the format used by the
Wozmon monitor software used by the Apple 1.

The output can directly be fed into a serial link if necessary.

System requirements

  • C99 compliant compiler and runtime environment

Usage


$ bin2woz <loading address> <input file>

The loading address is given in 4 hexadecimal digits without prefix.
The output is dumped to stdout including CR/LF for Wozmon.

Example


$ bin2woz 0280 my_program.bin

Download

The project can be found for download at https://github.com/simonsunnyboy/bin2woz

Apple 1 Emulation von Peter Sieg ausprobiert

Ich habe im Laufe der Woche mal die Apple 1 Emulation auf Arduino Basis von Peter Sieg ausprobiert.
(vgl. https://github.com/petersieg/arduino/tree/master/arduino_6502_apple1)
Den Anstoß gab mir ein kleiner Artikel in Load #5.

Bis auf die RAM Beschränkung auf 1,5K läuft das Projekt auf Anhieb auf einem Arduino Nano.

Apple 1 Emulation auf Arduino Nano

Vielleicht baue ich den Ansatz noch aus, mir gefällt der sich magisch compilierende Sketch nicht. Es werden keine sauberen Headerdateien verwendet. Ich würde ausserdem noch das AVR interne EEPROM als Programmspeicher für den emulierten Apple aktivieren.

Kleine Testprogramme habe ich bisher mit dem Acme Assembler erstellt, mit dem man z.B. auch für den C64 Programme erstellen kann.

Um die Programme auch in den Wozmon vom Apple 1 eingeben zu können, habe ich mir eine kleines Hilfsprogramm geschrieben. Dieses konvertiert die Binärdaten in einen Hexdump, den man direkt in den Wozmon über UART hochladen kann.

Vgl. https://github.com/simonsunnyboy/bin2woz

Das Testprogramm oben füllt nur 16 Bytes innerhalb der Zeropage auf 0x41.

		*=$0280

fill 	= $41    ; fill bytes
dest	= $0080  ; start address of destination

		ldx #0
		
loop:		
		lda #fill
		sta dest,x
		inx
		cpx #$10
bne     loop

		jmp $ff00  ; back to wozmon
		
		; acme -o fill.bin fill.S

Rezept für Biryani Masala Gewürzmischung

Biryani Masala

Gewürzmischung

für 1 kleine Dose

Zutaten:

  • 1 Lorbeerblatt
  • 1 1/2 TL Fenchelsamen
  • 2 Sternanis
  • 10-12 Kapseln Grüner Kardamon
  • 1 TL schwarzer Pfeffer
  • 1 TL Gewürznelken
  • 4 TL Koriander
  • 2 TL Kreuzkümmel
  • 1/2 TL Muskatnuss
  1. Alle Zutaten in einer stabilen Gewürzmühle zu feinem Pulver mahlen
  2. Luftdicht in einer Streudose verschliessen

Verwendung für Currys mit Hühnchen oder Fisch.

Guten Appetit!

Rezept für Hamburger Apfelkuchen

Ein schöner einfach zu backender Apfelkuchen vom Blech.
Aus einem ÜNH Rezeptbuch von Anfang der 90er Jahre

  • 250 g Fett
  • 250 g Zucker
  • 1 Päckchen Vanillezucker
  • 4 Eier
  • 125 g gemahlene Mandeln
  • 250 g Mehl
  • 8 – 10 kleine Äpfel
  • Zimt

“Ihr vermischt Fett, Zucker, Vanillezucker, Eier, Mehl und Mandeln in einer Rührschüssel und stellt einen Rührteig her. Diesen gebt ihr auf ein gefettetes Blech. Schneidet die Äpfel in Viertel und steckt sie in den Teig. Nach dem Abbacken sofort schneiden und mit Zimt bestreuen.”

Backtemperatur: 200 Grad Ober und Unterhitze , bei Umluft etwa 180 Grad
Einsetzen: Mittlere Schiene
Backzeit: ca. 30 Min.

Rezept für Eiweißbrot mit Kleie und Quark

Seit ein paar Jahren backt Janina ihr Brot selber. Ich esse aus Gewohnheit wochentags auch davon, ein Brot ohne Mehl. Es kommt auf die Würzung und den Salzgehalt an. Es kann sehr gut gelingen und es schmeckt bei richtiger Würzung auch komplett ohne Butter und Belag.

Eiweißbrot mit Kleie und Quark

ein herzhaftes Brot ohne Mehl

für 1 Laib

Zutaten:

  • 6 Eier
  • 500g Magerquark
  • 1,5 Päckchen Trockenhefe
  • 1 Päckchen Backpulver
  • 75ml warmes Wasser
  • eine Prise Zucker
  • Salz
  • 250g Haferkleie
  • 50g Weizenkleie
  • 50g Leinsamen
  • 50g Sonnenblumenkerne
  • Brotgewürz nach Belieben, z.B. Anis, Kümmel, Fenchelsamen in Kombination (notfalls auch Pizzagewürz, hier darf experimentiert und variiert werden)
  1. Wasser mit Zucker und Hefe vermischen, zur Seite stellen und gehen lassen
  2. Eier aufschlagen und Quark unterrühren
  3. Hefemischung hinzufügen und sorgfältig unterrühren
  4. Salz und Gewürze unterrühren
  5. Haferkleie und Weizenkleie unterrühren
  6. zuletzt Backpulver, Leinsamen und Sonnenblumenkerne unterrühren
  7. Kastenform mit Backpapier auslegen und Teig einfüllen
  8. Backen bei 200°C (Umluft) für 60min

Das fertig abgekühlte Brot am besten im Kühlschrank aufbewahren, es kann an der Luft verderben.

Guten Appetit!

ASM Software Unittest Framework

(c) 2016 by Matthias Arndt marndt@asmsoftware.de

The MIT License applies to this project. Please refer to the file COPYING for details.

The software is available on GitHub at https://github.com/simonsunnyboy/UnittestFramework

Abstract

This is a small framework to implement unittests for software written in C. There are existing projects that offer much more functionality, this one focuses on simple usability and textual output of statistics.

Main reason to implement this framework was that cunit was too complicated in usage and no other small free frameworks could be found.

System requirements

  • Cmake to build the example project
  • a C99 compliant C compiler but a C90 one will do if stdint.h and stdbool.h are supplied
  • any operating system of your choice

Using the test framework

A test should be a subfunction or the main function of an appropriate test executable.

Use the macros defined in unittest.h and link your project with unittest.c

Wrap the Test with UT_BEGIN() and UT_END() macros for proper structuring. Most commands should describe themselves.

It is allowed to start another test for entirely different content with the UT_BEGIN() macro if the last test finished with the UT_END() macro.

Fehlende Session für xrdp

Wenn man xrdp einrichtet, landet man manchmal in der falschen oder auch in keiner wohldefinierten Session.

Effektiv kann man sich nicht einloggen oder eine langsame Umgebung wird verwendet.

Hier hilft es dann, eine passende Sitzung, leichtgewichtig und funktional ist immer LXDE, zu definieren.

In der Datei ~/.xsession muss der Aufruf für die entsprechende Umgebung stehen.

Für XFCE etwa
startxfce

Für LXDE z.B. folgende von Askubuntu geklaute Zeile:
lxsession -s Lubuntu -e LXDE

Start uIPTool utility for AUTO folder

uIPTool is great to allow easy access to Atari ST files via network without having to configure complete NFS or FTP setups.

As I ran into network problems and had to manually restart the tool from time to time, I wrote a small utility that allows to tweak the AUTO boot sequence to run uiptool either once or in a repeating fashion.

In the latter mode, the tool is restarted after crashing or undesired termination (e.q. I accidentally hit SPACE on the Falcon keyboard and the tool stopped amidst in a 50MB download)

Abstract

This is a utility for the Atari ST AUTO folder.
It allows to run the uIPTool (https://bitbucket.org/sqward/uip-tools)
at system startup without having to manually click on the desktop.

Place it in AUTO folder before running MiNT/MagiC or any network stacks like STING.

System requirements

– Atari ST or compatible computer
– uIPTool and a compatible Atari NIC (Netusbee, Hydra)

Installation

1. copy uIPTool as UIP.TOS in the root of your boot drive
2. place STARTUIP.PRG in your AUTO folder (preferrably at the beginning)
3. reboot

Operation

– The tool waits until 5s timeout for keyboard input.
– If there is no keyboard input, the AUTO boot sequence is resumed.
– Press ‘U’ to activate uIPTool once. Boot continues after its termination.
– Press ‘R’ to activate uIPTool in repeating mode.

## Repeating mode

In repeating mode uIPTool is started.
When the tool crashes or terminates, the user can quit and resume the
system boot sequence if desired.
After a small timeout of 5s uIPTool will start again.

I had troubles on my LAN with lossing connection and it was tedious
to restart uIPTool by hand in these cases.

Download

The source code and executable can be downloaded at https://github.com/simonsunnyboy/startuip