Relative long email. I have not tried to use flashing so far. So today I tried to learn how to flash the LPC2148 on board of the Olimex LPC-P2148.
I tried to halt the target and then use "flash write_image isoc_io_sample.hex 0x0 ihex" but this does not seem to work. Then I tried to use the following script from psas (in part or in full, dcc or non-dcc) http://www.linuxjournal.com/article/10421 #***************** # open ocd (on chip debugger) script to flash lpc2148 # 'info .../OCD/src/openocd/doc/openocd.info' # 3 is most. 0 is least info. debug_level 1 # stop reset halt # log file log_output write_flash.log # pause...500mS sleep 500 # current state poll # Force ARM7 into supervisor mode reg cpsr 0x13 # mww: Memory word write # Set the MEMMAP reg to point to flash (avoids problems while trying to flash) mww 0xE01FC040 1 ### # * arm7_9 dcc_downloads <ENABLE|DISABLE> Enable the use of the debug # communications channel (DCC) to write larger (>128 byte) amounts # of memory. DCC downloads offer a huge speed increase, but might be # potentially unsafe, especially with targets running at a very low # speed. This command was introduced with OpenOCD rev. 60. arm7_9 dcc_downloads enable # Wait for target to enter debug mode. Default time is 5ms. wait_halt # pause sleep 10 # current state poll # identify the flash flash probe 0 # erase first bank only: flash erase_sector 0 0 26 # pause sleep 20 # memory display halfword <from address> [COUNT] mdh 0x0 30 # pause sleep 20 ### # * flash write_image [ERASE] <FILE> [OFFSET] [TYPE] Write the image # <FILE> to the current target's flash bank(s). A relocation # [OFFSET] can be specified and the file [TYPE] can be specified # explicitly as `bin' (binary), `ihex' (Intel hex), `elf' (ELF file) # or `s19' (Motorola s19). Flash memory will be erased prior to # programming if the `erase' parameter is given. flash write_image isoc_io_sample.hex 0x0 ihex #flash write_image serial.hex 0x0 #flash erase write_image serial.hex 0x0 #flash write_image serial.elf 0x0 elf #flash write_image serial.hex 0x0 ihex #flash write_image serial.bin 0x0 bin # pause sleep 20 # memory display halfword <from address> [COUNT] mdh 0x0 30 # pause sleep 20 # can't verify because of 0x14 reserved chksum address (LPC SPEC) #verify_image serial.hex 0x0 bin # memory display halfword <from address> [COUNT] mdh 0x0 30 # pause sleep 20 #reset run_and_halt reset halt # pause sleep 10 # stop the open ocd daemon. #shutdown #***************** The flashing seem to be successful but the target is not working. target state: halted target halted in ARM state due to debug-request, current mode: System cpsr: 0x8000005f pc: 0x0000088c cpsr (/32): 0x00000013 dcc downloads are enabled target state: halted target halted in ARM state due to debug-request, current mode: Supervisor cpsr: 0x00000013 pc: 0x0000088c flash 'lpc2000' found at 0x00000000 erased sectors 0 through 26 on flash bank 0 in 0.256274s 0x00000000: ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff 0x00000020: ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff wrote 8036 byte from file isoc_io_sample.hex in 1.586009s (4.948053 kb/s) 0x00000000: f018 e59f f018 e59f f018 e59f f018 e59f f018 e59f 0000 e1a0 fff0 e51f f014 e59f 0x00000020: 0040 0000 00e4 0000 00e0 0000 00e4 0000 00e4 0000 00d8 0000 00dc 0000 0x00000000: f018 e59f f018 e59f f018 e59f f018 e59f f018 e59f 0000 e1a0 fff0 e51f f014 e59f 0x00000020: 0040 0000 00e4 0000 00e0 0000 00e4 0000 00e4 0000 00d8 0000 00dc 0000 Error: invalid mode value encountered Error: cpsr contains invalid mode value - communication failure Runtime error, file "oocd_flash_lpc2148.script", line 96: Warn : DBGACK set while target was in unknown state. Reset or initialize target. Error: invalid mode value encountered Error: cpsr contains invalid mode value - communication failure Warn : DBGACK set while target was in unknown state. Reset or initialize target. ... (keeps the same error) After this error, I have to unplug everything and then use lpc21isp to flash the target so that I can run OpenOCD again with J-Link V3. I know the hex is correct since the target works when flashing with lpc21isp. The hex file is built from the lpcusb project and tested with the Linux host program from psas. What is the correct step to flash the LPC2148? -- Xiaofan http://mcuee.blogspot.com _______________________________________________ Openocd-development mailing list Openocd-development@lists.berlios.de https://lists.berlios.de/mailman/listinfo/openocd-development