Blame | Last modification | View Log | Download | RSS feed
ifndef __regstm8inc ; avoid multiple inclusion__regstm8inc equ 1savelisting off ; no listing over this file;****************************************************************************;* *;* AS 1.42 - File REGSTM8.INC *;* *;* contains SFR and Bit Definitions for STM8 Processors *;* *;****************************************************************************;----------------------------------------------------------------------------; General Macrosbfield macro {INTLABEL},reg,start,count__LABEL__ equ ((1<<(count+start))-1)-((1<<start)-1)endm__decstr macro DEST,SRCif (SRC)<10DEST set "\{SRC}"elseifDEST set "\{(SRC)/10}\{(SRC)#10}"endifendm__dec02str macro DEST,SRCDEST set "\{(SRC)/10}\{(SRC)#10}"endm;----------------------------------------------------------------------------; Include proper CPU-specific register definitionsswitch MOMCPUNAMEcase "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"elsecaseerror "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!"endcaseif MOMPASS=1message "STM8 Register Definitions (C) 2019 Alfred Arnold"endif;----------------------------------------------------------------------------; Post Processing; Flash Size can usually be deduced from the part number:ifndef FLASHENDif substr(MOMCPUNAME,4,1)=="A" ; automotiveswitch substr(MOMCPUNAME,8,1)case "1" ; '1' -> 4KFLASHEND label FLASHSTART+$0fffcase "2","3" ; '2/3' -> 8KFLASHEND label FLASHSTART+$1fffcase "4" ; '4' -> 16KFLASHEND label FLASHSTART+$3fffcase "6" ; '6' -> 32KFLASHEND label FLASHSTART+$7fffcase "8" ; '8' -> 64KFLASHEND label FLASHSTART+$ffffcase "A" ; 'A' -> 128KFLASHEND label FLASHSTART+$1ffffelsecasefatal "Cannot deduce flash size from device name"endcaseelseif ; non-automotiveswitch substr(MOMCPUNAME,9,1)case "1" ; '1' -> 2KFLASHEND label FLASHSTART+$07ffcase "2" ; '2' -> 4KFLASHEND label FLASHSTART+$0fffcase "3" ; '3' -> 8KFLASHEND label FLASHSTART+$1fffcase "4" ; '4' -> 16KFLASHEND label FLASHSTART+$3fffcase "6" ; '6' -> 32KFLASHEND label FLASHSTART+$7fffcase "8" ; '8' -> 64KFLASHEND label FLASHSTART+$ffffcase "B" ; 'B' -> 128KFLASHEND label FLASHSTART+$1ffffelsecasefatal "Cannot deduce flash size from device name"endcaseendif ; automotiveendif;----------------------------------------------------------------------------restore ; allow againendif ; __regstm8inc