Remove "locka" command.
This command is useless, because each programming tool configures the flash control registers before flash operations.
This commit is contained in:
parent
5ccf2e35d2
commit
1217d244e6
11
mspdebug.man
11
mspdebug.man
|
@ -350,17 +350,6 @@ The CPU is reset and halted before and after programming.
|
|||
Write the data contained in a raw binary file to the given memory address.
|
||||
|
||||
The CPU is reset and halted before and after programming.
|
||||
.IP "\fBlocka\fR [\fBset\fR|\fBclear\fR]"
|
||||
Show or change the status of the LOCKA bit in the chip's memory
|
||||
controller. The LOCKA bit is set on POR and acts as a write-protect bit
|
||||
for info segment A. This segment contains factory-configured calibration
|
||||
data, and under normal circumstances, should not be changed.
|
||||
|
||||
If the LOCKA bit is cleared, erasing the info A segment is possible.
|
||||
|
||||
The LOCKA bit also affects the behaviour of the "erase all" command. If
|
||||
LOCKA is set (the default), only main memory is erased. If LOCKA is
|
||||
cleared, main and information memory are both erased.
|
||||
.IP "\fBmd\fR \fIaddress\fR [\fIlength\fR]"
|
||||
Read the specified section of device memory and display it as a
|
||||
canonical\-style hexdump. Both arguments may be address expressions. If
|
||||
|
|
|
@ -282,13 +282,6 @@ const struct cmddb_record commands[] = {
|
|||
"cgraph <address> <length> [function]\n"
|
||||
" Analyse the range given and produce a call graph. Displays a summary\n"
|
||||
" of all functions if no function address is given.\n"
|
||||
},
|
||||
{
|
||||
.name = "locka",
|
||||
.func = cmd_locka,
|
||||
.help =
|
||||
"locka [set|clear]\n"
|
||||
" Show or change the status of the LOCKA flash write-protect bit.\n"
|
||||
},
|
||||
{
|
||||
.name = "exit",
|
||||
|
|
54
ui/devcmd.c
54
ui/devcmd.c
|
@ -706,60 +706,6 @@ int cmd_break(char **arg)
|
|||
return 0;
|
||||
}
|
||||
|
||||
#define FCTL3 0x012c
|
||||
#define FCTL3_LOCKA 0x40
|
||||
#define FWKEY 0xa5
|
||||
#define FRKEY 0x96
|
||||
|
||||
int cmd_locka(char **arg)
|
||||
{
|
||||
const char *status = get_arg(arg);
|
||||
int value = 0;
|
||||
uint8_t regval[2];
|
||||
|
||||
if (status) {
|
||||
if (!strcasecmp(status, "set")) {
|
||||
value = FCTL3_LOCKA;
|
||||
} else if (!strcasecmp(status, "clear")) {
|
||||
value = 0;
|
||||
} else {
|
||||
printc_err("locka: unknown action: %s\n", status);
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
if (device_readmem(FCTL3, regval, 2) < 0) {
|
||||
printc_err("locka: can't read FCTL3 register\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (regval[1] != FRKEY) {
|
||||
printc_err("warning: locka: read key invalid (got 0x%02x)\n",
|
||||
regval[1]);
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (status && ((regval[0] & FCTL3_LOCKA) != value)) {
|
||||
printc_dbg("Toggling LOCKA bit\n");
|
||||
|
||||
regval[0] |= FCTL3_LOCKA;
|
||||
regval[1] = FWKEY;
|
||||
|
||||
if (device_writemem(FCTL3, regval, 2) < 0) {
|
||||
printc_err("locka: can't write FCTL3 register\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (device_readmem(FCTL3, regval, 2) < 0) {
|
||||
printc_err("locka: can't read FCTL3 register\n");
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
printc("LOCKA is %s\n", (regval[0] & FCTL3_LOCKA) ? "set" : "clear");
|
||||
return 0;
|
||||
}
|
||||
|
||||
int cmd_fill(char **arg)
|
||||
{
|
||||
char *addr_text = get_arg(arg);
|
||||
|
|
|
@ -38,7 +38,6 @@ int cmd_setwatch_r(char **arg);
|
|||
int cmd_setwatch_w(char **arg);
|
||||
int cmd_delbreak(char **arg);
|
||||
int cmd_break(char **arg);
|
||||
int cmd_locka(char **arg);
|
||||
int cmd_fill(char **arg);
|
||||
|
||||
#endif
|
||||
|
|
Loading…
Reference in New Issue