feat(boot)!: added embedded version string + code generation

This commit is contained in:
2025-09-08 10:02:37 -05:00
parent b4d44f4e84
commit e3352fab06
5 changed files with 47 additions and 1 deletions

View File

@@ -5,3 +5,6 @@
*.s19
map.txt
build/
# Build system generated files
src/version.s

View File

@@ -15,12 +15,14 @@ Make makefile is provided for building on Linux.
To generate an S-Record run:
```sh
make generate
make boot.s19
```
To generate a binary run:
```sh
make generate
make
```

33
code/boot/genver.sh Executable file
View File

@@ -0,0 +1,33 @@
#!/usr/bin/env sh
# Script to generate version information
# Current git tag
TAG="$(git describe --always --dirty --tags)"
DATE="$(date)"
# Output filename
OUTFILE='src/version.s'
sed -e "s/<TAG>/$TAG/g" -e "s/<DATE>/$DATE/g" <<EOF > "$OUTFILE"
; CHIBI PC-09 Prototype #1 Boot ROM -- Version Information
; Copyright (c) 2024-2025 Amber Zeller, Gale Faraday
; Licensed under MIT
; This file generated by genver.sh
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;; Boot ROM Version & Build Information
;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
SECTION VERSION
EXPORT VERMSG
VERMSG
fcc "CHIBI PC-09 BOOT ROM <TAG>"
fcb \$0A
fcn "BUILT <DATE>"
EOF

View File

@@ -3,3 +3,4 @@ section SERIAL
section MEMTEST
section VECTORS high 100000
section VERSION high

View File

@@ -1,6 +1,6 @@
# Makefile for CHIBI PC-09 Firmware
.PHONY: all clean
.PHONY: generate all clean
.IGNORE: clean
.DEFAULT_GOAL := all
@@ -13,6 +13,7 @@ TARGREC := $(TARGET).s19
TARGROM := $(TARGET).bin
SRCDIR := src/
BUILDDIR := build/
GENS := $(SRCDIR)version.s
SRCS := $(wildcard $(SRCDIR)*.s)
OBJS := $(patsubst $(SRCDIR)%.s,$(BUILDDIR)%.o,$(SRCS))
INCS := $(wildcard $(SRCDIR)*.inc)
@@ -47,6 +48,12 @@ $(OBJS): $(BUILDDIR)%.o : $(SRCDIR)%.s
-@mkdir -p $(BUILDDIR)
$(AS) $(ASFLAGS) -o $@ $<
generate: $(GENS)
$(GENS):
./genver.sh
clean:
@echo 'Cleaning up intermediary files...'
@rm -rv $(TARGROM) $(TARGREC) map.txt $(BUILDDIR)
@rm -rv $(GENS)