INFO - FAQ - CC2-Forum - CCPro-Forum |
|
Hallo Reinhard, beispielsweise ist im Manual zum QY4/QT4 (MC68HC908QY4.pdf) im Kapitel 2.6.4 (FLASH Program Operation) der Section 2 (Memory) Schritt für Schritt das Verfahren beschrieben, mit dem der Flash zu programmieren ist: 1. Set the PGM bit. 2. Read the FLASH block protect register. 3. Write any data to any FLASH location within the address range desired. etc. Ganz wichtig in dem Zusammenhang ist der Satz "Do not exceed tPROG maximum, see 16.16 Memory Characteristics". Denn das Programmieren ist zeitkritisch. Außerdem kann das Programmieren oder Löschen des Flashs nicht von Code durchgeführt werden, der im Flash ausgeführt wird. Die Routine muß also im RAM oder ROM stehen. Um die Sache zu vereinfachen haben einige 68HC908-Kontroller on-chip ROM-Routinen zum Löschen und Beschreiben des Flashs. Diese Routinen lassen sich natürlich auch von Code aufrufen, der im Flash ausgeführt wird. Beschrieben sind die Routinen im Application Note AN2346 (EEPROM Emulation Using Flash) und AN1831 (Using MC68HC908 On-Chip FLASH Programming Routines): ; On-chip ROM routine of MC68HC908QY/QT EraRnge equ $2806 ;FLASH erase routine in internal ROM PgrRnge equ $2809 ;FLASH program routine in internal ROM blocksize equ 64 org $88 CtrlByt db 0 ;Control bits CPUSpd db 16 ;Bus speed in units of 0.25MHz LstAddr dw $ee00 ;FLASH block end address BfrStrt ds blocksize ;Buffer in RAM Gruß Dietmar Meine Homepage: http://ccintern.dharlos.de |
Antwort schreiben |