| поискавой системы для электроныых деталей |
|
ATmega162 датащи(PDF) 227 Page - ATMEL Corporation |
|
|
|||||||||||||||||||||||||||||
ATmega162 датащи(HTML) 227 Page - ATMEL Corporation |
|
227 / 324 page ![]() 227 2513K–AVR–07/09 ATmega162/V Programming Time for Flash When Using SPM The calibrated RC Oscillator is used to time Flash accesses. Table 92 shows the typical pro- gramming time for Flash accesses from the CPU. Simple Assembly Code Example for a Boot Loader ;-the routine writes one?page of data from RAM to Flash ; the first data locatio? in RAM is pointed to by the Y pointer ; the first data locatio? in Flash is pointed to by the Z-pointer ;-error handling is not ?ncluded ;-the routine must be pl?ced inside the boot space ; (at least the Do_spm s?b routine). Only code inside NRWW section can ; be read during self-pr?gramming (page erase and page write). ;-registers used: r0, r1? temp1 (r16), temp2 (r17), looplo (r24), ; loophi (r25), spmcrval?(r20) ; storing and restoring ?f registers is not included in the routine ; register usage can be ?ptimized at the expense of code size ;-It is assumed that eit?er the interrupt table is moved to the Boot ; loader section or that?the interrupts are disabled. .equ PAGESIZEB = PAGESIZE*2 ;PAGESIZEB is page size in BYTES, not ; words .org SMALLBOOTSTART Write_page: ; page erase ldi spmcrval, (1<<PGERS) | (1<<SPMEN) call Do_spm ; re-enable the RWW section ldi spmcrval, (1<<RWWSRE) | (1<<SPMEN) call Do_spm ; transfer data from RAM to Flash page buffer ldi looplo, low(PAGESIZEB) ;init loop variable ldi loophi, high(PAGESIZEB) ;not required for PAGESIZEB<=256 Wrloop: ld r0, Y+ ld r1, Y+ ldi spmcrval, (1<<SPMEN) call Do_spm adiw ZH:ZL, 2 sbiw loophi:looplo, 2 ;use subi for PAGESIZEB<=256 brne Wrloop ; execute page write subi ZL, low(PAGESIZEB) ;restore pointer sbci ZH, high(PAGESIZEB) ;not required for PAGESIZEB<=256 ldi spmcrval, (1<<PGWRT) | (1<<SPMEN) call Do_spm ; re-enable the RWW section ldi spmcrval, (1<<RWWSRE) | (1<<SPMEN) call Do_spm ; read back and check, optional ldi looplo, low(PAGESIZEB) ;init loop variable ldi loophi, high(PAGESIZEB) ;not required for PAGESIZEB<=256 subi YL, low(PAGESIZEB) ;restore pointer sbci YH, high(PAGESIZEB) Rdloop: lpm r0, Z+ Table 92. SPM Programming Time Symbol Min Programming Time Max Programming Time Flash Write (Page Erase, Page Write, and Write Lock bits by SPM) 3.7ms 4.5ms |
|
ссылки URL |
| Вашему бизинису помогли Аллдатащит? [ DONATE ] |
Что такое Аллдатащит | реклама | контакт | Конфиденциальность | Ссылка на техническое описание | обмен ссыками | поиск по производителю All Rights Reserved©Alldatasheet.com |
| Russian : Alldatasheetru.com | Korean : Alldatasheet.co.kr | Spanish : Alldatasheet.es | French : Alldatasheet.fr | Italian : Alldatasheetit.com Portuguese : Alldatasheetpt.com | Polish : Alldatasheet.pl | Vietnamese : Alldatasheet.vn Indian : Alldatasheet.in | Mexican : Alldatasheet.com.mx | British : Alldatasheet.co.uk | New Zealand : Alldatasheet.co.nz |
|
Family Site : ic2ic.com |
icmetro.com |