projects
/
my-code
/
arm.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fwflash taking over fwbc, lpcload taking over fwdump
[my-code/arm.git]
/
betty
/
fwflash.c
diff --git
a/betty/fwflash.c
b/betty/fwflash.c
index
8b89941
..
4fa0479
100644
(file)
--- a/
betty/fwflash.c
+++ b/
betty/fwflash.c
@@
-59,7
+59,8
@@
void uart0_init(void) {
PINSEL0=0x05; // pin select -> tx, rx
UART0_FCR=0x07; // enable fifo
UART0_LCR=0x83; // set dlab + word length
PINSEL0=0x05; // pin select -> tx, rx
UART0_FCR=0x07; // enable fifo
UART0_LCR=0x83; // set dlab + word length
- UART0_DLL=0x10; // br: 9600 @ 10/4 mhz
+ //UART0_DLL=0x10; // br: 9600 @ 10/4 mhz
+ UART0_DLL=0x04; // br: 38400 @ 10/4 mhz
UART0_DLM=0x00;
UART0_LCR=0x03; // unset dlab
}
UART0_DLM=0x00;
UART0_LCR=0x03; // unset dlab
}
@@
-97,7
+98,7
@@
void uart0_send_buf16(u16 *buf,int len) {
i=0;
i=0;
- for(i=0;i<len;i++) {
+ for(i=0;i<len
/2
;i++) {
if(!(i%8))
while(!(UART0_LSR&(1<<6)))
continue;
if(!(i%8))
while(!(UART0_LSR&(1<<6)))
continue;
@@
-112,7
+113,7
@@
void uart0_send_buf32(u32 *buf,int len) {
i=0;
i=0;
- for(i=0;i<len;i++) {
+ for(i=0;i<len
/4
;i++) {
if(!(i%4))
while(!(UART0_LSR&(1<<6)))
continue;
if(!(i%4))
while(!(UART0_LSR&(1<<6)))
continue;
@@
-189,16
+190,12
@@
int main(void) {
datalen=1;
break;
default:
datalen=1;
break;
default:
- uart0_send_byte('f');
txrx=0;
break;
}
txrx=0;
break;
}
- if(txrx) {
- /* send an ack */
- uart0_send_byte(cmd);
+ if(txrx)
break;
break;
- }
}
/* receive (only if there is) more data from uart0 */
}
/* receive (only if there is) more data from uart0 */
@@
-217,11
+214,11
@@
int main(void) {
/* data length to read */
datalen=buf[0]<<24|buf[1]<<16|buf[2]<<8|buf[3];
/* check addr and datalen */
/* data length to read */
datalen=buf[0]<<24|buf[1]<<16|buf[2]<<8|buf[3];
/* check addr and datalen */
- if((addr>=BANK0)&(addr+datalen<BANK0+BANK_SIZE))
+ if((addr>=BANK0)&(addr+datalen<
=
BANK0+BANK_SIZE))
uart0_send_buf16((u16 *)addr,datalen);
uart0_send_buf16((u16 *)addr,datalen);
- if((addr>=BANK2)&(addr+datalen<BANK2+BANK_SIZE))
+ if((addr>=BANK2)&(addr+datalen<
=
BANK2+BANK_SIZE))
uart0_send_buf16((u16 *)addr,datalen);
uart0_send_buf16((u16 *)addr,datalen);
- if((addr>=BOOTLOADER)&(addr+datalen<BOOTLOADER+BL_SIZE))
+ if((addr>=BOOTLOADER)&(addr+datalen<
=
BOOTLOADER+BL_SIZE))
uart0_send_buf32((u32 *)addr,datalen);
break;
case CMD_CHIP_ERASE:
uart0_send_buf32((u32 *)addr,datalen);
break;
case CMD_CHIP_ERASE: