|
|
@@ -4,115 +4,3 @@ For source for the flash drivers, see: |
|
|
|
|
|
|
|
http://ecos.sourceware.org/ |
|
|
|
|
|
|
|
|
|
|
|
1. GDB startup script for debugging purposes. |
|
|
|
|
|
|
|
# startup script for debugging flash erase |
|
|
|
target remote 10.0.0.56:2001 |
|
|
|
monitor halt |
|
|
|
monitor reset |
|
|
|
load |
|
|
|
# stack |
|
|
|
monitor rm 13 0x7000 |
|
|
|
# pc |
|
|
|
monitor rm 15 0x8000 |
|
|
|
# arg1 to erase() |
|
|
|
monitor rm 0 0x1030000 |
|
|
|
# arg2 to erase() |
|
|
|
monitor rm 1 0x10000 |
|
|
|
stepi |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2. Uploading flash driver via tftp |
|
|
|
|
|
|
|
|
|
|
|
$ tftp 10.0.0.108 |
|
|
|
tftp> binary |
|
|
|
tftp> put at91fr40162.bin 10.0.0.108:/config/flashdriver.bin |
|
|
|
Sent 4048 bytes in 0.1 seconds |
|
|
|
tftp> |
|
|
|
|
|
|
|
|
|
|
|
4. Programming flash |
|
|
|
|
|
|
|
eCosBoard_prog 0x1000000 /config/testdata.bin |
|
|
|
|
|
|
|
|
|
|
|
tftp> put /cygdrive/c/workspace/ecosboard/ecosboard/phi/bootloader/images/bootloader.bin 10.0.0.108:/config/test.bin |
|
|
|
Sent 165724 bytes in 3.9 seconds |
|
|
|
|
|
|
|
|
|
|
|
halt |
|
|
|
reg cpsr 0x000000D3 |
|
|
|
mww 0xFFE00020 0x1 |
|
|
|
mww 0xFFE00024 0x00000000 |
|
|
|
mww 0xFFE00000 0x01002539 |
|
|
|
eCosBoard_profile |
|
|
|
eCosBoard_prog /config/test.bin 0x1000000 |
|
|
|
eCosBoard_profile_done |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
set remote memory-write-packet-size fixed |
|
|
|
|
|
|
|
|
|
|
|
set remote memory-write-packet-size 8192 |
|
|
|
set remote memory-map-packet on |
|
|
|
target remote 10.0.0.108:3333 |
|
|
|
monitor halt |
|
|
|
monitor reg cpsr 0x000000D3 |
|
|
|
monitor mww 0xFFE00020 0x1 |
|
|
|
monitor mww 0xFFE00024 0x00000000 |
|
|
|
monitor mww 0xFFE00000 0x01002539 |
|
|
|
|
|
|
|
|
|
|
|
monitor eCosBoard_profile |
|
|
|
load |
|
|
|
monitor eCosBoard_profile_done |
|
|
|
|
|
|
|
|
|
|
|
source /tmp/ecosboard/packages/services/profile/gprof/current/host/gprof.gdb |
|
|
|
gprof_dump |
|
|
|
shell cp gmon.out /tmp/ecosboard/build/src |
|
|
|
echo To view: cd /tmp/ecosboard/build/src && gprof openocd |
|
|
|
|
|
|
|
|
|
|
|
Performance problems: |
|
|
|
|
|
|
|
It seems the problem is that the actual flash programming takes time. |
|
|
|
hal_delay_us() is invoked between each time the |
|
|
|
CPU is polled for whether flash programming has completed. |
|
|
|
|
|
|
|
|
|
|
|
Flat profile: |
|
|
|
|
|
|
|
Each sample counts as 0.01 seconds. |
|
|
|
% cumulative self self total |
|
|
|
time seconds seconds calls Ts/call Ts/call name |
|
|
|
35.82 37.66 37.66 hal_delay_us |
|
|
|
11.90 50.17 12.51 arm7tdmi_clock_out |
|
|
|
9.86 60.54 10.37 gdb_get_packet |
|
|
|
5.36 66.17 5.63 memcpy |
|
|
|
4.34 70.73 4.56 target_buffer_get_u32 |
|
|
|
3.34 74.25 3.51 embeddedice_read_reg_w_che |
|
|
|
ck |
|
|
|
1.39 75.71 1.46 arm7_9_write_memory |
|
|
|
1.34 77.11 1.40 cyg_tcp_output |
|
|
|
1.33 78.51 1.40 __udivsi3 |
|
|
|
1.11 79.68 1.17 cyg_tcp_input |
|
|
|
1.07 80.80 1.13 arm7tdmi_store_word_regs |
|
|
|
0.95 81.81 1.00 __udivdi3 |
|
|
|
0.95 82.80 1.00 __umodsi3 |
|
|
|
0.93 83.78 0.98 arm7tdmi_write_core_regs |
|
|
|
0.86 84.68 0.91 arm7_9_poll |
|
|
|
0.85 85.57 0.89 memset |
|
|
|
0.77 86.38 0.81 cyg_splx |
|
|
|
0.64 87.05 0.67 cyg_in_cksumdata |
|
|
|
0.63 87.71 0.66 openeth_deliver |
|
|
|
0.57 88.31 0.60 strstr |
|
|
|
0.51 88.85 0.53 eth_drv_recv |
|
|
|
0.49 89.36 0.52 cyg_splinternal |
|
|
|
0.49 89.88 0.52 cyg_splimp |
|
|
|
0.46 90.36 0.48 cyg_ip_input |