mirror of
https://github.com/Polprzewodnikowy/SummerCart64.git
synced 2024-11-22 05:59:15 +01:00
[SC64][SW] Reduced update file size
This commit is contained in:
parent
aa82984472
commit
6def5b0efc
@ -19,8 +19,8 @@
|
|||||||
- Enhanced [UltraCIC_C](https://github.com/jago85/UltraCIC_C) emulation with automatic region switching and programmable seed/checksum values
|
- Enhanced [UltraCIC_C](https://github.com/jago85/UltraCIC_C) emulation with automatic region switching and programmable seed/checksum values
|
||||||
- PC app for communicating with flashcart (game/save data upload/download, feature enable control and debug terminal)
|
- PC app for communicating with flashcart (game/save data upload/download, feature enable control and debug terminal)
|
||||||
- [UNFLoader](https://github.com/buu342/N64-UNFLoader) support
|
- [UNFLoader](https://github.com/buu342/N64-UNFLoader) support
|
||||||
- Initial board programming via UART header on board or dedicated JTAG/SWD interfaces
|
- Initial programming via UART header or dedicated JTAG/SWD interfaces
|
||||||
- Software and firmware update via USB interface
|
- Software and firmware updatable via USB interface
|
||||||
- 3D printable plastic shell
|
- 3D printable plastic shell
|
||||||
|
|
||||||
---
|
---
|
||||||
|
@ -70,7 +70,7 @@ $(BUILD_DIR)/bootloader.elf: $(OBJS) N64.ld
|
|||||||
$(BUILD_DIR)/bootloader.bin: $(BUILD_DIR)/bootloader.elf tools/strip.py
|
$(BUILD_DIR)/bootloader.bin: $(BUILD_DIR)/bootloader.elf tools/strip.py
|
||||||
@$(OBJCOPY) -O binary $< $@
|
@$(OBJCOPY) -O binary $< $@
|
||||||
@chksum64 $@ > /dev/null
|
@chksum64 $@ > /dev/null
|
||||||
@$(PYTHON) tools/strip.py $@
|
@$(PYTHON) tools/strip.py $@ 1024
|
||||||
|
|
||||||
$(BUILD_DIR)/bootloader.hex: $(BUILD_DIR)/bootloader.bin
|
$(BUILD_DIR)/bootloader.hex: $(BUILD_DIR)/bootloader.bin
|
||||||
@$(OBJCOPY) -I binary -O ihex $< $@
|
@$(OBJCOPY) -I binary -O ihex $< $@
|
||||||
|
@ -45,6 +45,12 @@ SECTIONS {
|
|||||||
_ebss = .;
|
_ebss = .;
|
||||||
} > ram
|
} > ram
|
||||||
|
|
||||||
|
.fill : {
|
||||||
|
FILL(0xFF);
|
||||||
|
BYTE(0xFF);
|
||||||
|
. = ORIGIN(rom) + LENGTH(rom);
|
||||||
|
} > rom
|
||||||
|
|
||||||
_sheap = .;
|
_sheap = .;
|
||||||
. = ORIGIN(ram) + LENGTH(ram) - __exception_stack_size - __stack_size;
|
. = ORIGIN(ram) + LENGTH(ram) - __exception_stack_size - __stack_size;
|
||||||
_eheap = .;
|
_eheap = .;
|
||||||
@ -55,13 +61,6 @@ SECTIONS {
|
|||||||
. += __stack_size;
|
. += __stack_size;
|
||||||
_sp = .;
|
_sp = .;
|
||||||
|
|
||||||
.fill : {
|
|
||||||
. = ALIGN(1024) - 4;
|
|
||||||
LONG(0xDEADBEEF);
|
|
||||||
FILL(0xFFFFFFFF);
|
|
||||||
. = ORIGIN(rom) + LENGTH(rom);
|
|
||||||
} > rom
|
|
||||||
|
|
||||||
/DISCARD/ : {
|
/DISCARD/ : {
|
||||||
*(.MIPS.*)
|
*(.MIPS.*)
|
||||||
}
|
}
|
||||||
|
@ -5,18 +5,21 @@ import sys
|
|||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
if (len(sys.argv) != 2):
|
if (len(sys.argv) != 3):
|
||||||
print(f"Usage: python {sys.argv[0]} file_path")
|
print(f"Usage: python {sys.argv[0]} file_path align")
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
|
|
||||||
file = sys.argv[1]
|
file = sys.argv[1]
|
||||||
|
align = int(sys.argv[2], base=0)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
data = b''
|
data = b''
|
||||||
with open(file, 'rb') as f:
|
with open(file, 'rb') as f:
|
||||||
data = f.read()
|
data = f.read().strip(b'\xFF')
|
||||||
with open(file, 'wb') as f:
|
with open(file, 'wb') as f:
|
||||||
f.write(data.strip(b'\xFF'))
|
modulo = (len(data) % align) if (align > 0) else 0
|
||||||
|
data += b'\xFF' * ((align - modulo) if (modulo != 0) else 0)
|
||||||
|
f.write(data)
|
||||||
except FileNotFoundError:
|
except FileNotFoundError:
|
||||||
print(f"Couldn't open file \"{file}\"")
|
print(f"Couldn't open file \"{file}\"")
|
||||||
sys.exit(2)
|
sys.exit(2)
|
||||||
|
@ -6,6 +6,8 @@ MEMORY {
|
|||||||
|
|
||||||
ENTRY(Reset_Handler)
|
ENTRY(Reset_Handler)
|
||||||
|
|
||||||
|
__bin_align = 8;
|
||||||
|
|
||||||
SECTIONS {
|
SECTIONS {
|
||||||
.loader : {
|
.loader : {
|
||||||
. = ALIGN(4);
|
. = ALIGN(4);
|
||||||
@ -53,7 +55,8 @@ SECTIONS {
|
|||||||
. = ALIGN(4);
|
. = ALIGN(4);
|
||||||
*(.rodata)
|
*(.rodata)
|
||||||
*(.rodata*)
|
*(.rodata*)
|
||||||
. = ALIGN(4);
|
FILL(0xFF);
|
||||||
|
. = ALIGN(__bin_align);
|
||||||
} > code
|
} > code
|
||||||
|
|
||||||
_estack = ORIGIN(ram) + LENGTH(ram);
|
_estack = ORIGIN(ram) + LENGTH(ram);
|
||||||
|
@ -2,7 +2,6 @@ EXE_NAME = app
|
|||||||
BUILD_DIR = build/app
|
BUILD_DIR = build/app
|
||||||
|
|
||||||
LD_SCRIPT = app.ld
|
LD_SCRIPT = app.ld
|
||||||
PAD_TO = 0x08008000
|
|
||||||
|
|
||||||
SRC_FILES = \
|
SRC_FILES = \
|
||||||
app.S \
|
app.S \
|
||||||
|
@ -29,7 +29,7 @@ $(BUILD_DIR)/$(EXE_NAME).elf: $(OBJS) $(LD_SCRIPT)
|
|||||||
@$(OBJDUMP) -S -D $@ > $(BUILD_DIR)/$(EXE_NAME).lst
|
@$(OBJDUMP) -S -D $@ > $(BUILD_DIR)/$(EXE_NAME).lst
|
||||||
|
|
||||||
$(BUILD_DIR)/$(EXE_NAME).bin: $(BUILD_DIR)/$(EXE_NAME).elf
|
$(BUILD_DIR)/$(EXE_NAME).bin: $(BUILD_DIR)/$(EXE_NAME).elf
|
||||||
$(OBJCOPY) -O binary --gap-fill 0xFF --pad-to $(PAD_TO) $< $@
|
$(OBJCOPY) -O binary --gap-fill 0xFF $< $@
|
||||||
|
|
||||||
$(BUILD_DIR)/$(EXE_NAME).hex: $(BUILD_DIR)/$(EXE_NAME).bin
|
$(BUILD_DIR)/$(EXE_NAME).hex: $(BUILD_DIR)/$(EXE_NAME).bin
|
||||||
@$(OBJCOPY) -I binary -O ihex $< $@
|
@$(OBJCOPY) -I binary -O ihex $< $@
|
||||||
|
@ -2,7 +2,6 @@ EXE_NAME = loader
|
|||||||
BUILD_DIR = build/loader
|
BUILD_DIR = build/loader
|
||||||
|
|
||||||
LD_SCRIPT = loader.ld
|
LD_SCRIPT = loader.ld
|
||||||
PAD_TO = 0x08001000
|
|
||||||
|
|
||||||
SRC_FILES = \
|
SRC_FILES = \
|
||||||
loader.S \
|
loader.S \
|
||||||
|
@ -2,7 +2,6 @@ EXE_NAME = primer
|
|||||||
BUILD_DIR = build/primer
|
BUILD_DIR = build/primer
|
||||||
|
|
||||||
LD_SCRIPT = primer.ld
|
LD_SCRIPT = primer.ld
|
||||||
PAD_TO = 0x20002000
|
|
||||||
|
|
||||||
SRC_FILES = \
|
SRC_FILES = \
|
||||||
primer.S \
|
primer.S \
|
||||||
|
Loading…
Reference in New Issue
Block a user