avr: setup module mask to be later reported to a host.

This commit is contained in:
Martin Preuss
2023-03-19 13:24:01 +01:00
parent 67ac8af9b4
commit ccb642d703
2 changed files with 40 additions and 3 deletions

View File

@@ -42,6 +42,9 @@
; ---------------------------------------------------------------------------
; list of modules to use
#define FW_MAIN_VERSION_HIGH 0
#define FW_MAIN_VERSION_LOW 1
#define MODULES_TIMER
#define MODULES_COM
#define MODULES_LED
@@ -49,6 +52,31 @@
#define MODULES_LCD
#define MODULES_SI7021
.set MODULES_MASK = 0
#ifdef MODULES_TIMER
.set MODULES_MASK = MODULES_MASK | (1<<AQHOME_FW_MODULE_TIMER)
#endif
#ifdef MODULES_COM
.set MODULES_MASK = MODULES_MASK | (1<<AQHOME_FW_MODULE_COM)
#endif
#ifdef MODULES_LED
.set MODULES_MASK = MODULES_MASK | (1<<AQHOME_FW_MODULE_LED)
#endif
#ifdef MODULES_TWI_MASTER
.set MODULES_MASK = MODULES_MASK | (1<<AQHOME_FW_MODULE_TWIMASTER)
#endif
#ifdef MODULES_LCD
.set MODULES_MASK = MODULES_MASK | (1<<AQHOME_FW_MODULE_LCD)
#endif
#ifdef MODULES_SI7021
.set MODULES_MASK = MODULES_MASK | (1<<AQHOME_FW_MODULE_SI7021)
#endif
; ---------------------------------------------------------------------------
; defines for modules
#define LCD_MINIMAL_FONT
@@ -211,19 +239,20 @@ ledA3Sram: .byte LED_SRAM_SIZE
.cseg
ledA3Flash: .db DDRA+0x20, PORTA+0x20, PINA+0x20, (1<<PORTA3)
blinkPattern: .db 2, 10, 0xff, 0xff ; 1 short blink, 1s pause, restart
blinkPattern: .db 2, 50, 0xff, 0xff ; 1 short blink, 2s pause, restart
;blinkPattern2: .db 10, 20, 0xff, 0xff ; 1 long blink, 2s pause, restart
firmwareHeader: .db FW_MAIN_VERSION_HIGH, FW_MAIN_VERSION_LOW
.dw MODULES_MASK
.include "main.asm"
; ---------------------------------------------------------------------------
; Called on first time run, i.e. on system start. No arguments, no results.
onSystemStart:
rcall Utils_SetupUid
#ifdef MODULES_COM
rcall CPRO_StartReclaimAddrProcedure