jtag_get_device() now returns NULL and reports error instead of invoking exit()
[fw/openocd] / src / flash / str7x.c
index 5c17a6c5e4e1a4dfb5057d1b519cd7b6aacb75c5..09d3b81770af90c87b22c5c2ab40a55aec39ca13 100644 (file)
@@ -2,6 +2,9 @@
  *   Copyright (C) 2005 by Dominic Rath                                    *
  *   Dominic.Rath@gmx.de                                                   *
  *                                                                         *
+ *   Copyright (C) 2008 by Spencer Oliver                                  *
+ *   spen@spen-soft.co.uk                                                  *
+ *                                                                         *
  *   This program is free software; you can redistribute it and/or modify  *
  *   it under the terms of the GNU General Public License as published by  *
  *   the Free Software Foundation; either version 2 of the License, or     *
@@ -227,6 +230,7 @@ int str7x_protect_check(struct flash_bank_s *bank)
 
        if (bank->target->state != TARGET_HALTED)
        {
+               LOG_ERROR("Target not halted");
                return ERROR_TARGET_NOT_HALTED;
        }
 
@@ -255,6 +259,7 @@ int str7x_erase(struct flash_bank_s *bank, int first, int last)
        
        if (bank->target->state != TARGET_HALTED)
        {
+               LOG_ERROR("Target not halted");
                return ERROR_TARGET_NOT_HALTED;
        }
 
@@ -278,7 +283,7 @@ int str7x_erase(struct flash_bank_s *bank, int first, int last)
        target_write_u32(target, str7x_get_flash_adr(bank, FLASH_CR0), cmd);
        
        while (((retval = str7x_status(bank)) & str7x_info->busy_bits)){
-               usleep(1000);
+               alive_sleep(1);
        }
        
        retval = str7x_result(bank);
@@ -306,6 +311,7 @@ int str7x_protect(struct flash_bank_s *bank, int set, int first, int last)
        
        if (bank->target->state != TARGET_HALTED)
        {
+               LOG_ERROR("Target not halted");
                return ERROR_TARGET_NOT_HALTED;
        }
        
@@ -333,7 +339,7 @@ int str7x_protect(struct flash_bank_s *bank, int set, int first, int last)
        target_write_u32(target, str7x_get_flash_adr(bank, FLASH_CR0), cmd);
        
        while (((retval = str7x_status(bank)) & str7x_info->busy_bits)){
-               usleep(1000);
+               alive_sleep(1);
        }
        
        retval = str7x_result(bank);
@@ -478,6 +484,7 @@ int str7x_write(struct flash_bank_s *bank, u8 *buffer, u32 offset, u32 count)
        
        if (bank->target->state != TARGET_HALTED)
        {
+               LOG_ERROR("Target not halted");
                return ERROR_TARGET_NOT_HALTED;
        }
 
@@ -561,7 +568,7 @@ int str7x_write(struct flash_bank_s *bank, u8 *buffer, u32 offset, u32 count)
                
                while (((retval = str7x_status(bank)) & str7x_info->busy_bits))
                {
-                       usleep(1000);
+                       alive_sleep(1);
                }
                
                retval = str7x_result(bank);
@@ -608,7 +615,7 @@ int str7x_write(struct flash_bank_s *bank, u8 *buffer, u32 offset, u32 count)
                
                while (((retval = str7x_status(bank)) & str7x_info->busy_bits))
                {
-                       usleep(1000);
+                       alive_sleep(1);
                }
                
                retval = str7x_result(bank);
@@ -668,6 +675,7 @@ int str7x_handle_disable_jtag_command(struct command_context_s *cmd_ctx, char *c
        
        if (target->state != TARGET_HALTED)
        {
+               LOG_ERROR("Target not halted");
                return ERROR_TARGET_NOT_HALTED;
        }