From 0d7aca0060da12804bb039bc2011e7d546337baf Mon Sep 17 00:00:00 2001 From: Martin Preuss Date: Sun, 19 Jan 2025 15:49:18 +0100 Subject: [PATCH] t03: use new bootloader code. --- avr/devices/t03/boot.asm | 170 +++++++++++++++++++++++++++++++++++---- 1 file changed, 155 insertions(+), 15 deletions(-) diff --git a/avr/devices/t03/boot.asm b/avr/devices/t03/boot.asm index a733c66..c5ddd5a 100644 --- a/avr/devices/t03/boot.asm +++ b/avr/devices/t03/boot.asm @@ -6,7 +6,8 @@ ; All definitions and changes should go into this file. ; *************************************************************************** -.equ clock=1000000 ; Define the clock frequency +;.equ clock=1000000 ; Define the clock frequency +.equ clock=8000000 ; Define the clock frequency .nolist .include "include/tn841def.inc" ; Define device ATtiny841 @@ -111,8 +112,38 @@ firmwareStart: rjmp main ; will be overwritten when flashing main: -; rjmp debugStop - rjmp bootLoader ; this routine is in modules/flash/proto.asm + cli + ; setup stack + .ifdef SPH ; if SPH is defined + ldi r16, High(RAMEND) + out SPH, r16 ; init MSB stack pointer + .endif + ldi r16, Low(RAMEND) + out SPL, r16 ; init LSB stack pointer + +#if 1 + ; start by setting all ports as inputs and enable internal pull-up resistors + ldi r16, 0xff + clr r17 +.ifdef PORTA + out DDRA, r17 ; all input + out PORTA, r16 ; enable pull-up on all +.endif + +.ifdef PORTB + out DDRB, r17 ; all input + out PORTB, r16 ; enable pull-up on all +.endif + +.ifdef PORTC + out DDRC, r17 ; all input + out PORTC, r16 ; enable pull-up on all +.endif +#endif + + rcall systemSetSpeed +; rjmp debugUsart2 + rjmp bootLoader ; this routine is in modules/flash/bootloader2.asm @@ -120,26 +151,102 @@ main: ; *************************************************************************** ; includes -.include "modules/uart_bitbang/bytelevel.asm" -.include "modules/uart_bitbang/packetlevel.asm" +;.include "modules/uart_bitbang/bytelevel.asm" +;.include "modules/uart_bitbang/packetlevel.asm" +.include "modules/uart_hw/raw_uart1.asm" .include "modules/com2/crc.asm" .include "common/crc8.asm" .include "common/utils_wait_fixed.asm" .include "common/utils_copy_from_flash.asm" .include "common/utils_copy_sdram.asm" -.include "modules/flash/bootloader.asm" +.include "modules/flash/defs.asm" +.include "modules/flash/bootloader2.asm" +.include "modules/flash/io.asm" +.include "modules/flash/io_uart1.asm" .include "modules/flash/flash.asm" -.include "modules/flash/recv.asm" -.include "modules/flash/send.asm" +.include "modules/flash/flashprocess.asm" +;.include "modules/flash/recv.asm" +;.include "modules/flash/send.asm" .include "modules/flash/wait.asm" -.include "modules/flash/hdl_flash_start.asm" -.include "modules/flash/hdl_flash_data.asm" -.include "modules/flash/hdl_flash_end.asm" -.include "modules/flash/flash_rsp.asm" -.include "modules/flash/flash_ready.asm" +;.include "modules/flash/hdl_flash_start.asm" +;.include "modules/flash/hdl_flash_data.asm" +;.include "modules/flash/hdl_flash_end.asm" +;include "modules/flash/flash_rsp.asm" +;include "modules/flash/flash_ready.asm" -#if 1 +#if 0 +debugUsart1: + sbi LED_DDR, LED_PINNUM ; out + cbi LED_PORT, LED_PINNUM ; on + + ldi r16, 3 ; (19.2Kb/s at 1MHz) + ldi r17, 0 + sts UBRR1H, r17 + sts UBRR1L, r16 + + ldi r16, (3<