Magnus Lundin <lundin@mlu.mine.nu>, Oyvind Harboe <oyvind.harboe@zylin.com>, David Brownell <david-b@pacbell.net>:

Move the dap command handler implementations to arm_adi_v5.c,
leaving just thin wrappers in armv7m.c.  There should be no
change in functionality here.  (From Magnus.)

Minor style cleanup:  whitespace, line length, etc.  Update spec
references to use docs which are currently available.  (From Dave.)


git-svn-id: svn://svn.berlios.de/openocd/trunk@2544 b42882b7-edfa-0310-969c-e2dbd0fdcd60
This commit is contained in:
zwelch
2009-07-16 00:08:36 +00:00
parent 16e17ab1b3
commit 1af6b72fc1
3 changed files with 148 additions and 88 deletions

View File

@@ -29,8 +29,8 @@
* *
* ARM(tm) Debug Interface v5 Architecture Specification ARM IHI 0031A *
* *
* CoreSight(tm) DAP-Lite TRM, ARM DDI 0316A *
* Cortex-M3(tm) TRM, ARM DDI 0337C *
* CoreSight(tm) DAP-Lite TRM, ARM DDI 0316D *
* Cortex-M3(tm) TRM, ARM DDI 0337G *
* *
***************************************************************************/
@@ -1129,3 +1129,85 @@ int dap_info_command(struct command_context_s *cmd_ctx, swjdp_common_t *swjdp, i
return ERROR_OK;
}
int dap_baseaddr_command(struct command_context_s *cmd_ctx,
swjdp_common_t *swjdp, char **args, int argc)
{
uint32_t apsel, apselsave, baseaddr;
int retval;
apsel = swjdp->apsel;
apselsave = swjdp->apsel;
if (argc > 0)
apsel = strtoul(args[0], NULL, 0);
if (apselsave != apsel)
dap_ap_select(swjdp, apsel);
dap_ap_read_reg_u32(swjdp, 0xF8, &baseaddr);
retval = swjdp_transaction_endcheck(swjdp);
command_print(cmd_ctx, "0x%8.8x", baseaddr);
if (apselsave != apsel)
dap_ap_select(swjdp, apselsave);
return retval;
}
int dap_memaccess_command(struct command_context_s *cmd_ctx,
swjdp_common_t *swjdp, char **args, int argc)
{
uint32_t memaccess_tck;
memaccess_tck = swjdp->memaccess_tck;
if (argc > 0)
memaccess_tck = strtoul(args[0], NULL, 0);
swjdp->memaccess_tck = memaccess_tck;
command_print(cmd_ctx, "memory bus access delay set to %i tck",
swjdp->memaccess_tck);
return ERROR_OK;
}
int dap_apsel_command(struct command_context_s *cmd_ctx,
swjdp_common_t *swjdp, char **args, int argc)
{
uint32_t apsel, apid;
int retval;
apsel = 0;
if (argc > 0)
apsel = strtoul(args[0], NULL, 0);
dap_ap_select(swjdp, apsel);
dap_ap_read_reg_u32(swjdp, 0xFC, &apid);
retval = swjdp_transaction_endcheck(swjdp);
command_print(cmd_ctx, "ap %i selected, identification register 0x%8.8x",
apsel, apid);
return retval;
}
int dap_apid_command(struct command_context_s *cmd_ctx,
swjdp_common_t *swjdp, char **args, int argc)
{
uint32_t apsel, apselsave, apid;
int retval;
apsel = swjdp->apsel;
apselsave = swjdp->apsel;
if (argc > 0)
apsel = strtoul(args[0], NULL, 0);
if (apselsave != apsel)
dap_ap_select(swjdp, apsel);
dap_ap_read_reg_u32(swjdp, 0xFC, &apid);
retval = swjdp_transaction_endcheck(swjdp);
command_print(cmd_ctx, "0x%8.8x", apid);
if (apselsave != apsel)
dap_ap_select(swjdp, apselsave);
return retval;
}