diff options
author | Matthew Sotoudeh <matthew@masot.net> | 2024-02-25 18:43:49 -0800 |
---|---|---|
committer | Matthew Sotoudeh <matthew@masot.net> | 2024-02-25 18:43:49 -0800 |
commit | 2554e7f506596a017d14188b28276abc9a52c93d (patch) | |
tree | a2d09a129ab553b51cade413b70290a482c62e08 | |
parent | b78d16cd5580117254aa1c03e06204f05bdf094f (diff) |
blink runsmasot-blink
-rw-r--r-- | Makefile | 7 | ||||
-rw-r--r-- | blink/blink.c | 6 | ||||
-rw-r--r-- | blink/memmap.ld | 6 | ||||
-rw-r--r-- | bootloader/bootloader.c | 3 | ||||
-rw-r--r-- | bootloader/log.h | 2 | ||||
-rw-r--r-- | ox-flash/add_header.py | 8 |
6 files changed, 23 insertions, 9 deletions
@@ -2,4 +2,9 @@ flash-blink: make -B -C blink - ./ox-flash/ox-flash -payload blink/build/blink.bin + python3 ox-flash/add_header.py blink/build/blink.bin blink/build/blink.payload + ./ox-flash/ox-flash -echo -run -payload blink/build/blink.payload + +flash-bootloader: + make -B -C bootloader + ./ox-flash/ox-flash -echo -run -bootloader bootloader/bootloader.bin diff --git a/blink/blink.c b/blink/blink.c index 260fb1f..163153c 100644 --- a/blink/blink.c +++ b/blink/blink.c @@ -11,7 +11,11 @@ int notmain() { *bss++ = 0; } - size_t pin = 29; + uart_putc('h'); + uart_putc('i'); + uart_putc('\n'); + + size_t pin = 12; gpio_set_function(pin, GPIO_GPIO); gpio_set_output(pin); gpio_set_on(pin); diff --git a/blink/memmap.ld b/blink/memmap.ld index 1aacaf3..0a543ee 100644 --- a/blink/memmap.ld +++ b/blink/memmap.ld @@ -1,6 +1,3 @@ -OUTPUT_ARCH(riscv) -OUTPUT_FORMAT(elf64-littleriscv) - ENTRY (_start) MEMORY @@ -21,7 +18,7 @@ SECTIONS { . = ORIGIN(PSRAM); __stack_size = 2K; - .text : { + .text ORIGIN(PSRAM) : { __code_start__ = .; KEEP(*(.text.boot)) *(.text*) @@ -39,7 +36,6 @@ SECTIONS { .sdata : { . = ALIGN(4); - __global_pointer$ = . + 0x800; *(.sdata*) *(.srodata*) } diff --git a/bootloader/bootloader.c b/bootloader/bootloader.c index b3d3cd4..c8c56f0 100644 --- a/bootloader/bootloader.c +++ b/bootloader/bootloader.c @@ -24,6 +24,7 @@ void kmain() { uartmux_configure(uartmux_signal_number(14), 0, UARTMUX_TX); uartmux_configure(uartmux_signal_number(15), 0, UARTMUX_RX); + for (int i = 0; i < 500; i++) INFO("hi %d\n", i); } INFO("bootloader init\n"); { @@ -43,7 +44,7 @@ void kmain() { TRACE("timer init\n"); timer_init(CLOCK); - INFO("addr = 0x%lx\n", payload.entry); + INFO("addr = 0x%x\n", payload.entry); INFO("size = 0x%x\n", payload.size); INFO("cksum = 0x%x\n", payload.cksum); diff --git a/bootloader/log.h b/bootloader/log.h index f146ce5..845d3db 100644 --- a/bootloader/log.h +++ b/bootloader/log.h @@ -1,7 +1,7 @@ #pragma once #ifndef LOG_LEVEL -#define LOG_LEVEL 3 +#define LOG_LEVEL 5 #warning "No log level set, defaulting to 3 (INFO)" #endif diff --git a/ox-flash/add_header.py b/ox-flash/add_header.py new file mode 100644 index 0000000..798d16a --- /dev/null +++ b/ox-flash/add_header.py @@ -0,0 +1,8 @@ +import sys +import zlib +import struct + +bin_bytes = open(sys.argv[1], 'rb').read() +with open(sys.argv[2], 'wb') as wr: + wr.write(struct.pack("QII", 0x50000000, len(bin_bytes), zlib.crc32(bin_bytes))) + wr.write(bin_bytes) |