diff options
Diffstat (limited to 'ecosflash/notes.txt')
-rw-r--r-- | ecosflash/notes.txt | 111 |
1 files changed, 111 insertions, 0 deletions
diff --git a/ecosflash/notes.txt b/ecosflash/notes.txt new file mode 100644 index 00000000..21839127 --- /dev/null +++ b/ecosflash/notes.txt @@ -0,0 +1,111 @@ +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
\ No newline at end of file |