projects
/
my-code
/
arm.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
14acad8
)
fixed firmware to ram load (should work now!)
author
hackbard
<hackbard@staubsauger.localdomain>
Sat, 4 Aug 2007 23:48:39 +0000
(
01:48
+0200)
committer
hackbard
<hackbard@staubsauger.localdomain>
Sat, 4 Aug 2007 23:48:39 +0000
(
01:48
+0200)
betty/lpcload.c
patch
|
blob
|
history
diff --git
a/betty/lpcload.c
b/betty/lpcload.c
index
6ec1186
..
0d2f9c8
100644
(file)
--- a/
betty/lpcload.c
+++ b/
betty/lpcload.c
@@
-317,7
+317,7
@@
int go(t_lpc *lpc) {
snprintf(buf,BUFSIZE,"G %d A\r\n",lpc->roff);
len=strlen(buf);
snprintf(buf,BUFSIZE,"G %d A\r\n",lpc->roff);
len=strlen(buf);
- ret=txrx(lpc,buf,
ret
,TXRX_TYPE_CMD);
+ ret=txrx(lpc,buf,
len
,TXRX_TYPE_CMD);
return ret;
}
return ret;
}
@@
-349,7
+349,7
@@
int write_to_ram(t_lpc *lpc,char *buf,u32 addr,int len) {
}
/* make it a multiple of 3 (reason: uuencode) */
}
/* make it a multiple of 3 (reason: uuencode) */
- nlen=(
len/3+1)*3
;
+ nlen=(
!(len%3))?len:((len/3+1)*3)
;
if(nlen>BUFSIZE) {
printf("ram write: too much data\n");
return -1;
if(nlen>BUFSIZE) {
printf("ram write: too much data\n");
return -1;
@@
-376,7
+376,8
@@
int write_to_ram(t_lpc *lpc,char *buf,u32 addr,int len) {
while(bcnt<nlen) {
/* uuencode / prepare data bytes */
while(bcnt<nlen) {
/* uuencode / prepare data bytes */
- uuencode((u8 *)(buf+bcnt),(u8 *)(txrxbuf),bcnt==nlen-3?len%3:3);
+ uuencode((u8 *)(buf+bcnt),(u8 *)(txrxbuf),
+ (bcnt==nlen-3)?(len%3?len%3:3):3);
txrxbuf[5]='\r';
txrxbuf[6]='\n';
txrxbuf[5]='\r';
txrxbuf[6]='\n';
@@
-384,7
+385,7
@@
int write_to_ram(t_lpc *lpc,char *buf,u32 addr,int len) {
checksum+=((u8)buf[bcnt]+(u8)buf[bcnt+1]+(u8)buf[bcnt+2]);
/* send a data line */
checksum+=((u8)buf[bcnt]+(u8)buf[bcnt+1]+(u8)buf[bcnt+2]);
/* send a data line */
- txrx(lpc,txrxbuf,
6
,TXRX_TYPE_DATA);
+ txrx(lpc,txrxbuf,
7
,TXRX_TYPE_DATA);
/* increase counters */
lcount+=1;
/* increase counters */
lcount+=1;
@@
-546,10
+547,13
@@
int main(int argc,char **argv) {
firmware_to_ram(&lpc);
/* unlock go cmd */
firmware_to_ram(&lpc);
/* unlock go cmd */
+ printf("unlock go command ...\n");
unlock_go(&lpc);
/* go! */
unlock_go(&lpc);
/* go! */
+ printf("go ...\n");
go(&lpc);
go(&lpc);
+ printf("\n");
end:
close(lpc.sfd);
end:
close(lpc.sfd);