From d17e1cd93384d56886be7e67cf2b31e97118d811 Mon Sep 17 00:00:00 2001 From: oharboe Date: Thu, 28 Feb 2008 08:25:46 +0000 Subject: eCos flash driver. git-svn-id: svn://svn.berlios.de/openocd/trunk@365 b42882b7-edfa-0310-969c-e2dbd0fdcd60 --- ecosflash/notes.txt | 111 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 111 insertions(+) create mode 100644 ecosflash/notes.txt (limited to 'ecosflash/notes.txt') 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 -- cgit v1.2.3