aboutsummaryrefslogtreecommitdiff
path: root/src/target/xscale.c
diff options
context:
space:
mode:
authorAndreas Fritiofson <andreas.fritiofson@gmail.com>2014-06-18 23:10:45 +0200
committerAndreas Fritiofson <andreas.fritiofson@gmail.com>2014-08-02 09:01:32 +0000
commit91e47f3ab8875176b6f6ac9244562f42f140467d (patch)
tree7d5fa6bbf301f70561a6b105bd4469f2093c1c96 /src/target/xscale.c
parentf1b04a20dcf6baedbd0f06a38d8748586d48dbb7 (diff)
Fix some problems with the bin2char utility
Don't hardcode the type for the array, just output the array initializer so the includer can choose the type and storage class, zero-terminate at will and so on. Change-Id: I6d5e0710eaaba0a218b3eb32f6569177356f4462 Signed-off-by: Andreas Fritiofson <andreas.fritiofson@gmail.com> Reviewed-on: http://openocd.zylin.com/2176 Tested-by: jenkins Reviewed-by: Paul Fertser <fercerpav@gmail.com>
Diffstat (limited to 'src/target/xscale.c')
-rw-r--r--src/target/xscale.c14
1 files changed, 5 insertions, 9 deletions
diff --git a/src/target/xscale.c b/src/target/xscale.c
index e88a2311..04189a14 100644
--- a/src/target/xscale.c
+++ b/src/target/xscale.c
@@ -73,14 +73,10 @@ static int xscale_read_trace(struct target *);
/* This XScale "debug handler" is loaded into the processor's
* mini-ICache, which is 2K of code writable only via JTAG.
- *
- * FIXME the OpenOCD "bin2char" utility currently doesn't handle
- * binary files cleanly. It's string oriented, and terminates them
- * with a NUL character. Better would be to generate the constants
- * and let other code decide names, scoping, and other housekeeping.
*/
-static /* unsigned const char xscale_debug_handler[] = ... */
-#include "xscale_debug.h"
+static const uint8_t xscale_debug_handler[] = {
+#include "xscale_debug.inc"
+};
static char *const xscale_reg_list[] = {
"XSCALE_MAINID", /* 0 */
@@ -1549,7 +1545,7 @@ static int xscale_deassert_reset(struct target *target)
* coprocessors, trace data, etc.
*/
address = xscale->handler_address;
- for (unsigned binary_size = sizeof xscale_debug_handler - 1;
+ for (unsigned binary_size = sizeof xscale_debug_handler;
binary_size > 0;
binary_size -= buf_cnt, buffer += buf_cnt) {
uint32_t cache_line[8];
@@ -3028,7 +3024,7 @@ static int xscale_target_create(struct target *target, Jim_Interp *interp)
{
struct xscale_common *xscale;
- if (sizeof xscale_debug_handler - 1 > 0x800) {
+ if (sizeof xscale_debug_handler > 0x800) {
LOG_ERROR("debug_handler.bin: larger than 2kb");
return ERROR_FAIL;
}