tools: one script for the bank sizes

bank_occupancy.sh takes the main and branch build directories as
optional arguments and prints a markdown table, so CI calls it instead
of a second script. It gains the HOME, BANK4 and stack rows, and reads
the web assets from the build directory, where html_min is now.
This commit is contained in:
d00f committed 2026-10-29 19:47:08 +01:00
1 parent 2cd68167fc
commit 0cdf029afd
3 files changed
+31 -41

No files matched your search

+3 -3
View File
@@ -40,7 +40,7 @@ jobs:
- name: Check that every machine definition can be compiled - name: Check that every machine definition can be compiled
run: cd branch && make machine_check run: cd branch && make machine_check
- name: Make project (4x2/RTL8372) - name: Make project (4x2/RTL8372)
run: mkdir -p /tmp/branch /tmp/main && cd branch && make CI=1 MACHINE="KP_9000_6XHML_X2" && cp output/KP_9000_6XHML_X2/rtlplayground.map output/KP_9000_6XHML_X2/rtlplayground.mem /tmp/branch/ run: mkdir -p /tmp/branch /tmp/main && cd branch && make CI=1 MACHINE="KP_9000_6XHML_X2" && cp -r output/KP_9000_6XHML_X2/rtlplayground.map output/KP_9000_6XHML_X2/rtlplayground.mem output/KP_9000_6XHML_X2/html_min /tmp/branch/
- name: Make project (8x1/RTL8373) - name: Make project (8x1/RTL8373)
run: cd branch && make CI=1 MACHINE="KP_9000_9XHML_X_V3_1" run: cd branch && make CI=1 MACHINE="KP_9000_9XHML_X_V3_1"
- name: Make project with the health instrumentation - name: Make project with the health instrumentation
@@ -49,7 +49,7 @@ jobs:
run: | run: |
ln -s ../branch/toolchain main/toolchain ln -s ../branch/toolchain main/toolchain
PATH="$(echo "$PWD"/branch/toolchain/sdcc-*/bin):$PATH" PATH="$(echo "$PWD"/branch/toolchain/sdcc-*/bin):$PATH"
cd main && make CI=1 MACHINE="KP_9000_6XHML_X2" && cp output/KP_9000_6XHML_X2/rtlplayground.map output/KP_9000_6XHML_X2/rtlplayground.mem /tmp/main/ cd main && make CI=1 MACHINE="KP_9000_6XHML_X2" && cp -r output/KP_9000_6XHML_X2/rtlplayground.map output/KP_9000_6XHML_X2/rtlplayground.mem output/KP_9000_6XHML_X2/html_min /tmp/main/
- name: Calculate bank growth - name: Calculate bank growth
run: | run: |
sh branch/tools/size_summary.sh /tmp/main /tmp/branch main/output/KP_9000_6XHML_X2/html_min branch/output/KP_9000_6XHML_X2/html_min >> "$GITHUB_STEP_SUMMARY" bash branch/tools/bank_occupancy.sh KP_9000_6XHML_X2 /tmp/main /tmp/branch >> "$GITHUB_STEP_SUMMARY"
+28 -19
View File
@@ -1,31 +1,40 @@
#!/bin/bash #!/bin/bash
MACHINE="$1" MACHINE="$1"
if [[ ! -s output-main/rtlplayground.map ]]; then MAIN="${2:-output-main}"
BRANCH="${3:-output/$MACHINE}"
if [[ ! -s "$MAIN/rtlplayground.map" ]]; then
original_branch=$(git branch --show-current) original_branch=$(git branch --show-current)
#trap 'git switch "$original_branch"' EXIT #trap 'git switch "$original_branch"' EXIT
git switch main && make CI=1 MACHINE="$MACHINE" BUILDDIR=output-main git switch main && make CI=1 MACHINE="$MACHINE" BUILDDIR="$MAIN"
git switch "$original_branch" git switch "$original_branch"
fi fi
source <(sed -rn 's/^([XCD]SEG|(BANK[0-9])).*=\s+([0-9]+)\. bytes.*$/main_\1=\3/p' output-main/rtlplayground.map | sort -u) if [[ ! -s "$BRANCH/rtlplayground.map" ]]; then
make CI=1 MACHINE="$MACHINE" BUILDDIR="$BRANCH"
main_WEB=$(du -sb output-main/html_min | awk '{print $1}')
if [[ ! -s "output/$MACHINE/rtlplayground.map" ]]; then
make CI=1 MACHINE="$MACHINE"
fi fi
source <(sed -rn 's/^([XCD]SEG|(BANK[0-9])).*=\s+([0-9]+)\. bytes.*$/branch_\1=\3/p' output/"$MACHINE"/rtlplayground.map | sort -u)
branch_WEB=$(du -sb output/html_min | awk '{print $1}') seg() {
sed -rn "s/^$1[^=]*=\s+([0-9]+)\. bytes.*$/\1/p" "$2/rtlplayground.map" | head -n 1
}
stack() {
sed -rn 's/.* with ([0-9]+) bytes available.*/\1/p' "$1/rtlplayground.mem"
}
web() {
du -sb "$1/html_min" | awk '{print $1}'
}
print_line() { print_line() {
local name=$1 main=$2 branch=$3 local name=$1 main=$2 branch=$3
printf '%-20s %-20s %-20s %-20s\n' "$name" "$main" "$branch" "$((branch - main))" echo "| $name | $main | $branch | $((${branch:-0} - ${main:-0})) |"
} }
printf '%-20s %-20s %-20s %-20s\n' "segment" "main" "branch" "change" echo "### $MACHINE"
echo
print_line "BANK1" "$main_BANK1" "$branch_BANK1" echo "| segment | main | branch | change |"
print_line "BANK2" "$main_BANK2" "$branch_BANK2" echo "| --- | ---: | ---: | ---: |"
print_line "BANK3" "$main_BANK3" "$branch_BANK3" for s in HOME CSEG BANK1 BANK2 BANK3 BANK4 DSEG XSEG; do
print_line "CSEG" "$main_CSEG" "$branch_CSEG" print_line "$s" "$(seg "$s" "$MAIN")" "$(seg "$s" "$BRANCH")"
print_line "DSEG" "$main_DSEG" "$branch_DSEG" done
print_line "XSEG" "$main_XSEG" "$branch_XSEG" print_line "stack available" "$(stack "$MAIN")" "$(stack "$BRANCH")"
print_line "WEB" "$main_WEB" "$branch_WEB" print_line "WEB" "$(web "$MAIN")" "$(web "$BRANCH")"
-19
View File
@@ -1,19 +0,0 @@
#!/bin/sh
seg() {
sed -rn "s/^$1[^=]*=\\s+([0-9]+)\\. bytes.*$/\\1/p" "$2/rtlplayground.map" | head -n 1
}
stack() {
sed -rn 's/.* with ([0-9]+) bytes available.*/\1/p' "$1/rtlplayground.mem"
}
row() {
echo "| $1 | $2 | $3 | $((${3:-0} - ${2:-0})) |"
}
echo "### KP_9000_6XHML_X2"
echo
echo "| | main | branch | change |"
echo "| --- | ---: | ---: | ---: |"
for s in HOME CSEG BANK1 BANK2 BANK3 BANK4 XSEG; do
row "$s" "$(seg $s "$1")" "$(seg $s "$2")"
done
row "stack available" "$(stack "$1")" "$(stack "$2")"
row "web" "$(du -sb "$3" | cut -f1)" "$(du -sb "$4" | cut -f1)"