lo mas rapido es usar asm .
en souce files del proyecto siempre le incluyo un archivo " .s " para funciones en asm y es muy practico enlazrlo con el C
por ejemplo , asi se borra la ram muy rapido con un valor x :
.section .data
.global _buffer_video
.align 1
_buffer_video : .space 9600
/***********************************************************************/
_Clear_ram :
/***********************************************************************/
mov.w #_buffer_video,w1
do #9600 , Loop_Clear_
mov.b w0,[w1++]
Loop_Clear_ : nop
return
Lo indicas en "c" asi :
extern Clear_ram( unsigned char x );
y la ejecutas :
Clear_ram(0);
Para leer la flash es parecido
/***********************************************************************/
_imprime_constantes_al_PORTB:
/***********************************************************************/
mov #_constantes , w0
repeat #39 ; 40 bytes al PORTB a toda leche
mov.b [v0++] , PORTB
return
; los valores constantes
.text
_constantes :
.byte 0x7F,0xFF,0xFE,0xFA,0x52,0x48,0xA9,0x29,0x78,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
.byte 0x7B,0xDF,0xFB,0xF9,0x15,0x25,0x05,0x44,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
es solo un ejemplo y no te asuste el asm , quizas haya que perder un poco de tiempo en estudiar las intrucciones , pero merece la pena.
ademas con unas pocas que se usen casi se hace todo