28 files changed:
+
+AC_ARG_ENABLE(gccwarnings,
+ AS_HELP_STRING([--enable-gccwarnings], [Enable compiler warnings, default yes]),
+ [gcc_warnings=$enablevalue], [gcc_warnings=yes])
+
+
AC_ARG_ENABLE(parport,
AS_HELP_STRING([--enable-parport], [Enable building the pc parallel port driver]),
[build_parport=$enableval], [build_parport=no])
AC_ARG_ENABLE(parport,
AS_HELP_STRING([--enable-parport], [Enable building the pc parallel port driver]),
[build_parport=$enableval], [build_parport=no])
CFLAGS_FOR_BUILD="-g -O2"
else
CC_FOR_BUILD=$CC
CFLAGS_FOR_BUILD="-g -O2"
else
CC_FOR_BUILD=$CC
- CFLAGS_FOR_BUILD=$CFLAGS
+ CFLAGS_FOR_BUILD="$CFLAGS $GCC_WARNINGS"
+
+if test $gcc_warnings = yes; then
+ CFLAGS_FOR_BUILD="$CFLAGS_FOR_BUILD -Wall -Wmissing-prototypes -Wstrict-prototypes"
+fi
+
AC_MSG_RESULT([$CC_FOR_BUILD])
AC_SUBST(CC_FOR_BUILD)
AC_SUBST(CFLAGS_FOR_BUILD)
AC_MSG_RESULT([$CC_FOR_BUILD])
AC_SUBST(CC_FOR_BUILD)
AC_SUBST(CFLAGS_FOR_BUILD)
+AC_MSG_NOTICE([CFLAGS_FOR_BUILD = $CFLAGS_FOR_BUILD])
AC_MSG_CHECKING([for suffix of executable build tools])
if test $cross_compiling = yes; then
AC_MSG_CHECKING([for suffix of executable build tools])
if test $cross_compiling = yes; then
-int flash_get_bank_count()
+int flash_get_bank_count(void)
{
flash_bank_t *p;
int i = 0;
{
flash_bank_t *p;
int i = 0;
extern int flash_erase_address_range(target_t *target, u32 addr, u32 length);
extern int flash_write(target_t *target, image_t *image, u32 *written, int erase);
extern void flash_set_dirty(void);
extern int flash_erase_address_range(target_t *target, u32 addr, u32 length);
extern int flash_write(target_t *target, image_t *image, u32 *written, int erase);
extern void flash_set_dirty(void);
-extern int flash_get_bank_count();
+extern int flash_get_bank_count(void);
extern int default_flash_blank_check(struct flash_bank_s *bank);
extern int default_flash_mem_blank_check(struct flash_bank_s *bank);
extern int default_flash_blank_check(struct flash_bank_s *bank);
extern int default_flash_mem_blank_check(struct flash_bank_s *bank);
extern void command_set_output_handler(command_context_t* context, int (*output_handler)(struct command_context_s *context, const char* line), void *priv);
extern command_context_t* copy_command_context(command_context_t* context);
extern int command_context_mode(command_context_t *context, enum command_mode mode);
extern void command_set_output_handler(command_context_t* context, int (*output_handler)(struct command_context_s *context, const char* line), void *priv);
extern command_context_t* copy_command_context(command_context_t* context);
extern int command_context_mode(command_context_t *context, enum command_mode mode);
-extern command_context_t* command_init();
+extern command_context_t* command_init(void);
extern int command_done(command_context_t *context);
extern void command_print(command_context_t *context, char *format, ...);
extern void command_print_sameline(command_context_t *context, char *format, ...);
extern int command_done(command_context_t *context);
extern void command_print(command_context_t *context, char *format, ...);
extern void command_print_sameline(command_context_t *context, char *format, ...);
extern int log_register_commands(struct command_context_s *cmd_ctx);
extern int log_init(struct command_context_s *cmd_ctx);
extern int set_log_output(struct command_context_s *cmd_ctx, FILE *output);
extern int log_register_commands(struct command_context_s *cmd_ctx);
extern int log_init(struct command_context_s *cmd_ctx);
extern int set_log_output(struct command_context_s *cmd_ctx, FILE *output);
-extern void keep_alive();
-extern void kept_alive();
+extern void keep_alive(void);
+extern void kept_alive(void);
typedef void (*log_callback_fn)(void *priv, const char *file, int line,
const char *function, const char *string);
typedef void (*log_callback_fn)(void *priv, const char *file, int line,
const char *function, const char *string);
extern int timeval_add(struct timeval *result, struct timeval *x, struct timeval *y);
extern int timeval_add_time(struct timeval *result, int sec, int usec);
/* gettimeofday() timeval in 64 bit ms */
extern int timeval_add(struct timeval *result, struct timeval *x, struct timeval *y);
extern int timeval_add_time(struct timeval *result, int sec, int usec);
/* gettimeofday() timeval in 64 bit ms */
-extern long long timeval_ms();
+extern long long timeval_ms(void);
typedef struct duration_s
{
typedef struct duration_s
{
-void amt_wait_scan_busy()
+void amt_wait_scan_busy(void)
{
int timeout = 4096;
u8 ar_status;
{
int timeout = 4096;
u8 ar_status;
-void gw16012_end_state(state)
+void gw16012_end_state(int state)
{
if (tap_move_map[state] != -1)
end_state = state;
{
if (tap_move_map[state] != -1)
end_state = state;
LOG_WARNING("No gw16012 port specified, using default '0x378' (LPT1)");
}
LOG_WARNING("No gw16012 port specified, using default '0x378' (LPT1)");
}
- LOG_DEBUG("requesting privileges for parallel port 0x%lx...", gw16012_port);
+ LOG_DEBUG("requesting privileges for parallel port 0x%lx...", (long unsigned)(gw16012_port) );
#if PARPORT_USE_GIVEIO == 1
if (gw16012_get_giveio_access() != 0)
#else /* PARPORT_USE_GIVEIO */
#if PARPORT_USE_GIVEIO == 1
if (gw16012_get_giveio_access() != 0)
#else /* PARPORT_USE_GIVEIO */
+void cmd_queue_free(void)
{
cmd_queue_page_t *page = cmd_queue_pages;
{
cmd_queue_page_t *page = cmd_queue_pages;
cmd_queue_pages = NULL;
}
cmd_queue_pages = NULL;
}
-static void jtag_prelude1()
+static void jtag_prelude1(void)
-int jtag_validate_chain()
+int jtag_validate_chain(void)
{
jtag_device_t *device = jtag_devices;
int total_ir_length = 0;
{
jtag_device_t *device = jtag_devices;
int total_ir_length = 0;
/* run a TAP_TLR reset. End state is TAP_TLR, regardless
* of start state.
*/
/* run a TAP_TLR reset. End state is TAP_TLR, regardless
* of start state.
*/
-extern void jtag_add_tlr();
-extern int interface_jtag_add_tlr();
+extern void jtag_add_tlr(void);
+extern int interface_jtag_add_tlr(void);
/* Do not use jtag_add_pathmove() unless you need to, but do use it
* if you have to.
*
/* Do not use jtag_add_pathmove() unless you need to, but do use it
* if you have to.
*
/* implementations of OpenOCD that uses multithreading needs to know when
* OpenOCD is sleeping. No-op in vanilla OpenOCD
*/
/* implementations of OpenOCD that uses multithreading needs to know when
* OpenOCD is sleeping. No-op in vanilla OpenOCD
*/
-void openocd_sleep_prelude()
+void openocd_sleep_prelude(void)
-void openocd_sleep_postlude()
+void openocd_sleep_postlude(void)
{
gdb_service_t *gdb_service;
target_t *target = targets;
{
gdb_service_t *gdb_service;
target_t *target = targets;
struct target_s *target;
} gdb_service_t;
struct target_s *target;
} gdb_service_t;
+extern int gdb_init(void);
extern int gdb_register_commands(command_context_t *command_context);
#define ERROR_GDB_BUFFER_TOO_SMALL (-800)
extern int gdb_register_commands(command_context_t *command_context);
#define ERROR_GDB_BUFFER_TOO_SMALL (-800)
+int remove_services(void)
{
service_t *c = services;
{
service_t *c = services;
-extern void openocd_sleep_prelude();
-extern void openocd_sleep_postlude();
+extern void openocd_sleep_prelude(void);
+extern void openocd_sleep_postlude(void);
int server_loop(command_context_t *command_context)
{
int server_loop(command_context_t *command_context)
{
{
#ifdef _WIN32
WORD wVersionRequested;
{
#ifdef _WIN32
WORD wVersionRequested;
} service_t;
extern int add_service(char *name, enum connection_type type, unsigned short port, int max_connections, new_connection_handler_t new_connection_handler, input_handler_t input_handler, connection_closed_handler_t connection_closed_handler, void *priv);
} service_t;
extern int add_service(char *name, enum connection_type type, unsigned short port, int max_connections, new_connection_handler_t new_connection_handler, input_handler_t input_handler, connection_closed_handler_t connection_closed_handler, void *priv);
-extern int server_init();
-extern int server_quit();
+extern int server_init(void);
+extern int server_quit(void);
extern int server_loop(command_context_t *command_context);
extern int server_register_commands(command_context_t *context);
extern int server_loop(command_context_t *command_context);
extern int server_register_commands(command_context_t *context);
if (values[i] > arm11_coproc_instruction_limits[i])
{
LOG_ERROR("Parameter %ld out of bounds (%d max). %s",
if (values[i] > arm11_coproc_instruction_limits[i])
{
LOG_ERROR("Parameter %ld out of bounds (%d max). %s",
- i + 2, arm11_coproc_instruction_limits[i],
+ (long)(i + 2), arm11_coproc_instruction_limits[i],
read ? arm11_mrc_syntax : arm11_mcr_syntax);
return -1;
}
read ? arm11_mrc_syntax : arm11_mcr_syntax);
return -1;
}
/* forward declarations */
int arm720t_target_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc, struct target_s *target);
int arm720t_init_target(struct command_context_s *cmd_ctx, struct target_s *target);
/* forward declarations */
int arm720t_target_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc, struct target_s *target);
int arm720t_init_target(struct command_context_s *cmd_ctx, struct target_s *target);
int arm720t_arch_state(struct target_s *target);
int arm720t_read_memory(struct target_s *target, u32 address, u32 size, u32 count, u8 *buffer);
int arm720t_write_memory(struct target_s *target, u32 address, u32 size, u32 count, u8 *buffer);
int arm720t_arch_state(struct target_s *target);
int arm720t_read_memory(struct target_s *target, u32 address, u32 size, u32 count, u8 *buffer);
int arm720t_write_memory(struct target_s *target, u32 address, u32 size, u32 count, u8 *buffer);
/* forward declarations */
int arm7tdmi_target_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc, struct target_s *target);
int arm7tdmi_init_target(struct command_context_s *cmd_ctx, struct target_s *target);
/* forward declarations */
int arm7tdmi_target_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc, struct target_s *target);
int arm7tdmi_init_target(struct command_context_s *cmd_ctx, struct target_s *target);
+int arm7tdmi_quit(void);
/* target function declarations */
int arm7tdmi_poll(struct target_s *target);
/* target function declarations */
int arm7tdmi_poll(struct target_s *target);
/* forward declarations */
int arm920t_target_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc, struct target_s *target);
int arm920t_init_target(struct command_context_s *cmd_ctx, struct target_s *target);
/* forward declarations */
int arm920t_target_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc, struct target_s *target);
int arm920t_init_target(struct command_context_s *cmd_ctx, struct target_s *target);
int arm920t_arch_state(struct target_s *target);
int arm920t_read_memory(struct target_s *target, u32 address, u32 size, u32 count, u8 *buffer);
int arm920t_write_memory(struct target_s *target, u32 address, u32 size, u32 count, u8 *buffer);
int arm920t_arch_state(struct target_s *target);
int arm920t_read_memory(struct target_s *target, u32 address, u32 size, u32 count, u8 *buffer);
int arm920t_write_memory(struct target_s *target, u32 address, u32 size, u32 count, u8 *buffer);
/* forward declarations */
int arm926ejs_target_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc, struct target_s *target);
int arm926ejs_init_target(struct command_context_s *cmd_ctx, struct target_s *target);
/* forward declarations */
int arm926ejs_target_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc, struct target_s *target);
int arm926ejs_init_target(struct command_context_s *cmd_ctx, struct target_s *target);
+int arm926ejs_quit(void);
int arm926ejs_arch_state(struct target_s *target);
int arm926ejs_read_memory(struct target_s *target, u32 address, u32 size, u32 count, u8 *buffer);
int arm926ejs_write_memory(struct target_s *target, u32 address, u32 size, u32 count, u8 *buffer);
int arm926ejs_arch_state(struct target_s *target);
int arm926ejs_read_memory(struct target_s *target, u32 address, u32 size, u32 count, u8 *buffer);
int arm926ejs_write_memory(struct target_s *target, u32 address, u32 size, u32 count, u8 *buffer);
+int arm926ejs_quit(void)
/* forward declarations */
int arm9tdmi_target_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc, struct target_s *target);
int arm9tdmi_init_target(struct command_context_s *cmd_ctx, struct target_s *target);
/* forward declarations */
int arm9tdmi_target_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc, struct target_s *target);
int arm9tdmi_init_target(struct command_context_s *cmd_ctx, struct target_s *target);
+int arm9tdmi_quit(void);
target_type_t arm9tdmi_target =
{
target_type_t arm9tdmi_target =
{
void cortex_m3_enable_watchpoints(struct target_s *target);
int cortex_m3_target_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc, struct target_s *target);
int cortex_m3_init_target(struct command_context_s *cmd_ctx, struct target_s *target);
void cortex_m3_enable_watchpoints(struct target_s *target);
int cortex_m3_target_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc, struct target_s *target);
int cortex_m3_init_target(struct command_context_s *cmd_ctx, struct target_s *target);
+int cortex_m3_quit(void);
int cortex_m3_load_core_reg_u32(target_t *target, enum armv7m_regtype type, u32 num, u32 *value);
int cortex_m3_store_core_reg_u32(target_t *target, enum armv7m_regtype type, u32 num, u32 value);
int cortex_m3_target_request_data(target_t *target, u32 size, u8 *buffer);
int cortex_m3_load_core_reg_u32(target_t *target, enum armv7m_regtype type, u32 num, u32 *value);
int cortex_m3_store_core_reg_u32(target_t *target, enum armv7m_regtype type, u32 num, u32 value);
int cortex_m3_target_request_data(target_t *target, u32 size, u8 *buffer);
+int cortex_m3_quit(void)
int feroceon_target_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc, struct target_s *target);
int feroceon_bulk_write_memory(target_t *target, u32 address, u32 count, u8 *buffer);
int feroceon_init_target(struct command_context_s *cmd_ctx, struct target_s *target);
int feroceon_target_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc, struct target_s *target);
int feroceon_bulk_write_memory(target_t *target, u32 address, u32 count, u8 *buffer);
int feroceon_init_target(struct command_context_s *cmd_ctx, struct target_s *target);
+int feroceon_quit(void);
target_type_t feroceon_target =
{
target_type_t feroceon_target =
{
arm_jtag_t *jtag_info = &arm7_9->jtag_info;
u32 r0 = buf_get_u32(armv4_5->core_cache->reg_list[0].value, 0, 32);
u32 pc = buf_get_u32(armv4_5->core_cache->reg_list[15].value, 0, 32);
arm_jtag_t *jtag_info = &arm7_9->jtag_info;
u32 r0 = buf_get_u32(armv4_5->core_cache->reg_list[0].value, 0, 32);
u32 pc = buf_get_u32(armv4_5->core_cache->reg_list[15].value, 0, 32);
+ (void)(r0); // use R0...
arm9tdmi_clock_out(jtag_info, ARMV4_5_NOP, 0, NULL, 0);
arm9tdmi_clock_out(jtag_info, ARMV4_5_NOP, 0, NULL, 0);
arm9tdmi_clock_out(jtag_info, ARMV4_5_NOP, 0, NULL, 0);
arm9tdmi_clock_out(jtag_info, ARMV4_5_NOP, 0, NULL, 0);
#include "config.h"
#endif
#include "config.h"
#endif
#include "log.h"
#include "mips32.h"
#include "mips32_pracc.h"
#include "log.h"
#include "mips32.h"
#include "mips32_pracc.h"
int mips_m4k_quit();
int mips_m4k_target_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc, struct target_s *target);
int mips_m4k_quit();
int mips_m4k_target_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc, struct target_s *target);
-int mips_m4k_examine(struct target_s *target);
+int mips_m4k_examine(struct command_context_s *cmd_ctx, struct target_s *target);
int mips_m4k_assert_reset(target_t *target);
int mips_m4k_deassert_reset(target_t *target);
int mips_m4k_assert_reset(target_t *target);
int mips_m4k_deassert_reset(target_t *target);
-int mips_m4k_examine(struct target_s *target)
+int mips_m4k_examine(struct command_context_s *cmd_ctx, struct target_s *target)
{
int retval;
mips32_common_t *mips32 = target->arch_info;
{
int retval;
mips32_common_t *mips32 = target->arch_info;
-int target_call_timer_callbacks()
+int target_call_timer_callbacks(void)
{
return target_call_timer_callbacks_check_time(1);
}
/* invoke periodic callbacks immediately */
{
return target_call_timer_callbacks_check_time(1);
}
/* invoke periodic callbacks immediately */
-int target_call_timer_callbacks_now()
+int target_call_timer_callbacks_now(void)
- return target_call_timer_callbacks(0);
+ return target_call_timer_callbacks();
}
int target_alloc_working_area(struct target_s *target, u32 size, working_area_t **area)
}
int target_alloc_working_area(struct target_s *target, u32 size, working_area_t **area)
*/
extern int target_register_timer_callback(int (*callback)(void *priv), int time_ms, int periodic, void *priv);
extern int target_unregister_timer_callback(int (*callback)(void *priv), void *priv);
*/
extern int target_register_timer_callback(int (*callback)(void *priv), int time_ms, int periodic, void *priv);
extern int target_unregister_timer_callback(int (*callback)(void *priv), void *priv);
-extern int target_call_timer_callbacks();
+extern int target_call_timer_callbacks(void);
/* invoke this to ensure that e.g. polling timer callbacks happen before
* a syncrhonous command completes.
*/
/* invoke this to ensure that e.g. polling timer callbacks happen before
* a syncrhonous command completes.
*/
-extern int target_call_timer_callbacks_now();
+extern int target_call_timer_callbacks_now(void);
extern target_t* get_current_target(struct command_context_s *cmd_ctx);
extern int get_num_by_target(target_t *query_target);
extern target_t* get_current_target(struct command_context_s *cmd_ctx);
extern int get_num_by_target(target_t *query_target);
/* forward declarations */
int xscale_target_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc, struct target_s *target);
int xscale_init_target(struct command_context_s *cmd_ctx, struct target_s *target);
/* forward declarations */
int xscale_target_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc, struct target_s *target);
int xscale_init_target(struct command_context_s *cmd_ctx, struct target_s *target);
int xscale_arch_state(struct target_s *target);
int xscale_poll(target_t *target);
int xscale_arch_state(struct target_s *target);
int xscale_poll(target_t *target);
jtag_execute_queue();
target->state = TARGET_RESET;
jtag_execute_queue();
target->state = TARGET_RESET;
if (target->reset_halt)
{
int retval;
if (target->reset_halt)
{
int retval;
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)