Blame | Last modification | View Log | Download | RSS feed | ?url?
ifndef __regstm8inc ; avoid multiple inclusion
__regstm8inc equ 1
save
listing off ; no listing over this file
;****************************************************************************
;* *
;* AS 1.42 - File REGSTM8.INC *
;* *
;* contains SFR and Bit Definitions for STM8 Processors *
;* *
;****************************************************************************
;----------------------------------------------------------------------------
; General Macros
bfield macro {INTLABEL},reg,start,count
__LABEL__ equ ((1<<(count+start))-1)-((1<<start)-1)
endm
__decstr macro DEST,SRC
if (SRC)<10
DEST set "\{SRC}"
elseif
DEST set "\{(SRC)/10}\{(SRC)#10}"
endif
endm
__dec02str macro DEST,SRC
DEST set "\{(SRC)/10}\{(SRC)#10}"
endm
;----------------------------------------------------------------------------
; Include proper CPU-specific register definitions
switch MOMCPUNAME
case "STM8S001J3"
include "stm8/stm8s/reg001j3.inc"
case "STM8S003F3","STM8S003K3"
include "stm8/stm8s/reg003f3.inc"
case "STM8S005C6","STM8S005K6"
include "stm8/stm8s/reg005c6.inc"
case "STM8S007C8"
include "stm8/stm8s/reg007c8.inc"
case "STM8S103F2","STM8S103F3","STM8S103K3"
include "stm8/stm8s/reg103f3.inc"
case "STM8S105C4","STM8S105C6","STM8S105K4","STM8S105K6","STM8S105S4","STM8S105S6"
include "stm8/stm8s/reg105c6.inc"
case "STM8S207MB","STM8S207M8","STM8S207RB","STM8S207R8","STM8S207R6","STM8S207CB","STM8S207C8","STM8S207C6","STM8S207SB","STM8S207S8","STM8S207S6","STM8S207K8","STM8S207K6"
include "stm8/stm8s/reg207mb.inc"
case "STM8S208MB","STM8S208RB","STM8S208R8","STM8S208R6","STM8S208CB","STM8S208C8","STM8S208C6","STM8S208SB","STM8S208S8","STM8S208S6"
include "stm8/stm8s/reg208mb.inc"
case "STM8S903K3","STM8S903F3"
include "stm8/stm8s/reg903f3.inc"
case "STM8L050J3"
include "stm8/stm8l/reg050j3.inc"
case "STM8L051F3"
include "stm8/stm8l/reg051f3.inc"
case "STM8L052C6"
include "stm8/stm8l/reg052c6.inc"
case "STM8L052R8"
include "stm8/stm8l/reg052r8.inc"
case "STM8L001J3"
include "stm8/stm8l/reg001j3.inc"
case "STM8L101F1","STM8L101F2","STM8L101G2","STM8L101F3","STM8L101G3","STM8L101K3"
include "stm8/stm8l/reg101xx.inc"
case "STM8L151C2","STM8L151K2","STM8L151G2","STM8L151F2","STM8L151C3","STM8L151K3","STM8L151G3","STM8L151F3"
include "stm8/stm8l/reg151xx.inc"
case "STM8L151C4","STM8L151C6","STM8L151K4","STM8L151K6","STM8L151G4","STM8L151G6"
include "stm8/stm8l/reg151x4.inc"
case "STM8L152C4","STM8L152C6","STM8L152K4","STM8L152K6"
include "stm8/stm8l/reg152x4.inc"
case "STM8L151R6","STM8L151C8","STM8L151M8","STM8L151R8"
include "stm8/stm8l/reg151x8.inc"
case "STM8L152R6","STM8L152C8","STM8L152K8","STM8L152M8","STM8L152R8"
include "stm8/stm8l/reg152x8.inc"
case "STM8L162M8","STM8L162R8"
include "stm8/stm8l/reg162x8.inc"
case "STM8AF6366"
include "stm8/stm8af/reg6366.inc"
case "STM8AF6388"
include "stm8/stm8af/reg6388.inc"
case "STM8AF6226","STM8AF6223","STM8AF6213"
include "stm8/stm8af/reg62x3.inc"
case "STM8AF6246","STM8AF6248","STM8AF6266","STM8AF6268"
include "stm8/stm8af/reg62x6.inc"
case "STM8AF6269","STM8AF6286","STM8AF6288","STM8AF6289","STM8AF628A","STM8AF62A6","STM8AF62A8","STM8AF62A9","STM8AF62AA"
include "stm8/stm8af/reg62x9.inc"
case "STM8AF5268","STM8AF5269","STM8AF5286","STM8AF5288","STM8AF5289","STM8AF528A","STM8AF52A6","STM8AF52A8","STM8AF52A9","STM8AF52AA"
include "stm8/stm8af/reg52x9.inc"
case "STM8AL3136","STM8AL3138","STM8AL3146","STM8AL3148","STM8AL3166","STM8AL3168"
include "stm8/stm8al/reg31x6.inc"
case "STM8AL3L46","STM8AL3L48","STM8AL3L66","STM8AL3L68"
include "stm8/stm8al/reg3lx6.inc"
case "STM8AL3188","STM8AL3189","STM8AL318A"
include "stm8/stm8al/reg31x8.inc"
case "STM8AL3L88","STM8AL3L89","STM8AL3L8A"
include "stm8/stm8al/reg3lx8.inc"
case "STM8TL52F4", "STM8TL52G4", "STM8TL53C4", "STM8TL53F4", "STM8TL53G4"
include "stm8/stm8t/reg05xx4.inc"
elsecase
error "wrong processor type set: only STM8S001J3, STM8S003F3, STM8S003K3, STM8S005C6, STM8S005K6, STM8S007C8, STM8S103F2, STM8S103F3,STM8S103K3,"
error "STM8S105C4, STM8S105C6, STM8S105K4, STM8S105K6, STM8S105S4, STM8S105S6, STM8L050J3, STM8L051F3, STM8L052C6, STM8L052R8, STM8L001J3,"
error "STM8L101F1, STM8L101F2, STM8L101G2, STM8L101F3, STM8L101G3, STM8L101K3, STM8L151C2, STM8L151K2, STM8L151G2, STM8L151F2, STM8L151C3,"
error "STM8L151K3, STM8L151G3, STM8L151F3, STM8L162M8, STM8L162R8, STM8AF6366, STM8AF6388, STM8AF6213, STM8AF6223, STM8AF6226, STM8AF6246,"
error "STM8AF6248, STM8AF6266, STM8AF6268, STM8AF6269, STM8AF6286, STM8AF6288, STM8AF6289, STM8AF628A, STM8AF62A6, STM8AF62A8, STM8AF62A9,"
error "STM8AF62AA, STM8AF5268, STM8AF5269, STM8AF5286, STM8AF5288, STM8AF5289, STM8AF528A, STM8AF52A6, STM8AF52A8, STM8AF52A9, STM8AF52AA,"
fatal "STM8TL52F4, STM8TL52G4, STM8TL53C4, STM8TL53F4, STM8TL53G4 allowed!"
endcase
if MOMPASS=1
message "STM8 Register Definitions (C) 2019 Alfred Arnold"
endif
;----------------------------------------------------------------------------
; Post Processing
; Flash Size can usually be deduced from the part number:
ifndef FLASHEND
if substr(MOMCPUNAME,4,1)=="A" ; automotive
switch substr(MOMCPUNAME,8,1)
case "1" ; '1' -> 4K
FLASHEND label FLASHSTART+$0fff
case "2","3" ; '2/3' -> 8K
FLASHEND label FLASHSTART+$1fff
case "4" ; '4' -> 16K
FLASHEND label FLASHSTART+$3fff
case "6" ; '6' -> 32K
FLASHEND label FLASHSTART+$7fff
case "8" ; '8' -> 64K
FLASHEND label FLASHSTART+$ffff
case "A" ; 'A' -> 128K
FLASHEND label FLASHSTART+$1ffff
elsecase
fatal "Cannot deduce flash size from device name"
endcase
elseif ; non-automotive
switch substr(MOMCPUNAME,9,1)
case "1" ; '1' -> 2K
FLASHEND label FLASHSTART+$07ff
case "2" ; '2' -> 4K
FLASHEND label FLASHSTART+$0fff
case "3" ; '3' -> 8K
FLASHEND label FLASHSTART+$1fff
case "4" ; '4' -> 16K
FLASHEND label FLASHSTART+$3fff
case "6" ; '6' -> 32K
FLASHEND label FLASHSTART+$7fff
case "8" ; '8' -> 64K
FLASHEND label FLASHSTART+$ffff
case "B" ; 'B' -> 128K
FLASHEND label FLASHSTART+$1ffff
elsecase
fatal "Cannot deduce flash size from device name"
endcase
endif ; automotive
endif
;----------------------------------------------------------------------------
restore ; allow again
endif ; __regstm8inc