forked from amberisvibin/chibi-pc09
feat(boot)!: added embedded version string + code generation
This commit is contained in:
3
code/boot/.gitignore
vendored
3
code/boot/.gitignore
vendored
@@ -5,3 +5,6 @@
|
|||||||
*.s19
|
*.s19
|
||||||
map.txt
|
map.txt
|
||||||
build/
|
build/
|
||||||
|
|
||||||
|
# Build system generated files
|
||||||
|
src/version.s
|
||||||
|
@@ -15,12 +15,14 @@ Make makefile is provided for building on Linux.
|
|||||||
To generate an S-Record run:
|
To generate an S-Record run:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
|
make generate
|
||||||
make boot.s19
|
make boot.s19
|
||||||
```
|
```
|
||||||
|
|
||||||
To generate a binary run:
|
To generate a binary run:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
|
make generate
|
||||||
make
|
make
|
||||||
```
|
```
|
||||||
|
|
||||||
|
33
code/boot/genver.sh
Executable file
33
code/boot/genver.sh
Executable 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
|
@@ -3,3 +3,4 @@ section SERIAL
|
|||||||
section MEMTEST
|
section MEMTEST
|
||||||
|
|
||||||
section VECTORS high 100000
|
section VECTORS high 100000
|
||||||
|
section VERSION high
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
# Makefile for CHIBI PC-09 Firmware
|
# Makefile for CHIBI PC-09 Firmware
|
||||||
|
|
||||||
.PHONY: all clean
|
.PHONY: generate all clean
|
||||||
.IGNORE: clean
|
.IGNORE: clean
|
||||||
.DEFAULT_GOAL := all
|
.DEFAULT_GOAL := all
|
||||||
|
|
||||||
@@ -13,6 +13,7 @@ TARGREC := $(TARGET).s19
|
|||||||
TARGROM := $(TARGET).bin
|
TARGROM := $(TARGET).bin
|
||||||
SRCDIR := src/
|
SRCDIR := src/
|
||||||
BUILDDIR := build/
|
BUILDDIR := build/
|
||||||
|
GENS := $(SRCDIR)version.s
|
||||||
SRCS := $(wildcard $(SRCDIR)*.s)
|
SRCS := $(wildcard $(SRCDIR)*.s)
|
||||||
OBJS := $(patsubst $(SRCDIR)%.s,$(BUILDDIR)%.o,$(SRCS))
|
OBJS := $(patsubst $(SRCDIR)%.s,$(BUILDDIR)%.o,$(SRCS))
|
||||||
INCS := $(wildcard $(SRCDIR)*.inc)
|
INCS := $(wildcard $(SRCDIR)*.inc)
|
||||||
@@ -47,6 +48,12 @@ $(OBJS): $(BUILDDIR)%.o : $(SRCDIR)%.s
|
|||||||
-@mkdir -p $(BUILDDIR)
|
-@mkdir -p $(BUILDDIR)
|
||||||
$(AS) $(ASFLAGS) -o $@ $<
|
$(AS) $(ASFLAGS) -o $@ $<
|
||||||
|
|
||||||
|
generate: $(GENS)
|
||||||
|
|
||||||
|
$(GENS):
|
||||||
|
./genver.sh
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
@echo 'Cleaning up intermediary files...'
|
@echo 'Cleaning up intermediary files...'
|
||||||
@rm -rv $(TARGROM) $(TARGREC) map.txt $(BUILDDIR)
|
@rm -rv $(TARGROM) $(TARGREC) map.txt $(BUILDDIR)
|
||||||
|
@rm -rv $(GENS)
|
||||||
|
Reference in New Issue
Block a user