First of all, overall I think the code looks good!

Some nit-picking below.

The OpenOCD error handling is modeled upon exception handling, report error
in place and then just propagate errors (exceptions) without changing the return
value.


1. Switch to LOG_ERROR.

+FLASH_BANK_COMMAND_HANDLER(kinetis_flash_bank_command)
+{
+       if (CMD_ARGC < 6) {
+               LOG_WARNING("incomplete flash_bank kinetis configuration %d",
+                           CMD_ARGC);
+               return ERROR_FLASH_OPERATION_FAILED;
+       }


2. Just return LOG_ERROR()

+static int kinetis_protect(struct flash_bank *bank, int set, int first,
+                          int last)
+{
+       struct flash_bank *master_bank = kinetis_get_master_bank(bank);
+
+       LOG_WARNING("kinetis_protect not supported yet");
+
+       if (bank->target->state != TARGET_HALTED) {
+               LOG_ERROR("Target not halted");
+               return ERROR_TARGET_NOT_HALTED;
+       }
+
+       if (master_bank == NULL) {
+               return ERROR_FLASH_OPERATION_FAILED;
+       }
+
+       return ERROR_OK;
+}

3. Modify to return error as primary return value and pointer in
secondary return
value, then just propagate the return value unchanged upon error.

+static struct flash_bank *kinetis_get_master_bank(struct flash_bank *bank)

4. This fn does not propagate failure:

+static void kinetis_update_bank_info(struct flash_bank *bank)
+{
+       struct flash_bank *master_bank = kinetis_get_master_bank(bank);
+
+       if (master_bank == NULL) {
+               return;
+       }
+

5. propagate (just return) the error code, do not change it:

+       if (kinetis_ftfl_command(bank, w0, w1, w2) != ERROR_OK) {
+               return ERROR_FLASH_OPERATION_FAILED;
+       }
+
+







-- 
Øyvind Harboe - Can Zylin Consulting help on your project?
US toll free 1-866-980-3434
http://www.zylin.com/
_______________________________________________
Openocd-development mailing list
[email protected]
https://lists.berlios.de/mailman/listinfo/openocd-development

Reply via email to