NFLic

STM8S103F3 uLoader

Изучаем область HW registers (Статья 12)

В статье [Где взять, как подключить, как пользоваться] было описано как с помощью загрузчика запускать в памяти RAM образ кода, хранящегося в памяти EEPROM. Если таким образом зеркалировать все адресное простраство памяти EEPROM (640 байт для STM8S103F3), а оставшиеся 384 ячейки памяти RAM использовать под стек, то мы сталкнемся с нехваткой оперативной памяти для хранения переменных в "куче".

В этой статье попытаемся составить список ячеек области HW Registers, которые потенциально можно использовать для хранения переменных. Анализ показал, что резервные ячейки области HW Registers не имеют физического воплощения и всегда читаются как $00 вне зависимости от записываемой в них величины. Здесь приведем те ячейки которые читаются записываемой в них величиной. Следует иметь ввиду, что регистры в этой области имеют связь с аппаратными модулями. Поэтому не следует выбирать для хранения переменных регистры в используемых вами аппаратных модулях. Регистры приведены в порядке: адрес, инициализируемое при сбросе значение, название регистра, описание регистра:

 

$5002  00  PA_DDR        ; Port A data direction register
$5003  00  PA_CR1        ; Port A control register 1

$5005  00  PB_ODR        ; Port B data output latch register

$5008  20  PB_CR1        ; Port B control register 1

$500A  00  PC_ODR        ; Port C data output latch register

$500C  00  PC_DDR        ; Port C data direction register
$500D  00  PC_CR1        ; Port C control register 1

$500F  00  PD_ODR        ; Port D data output latch register

$5011  00  PD_DDR        ; Port D data direction register

$5013  00  PD_CR2        ; Port D control register 2

$50A0  00  EXTI_CR1      ; External interrupt control register 1

$5200  00  SPI_CR1       ; SPI Control Register 1
$5201  00  SPI_CR2       ; SPI Control Register 2
$5202  00  SPI_ICR       ; SPI Interrupt Control Register

$5212  00  I2C_FREQR     ; I2C frequency register
$5213  00  I2C_OARL      ; I2C Own address register low

$5216  00  I2C_DR        ; I2C data register

$521A  00  I2C_ITR       ; I2C interrupt control register
$521B  00  I2C_CCRL      ; I2C Clock control register low

$521D  02  I2C_TRISER    ; I2C TRISE register

$5250  00  TIM1_CR1      ; TIM1 Control register 1

$5252  00  TIM1_SMCR     ; TIM1 Slave Mode Control register
$5253  00  TIM1_ETR      ; TIM1 external trigger register
$5254  00  TIM1_IER      ; TIM1 Interrupt enable register

$5258  00  TIM1_CCMR1    ; TIM1 Capture/Compare mode register 1
$5259  00  TIM1_CCMR2    ; TIM1 Capture/Compare mode register 2
$525A  00  TIM1_CCMR3    ; TIM1 Capture/Compare mode register 3
$525B  00  TIM1_CCMR4    ; TIM1 Capture/Compare mode register 4
$525C  00  TIM1_CCER1    ; TIM1 Capture/Compare enable register 1
$525D  00  TIM1_CCER2    ; TIM1 Capture/Compare enable register 2
$525E  00  TIM1_CNTRH    ; Data bits High
$525F  00  TIM1_CNTRL    ; Data bits Low
$5260  00  TIM1_PSCRH    ; Data bits High
$5261  00  TIM1_PSCRL    ; Data bits Low
$5262  FF  TIM1_ARRH     ; Data bits High
$5263  FF  TIM1_ARRL     ; Data bits Low
$5264  00  TIM1_RCR      ; TIM1 Repetition counter register

$526B  00  TIM1_CCR4H    ; Data bits High
$526C  00  TIM1_CCR4L    ; Data bits Low
$526D  00  TIM1_BKR      ; TIM1 Break register

$5302  00                ; reserved 
 
$5307  00  TIM2_CCMR1    ; TIM2 Capture/Compare mode register 1
$5308  00  TIM2_CCMR2    ; TIM2 Capture/Compare mode register 2
$5309  00  TIM2_CCMR3    ; TIM2 Capture/Compare mode register 3

$530C  00  TIM2_CNTRH    ; Data bits High
$530D  00  TIM2_CNTRL    ; Data bits Low

$530F  FF  TIM2_ARRH     ; Data bits High
$5310  FF  TIM2_ARRL     ; Data bits Low
$5311  00  TIM2_CCR1H    ; Data bits High
$5312  00  TIM2_CCR1L    ; Data bits Low
$5313  00  TIM2_CCR2H    ; Data bits High
$5314  00  TIM2_CCR2L    ; Data bits Low
$5315  00  TIM2_CCR3H    ; Data bits High
$5316  00  TIM2_CCR3L    ; Data bits Low
  
$5342  00                ; reserved 
 
$5346  00  TIM4_CNTR     ; TIM4 Counter

$5348  FF  TIM4_ARR      ; TIM4 Auto-reload register
  
$5401  00  ADC_CR1       ; ADC Configuration Register 1

$5407  00  ADC_TDRL      ; Schmitt trigger disable Low
$5408  FF  ADC_HTRH      ; High Threshold Register High

$540A  00  ADC_LTRH      ; Low Threshold Register High

$540F  00  ADC_AWCRL     ; Analog Watchdog Control register Low  

 

Последняя версия загрузчика и описание работы с ним в статье [Где взять, как подключить, как пользоваться] .

 

[Методы сортировки содержимого по блокам / словам / байтам (Статья 11)] [Оглавление.]