projects
/
my-code
/
arm.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
cksm implemented (still basic flash access not working!)
[my-code/arm.git]
/
betty
/
fwflash.c
diff --git
a/betty/fwflash.c
b/betty/fwflash.c
index
c4a2155
..
2704fd5
100644
(file)
--- a/
betty/fwflash.c
+++ b/
betty/fwflash.c
@@
-295,6
+295,8
@@
void receive_data_and_write_to_flash(u32 addr,u32 datalen) {
u8 bank;
u32 i;
u16 data;
u8 bank;
u32 i;
u16 data;
+ u8 byte;
+ u8 cksm;
/* which bank to program */
if(addr<0x82000000)
/* which bank to program */
if(addr<0x82000000)
@@
-306,9
+308,14
@@
void receive_data_and_write_to_flash(u32 addr,u32 datalen) {
unlock_bypass(bank);
/* receive and write data */
unlock_bypass(bank);
/* receive and write data */
+ cksm=0;
for(i=0;i<datalen/2;i++) {
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;
*((unsigned volatile short *)addr)=0xa0;
*((unsigned volatile short *)addr)=data;
addr+=2;
@@
-316,6
+323,9
@@
void receive_data_and_write_to_flash(u32 addr,u32 datalen) {
/* relock bypass */
unlock_bypass_reset(bank);
/* relock bypass */
unlock_bypass_reset(bank);
+
+ /* send an ack */
+ uart0_send_byte(cksm);
}
/*
}
/*