]> git.sur5r.net Git - openocd/blobdiff - src/target/arm11_dbgtap.c
arm11: do not use dynamic arrays
[openocd] / src / target / arm11_dbgtap.c
index bdbcc8f3890ecdf921aaeebd137031fe0d5c7d3d..26de4ceb2f8bdd7da36d664f2cfb74667697a296 100644 (file)
@@ -588,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;
        }
 
@@ -626,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++)
                {
@@ -637,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);
 
        }
 
@@ -878,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;
@@ -897,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