Revert "added receivebyte with timeout. sometimes it will just hang,"
[pyfrprog.git] / pkernel / main.c
index ac9c20b9cfdc98eac7c531d4061d731700cde817..c40924f4b3c9c3c39e484a486734bba55491b5bb 100644 (file)
@@ -1,12 +1,13 @@
 #include "mb91465k.h"
 #include "flash.h"
 
-#define BUFSIZE 0x10
+#define BUFSIZE 0x20
 #define cleardata() memset(data,0,BUFSIZE)
 
 static void increaseled(void)
 {
        PDR14 = ~(((~PDR14)+1)%256);
+       HWWD_CL = 0;
 }
 
 static unsigned char recvbyte(void)
@@ -67,7 +68,6 @@ void main(void)
        while(running) {
                cleardata();
                increaseled();
-
                switch(recvbyte()) {
                        case 0x15: //chip erase
                                Putch4(0x45);
@@ -106,11 +106,13 @@ void main(void)
                                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 */
@@ -120,17 +122,9 @@ void main(void)
                                                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;