#include "mb91465k.h"
#include "flash.h"
-#define BUFSIZE 0x20
+#define BUFSIZE 0x10
#define cleardata() memset(data,0,BUFSIZE)
static void increaseled(void)
{
PDR14 = ~(((~PDR14)+1)%256);
- HWWD_CL = 0;
}
static unsigned char recvbyte(void)
while(running) {
cleardata();
increaseled();
+
switch(recvbyte()) {
case 0x15: //chip erase
Putch4(0x45);
size = recvword();
increaseled();
- Putch4(0x04); //Received Metadata.
PDR14 = 0xff;
for(i=0; i<size; i++) { /* get data */
increaseled();
data[i] = recvbyte();
}
- Putch4(0x08); //Received Data.
PDR14 = 0xff;
for(i=0; i<size; i+=2) { /* flash the data */
panic();
}
}
- Putch4(0x28); //Flashing done.
break;
+ case 0x23: //ack it
+ Putch4(0xaa);
+ break;
+
+ case 0x97: /* exit and restart (let do this by the watchdog)! */
+ while(1) {
+ increaseled();
+ }
+
case 0x99: /* exit */
running = 0;
break;