u8 bank;
u32 i;
u16 data;
+ u8 byte;
+ u8 cksm;
/* which bank to program */
if(addr<0x82000000)
unlock_bypass(bank);
/* receive and write data */
+ cksm=0;
for(i=0;i<datalen/2;i++) {
- data=uart0_get_byte();
- data=uart0_get_byte()<<8;
+ byte=uart0_get_byte();
+ data=byte;
+ cksm+=byte;
+ byte=uart0_get_byte();
+ cksm+=byte;
+ data|=byte<<8;
*((unsigned volatile short *)addr)=0xa0;
*((unsigned volatile short *)addr)=data;
addr+=2;
/* relock bypass */
unlock_bypass_reset(bank);
+
+ /* send an ack */
+ uart0_send_byte(cksm);
}
/*