arm11: do not use dynamic arrays
[openocd.git] / src / target / arm11_dbgtap.c
index 7010eab5c19efca222a3bc82205b956e533139a5..26de4ceb2f8bdd7da36d664f2cfb74667697a296 100644 (file)
@@ -24,6 +24,7 @@
 #include "config.h"
 #endif
 
+#include "arm_jtag.h"
 #include "arm11_dbgtap.h"
 
 #include "time_support.h"
@@ -587,12 +588,13 @@ int arm11_run_instr_data_to_core_noack(struct arm11_common * arm11, uint32_t opc
        arm11_setup_field(arm11,  1,    NULL,                   NULL,                           chain5_fields + 2);
 
        uint8_t                 *Readies;
-       size_t readiesNum = (count + 1);
-       size_t bytes = sizeof(*Readies)*readiesNum;
+       unsigned readiesNum = count + 1;
+       unsigned bytes = sizeof(*Readies)*readiesNum;
+
        Readies = (uint8_t *) malloc(bytes);
        if (Readies == NULL)
        {
-               LOG_ERROR("Out of memory allocating " ZU " bytes", bytes);
+               LOG_ERROR("Out of memory allocating %u bytes", bytes);
                return ERROR_FAIL;
        }
 
@@ -625,7 +627,7 @@ int arm11_run_instr_data_to_core_noack(struct arm11_common * arm11, uint32_t opc
        int retval = jtag_execute_queue();
        if (retval == ERROR_OK)
        {
-               size_t error_count = 0;
+               unsigned error_count = 0;
 
                for (size_t i = 0; i < readiesNum; i++)
                {
@@ -636,7 +638,8 @@ int arm11_run_instr_data_to_core_noack(struct arm11_common * arm11, uint32_t opc
                }
 
                if (error_count > 0 )
-                       LOG_ERROR(ZU " words out of " ZU " not transferred", error_count, readiesNum);
+                       LOG_ERROR("%u words out of %u not transferred",
+                               error_count, readiesNum);
 
        }
 
@@ -877,10 +880,11 @@ int arm11_sc7_run(struct arm11_common * arm11, struct arm11_sc7_action * actions
  */
 void arm11_sc7_clear_vbw(struct arm11_common * arm11)
 {
-       struct arm11_sc7_action         clear_bw[arm11->brp + arm11->wrp + 1];
+       size_t clear_bw_size = arm11->brp + arm11->wrp + 1;
+       struct arm11_sc7_action         *clear_bw = malloc(sizeof(struct arm11_sc7_action) * clear_bw_size);
        struct arm11_sc7_action *       pos = clear_bw;
 
-       for (size_t i = 0; i < ARRAY_SIZE(clear_bw); i++)
+       for (size_t i = 0; i < clear_bw_size; i++)
        {
                clear_bw[i].write       = true;
                clear_bw[i].value       = 0;
@@ -896,7 +900,9 @@ void arm11_sc7_clear_vbw(struct arm11_common * arm11)
 
        (pos++)->address = ARM11_SC7_VCR;
 
-       arm11_sc7_run(arm11, clear_bw, ARRAY_SIZE(clear_bw));
+       arm11_sc7_run(arm11, clear_bw, clear_bw_size);
+
+       free (clear_bw);
 }
 
 /** Write VCR register

Linking to existing account procedure

If you already have an account and want to add another login method you MUST first sign in with your existing account and then change URL to read https://review.openocd.org/login/?link to get to this page again but this time it'll work for linking. Thank you.

SSH host keys fingerprints

1024 SHA256:YKx8b7u5ZWdcbp7/4AeXNaqElP49m6QrwfXaqQGJAOk gerrit-code-review@openocd.zylin.com (DSA)
384 SHA256:jHIbSQa4REvwCFG4cq5LBlBLxmxSqelQPem/EXIrxjk gerrit-code-review@openocd.org (ECDSA)
521 SHA256:UAOPYkU9Fjtcao0Ul/Rrlnj/OsQvt+pgdYSZ4jOYdgs gerrit-code-review@openocd.org (ECDSA)
256 SHA256:A13M5QlnozFOvTllybRZH6vm7iSt0XLxbA48yfc2yfY gerrit-code-review@openocd.org (ECDSA)
256 SHA256:spYMBqEYoAOtK7yZBrcwE8ZpYt6b68Cfh9yEVetvbXg gerrit-code-review@openocd.org (ED25519)
+--[ED25519 256]--+
|=..              |
|+o..   .         |
|*.o   . .        |
|+B . . .         |
|Bo. = o S        |
|Oo.+ + =         |
|oB=.* = . o      |
| =+=.+   + E     |
|. .=o   . o      |
+----[SHA256]-----+
2048 SHA256:0Onrb7/PHjpo6iVZ7xQX2riKN83FJ3KGU0TvI0TaFG4 gerrit-code-review@openocd.zylin.com (RSA)