changed to eCos license.
[mw/openocd-lm32.git] / ecosflash / notes.txt
1 Some of these binaries are build & linked using eCos. 
2
3 For source for the flash drivers, see:
4
5 http://ecos.sourceware.org/
6
7
8 1. GDB startup script for debugging purposes.
9
10 # startup script for debugging flash erase
11 target remote 10.0.0.56:2001
12 monitor halt
13 monitor reset
14 load
15 # stack
16 monitor rm 13 0x7000
17 # pc 
18 monitor rm 15 0x8000
19 # arg1 to erase()
20 monitor rm 0 0x1030000
21 # arg2 to erase()
22 monitor rm 1 0x10000
23 stepi
24
25
26
27 2. Uploading flash driver via tftp
28
29
30 $ tftp 10.0.0.108
31 tftp> binary
32 tftp> put at91fr40162.bin 10.0.0.108:/config/flashdriver.bin
33 Sent 4048 bytes in 0.1 seconds
34 tftp>
35
36
37 4. Programming flash
38
39 eCosBoard_prog 0x1000000 /config/testdata.bin
40  
41  
42 tftp> put /cygdrive/c/workspace/ecosboard/ecosboard/phi/bootloader/images/bootloader.bin 10.0.0.108:/config/test.bin
43 Sent 165724 bytes in 3.9 seconds
44
45
46 halt
47 reg cpsr 0x000000D3
48 mww 0xFFE00020 0x1
49 mww 0xFFE00024 0x00000000
50 mww 0xFFE00000 0x01002539
51 eCosBoard_profile
52 eCosBoard_prog /config/test.bin 0x1000000
53 eCosBoard_profile_done
54
55
56
57
58 set remote memory-write-packet-size fixed
59
60
61 set remote memory-write-packet-size 8192
62 set remote memory-map-packet on
63 target remote 10.0.0.108:3333
64 monitor halt
65 monitor reg cpsr 0x000000D3
66 monitor mww 0xFFE00020 0x1
67 monitor mww 0xFFE00024 0x00000000
68 monitor mww 0xFFE00000 0x01002539
69
70
71 monitor eCosBoard_profile
72 load
73 monitor eCosBoard_profile_done
74
75
76 source /tmp/ecosboard/packages/services/profile/gprof/current/host/gprof.gdb
77 gprof_dump
78 shell cp gmon.out /tmp/ecosboard/build/src
79 echo To view: cd /tmp/ecosboard/build/src && gprof openocd
80
81
82 Performance problems:
83
84 It seems the problem is that the actual flash programming takes time. 
85 hal_delay_us() is invoked between each time the 
86 CPU is polled for whether flash programming has completed.
87
88
89 Flat profile:
90
91 Each sample counts as 0.01 seconds.
92   %   cumulative   self              self     total
93  time   seconds   seconds    calls  Ts/call  Ts/call  name
94  35.82     37.66    37.66                             hal_delay_us
95  11.90     50.17    12.51                             arm7tdmi_clock_out
96   9.86     60.54    10.37                             gdb_get_packet
97   5.36     66.17     5.63                             memcpy
98   4.34     70.73     4.56                             target_buffer_get_u32
99   3.34     74.25     3.51                             embeddedice_read_reg_w_che
100 ck
101   1.39     75.71     1.46                             arm7_9_write_memory
102   1.34     77.11     1.40                             cyg_tcp_output
103   1.33     78.51     1.40                             __udivsi3
104   1.11     79.68     1.17                             cyg_tcp_input
105   1.07     80.80     1.13                             arm7tdmi_store_word_regs
106   0.95     81.81     1.00                             __udivdi3
107   0.95     82.80     1.00                             __umodsi3
108   0.93     83.78     0.98                             arm7tdmi_write_core_regs
109   0.86     84.68     0.91                             arm7_9_poll
110   0.85     85.57     0.89                             memset
111   0.77     86.38     0.81                             cyg_splx
112   0.64     87.05     0.67                             cyg_in_cksumdata
113   0.63     87.71     0.66                             openeth_deliver
114   0.57     88.31     0.60                             strstr
115   0.51     88.85     0.53                             eth_drv_recv
116   0.49     89.36     0.52                             cyg_splinternal
117   0.49     89.88     0.52                             cyg_splimp
118   0.46     90.36     0.48                             cyg_ip_input