Remove whitespace that occurs before ')'.
- Replace '[ \t]*[)]' with ')'. git-svn-id: svn://svn.berlios.de/openocd/trunk@2377 b42882b7-edfa-0310-969c-e2dbd0fdcd60
This commit is contained in:
parent
f90d8fa45f
commit
dc575dc5bf
|
@ -257,7 +257,7 @@ MTAB_ENTRY(romfs_mte1,
|
|||
"/rom",
|
||||
"romfs",
|
||||
"",
|
||||
(CYG_ADDRWORD) &filedata[0] );
|
||||
(CYG_ADDRWORD) &filedata[0]);
|
||||
#endif
|
||||
|
||||
void openocd_sleep_prelude(void)
|
||||
|
@ -1156,7 +1156,7 @@ FSTAB_ENTRY(tftpfs_fste, "tftpfs", 0,
|
|||
// "romfs", // FIlesystem type
|
||||
// "", // hardware device
|
||||
// (CYG_ADDRWORD) CYGNUM_FS_ROM_BASE_ADDRESS // Address in ROM
|
||||
// );
|
||||
//);
|
||||
|
||||
|
||||
// -------------------------------------------------------------------------
|
||||
|
|
|
@ -399,7 +399,7 @@ static int aduc702x_probe(struct flash_bank_s *bank)
|
|||
|
||||
static int aduc702x_info(struct flash_bank_s *bank, char *buf, int buf_size)
|
||||
{
|
||||
snprintf(buf, buf_size, "aduc702x flash driver info" );
|
||||
snprintf(buf, buf_size, "aduc702x flash driver info");
|
||||
return ERROR_OK;
|
||||
}
|
||||
|
||||
|
|
|
@ -187,7 +187,7 @@ static void at91sam7_read_clock_info(flash_bank_t *bank)
|
|||
}
|
||||
|
||||
/* Prescaler adjust */
|
||||
if ((((mckr & PMC_MCKR_PRES) >> 2) == 7) || (tmp == 0) )
|
||||
if ((((mckr & PMC_MCKR_PRES) >> 2) == 7) || (tmp == 0))
|
||||
{
|
||||
at91sam7_info->mck_valid = 0;
|
||||
at91sam7_info->mck_freq = 0;
|
||||
|
@ -613,7 +613,7 @@ static int at91sam7_read_part_info(struct flash_bank_s *bank)
|
|||
at91sam7_protect_check(t_bank);
|
||||
}
|
||||
|
||||
LOG_DEBUG("nvptyp: 0x%3.3x, arch: 0x%4.4x", at91sam7_info->cidr_nvptyp, at91sam7_info->cidr_arch );
|
||||
LOG_DEBUG("nvptyp: 0x%3.3x, arch: 0x%4.4x", at91sam7_info->cidr_nvptyp, at91sam7_info->cidr_arch);
|
||||
|
||||
return ERROR_OK;
|
||||
}
|
||||
|
|
|
@ -323,7 +323,7 @@ static int avrf_probe(struct flash_bank_s *bank)
|
|||
return ERROR_FAIL;
|
||||
}
|
||||
|
||||
LOG_INFO("device id = 0x%08" PRIx32 "", device_id );
|
||||
LOG_INFO("device id = 0x%08" PRIx32 "", device_id);
|
||||
if (EXTRACT_MFG(device_id) != 0x1F)
|
||||
{
|
||||
LOG_ERROR("0x%" PRIx32 " is invalid Manufacturer for avr, 0x%X is expected", EXTRACT_MFG(device_id), 0x1F);
|
||||
|
@ -402,7 +402,7 @@ static int avrf_info(struct flash_bank_s *bank, char *buf, int buf_size)
|
|||
return ERROR_FAIL;
|
||||
}
|
||||
|
||||
LOG_INFO("device id = 0x%08" PRIx32 "", device_id );
|
||||
LOG_INFO("device id = 0x%08" PRIx32 "", device_id);
|
||||
if (EXTRACT_MFG(device_id) != 0x1F)
|
||||
{
|
||||
LOG_ERROR("0x%" PRIx32 " is invalid Manufacturer for avr, 0x%X is expected", EXTRACT_MFG(device_id), 0x1F);
|
||||
|
|
|
@ -214,7 +214,7 @@ static uint16_t cfi_query_u16(flash_bank_t *bank, int sector, uint32_t offset)
|
|||
uint8_t i;
|
||||
for (i = 0;i < 2;i++)
|
||||
target_read_memory(target, flash_address(bank, sector, offset + i), bank->bus_width, 1,
|
||||
&data[i*bank->bus_width] );
|
||||
&data[i*bank->bus_width]);
|
||||
}
|
||||
else
|
||||
target_read_memory(target, flash_address(bank, sector, offset), bank->bus_width, 2, data);
|
||||
|
@ -236,7 +236,7 @@ static uint32_t cfi_query_u32(flash_bank_t *bank, int sector, uint32_t offset)
|
|||
uint8_t i;
|
||||
for (i = 0;i < 4;i++)
|
||||
target_read_memory(target, flash_address(bank, sector, offset + i), bank->bus_width, 1,
|
||||
&data[i*bank->bus_width] );
|
||||
&data[i*bank->bus_width]);
|
||||
}
|
||||
else
|
||||
target_read_memory(target, flash_address(bank, sector, offset), bank->bus_width, 4, data);
|
||||
|
@ -1154,7 +1154,7 @@ static int cfi_intel_write_block(struct flash_bank_s *bank, uint8_t *buffer, uin
|
|||
/* flash write code */
|
||||
if (!cfi_info->write_algorithm)
|
||||
{
|
||||
if (target_code_size > sizeof(target_code) )
|
||||
if (target_code_size > sizeof(target_code))
|
||||
{
|
||||
LOG_WARNING("Internal error - target code buffer to small. Increase CFI_MAX_INTEL_CODESIZE and recompile.");
|
||||
return ERROR_TARGET_RESOURCE_NOT_AVAILABLE;
|
||||
|
@ -1206,7 +1206,7 @@ static int cfi_intel_write_block(struct flash_bank_s *bank, uint8_t *buffer, uin
|
|||
busy_pattern_val = cfi_command_val(bank, 0x80);
|
||||
error_pattern_val = cfi_command_val(bank, 0x7e);
|
||||
|
||||
LOG_INFO("Using target buffer at 0x%08" PRIx32 " and of size 0x%04" PRIx32, source->address, buffer_size );
|
||||
LOG_INFO("Using target buffer at 0x%08" PRIx32 " and of size 0x%04" PRIx32, source->address, buffer_size);
|
||||
|
||||
/* Programming main loop */
|
||||
while (count > 0)
|
||||
|
@ -1227,7 +1227,7 @@ static int cfi_intel_write_block(struct flash_bank_s *bank, uint8_t *buffer, uin
|
|||
buf_set_u32(reg_params[5].value, 0, 32, busy_pattern_val);
|
||||
buf_set_u32(reg_params[6].value, 0, 32, error_pattern_val);
|
||||
|
||||
LOG_INFO("Write 0x%04" PRIx32 " bytes to flash at 0x%08" PRIx32 , thisrun_count, address );
|
||||
LOG_INFO("Write 0x%04" PRIx32 " bytes to flash at 0x%08" PRIx32 , thisrun_count, address);
|
||||
|
||||
/* Execute algorithm, assume breakpoint for last instruction */
|
||||
retval = target_run_algorithm(target, 0, NULL, 7, reg_params,
|
||||
|
@ -1883,7 +1883,7 @@ int cfi_write(struct flash_bank_s *bank, uint8_t *buffer, uint32_t offset, uint3
|
|||
write_p = address & ~(bank->bus_width - 1);
|
||||
if ((align = address - write_p) != 0)
|
||||
{
|
||||
LOG_INFO("Fixup %d unaligned head bytes", align );
|
||||
LOG_INFO("Fixup %d unaligned head bytes", align);
|
||||
|
||||
for (i = 0; i < bank->bus_width; i++)
|
||||
current_word[i] = 0;
|
||||
|
@ -2029,7 +2029,7 @@ int cfi_write(struct flash_bank_s *bank, uint8_t *buffer, uint32_t offset, uint3
|
|||
/* handle unaligned tail bytes */
|
||||
if (count > 0)
|
||||
{
|
||||
LOG_INFO("Fixup %" PRId32 " unaligned tail bytes", count );
|
||||
LOG_INFO("Fixup %" PRId32 " unaligned tail bytes", count);
|
||||
|
||||
copy_p = write_p;
|
||||
for (i = 0; i < bank->bus_width; i++)
|
||||
|
|
|
@ -675,7 +675,7 @@ static int davinci_nand_device_command(struct command_context_s *cmd_ctx,
|
|||
if (aemif == 0x01e00000 /* dm6446, dm357 */
|
||||
|| aemif == 0x01e10000 /* dm335, dm355 */
|
||||
|| aemif == 0x01d10000 /* dm365 */
|
||||
) {
|
||||
) {
|
||||
if (chip < 0x0200000 || chip >= 0x0a000000) {
|
||||
LOG_ERROR("NAND address %08lx out of range?", chip);
|
||||
goto fail;
|
||||
|
|
|
@ -281,7 +281,7 @@ static int eCosBoard_erase(ecosflash_flash_bank_t *info, uint32_t address, uint3
|
|||
0,
|
||||
&flashErr,
|
||||
timeout
|
||||
);
|
||||
);
|
||||
if (retval != ERROR_OK)
|
||||
return retval;
|
||||
|
||||
|
|
|
@ -793,7 +793,7 @@ static int handle_flash_fill_command(struct command_context_s *cmd_ctx, char *cm
|
|||
|
||||
for (wrote = 0; wrote < (count*wordsize); wrote += cur_size)
|
||||
{
|
||||
cur_size = MIN((count*wordsize - wrote), sizeof(chunk) );
|
||||
cur_size = MIN((count*wordsize - wrote), sizeof(chunk));
|
||||
flash_bank_t *bank;
|
||||
bank = get_flash_bank_by_addr(target, address);
|
||||
if (bank == NULL)
|
||||
|
@ -994,7 +994,7 @@ int flash_erase_address_range(target_t *target, uint32_t addr, uint32_t length)
|
|||
}
|
||||
}
|
||||
|
||||
if (first == -1 || last == -1 )
|
||||
if (first == -1 || last == -1)
|
||||
return ERROR_OK;
|
||||
|
||||
return flash_driver_erase(c, first, last);
|
||||
|
@ -1076,7 +1076,7 @@ int flash_write(target_t *target, image_t *image, uint32_t *written, int erase)
|
|||
run_size += pad_bytes;
|
||||
padding[section_last] = 0;
|
||||
|
||||
LOG_INFO("Padding image section %d with %d bytes", section_last-1, pad_bytes );
|
||||
LOG_INFO("Padding image section %d with %d bytes", section_last-1, pad_bytes);
|
||||
}
|
||||
|
||||
/* fit the run into bank constraints */
|
||||
|
@ -1127,7 +1127,7 @@ int flash_write(target_t *target, image_t *image, uint32_t *written, int erase)
|
|||
if (erase)
|
||||
{
|
||||
/* calculate and erase sectors */
|
||||
retval = flash_erase_address_range(target, run_address, run_size );
|
||||
retval = flash_erase_address_range(target, run_address, run_size);
|
||||
}
|
||||
|
||||
if (retval == ERROR_OK)
|
||||
|
|
|
@ -415,7 +415,7 @@ static int mg_probe_cmd(struct command_context_s *cmd_ctx, char *cmd, char **arg
|
|||
|
||||
if (ret == ERROR_OK) {
|
||||
command_print(cmd_ctx, "mflash (total %" PRIu32 " sectors) found at 0x%8.8" PRIx32 "",
|
||||
mflash_bank->drv_info->tot_sects, mflash_bank->base );
|
||||
mflash_bank->drv_info->tot_sects, mflash_bank->base);
|
||||
}
|
||||
|
||||
return ret;
|
||||
|
@ -429,7 +429,7 @@ static int mg_mflash_do_read_sects(void *buff, uint32_t sect_num, uint32_t sect_
|
|||
uint8_t *buff_ptr = buff;
|
||||
duration_t duration;
|
||||
|
||||
if ((ret = mg_dsk_io_cmd(sect_num, sect_cnt, mg_io_cmd_read)) != ERROR_OK )
|
||||
if ((ret = mg_dsk_io_cmd(sect_num, sect_cnt, mg_io_cmd_read)) != ERROR_OK)
|
||||
return ret;
|
||||
|
||||
address = mflash_bank->base + MG_BUFFER_OFFSET;
|
||||
|
@ -502,7 +502,7 @@ static int mg_mflash_do_write_sects(void *buff, uint32_t sect_num, uint32_t sect
|
|||
uint8_t *buff_ptr = buff;
|
||||
duration_t duration;
|
||||
|
||||
if ((ret = mg_dsk_io_cmd(sect_num, sect_cnt, cmd)) != ERROR_OK )
|
||||
if ((ret = mg_dsk_io_cmd(sect_num, sect_cnt, cmd)) != ERROR_OK)
|
||||
return ret;
|
||||
|
||||
address = mflash_bank->base + MG_BUFFER_OFFSET;
|
||||
|
|
|
@ -736,7 +736,7 @@ static int nand_read_plain(struct nand_device_s *device, uint32_t address, uint8
|
|||
|
||||
page = malloc(device->page_size);
|
||||
|
||||
while (data_size > 0 )
|
||||
while (data_size > 0)
|
||||
{
|
||||
uint32_t thisrun_size = (data_size > device->page_size) ? device->page_size : data_size;
|
||||
uint32_t page_address;
|
||||
|
@ -773,7 +773,7 @@ static int nand_write_plain(struct nand_device_s *device, uint32_t address, uint
|
|||
|
||||
page = malloc(device->page_size);
|
||||
|
||||
while (data_size > 0 )
|
||||
while (data_size > 0)
|
||||
{
|
||||
uint32_t thisrun_size = (data_size > device->page_size) ? device->page_size : data_size;
|
||||
uint32_t page_address;
|
||||
|
|
|
@ -26,10 +26,10 @@ uint32 dcc_rd(void)
|
|||
volatile uint32 dcc_reg;
|
||||
|
||||
do {
|
||||
asm volatile ("mrc p14, 0, %0, C0, C0" : "=r" (dcc_reg) : );
|
||||
asm volatile ("mrc p14, 0, %0, C0, C0" : "=r" (dcc_reg) :);
|
||||
} while ((dcc_reg&1) == 0);
|
||||
|
||||
asm volatile ("mrc p14, 0, %0, C1, C0" : "=r" (dcc_reg) : );
|
||||
asm volatile ("mrc p14, 0, %0, C1, C0" : "=r" (dcc_reg) :);
|
||||
return dcc_reg;
|
||||
}
|
||||
|
||||
|
@ -40,7 +40,7 @@ int dcc_wr(uint32 data)
|
|||
volatile uint32 dcc_reg;
|
||||
|
||||
do {
|
||||
asm volatile ("mrc p14, 0, %0, C0, C0" : "=r" (dcc_reg) : );
|
||||
asm volatile ("mrc p14, 0, %0, C0, C0" : "=r" (dcc_reg) :);
|
||||
/* operation controled by master, cancel operation
|
||||
upon reception of data for immediate response */
|
||||
if (dcc_reg&1) return -1;
|
||||
|
|
|
@ -148,11 +148,11 @@ static uint32_t pic32mx_wait_status_busy(flash_bank_t *bank, int timeout)
|
|||
/* wait for busy to clear */
|
||||
while (((status = pic32mx_get_flash_status(bank)) & NVMCON_NVMWR) && (timeout-- > 0))
|
||||
{
|
||||
LOG_DEBUG("status: 0x%" PRIx32, status );
|
||||
LOG_DEBUG("status: 0x%" PRIx32, status);
|
||||
alive_sleep(1);
|
||||
}
|
||||
if (timeout <= 0)
|
||||
LOG_DEBUG("timeout: status: 0x%" PRIx32, status );
|
||||
LOG_DEBUG("timeout: status: 0x%" PRIx32, status);
|
||||
|
||||
return status;
|
||||
}
|
||||
|
@ -229,9 +229,9 @@ static int pic32mx_erase(struct flash_bank_s *bank, int first, int last)
|
|||
{
|
||||
LOG_DEBUG("Erasing entire program flash");
|
||||
status = pic32mx_nvm_exec(bank, NVMCON_OP_PFM_ERASE, 50);
|
||||
if (status & NVMCON_NVMERR )
|
||||
if (status & NVMCON_NVMERR)
|
||||
return ERROR_FLASH_OPERATION_FAILED;
|
||||
if (status & NVMCON_LVDERR )
|
||||
if (status & NVMCON_LVDERR)
|
||||
return ERROR_FLASH_OPERATION_FAILED;
|
||||
return ERROR_OK;
|
||||
}
|
||||
|
@ -245,9 +245,9 @@ static int pic32mx_erase(struct flash_bank_s *bank, int first, int last)
|
|||
|
||||
status = pic32mx_nvm_exec(bank, NVMCON_OP_PAGE_ERASE, 10);
|
||||
|
||||
if (status & NVMCON_NVMERR )
|
||||
if (status & NVMCON_NVMERR)
|
||||
return ERROR_FLASH_OPERATION_FAILED;
|
||||
if (status & NVMCON_LVDERR )
|
||||
if (status & NVMCON_LVDERR)
|
||||
return ERROR_FLASH_OPERATION_FAILED;
|
||||
bank->sectors[i].is_erased = 1;
|
||||
}
|
||||
|
@ -313,7 +313,7 @@ static int pic32mx_protect(struct flash_bank_s *bank, int set, int first, int la
|
|||
reg = (i / pic32mx_info->ppage_size) / 8;
|
||||
bit = (i / pic32mx_info->ppage_size) - (reg * 8);
|
||||
|
||||
if (set )
|
||||
if (set)
|
||||
prot_reg[reg] &= ~(1 << bit);
|
||||
else
|
||||
prot_reg[reg] |= (1 << bit);
|
||||
|
@ -327,7 +327,7 @@ static int pic32mx_protect(struct flash_bank_s *bank, int set, int first, int la
|
|||
reg = (i / pic32mx_info->ppage_size) / 8;
|
||||
bit = (i / pic32mx_info->ppage_size) - (reg * 8);
|
||||
|
||||
if (set )
|
||||
if (set)
|
||||
prot_reg[reg] &= ~(1 << bit);
|
||||
else
|
||||
prot_reg[reg] |= (1 << bit);
|
||||
|
@ -434,12 +434,12 @@ static int pic32mx_write_block(struct flash_bank_s *bank, uint8_t *buffer, uint3
|
|||
}
|
||||
#endif
|
||||
status = pic32mx_write_row(bank, address, source->address);
|
||||
if (status & NVMCON_NVMERR ) {
|
||||
if (status & NVMCON_NVMERR) {
|
||||
LOG_ERROR("Flash write error NVMERR (status = 0x%08" PRIx32 ")", status);
|
||||
retval = ERROR_FLASH_OPERATION_FAILED;
|
||||
break;
|
||||
}
|
||||
if (status & NVMCON_LVDERR ) {
|
||||
if (status & NVMCON_LVDERR) {
|
||||
LOG_ERROR("Flash write error LVDERR (status = 0x%08" PRIx32 ")", status);
|
||||
retval = ERROR_FLASH_OPERATION_FAILED;
|
||||
break;
|
||||
|
@ -458,12 +458,12 @@ static int pic32mx_write_block(struct flash_bank_s *bank, uint8_t *buffer, uint3
|
|||
memcpy(&value, buffer, sizeof(uint32_t));
|
||||
|
||||
uint32_t status = pic32mx_write_word(bank, address, value);
|
||||
if (status & NVMCON_NVMERR ) {
|
||||
if (status & NVMCON_NVMERR) {
|
||||
LOG_ERROR("Flash write error NVMERR (status = 0x%08" PRIx32 ")", status);
|
||||
retval = ERROR_FLASH_OPERATION_FAILED;
|
||||
break;
|
||||
}
|
||||
if (status & NVMCON_LVDERR ) {
|
||||
if (status & NVMCON_LVDERR) {
|
||||
LOG_ERROR("Flash write error LVDERR (status = 0x%08" PRIx32 ")", status);
|
||||
retval = ERROR_FLASH_OPERATION_FAILED;
|
||||
break;
|
||||
|
@ -564,9 +564,9 @@ static int pic32mx_write(struct flash_bank_s *bank, uint8_t *buffer, uint32_t of
|
|||
memcpy(&value, buffer + bytes_written, sizeof(uint32_t));
|
||||
|
||||
status = pic32mx_write_word(bank, address, value);
|
||||
if (status & NVMCON_NVMERR )
|
||||
if (status & NVMCON_NVMERR)
|
||||
return ERROR_FLASH_OPERATION_FAILED;
|
||||
if (status & NVMCON_LVDERR )
|
||||
if (status & NVMCON_LVDERR)
|
||||
return ERROR_FLASH_OPERATION_FAILED;
|
||||
|
||||
bytes_written += 4;
|
||||
|
@ -580,9 +580,9 @@ static int pic32mx_write(struct flash_bank_s *bank, uint8_t *buffer, uint32_t of
|
|||
memcpy(&value, buffer + bytes_written, bytes_remaining);
|
||||
|
||||
status = pic32mx_write_word(bank, address, value);
|
||||
if (status & NVMCON_NVMERR )
|
||||
if (status & NVMCON_NVMERR)
|
||||
return ERROR_FLASH_OPERATION_FAILED;
|
||||
if (status & NVMCON_LVDERR )
|
||||
if (status & NVMCON_LVDERR)
|
||||
return ERROR_FLASH_OPERATION_FAILED;
|
||||
}
|
||||
|
||||
|
@ -607,10 +607,10 @@ static int pic32mx_probe(struct flash_bank_s *bank)
|
|||
device_id,
|
||||
(unsigned)((device_id >> 1)&0x7ff),
|
||||
(unsigned)((device_id >> 12)&0xff),
|
||||
(unsigned)((device_id >> 20)&0xfff) );
|
||||
(unsigned)((device_id >> 20)&0xfff));
|
||||
|
||||
if (((device_id >> 1)&0x7ff) != PIC32MX_MANUF_ID) {
|
||||
LOG_WARNING("Cannot identify target as a PIC32MX family." );
|
||||
LOG_WARNING("Cannot identify target as a PIC32MX family.");
|
||||
return ERROR_FLASH_OPERATION_FAILED;
|
||||
}
|
||||
|
||||
|
@ -626,7 +626,7 @@ static int pic32mx_probe(struct flash_bank_s *bank)
|
|||
break;
|
||||
}
|
||||
if (pic32mx_devs[i].name == NULL) {
|
||||
LOG_WARNING("Cannot identify target as a PIC32MX family." );
|
||||
LOG_WARNING("Cannot identify target as a PIC32MX family.");
|
||||
return ERROR_FLASH_OPERATION_FAILED;
|
||||
}
|
||||
}
|
||||
|
@ -646,7 +646,7 @@ static int pic32mx_probe(struct flash_bank_s *bank)
|
|||
}
|
||||
#endif
|
||||
|
||||
LOG_INFO("flash size = %dkbytes", num_pages );
|
||||
LOG_INFO("flash size = %dkbytes", num_pages);
|
||||
|
||||
/* calculate numbers of pages */
|
||||
num_pages /= (page_size / 1024);
|
||||
|
@ -847,13 +847,13 @@ static int pic32mx_chip_erase(struct flash_bank_s *bank)
|
|||
|
||||
target_write_u32(target, PIC32MX_FLASH_CR, FLASH_LOCK);
|
||||
|
||||
if (status & FLASH_WRPRTERR )
|
||||
if (status & FLASH_WRPRTERR)
|
||||
{
|
||||
LOG_ERROR("pic32mx device protected");
|
||||
return ERROR_OK;
|
||||
}
|
||||
|
||||
if (status & FLASH_PGERR )
|
||||
if (status & FLASH_PGERR)
|
||||
{
|
||||
LOG_ERROR("pic32mx device programming failed");
|
||||
return ERROR_OK;
|
||||
|
@ -931,9 +931,9 @@ static int pic32mx_handle_pgm_word_command(struct command_context_s *cmd_ctx, ch
|
|||
|
||||
res = ERROR_OK;
|
||||
status = pic32mx_write_word(bank, address, value);
|
||||
if (status & NVMCON_NVMERR )
|
||||
if (status & NVMCON_NVMERR)
|
||||
res = ERROR_FLASH_OPERATION_FAILED;
|
||||
if (status & NVMCON_LVDERR )
|
||||
if (status & NVMCON_LVDERR)
|
||||
res = ERROR_FLASH_OPERATION_FAILED;
|
||||
|
||||
if (res == ERROR_OK)
|
||||
|
|
|
@ -182,9 +182,9 @@ static int stm32x_erase_options(struct flash_bank_s *bank)
|
|||
|
||||
status = stm32x_wait_status_busy(bank, 10);
|
||||
|
||||
if (status & FLASH_WRPRTERR )
|
||||
if (status & FLASH_WRPRTERR)
|
||||
return ERROR_FLASH_OPERATION_FAILED;
|
||||
if (status & FLASH_PGERR )
|
||||
if (status & FLASH_PGERR)
|
||||
return ERROR_FLASH_OPERATION_FAILED;
|
||||
|
||||
/* clear readout protection and complementary option bytes
|
||||
|
@ -218,9 +218,9 @@ static int stm32x_write_options(struct flash_bank_s *bank)
|
|||
|
||||
status = stm32x_wait_status_busy(bank, 10);
|
||||
|
||||
if (status & FLASH_WRPRTERR )
|
||||
if (status & FLASH_WRPRTERR)
|
||||
return ERROR_FLASH_OPERATION_FAILED;
|
||||
if (status & FLASH_PGERR )
|
||||
if (status & FLASH_PGERR)
|
||||
return ERROR_FLASH_OPERATION_FAILED;
|
||||
|
||||
/* write protection byte 1 */
|
||||
|
@ -228,9 +228,9 @@ static int stm32x_write_options(struct flash_bank_s *bank)
|
|||
|
||||
status = stm32x_wait_status_busy(bank, 10);
|
||||
|
||||
if (status & FLASH_WRPRTERR )
|
||||
if (status & FLASH_WRPRTERR)
|
||||
return ERROR_FLASH_OPERATION_FAILED;
|
||||
if (status & FLASH_PGERR )
|
||||
if (status & FLASH_PGERR)
|
||||
return ERROR_FLASH_OPERATION_FAILED;
|
||||
|
||||
/* write protection byte 2 */
|
||||
|
@ -238,9 +238,9 @@ static int stm32x_write_options(struct flash_bank_s *bank)
|
|||
|
||||
status = stm32x_wait_status_busy(bank, 10);
|
||||
|
||||
if (status & FLASH_WRPRTERR )
|
||||
if (status & FLASH_WRPRTERR)
|
||||
return ERROR_FLASH_OPERATION_FAILED;
|
||||
if (status & FLASH_PGERR )
|
||||
if (status & FLASH_PGERR)
|
||||
return ERROR_FLASH_OPERATION_FAILED;
|
||||
|
||||
/* write protection byte 3 */
|
||||
|
@ -248,9 +248,9 @@ static int stm32x_write_options(struct flash_bank_s *bank)
|
|||
|
||||
status = stm32x_wait_status_busy(bank, 10);
|
||||
|
||||
if (status & FLASH_WRPRTERR )
|
||||
if (status & FLASH_WRPRTERR)
|
||||
return ERROR_FLASH_OPERATION_FAILED;
|
||||
if (status & FLASH_PGERR )
|
||||
if (status & FLASH_PGERR)
|
||||
return ERROR_FLASH_OPERATION_FAILED;
|
||||
|
||||
/* write protection byte 4 */
|
||||
|
@ -258,9 +258,9 @@ static int stm32x_write_options(struct flash_bank_s *bank)
|
|||
|
||||
status = stm32x_wait_status_busy(bank, 10);
|
||||
|
||||
if (status & FLASH_WRPRTERR )
|
||||
if (status & FLASH_WRPRTERR)
|
||||
return ERROR_FLASH_OPERATION_FAILED;
|
||||
if (status & FLASH_PGERR )
|
||||
if (status & FLASH_PGERR)
|
||||
return ERROR_FLASH_OPERATION_FAILED;
|
||||
|
||||
/* write readout protection bit */
|
||||
|
@ -268,9 +268,9 @@ static int stm32x_write_options(struct flash_bank_s *bank)
|
|||
|
||||
status = stm32x_wait_status_busy(bank, 10);
|
||||
|
||||
if (status & FLASH_WRPRTERR )
|
||||
if (status & FLASH_WRPRTERR)
|
||||
return ERROR_FLASH_OPERATION_FAILED;
|
||||
if (status & FLASH_PGERR )
|
||||
if (status & FLASH_PGERR)
|
||||
return ERROR_FLASH_OPERATION_FAILED;
|
||||
|
||||
target_write_u32(target, STM32_FLASH_CR, FLASH_LOCK);
|
||||
|
@ -378,9 +378,9 @@ static int stm32x_erase(struct flash_bank_s *bank, int first, int last)
|
|||
|
||||
status = stm32x_wait_status_busy(bank, 10);
|
||||
|
||||
if (status & FLASH_WRPRTERR )
|
||||
if (status & FLASH_WRPRTERR)
|
||||
return ERROR_FLASH_OPERATION_FAILED;
|
||||
if (status & FLASH_PGERR )
|
||||
if (status & FLASH_PGERR)
|
||||
return ERROR_FLASH_OPERATION_FAILED;
|
||||
bank->sectors[i].is_erased = 1;
|
||||
}
|
||||
|
@ -445,7 +445,7 @@ static int stm32x_protect(struct flash_bank_s *bank, int set, int first, int las
|
|||
reg = (i / stm32x_info->ppage_size) / 8;
|
||||
bit = (i / stm32x_info->ppage_size) - (reg * 8);
|
||||
|
||||
if (set )
|
||||
if (set)
|
||||
prot_reg[reg] &= ~(1 << bit);
|
||||
else
|
||||
prot_reg[reg] |= (1 << bit);
|
||||
|
@ -459,7 +459,7 @@ static int stm32x_protect(struct flash_bank_s *bank, int set, int first, int las
|
|||
reg = (i / stm32x_info->ppage_size) / 8;
|
||||
bit = (i / stm32x_info->ppage_size) - (reg * 8);
|
||||
|
||||
if (set )
|
||||
if (set)
|
||||
prot_reg[reg] &= ~(1 << bit);
|
||||
else
|
||||
prot_reg[reg] |= (1 << bit);
|
||||
|
@ -658,12 +658,12 @@ static int stm32x_write(struct flash_bank_s *bank, uint8_t *buffer, uint32_t off
|
|||
|
||||
status = stm32x_wait_status_busy(bank, 5);
|
||||
|
||||
if (status & FLASH_WRPRTERR )
|
||||
if (status & FLASH_WRPRTERR)
|
||||
{
|
||||
LOG_ERROR("flash memory not erased before writing");
|
||||
return ERROR_FLASH_OPERATION_FAILED;
|
||||
}
|
||||
if (status & FLASH_PGERR )
|
||||
if (status & FLASH_PGERR)
|
||||
{
|
||||
LOG_ERROR("flash memory write protected");
|
||||
return ERROR_FLASH_OPERATION_FAILED;
|
||||
|
@ -684,12 +684,12 @@ static int stm32x_write(struct flash_bank_s *bank, uint8_t *buffer, uint32_t off
|
|||
|
||||
status = stm32x_wait_status_busy(bank, 5);
|
||||
|
||||
if (status & FLASH_WRPRTERR )
|
||||
if (status & FLASH_WRPRTERR)
|
||||
{
|
||||
LOG_ERROR("flash memory not erased before writing");
|
||||
return ERROR_FLASH_OPERATION_FAILED;
|
||||
}
|
||||
if (status & FLASH_PGERR )
|
||||
if (status & FLASH_PGERR)
|
||||
{
|
||||
LOG_ERROR("flash memory write protected");
|
||||
return ERROR_FLASH_OPERATION_FAILED;
|
||||
|
@ -720,7 +720,7 @@ static int stm32x_probe(struct flash_bank_s *bank)
|
|||
|
||||
/* read stm32 device id register */
|
||||
target_read_u32(target, 0xE0042000, &device_id);
|
||||
LOG_INFO("device id = 0x%08" PRIx32 "", device_id );
|
||||
LOG_INFO("device id = 0x%08" PRIx32 "", device_id);
|
||||
|
||||
/* get flash size from target */
|
||||
if (target_read_u16(target, 0x1FFFF7E0, &num_pages) != ERROR_OK)
|
||||
|
@ -740,7 +740,7 @@ static int stm32x_probe(struct flash_bank_s *bank)
|
|||
if (num_pages == 0xffff)
|
||||
{
|
||||
/* number of sectors incorrect on revA */
|
||||
LOG_WARNING("STM32 flash size failed, probe inaccurate - assuming 128k flash" );
|
||||
LOG_WARNING("STM32 flash size failed, probe inaccurate - assuming 128k flash");
|
||||
num_pages = 128;
|
||||
}
|
||||
}
|
||||
|
@ -755,7 +755,7 @@ static int stm32x_probe(struct flash_bank_s *bank)
|
|||
if (num_pages == 0xffff)
|
||||
{
|
||||
/* number of sectors incorrect on revA */
|
||||
LOG_WARNING("STM32 flash size failed, probe inaccurate - assuming 32k flash" );
|
||||
LOG_WARNING("STM32 flash size failed, probe inaccurate - assuming 32k flash");
|
||||
num_pages = 32;
|
||||
}
|
||||
}
|
||||
|
@ -770,7 +770,7 @@ static int stm32x_probe(struct flash_bank_s *bank)
|
|||
if (num_pages == 0xffff)
|
||||
{
|
||||
/* number of sectors incorrect on revZ */
|
||||
LOG_WARNING("STM32 flash size failed, probe inaccurate - assuming 512k flash" );
|
||||
LOG_WARNING("STM32 flash size failed, probe inaccurate - assuming 512k flash");
|
||||
num_pages = 512;
|
||||
}
|
||||
}
|
||||
|
@ -785,17 +785,17 @@ static int stm32x_probe(struct flash_bank_s *bank)
|
|||
if (num_pages == 0xffff)
|
||||
{
|
||||
/* number of sectors incorrect on revZ */
|
||||
LOG_WARNING("STM32 flash size failed, probe inaccurate - assuming 256k flash" );
|
||||
LOG_WARNING("STM32 flash size failed, probe inaccurate - assuming 256k flash");
|
||||
num_pages = 256;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
LOG_WARNING("Cannot identify target as a STM32 family." );
|
||||
LOG_WARNING("Cannot identify target as a STM32 family.");
|
||||
return ERROR_FLASH_OPERATION_FAILED;
|
||||
}
|
||||
|
||||
LOG_INFO("flash size = %dkbytes", num_pages );
|
||||
LOG_INFO("flash size = %dkbytes", num_pages);
|
||||
|
||||
/* calculate numbers of pages */
|
||||
num_pages /= (page_size / 1024);
|
||||
|
@ -1188,13 +1188,13 @@ static int stm32x_mass_erase(struct flash_bank_s *bank)
|
|||
|
||||
target_write_u32(target, STM32_FLASH_CR, FLASH_LOCK);
|
||||
|
||||
if (status & FLASH_WRPRTERR )
|
||||
if (status & FLASH_WRPRTERR)
|
||||
{
|
||||
LOG_ERROR("stm32x device protected");
|
||||
return ERROR_OK;
|
||||
}
|
||||
|
||||
if (status & FLASH_PGERR )
|
||||
if (status & FLASH_PGERR)
|
||||
{
|
||||
LOG_ERROR("stm32x device programming failed");
|
||||
return ERROR_OK;
|
||||
|
|
|
@ -634,7 +634,7 @@ static int str7x_handle_part_id_command(struct command_context_s *cmd_ctx, char
|
|||
|
||||
static int str7x_info(struct flash_bank_s *bank, char *buf, int buf_size)
|
||||
{
|
||||
snprintf(buf, buf_size, "str7x flash driver info" );
|
||||
snprintf(buf, buf_size, "str7x flash driver info");
|
||||
return ERROR_OK;
|
||||
}
|
||||
|
||||
|
|
|
@ -305,7 +305,7 @@ static int str9x_erase(struct flash_bank_s *bank, int first, int last)
|
|||
{
|
||||
return retval;
|
||||
}
|
||||
if (status & 0x80 )
|
||||
if (status & 0x80)
|
||||
break;
|
||||
alive_sleep(1);
|
||||
}
|
||||
|
@ -327,7 +327,7 @@ static int str9x_erase(struct flash_bank_s *bank, int first, int last)
|
|||
return retval;
|
||||
}
|
||||
|
||||
if (status & 0x22 )
|
||||
if (status & 0x22)
|
||||
{
|
||||
LOG_ERROR("error erasing flash bank, status: 0x%x", status);
|
||||
return ERROR_FLASH_OPERATION_FAILED;
|
||||
|
@ -365,7 +365,7 @@ static int str9x_protect(struct flash_bank_s *bank,
|
|||
adr = bank->base + bank->sectors[i].offset;
|
||||
|
||||
target_write_u16(target, adr, 0x60);
|
||||
if (set )
|
||||
if (set)
|
||||
target_write_u16(target, adr, 0x01);
|
||||
else
|
||||
target_write_u16(target, adr, 0xD0);
|
||||
|
@ -578,7 +578,7 @@ static int str9x_write(struct flash_bank_s *bank,
|
|||
for (timeout = 0; timeout < 1000; timeout++)
|
||||
{
|
||||
target_read_u8(target, bank_adr, &status);
|
||||
if (status & 0x80 )
|
||||
if (status & 0x80)
|
||||
break;
|
||||
alive_sleep(1);
|
||||
}
|
||||
|
@ -627,7 +627,7 @@ static int str9x_write(struct flash_bank_s *bank,
|
|||
for (timeout = 0; timeout < 1000; timeout++)
|
||||
{
|
||||
target_read_u8(target, bank_adr, &status);
|
||||
if (status & 0x80 )
|
||||
if (status & 0x80)
|
||||
break;
|
||||
alive_sleep(1);
|
||||
}
|
||||
|
@ -665,7 +665,7 @@ static int str9x_handle_part_id_command(struct command_context_s *cmd_ctx,
|
|||
|
||||
static int str9x_info(struct flash_bank_s *bank, char *buf, int buf_size)
|
||||
{
|
||||
snprintf(buf, buf_size, "str9x flash driver info" );
|
||||
snprintf(buf, buf_size, "str9x flash driver info");
|
||||
return ERROR_OK;
|
||||
}
|
||||
|
||||
|
|
|
@ -101,7 +101,7 @@ static int str9xpec_register_commands(struct command_context_s *cmd_ctx)
|
|||
|
||||
int str9xpec_set_instr(jtag_tap_t *tap, uint32_t new_instr, tap_state_t end_state)
|
||||
{
|
||||
if (tap == NULL ){
|
||||
if (tap == NULL){
|
||||
return ERROR_TARGET_INVALID;
|
||||
}
|
||||
|
||||
|
@ -349,7 +349,7 @@ static int str9xpec_blank_check(struct flash_bank_s *bank, int first, int last)
|
|||
tap = str9xpec_info->tap;
|
||||
|
||||
if (!str9xpec_info->isc_enable) {
|
||||
str9xpec_isc_enable(bank );
|
||||
str9xpec_isc_enable(bank);
|
||||
}
|
||||
|
||||
if (!str9xpec_info->isc_enable) {
|
||||
|
@ -438,7 +438,7 @@ static int str9xpec_erase_area(struct flash_bank_s *bank, int first, int last)
|
|||
tap = str9xpec_info->tap;
|
||||
|
||||
if (!str9xpec_info->isc_enable) {
|
||||
str9xpec_isc_enable(bank );
|
||||
str9xpec_isc_enable(bank);
|
||||
}
|
||||
|
||||
if (!str9xpec_info->isc_enable) {
|
||||
|
@ -518,7 +518,7 @@ static int str9xpec_lock_device(struct flash_bank_s *bank)
|
|||
tap = str9xpec_info->tap;
|
||||
|
||||
if (!str9xpec_info->isc_enable) {
|
||||
str9xpec_isc_enable(bank );
|
||||
str9xpec_isc_enable(bank);
|
||||
}
|
||||
|
||||
if (!str9xpec_info->isc_enable) {
|
||||
|
@ -575,7 +575,7 @@ static int str9xpec_protect(struct flash_bank_s *bank, int set, int first, int l
|
|||
/* last bank: 0xFF signals a full device protect */
|
||||
if (last == 0xFF)
|
||||
{
|
||||
if (set )
|
||||
if (set)
|
||||
{
|
||||
status = str9xpec_lock_device(bank);
|
||||
}
|
||||
|
@ -589,7 +589,7 @@ static int str9xpec_protect(struct flash_bank_s *bank, int set, int first, int l
|
|||
{
|
||||
for (i = first; i <= last; i++)
|
||||
{
|
||||
if (set )
|
||||
if (set)
|
||||
buf_set_u32(str9xpec_info->options, str9xpec_info->sector_bits[i], 1, 1);
|
||||
else
|
||||
buf_set_u32(str9xpec_info->options, str9xpec_info->sector_bits[i], 1, 0);
|
||||
|
@ -845,7 +845,7 @@ static int str9xpec_erase_check(struct flash_bank_s *bank)
|
|||
|
||||
static int str9xpec_info(struct flash_bank_s *bank, char *buf, int buf_size)
|
||||
{
|
||||
snprintf(buf, buf_size, "str9xpec flash driver info" );
|
||||
snprintf(buf, buf_size, "str9xpec flash driver info");
|
||||
return ERROR_OK;
|
||||
}
|
||||
|
||||
|
@ -919,13 +919,13 @@ static int str9xpec_write_options(struct flash_bank_s *bank)
|
|||
tap = str9xpec_info->tap;
|
||||
|
||||
/* erase config options first */
|
||||
status = str9xpec_erase_area(bank, 0xFE, 0xFE );
|
||||
status = str9xpec_erase_area(bank, 0xFE, 0xFE);
|
||||
|
||||
if ((status & ISC_STATUS_ERROR) != STR9XPEC_ISC_SUCCESS)
|
||||
return status;
|
||||
|
||||
if (!str9xpec_info->isc_enable) {
|
||||
str9xpec_isc_enable(bank );
|
||||
str9xpec_isc_enable(bank);
|
||||
}
|
||||
|
||||
if (!str9xpec_info->isc_enable) {
|
||||
|
|
|
@ -80,7 +80,7 @@ int buf_cmp(const uint8_t *buf1, const uint8_t *buf2, int size)
|
|||
{
|
||||
/* last byte */
|
||||
/* mask out bits that don't really belong to the buffer if size isn't a multiple of 8 bits */
|
||||
if ((size % 8) && (i == num_bytes -1 ))
|
||||
if ((size % 8) && (i == num_bytes -1))
|
||||
{
|
||||
if ((buf1[i] & ((1 << (size % 8)) - 1)) != (buf2[i] & ((1 << (size % 8)) - 1)))
|
||||
return 1;
|
||||
|
@ -104,7 +104,7 @@ int buf_cmp_mask(const uint8_t *buf1, const uint8_t *buf2, const uint8_t *mask,
|
|||
{
|
||||
/* last byte */
|
||||
/* mask out bits that don't really belong to the buffer if size isn't a multiple of 8 bits */
|
||||
if ((size % 8) && (i == num_bytes -1 ))
|
||||
if ((size % 8) && (i == num_bytes -1))
|
||||
{
|
||||
if ((buf1[i] & ((1 << (size % 8)) - 1) & mask[i]) !=
|
||||
(buf2[i] & ((1 << (size % 8)) - 1) & mask[i]))
|
||||
|
|
|
@ -238,7 +238,7 @@ command_t* register_command(command_context_t *context, command_t *parent, char
|
|||
|
||||
/* we now need to add an overrideable proc */
|
||||
const char *override_name = alloc_printf("proc %s%s%s {args} {if {[catch {eval ocd_%s%s%s $args}]==0} {return \"\"} else { return -code error }", t1, t2, t3, t1, t2, t3);
|
||||
Jim_Eval_Named(interp, override_name, __THIS__FILE__, __LINE__ );
|
||||
Jim_Eval_Named(interp, override_name, __THIS__FILE__, __LINE__);
|
||||
free((void *)override_name);
|
||||
|
||||
/* accumulate help text in Tcl helptext list. */
|
||||
|
@ -348,8 +348,8 @@ int unregister_command(command_context_t *context, char *name)
|
|||
|
||||
void command_output_text(command_context_t *context, const char *data)
|
||||
{
|
||||
if (context && context->output_handler && data ){
|
||||
context->output_handler(context, data );
|
||||
if (context && context->output_handler && data){
|
||||
context->output_handler(context, data);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -405,7 +405,7 @@ void command_print(command_context_t *context, const char *format, ...)
|
|||
int run_command(command_context_t *context, command_t *c, char *words[], int num_words)
|
||||
{
|
||||
int start_word = 0;
|
||||
if (!((context->mode == COMMAND_CONFIG) || (c->mode == COMMAND_ANY) || (c->mode == context->mode) ))
|
||||
if (!((context->mode == COMMAND_CONFIG) || (c->mode == COMMAND_ANY) || (c->mode == context->mode)))
|
||||
{
|
||||
/* Config commands can not run after the config stage */
|
||||
LOG_ERROR("Command '%s' only runs during configuration stage", c->name);
|
||||
|
@ -466,7 +466,7 @@ int command_run_line(command_context_t *context, char *line)
|
|||
retcode = Jim_SetAssocData(interp, "retval", NULL, &retval);
|
||||
if (retcode == JIM_OK)
|
||||
{
|
||||
retcode = Jim_Eval_Named(interp, line, __THIS__FILE__, __LINE__ );
|
||||
retcode = Jim_Eval_Named(interp, line, __THIS__FILE__, __LINE__);
|
||||
|
||||
Jim_DeleteAssocData(interp, "retval");
|
||||
}
|
||||
|
@ -673,7 +673,7 @@ static int jim_capture(Jim_Interp *interp, int argc, Jim_Obj *const *argv)
|
|||
|
||||
log_add_callback(tcl_output, tclOutput);
|
||||
|
||||
retcode = Jim_Eval_Named(interp, str, __THIS__FILE__, __LINE__ );
|
||||
retcode = Jim_Eval_Named(interp, str, __THIS__FILE__, __LINE__);
|
||||
|
||||
log_remove_callback(tcl_output, tclOutput);
|
||||
|
||||
|
@ -704,7 +704,7 @@ command_context_t* command_init()
|
|||
Jim_RegisterCoreCommands(interp);
|
||||
#endif
|
||||
|
||||
#if defined(_MSC_VER )
|
||||
#if defined(_MSC_VER)
|
||||
/* WinXX - is generic, the forward
|
||||
* looking problem is this:
|
||||
*
|
||||
|
@ -715,16 +715,16 @@ command_context_t* command_init()
|
|||
HostOs = "winxx";
|
||||
#elif defined(__LINUX__)
|
||||
HostOs = "linux";
|
||||
#elif defined(__DARWIN__ )
|
||||
#elif defined(__DARWIN__)
|
||||
HostOs = "darwin";
|
||||
#elif defined(__CYGWIN__ )
|
||||
#elif defined(__CYGWIN__)
|
||||
HostOs = "cygwin";
|
||||
#elif defined(__MINGW32__ )
|
||||
#elif defined(__MINGW32__)
|
||||
HostOs = "mingw32";
|
||||
#else
|
||||
HostOs = "other";
|
||||
#endif
|
||||
Jim_SetGlobalVariableStr(interp, "ocd_HOSTOS", Jim_NewStringObj(interp, HostOs , strlen(HostOs)) );
|
||||
Jim_SetGlobalVariableStr(interp, "ocd_HOSTOS", Jim_NewStringObj(interp, HostOs , strlen(HostOs)));
|
||||
|
||||
Jim_CreateCommand(interp, "ocd_find", jim_find, NULL, NULL);
|
||||
Jim_CreateCommand(interp, "echo", jim_echo, NULL, NULL);
|
||||
|
|
|
@ -199,7 +199,7 @@ int handle_meminfo_command(struct command_context_s *cmd_ctx, char *cmd, char **
|
|||
}
|
||||
prev = info.fordblks;
|
||||
|
||||
command_print(cmd_ctx, "Available ram: %d", info.fordblks );
|
||||
command_print(cmd_ctx, "Available ram: %d", info.fordblks);
|
||||
|
||||
return ERROR_OK;
|
||||
}
|
||||
|
@ -325,34 +325,34 @@ void copyfile(char *name2, char *name1)
|
|||
|
||||
fd1 = open(name1, O_WRONLY | O_CREAT, 0664);
|
||||
if (fd1 < 0)
|
||||
SHOW_RESULT(open, fd1 );
|
||||
SHOW_RESULT(open, fd1);
|
||||
|
||||
fd2 = open(name2, O_RDONLY);
|
||||
if (fd2 < 0)
|
||||
SHOW_RESULT(open, fd2 );
|
||||
SHOW_RESULT(open, fd2);
|
||||
|
||||
for (;;)
|
||||
{
|
||||
done = read(fd2, buf, IOSIZE );
|
||||
done = read(fd2, buf, IOSIZE);
|
||||
if (done < 0)
|
||||
{
|
||||
SHOW_RESULT(read, done );
|
||||
SHOW_RESULT(read, done);
|
||||
break;
|
||||
}
|
||||
|
||||
if (done == 0 ) break;
|
||||
if (done == 0) break;
|
||||
|
||||
wrote = write(fd1, buf, done);
|
||||
if (wrote != done ) SHOW_RESULT(write, wrote );
|
||||
if (wrote != done) SHOW_RESULT(write, wrote);
|
||||
|
||||
if (wrote != done ) break;
|
||||
if (wrote != done) break;
|
||||
}
|
||||
|
||||
err = close(fd1);
|
||||
if (err < 0 ) SHOW_RESULT(close, err );
|
||||
if (err < 0) SHOW_RESULT(close, err);
|
||||
|
||||
err = close(fd2);
|
||||
if (err < 0 ) SHOW_RESULT(close, err );
|
||||
if (err < 0) SHOW_RESULT(close, err);
|
||||
|
||||
}
|
||||
|
||||
|
@ -372,7 +372,7 @@ void copydir(char *name, char *destdir)
|
|||
}
|
||||
|
||||
dirp = opendir(name);
|
||||
if (dirp == NULL ) SHOW_RESULT(opendir, -1 );
|
||||
if (dirp == NULL) SHOW_RESULT(opendir, -1);
|
||||
|
||||
for (;;)
|
||||
{
|
||||
|
@ -421,7 +421,7 @@ void copydir(char *name, char *destdir)
|
|||
}
|
||||
|
||||
err = closedir(dirp);
|
||||
if (err < 0 ) SHOW_RESULT(stat, err );
|
||||
if (err < 0) SHOW_RESULT(stat, err);
|
||||
}
|
||||
|
||||
|
||||
|
|
328
src/helper/jim.c
328
src/helper/jim.c
|
@ -117,25 +117,25 @@ static Jim_HashTableType *getJimVariablesHashTableType(void);
|
|||
* ---------------------------------------------------------------------------*/
|
||||
|
||||
static char *
|
||||
jim_vasprintf(const char *fmt, va_list ap )
|
||||
jim_vasprintf(const char *fmt, va_list ap)
|
||||
{
|
||||
#ifndef HAVE_VASPRINTF
|
||||
/* yucky way */
|
||||
static char buf[2048];
|
||||
vsnprintf(buf, sizeof(buf), fmt, ap );
|
||||
vsnprintf(buf, sizeof(buf), fmt, ap);
|
||||
/* garentee termination */
|
||||
buf[sizeof(buf)-1] = 0;
|
||||
#else
|
||||
char *buf;
|
||||
int result;
|
||||
result = vasprintf(&buf, fmt, ap );
|
||||
result = vasprintf(&buf, fmt, ap);
|
||||
if (result < 0) exit(-1);
|
||||
#endif
|
||||
return buf;
|
||||
}
|
||||
|
||||
static void
|
||||
jim_vasprintf_done(void *buf )
|
||||
jim_vasprintf_done(void *buf)
|
||||
{
|
||||
#ifndef HAVE_VASPRINTF
|
||||
(void)(buf);
|
||||
|
@ -421,7 +421,7 @@ int Jim_StringToWide(const char *str, jim_wide *widePtr, int base)
|
|||
#else
|
||||
*widePtr = strtol(str, &endptr, base);
|
||||
#endif
|
||||
if ((str[0] == '\0') || (str == endptr) )
|
||||
if ((str[0] == '\0') || (str == endptr))
|
||||
return JIM_ERR;
|
||||
if (endptr[0] != '\0') {
|
||||
while (*endptr) {
|
||||
|
@ -438,7 +438,7 @@ int Jim_StringToIndex(const char *str, int *intPtr)
|
|||
char *endptr;
|
||||
|
||||
*intPtr = strtol(str, &endptr, 10);
|
||||
if ((str[0] == '\0') || (str == endptr) )
|
||||
if ((str[0] == '\0') || (str == endptr))
|
||||
return JIM_ERR;
|
||||
if (endptr[0] != '\0') {
|
||||
while (*endptr) {
|
||||
|
@ -495,7 +495,7 @@ int Jim_StringToDouble(const char *str, double *doublePtr)
|
|||
char *endptr;
|
||||
|
||||
*doublePtr = strtod(str, &endptr);
|
||||
if (str[0] == '\0' || endptr[0] != '\0' || (str == endptr) )
|
||||
if (str[0] == '\0' || endptr[0] != '\0' || (str == endptr))
|
||||
return JIM_ERR;
|
||||
return JIM_OK;
|
||||
}
|
||||
|
@ -544,10 +544,10 @@ void Jim_Panic(Jim_Interp *interp, const char *fmt, ...)
|
|||
#endif
|
||||
|
||||
/* This may actually crash... we do it last */
|
||||
if (interp && interp->cookie_stderr ){
|
||||
if (interp && interp->cookie_stderr){
|
||||
Jim_fprintf(interp, interp->cookie_stderr, JIM_NL "JIM INTERPRETER PANIC: ");
|
||||
Jim_vfprintf(interp, interp->cookie_stderr, fmt, ap );
|
||||
Jim_fprintf(interp, interp->cookie_stderr, JIM_NL JIM_NL );
|
||||
Jim_vfprintf(interp, interp->cookie_stderr, fmt, ap);
|
||||
Jim_fprintf(interp, interp->cookie_stderr, JIM_NL JIM_NL);
|
||||
}
|
||||
abort();
|
||||
}
|
||||
|
@ -2055,17 +2055,17 @@ void Jim_AppendString(Jim_Interp *interp, Jim_Obj *objPtr, const char *str,
|
|||
StringAppendString(objPtr, str, len);
|
||||
}
|
||||
|
||||
void Jim_AppendString_sprintf(Jim_Interp *interp, Jim_Obj *objPtr, const char *fmt, ... )
|
||||
void Jim_AppendString_sprintf(Jim_Interp *interp, Jim_Obj *objPtr, const char *fmt, ...)
|
||||
{
|
||||
char *buf;
|
||||
va_list ap;
|
||||
|
||||
va_start(ap, fmt );
|
||||
buf = jim_vasprintf(fmt, ap );
|
||||
va_start(ap, fmt);
|
||||
buf = jim_vasprintf(fmt, ap);
|
||||
va_end(ap);
|
||||
|
||||
if (buf ){
|
||||
Jim_AppendString(interp, objPtr, buf, -1 );
|
||||
if (buf){
|
||||
Jim_AppendString(interp, objPtr, buf, -1);
|
||||
jim_vasprintf_done(buf);
|
||||
}
|
||||
}
|
||||
|
@ -2283,10 +2283,10 @@ static Jim_Obj *Jim_FormatString_Inner(Jim_Interp *interp, Jim_Obj *fmtObjPtr,
|
|||
haveprec = 0;
|
||||
prec = -1; /* not found yet */
|
||||
next_fmt:
|
||||
if (fmtLen <= 0 ){
|
||||
if (fmtLen <= 0){
|
||||
break;
|
||||
}
|
||||
switch (*fmt ){
|
||||
switch (*fmt){
|
||||
/* terminals */
|
||||
case 'b': /* binary - not all printfs() do this */
|
||||
case 's': /* string */
|
||||
|
@ -2341,11 +2341,11 @@ static Jim_Obj *Jim_FormatString_Inner(Jim_Interp *interp, Jim_Obj *fmtObjPtr,
|
|||
case '8':
|
||||
case '9':
|
||||
accum = 0;
|
||||
while (isdigit(*fmt) && (fmtLen > 0) ){
|
||||
while (isdigit(*fmt) && (fmtLen > 0)){
|
||||
accum = (accum * 10) + (*fmt - '0');
|
||||
fmt++; fmtLen--;
|
||||
}
|
||||
if (inprec ){
|
||||
if (inprec){
|
||||
haveprec = 1;
|
||||
prec = accum;
|
||||
} else {
|
||||
|
@ -2356,24 +2356,24 @@ static Jim_Obj *Jim_FormatString_Inner(Jim_Interp *interp, Jim_Obj *fmtObjPtr,
|
|||
/* suck up the next item as an integer */
|
||||
fmt++; fmtLen--;
|
||||
objc--;
|
||||
if (objc <= 0 ){
|
||||
if (objc <= 0){
|
||||
goto not_enough_args;
|
||||
}
|
||||
if (Jim_GetWide(interp,objv[0],&wideValue )== JIM_ERR ){
|
||||
Jim_FreeNewObj(interp, resObjPtr );
|
||||
if (Jim_GetWide(interp,objv[0],&wideValue)== JIM_ERR){
|
||||
Jim_FreeNewObj(interp, resObjPtr);
|
||||
return NULL;
|
||||
}
|
||||
if (inprec ){
|
||||
if (inprec){
|
||||
haveprec = 1;
|
||||
prec = wideValue;
|
||||
if (prec < 0 ){
|
||||
if (prec < 0){
|
||||
/* man 3 printf says */
|
||||
/* if prec is negative, it is zero */
|
||||
prec = 0;
|
||||
}
|
||||
} else {
|
||||
width = wideValue;
|
||||
if (width < 0 ){
|
||||
if (width < 0){
|
||||
ljust = 1;
|
||||
width = -width;
|
||||
}
|
||||
|
@ -2402,33 +2402,33 @@ static Jim_Obj *Jim_FormatString_Inner(Jim_Interp *interp, Jim_Obj *fmtObjPtr,
|
|||
*/
|
||||
cp = fmt_str;
|
||||
*cp++ = '%';
|
||||
if (altfm ){
|
||||
if (altfm){
|
||||
*cp++ = '#';
|
||||
}
|
||||
if (forceplus ){
|
||||
if (forceplus){
|
||||
*cp++ = '+';
|
||||
} else if (spad ){
|
||||
} else if (spad){
|
||||
/* PLUS overrides */
|
||||
*cp++ = ' ';
|
||||
}
|
||||
if (ljust ){
|
||||
if (ljust){
|
||||
*cp++ = '-';
|
||||
}
|
||||
if (zpad ){
|
||||
if (zpad){
|
||||
*cp++ = '0';
|
||||
}
|
||||
if (width > 0 ){
|
||||
sprintf(cp, "%d", width );
|
||||
if (width > 0){
|
||||
sprintf(cp, "%d", width);
|
||||
/* skip ahead */
|
||||
cp = strchr(cp,0);
|
||||
}
|
||||
/* did we find a period? */
|
||||
if (inprec ){
|
||||
if (inprec){
|
||||
/* then add it */
|
||||
*cp++ = '.';
|
||||
/* did something occur after the period? */
|
||||
if (haveprec ){
|
||||
sprintf(cp, "%d", prec );
|
||||
if (haveprec){
|
||||
sprintf(cp, "%d", prec);
|
||||
}
|
||||
cp = strchr(cp,0);
|
||||
}
|
||||
|
@ -2441,7 +2441,7 @@ static Jim_Obj *Jim_FormatString_Inner(Jim_Interp *interp, Jim_Obj *fmtObjPtr,
|
|||
*cp++ = 's';
|
||||
*cp = 0;
|
||||
/* BUG: we do not handled embeded NULLs */
|
||||
snprintf(sprintf_buf, JIM_MAX_FMT, fmt_str, Jim_GetString(objv[0], NULL ));
|
||||
snprintf(sprintf_buf, JIM_MAX_FMT, fmt_str, Jim_GetString(objv[0], NULL));
|
||||
break;
|
||||
case 'c':
|
||||
*cp++ = 'c';
|
||||
|
@ -2451,7 +2451,7 @@ static Jim_Obj *Jim_FormatString_Inner(Jim_Interp *interp, Jim_Obj *fmtObjPtr,
|
|||
return NULL;
|
||||
}
|
||||
c = (char) wideValue;
|
||||
snprintf(sprintf_buf, JIM_MAX_FMT, fmt_str, c );
|
||||
snprintf(sprintf_buf, JIM_MAX_FMT, fmt_str, c);
|
||||
break;
|
||||
case 'f':
|
||||
case 'F':
|
||||
|
@ -2461,11 +2461,11 @@ static Jim_Obj *Jim_FormatString_Inner(Jim_Interp *interp, Jim_Obj *fmtObjPtr,
|
|||
case 'E':
|
||||
*cp++ = *fmt;
|
||||
*cp = 0;
|
||||
if (Jim_GetDouble(interp, objv[0], &doubleValue ) == JIM_ERR ){
|
||||
Jim_FreeNewObj(interp, resObjPtr );
|
||||
if (Jim_GetDouble(interp, objv[0], &doubleValue) == JIM_ERR){
|
||||
Jim_FreeNewObj(interp, resObjPtr);
|
||||
return NULL;
|
||||
}
|
||||
snprintf(sprintf_buf, JIM_MAX_FMT, fmt_str, doubleValue );
|
||||
snprintf(sprintf_buf, JIM_MAX_FMT, fmt_str, doubleValue);
|
||||
break;
|
||||
case 'b':
|
||||
case 'd':
|
||||
|
@ -2475,7 +2475,7 @@ static Jim_Obj *Jim_FormatString_Inner(Jim_Interp *interp, Jim_Obj *fmtObjPtr,
|
|||
case 'x':
|
||||
case 'X':
|
||||
/* jim widevaluse are 64bit */
|
||||
if (sizeof(jim_wide) == sizeof(long long) ){
|
||||
if (sizeof(jim_wide) == sizeof(long long)){
|
||||
*cp++ = 'l';
|
||||
*cp++ = 'l';
|
||||
} else {
|
||||
|
@ -2487,7 +2487,7 @@ static Jim_Obj *Jim_FormatString_Inner(Jim_Interp *interp, Jim_Obj *fmtObjPtr,
|
|||
Jim_FreeNewObj(interp, resObjPtr);
|
||||
return NULL;
|
||||
}
|
||||
snprintf(sprintf_buf, JIM_MAX_FMT, fmt_str, wideValue );
|
||||
snprintf(sprintf_buf, JIM_MAX_FMT, fmt_str, wideValue);
|
||||
break;
|
||||
case '%':
|
||||
sprintf_buf[0] = '%';
|
||||
|
@ -2504,12 +2504,12 @@ static Jim_Obj *Jim_FormatString_Inner(Jim_Interp *interp, Jim_Obj *fmtObjPtr,
|
|||
}
|
||||
/* force terminate */
|
||||
#if 0
|
||||
printf("FMT was: %s\n", fmt_str );
|
||||
printf("RES was: |%s|\n", sprintf_buf );
|
||||
printf("FMT was: %s\n", fmt_str);
|
||||
printf("RES was: |%s|\n", sprintf_buf);
|
||||
#endif
|
||||
|
||||
sprintf_buf[ JIM_MAX_FMT - 1] = 0;
|
||||
Jim_AppendString(interp, resObjPtr, sprintf_buf, strlen(sprintf_buf) );
|
||||
Jim_AppendString(interp, resObjPtr, sprintf_buf, strlen(sprintf_buf));
|
||||
/* next obj */
|
||||
objv++;
|
||||
fmt++;
|
||||
|
@ -2626,13 +2626,13 @@ int Jim_GetNvp(Jim_Interp *interp,
|
|||
Jim_Nvp *n;
|
||||
int e;
|
||||
|
||||
e = Jim_Nvp_name2value_obj(interp, nvp_table, objPtr, &n );
|
||||
if (e == JIM_ERR ){
|
||||
e = Jim_Nvp_name2value_obj(interp, nvp_table, objPtr, &n);
|
||||
if (e == JIM_ERR){
|
||||
return e;
|
||||
}
|
||||
|
||||
/* Success? found? */
|
||||
if (n->name ){
|
||||
if (n->name){
|
||||
/* remove const */
|
||||
*result = (Jim_Nvp *)n;
|
||||
return JIM_OK;
|
||||
|
@ -4426,7 +4426,7 @@ Jim_Interp *Jim_CreateInterp(void)
|
|||
i->cookie_stderr = stderr;
|
||||
i->cb_fwrite = ((size_t (*)(const void *, size_t, size_t, void *))(fwrite));
|
||||
i->cb_fread = ((size_t (*)(void *, size_t, size_t, void *))(fread));
|
||||
i->cb_vfprintf = ((int (*)(void *, const char *fmt, va_list ))(vfprintf));
|
||||
i->cb_vfprintf = ((int (*)(void *, const char *fmt, va_list))(vfprintf));
|
||||
i->cb_fflush = ((int (*)(void *))(fflush));
|
||||
i->cb_fgets = ((char * (*)(char *, int, void *))(fgets));
|
||||
|
||||
|
@ -5433,7 +5433,7 @@ void Jim_ListInsertElements(Jim_Interp *interp, Jim_Obj *listPtr, int index,
|
|||
SetListFromAny(interp, listPtr);
|
||||
if (index >= 0 && index > listPtr->internalRep.listValue.len)
|
||||
index = listPtr->internalRep.listValue.len;
|
||||
else if (index < 0 )
|
||||
else if (index < 0)
|
||||
index = 0;
|
||||
Jim_InvalidateStringRep(listPtr);
|
||||
ListInsertElements(listPtr, index, objc, objVec);
|
||||
|
@ -6353,11 +6353,11 @@ int JimParseExprNumber(struct JimParserCtx *pc)
|
|||
pc->p++; pc->len--;
|
||||
}
|
||||
while (isdigit((int)*pc->p)
|
||||
|| (allowhex && isxdigit((int)*pc->p) )
|
||||
|| (allowhex && isxdigit((int)*pc->p))
|
||||
|| (allowdot && *pc->p == '.')
|
||||
|| (pc->p-pc->tstart == 1 && *pc->tstart == '0' &&
|
||||
(*pc->p == 'x' || *pc->p == 'X'))
|
||||
)
|
||||
)
|
||||
{
|
||||
if ((*pc->p == 'x') || (*pc->p == 'X')) {
|
||||
allowhex = 1;
|
||||
|
@ -8894,8 +8894,8 @@ int Jim_Eval_Named(Jim_Interp *interp, const char *script, const char *filename,
|
|||
Jim_IncrRefCount(scriptObjPtr);
|
||||
|
||||
|
||||
if (filename ){
|
||||
JimSetSourceInfo(interp, scriptObjPtr, filename, lineno );
|
||||
if (filename){
|
||||
JimSetSourceInfo(interp, scriptObjPtr, filename, lineno);
|
||||
}
|
||||
|
||||
retval = Jim_EvalObj(interp, scriptObjPtr);
|
||||
|
@ -8905,7 +8905,7 @@ int Jim_Eval_Named(Jim_Interp *interp, const char *script, const char *filename,
|
|||
|
||||
int Jim_Eval(Jim_Interp *interp, const char *script)
|
||||
{
|
||||
return Jim_Eval_Named(interp, script, NULL, 0 );
|
||||
return Jim_Eval_Named(interp, script, NULL, 0);
|
||||
}
|
||||
|
||||
|
||||
|
@ -8963,7 +8963,7 @@ int Jim_EvalFile(Jim_Interp *interp, const char *filename)
|
|||
const int cwd_len = 2048;
|
||||
char *cwd = malloc(cwd_len);
|
||||
Jim_SetResult(interp, Jim_NewEmptyStringObj(interp));
|
||||
if (!getcwd(cwd, cwd_len )) strcpy(cwd, "unknown");
|
||||
if (!getcwd(cwd, cwd_len)) strcpy(cwd, "unknown");
|
||||
Jim_AppendStrings(interp, Jim_GetResult(interp),
|
||||
"Error loading script \"", filename, "\"",
|
||||
" cwd: ", cwd,
|
||||
|
@ -9359,12 +9359,12 @@ void JimRegisterCoreApi(Jim_Interp *interp)
|
|||
JIM_REGISTER_API(StackPop);
|
||||
JIM_REGISTER_API(StackPeek);
|
||||
JIM_REGISTER_API(FreeStackElements);
|
||||
JIM_REGISTER_API(fprintf );
|
||||
JIM_REGISTER_API(vfprintf );
|
||||
JIM_REGISTER_API(fwrite );
|
||||
JIM_REGISTER_API(fread );
|
||||
JIM_REGISTER_API(fflush );
|
||||
JIM_REGISTER_API(fgets );
|
||||
JIM_REGISTER_API(fprintf);
|
||||
JIM_REGISTER_API(vfprintf);
|
||||
JIM_REGISTER_API(fwrite);
|
||||
JIM_REGISTER_API(fread);
|
||||
JIM_REGISTER_API(fflush);
|
||||
JIM_REGISTER_API(fgets);
|
||||
JIM_REGISTER_API(GetNvp);
|
||||
JIM_REGISTER_API(Nvp_name2value);
|
||||
JIM_REGISTER_API(Nvp_name2value_simple);
|
||||
|
@ -10217,7 +10217,7 @@ static int JimForeachMapHelper(Jim_Interp *interp, int argc,
|
|||
if (count > nbrOfLoops)
|
||||
nbrOfLoops = count;
|
||||
}
|
||||
for (; nbrOfLoops-- > 0; ) {
|
||||
for (; nbrOfLoops-- > 0;) {
|
||||
for (i = 0; i < nbrOfLists; ++i) {
|
||||
int varIdx = 0, var = i * 2;
|
||||
while (varIdx < listsEnd[var]) {
|
||||
|
@ -12276,7 +12276,7 @@ static void Jim_RegisterCoreProcedures(Jim_Interp *interp)
|
|||
"proc lambdaFinalizer {name val} {\n"
|
||||
" rename $name {}\n"
|
||||
"}\n"
|
||||
);
|
||||
);
|
||||
}
|
||||
|
||||
void Jim_RegisterCoreCommands(Jim_Interp *interp)
|
||||
|
@ -12399,66 +12399,66 @@ out:
|
|||
* Jim's idea of STDIO..
|
||||
* ---------------------------------------------------------------------------*/
|
||||
|
||||
int Jim_fprintf(Jim_Interp *interp, void *cookie, const char *fmt, ... )
|
||||
int Jim_fprintf(Jim_Interp *interp, void *cookie, const char *fmt, ...)
|
||||
{
|
||||
int r;
|
||||
|
||||
va_list ap;
|
||||
va_start(ap,fmt);
|
||||
r = Jim_vfprintf(interp, cookie, fmt,ap );
|
||||
r = Jim_vfprintf(interp, cookie, fmt,ap);
|
||||
va_end(ap);
|
||||
return r;
|
||||
}
|
||||
|
||||
int Jim_vfprintf(Jim_Interp *interp, void *cookie, const char *fmt, va_list ap )
|
||||
int Jim_vfprintf(Jim_Interp *interp, void *cookie, const char *fmt, va_list ap)
|
||||
{
|
||||
if ((interp == NULL) || (interp->cb_vfprintf == NULL) ){
|
||||
if ((interp == NULL) || (interp->cb_vfprintf == NULL)){
|
||||
errno = ENOTSUP;
|
||||
return -1;
|
||||
}
|
||||
return (*(interp->cb_vfprintf))(cookie, fmt, ap );
|
||||
return (*(interp->cb_vfprintf))(cookie, fmt, ap);
|
||||
}
|
||||
|
||||
size_t Jim_fwrite(Jim_Interp *interp, const void *ptr, size_t size, size_t n, void *cookie )
|
||||
size_t Jim_fwrite(Jim_Interp *interp, const void *ptr, size_t size, size_t n, void *cookie)
|
||||
{
|
||||
if ((interp == NULL) || (interp->cb_fwrite == NULL) ){
|
||||
if ((interp == NULL) || (interp->cb_fwrite == NULL)){
|
||||
errno = ENOTSUP;
|
||||
return 0;
|
||||
}
|
||||
return (*(interp->cb_fwrite))(ptr, size, n, cookie);
|
||||
}
|
||||
|
||||
size_t Jim_fread(Jim_Interp *interp, void *ptr, size_t size, size_t n, void *cookie )
|
||||
size_t Jim_fread(Jim_Interp *interp, void *ptr, size_t size, size_t n, void *cookie)
|
||||
{
|
||||
if ((interp == NULL) || (interp->cb_fread == NULL) ){
|
||||
if ((interp == NULL) || (interp->cb_fread == NULL)){
|
||||
errno = ENOTSUP;
|
||||
return 0;
|
||||
}
|
||||
return (*(interp->cb_fread))(ptr, size, n, cookie);
|
||||
}
|
||||
|
||||
int Jim_fflush(Jim_Interp *interp, void *cookie )
|
||||
int Jim_fflush(Jim_Interp *interp, void *cookie)
|
||||
{
|
||||
if ((interp == NULL) || (interp->cb_fflush == NULL) ){
|
||||
if ((interp == NULL) || (interp->cb_fflush == NULL)){
|
||||
/* pretend all is well */
|
||||
return 0;
|
||||
}
|
||||
return (*(interp->cb_fflush))(cookie );
|
||||
return (*(interp->cb_fflush))(cookie);
|
||||
}
|
||||
|
||||
char* Jim_fgets(Jim_Interp *interp, char *s, int size, void *cookie )
|
||||
char* Jim_fgets(Jim_Interp *interp, char *s, int size, void *cookie)
|
||||
{
|
||||
if ((interp == NULL) || (interp->cb_fgets == NULL) ){
|
||||
if ((interp == NULL) || (interp->cb_fgets == NULL)){
|
||||
errno = ENOTSUP;
|
||||
return NULL;
|
||||
}
|
||||
return (*(interp->cb_fgets))(s, size, cookie );
|
||||
return (*(interp->cb_fgets))(s, size, cookie);
|
||||
}
|
||||
Jim_Nvp *
|
||||
Jim_Nvp_name2value_simple(const Jim_Nvp *p, const char *name )
|
||||
Jim_Nvp_name2value_simple(const Jim_Nvp *p, const char *name)
|
||||
{
|
||||
while (p->name ){
|
||||
if (0 == strcmp(name, p->name ) ){
|
||||
while (p->name){
|
||||
if (0 == strcmp(name, p->name)){
|
||||
break;
|
||||
}
|
||||
p++;
|
||||
|
@ -12467,10 +12467,10 @@ Jim_Nvp_name2value_simple(const Jim_Nvp *p, const char *name )
|
|||
}
|
||||
|
||||
Jim_Nvp *
|
||||
Jim_Nvp_name2value_nocase_simple(const Jim_Nvp *p, const char *name )
|
||||
Jim_Nvp_name2value_nocase_simple(const Jim_Nvp *p, const char *name)
|
||||
{
|
||||
while (p->name ){
|
||||
if (0 == strcasecmp(name, p->name ) ){
|
||||
while (p->name){
|
||||
if (0 == strcasecmp(name, p->name)){
|
||||
break;
|
||||
}
|
||||
p++;
|
||||
|
@ -12482,9 +12482,9 @@ int
|
|||
Jim_Nvp_name2value_obj(Jim_Interp *interp,
|
||||
const Jim_Nvp *p,
|
||||
Jim_Obj *o,
|
||||
Jim_Nvp **result )
|
||||
Jim_Nvp **result)
|
||||
{
|
||||
return Jim_Nvp_name2value(interp, p, Jim_GetString(o, NULL ), result );
|
||||
return Jim_Nvp_name2value(interp, p, Jim_GetString(o, NULL), result);
|
||||
}
|
||||
|
||||
|
||||
|
@ -12496,15 +12496,15 @@ Jim_Nvp_name2value(Jim_Interp *interp,
|
|||
{
|
||||
const Jim_Nvp *p;
|
||||
|
||||
p = Jim_Nvp_name2value_simple(_p, name );
|
||||
p = Jim_Nvp_name2value_simple(_p, name);
|
||||
|
||||
/* result */
|
||||
if (result ){
|
||||
if (result){
|
||||
*result = (Jim_Nvp *)(p);
|
||||
}
|
||||
|
||||
/* found? */
|
||||
if (p->name ){
|
||||
if (p->name){
|
||||
return JIM_OK;
|
||||
} else {
|
||||
return JIM_ERR;
|
||||
|
@ -12512,23 +12512,23 @@ Jim_Nvp_name2value(Jim_Interp *interp,
|
|||
}
|
||||
|
||||
int
|
||||
Jim_Nvp_name2value_obj_nocase(Jim_Interp *interp, const Jim_Nvp *p, Jim_Obj *o, Jim_Nvp **puthere )
|
||||
Jim_Nvp_name2value_obj_nocase(Jim_Interp *interp, const Jim_Nvp *p, Jim_Obj *o, Jim_Nvp **puthere)
|
||||
{
|
||||
return Jim_Nvp_name2value_nocase(interp, p, Jim_GetString(o, NULL ), puthere );
|
||||
return Jim_Nvp_name2value_nocase(interp, p, Jim_GetString(o, NULL), puthere);
|
||||
}
|
||||
|
||||
int
|
||||
Jim_Nvp_name2value_nocase(Jim_Interp *interp, const Jim_Nvp *_p, const char *name, Jim_Nvp **puthere )
|
||||
Jim_Nvp_name2value_nocase(Jim_Interp *interp, const Jim_Nvp *_p, const char *name, Jim_Nvp **puthere)
|
||||
{
|
||||
const Jim_Nvp *p;
|
||||
|
||||
p = Jim_Nvp_name2value_nocase_simple(_p, name );
|
||||
p = Jim_Nvp_name2value_nocase_simple(_p, name);
|
||||
|
||||
if (puthere ){
|
||||
if (puthere){
|
||||
*puthere = (Jim_Nvp *)(p);
|
||||
}
|
||||
/* found */
|
||||
if (p->name ){
|
||||
if (p->name){
|
||||
return JIM_OK;
|
||||
} else {
|
||||
return JIM_ERR;
|
||||
|
@ -12537,24 +12537,24 @@ Jim_Nvp_name2value_nocase(Jim_Interp *interp, const Jim_Nvp *_p, const char *nam
|
|||
|
||||
|
||||
int
|
||||
Jim_Nvp_value2name_obj(Jim_Interp *interp, const Jim_Nvp *p, Jim_Obj *o, Jim_Nvp **result )
|
||||
Jim_Nvp_value2name_obj(Jim_Interp *interp, const Jim_Nvp *p, Jim_Obj *o, Jim_Nvp **result)
|
||||
{
|
||||
int e;;
|
||||
jim_wide w;
|
||||
|
||||
e = Jim_GetWide(interp, o, &w );
|
||||
if (e != JIM_OK ){
|
||||
e = Jim_GetWide(interp, o, &w);
|
||||
if (e != JIM_OK){
|
||||
return e;
|
||||
}
|
||||
|
||||
return Jim_Nvp_value2name(interp, p, w, result );
|
||||
return Jim_Nvp_value2name(interp, p, w, result);
|
||||
}
|
||||
|
||||
Jim_Nvp *
|
||||
Jim_Nvp_value2name_simple(const Jim_Nvp *p, int value )
|
||||
Jim_Nvp_value2name_simple(const Jim_Nvp *p, int value)
|
||||
{
|
||||
while (p->name ){
|
||||
if (value == p->value ){
|
||||
while (p->name){
|
||||
if (value == p->value){
|
||||
break;
|
||||
}
|
||||
p++;
|
||||
|
@ -12564,17 +12564,17 @@ Jim_Nvp_value2name_simple(const Jim_Nvp *p, int value )
|
|||
|
||||
|
||||
int
|
||||
Jim_Nvp_value2name(Jim_Interp *interp, const Jim_Nvp *_p, int value, Jim_Nvp **result )
|
||||
Jim_Nvp_value2name(Jim_Interp *interp, const Jim_Nvp *_p, int value, Jim_Nvp **result)
|
||||
{
|
||||
const Jim_Nvp *p;
|
||||
|
||||
p = Jim_Nvp_value2name_simple(_p, value );
|
||||
p = Jim_Nvp_value2name_simple(_p, value);
|
||||
|
||||
if (result ){
|
||||
if (result){
|
||||
*result = (Jim_Nvp *)(p);
|
||||
}
|
||||
|
||||
if (p->name ){
|
||||
if (p->name){
|
||||
return JIM_OK;
|
||||
} else {
|
||||
return JIM_ERR;
|
||||
|
@ -12585,7 +12585,7 @@ Jim_Nvp_value2name(Jim_Interp *interp, const Jim_Nvp *_p, int value, Jim_Nvp **r
|
|||
int
|
||||
Jim_GetOpt_Setup(Jim_GetOptInfo *p, Jim_Interp *interp, int argc, Jim_Obj * const * argv)
|
||||
{
|
||||
memset(p, 0, sizeof(*p) );
|
||||
memset(p, 0, sizeof(*p));
|
||||
p->interp = interp;
|
||||
p->argc = argc;
|
||||
p->argv = argv;
|
||||
|
@ -12594,37 +12594,37 @@ Jim_GetOpt_Setup(Jim_GetOptInfo *p, Jim_Interp *interp, int argc, Jim_Obj * cons
|
|||
}
|
||||
|
||||
void
|
||||
Jim_GetOpt_Debug(Jim_GetOptInfo *p )
|
||||
Jim_GetOpt_Debug(Jim_GetOptInfo *p)
|
||||
{
|
||||
int x;
|
||||
|
||||
Jim_fprintf(p->interp, p->interp->cookie_stderr, "---args---\n");
|
||||
for (x = 0 ; x < p->argc ; x++ ){
|
||||
for (x = 0 ; x < p->argc ; x++){
|
||||
Jim_fprintf(p->interp, p->interp->cookie_stderr,
|
||||
"%2d) %s\n",
|
||||
x,
|
||||
Jim_GetString(p->argv[x], NULL ) );
|
||||
Jim_GetString(p->argv[x], NULL));
|
||||
}
|
||||
Jim_fprintf(p->interp, p->interp->cookie_stderr, "-------\n");
|
||||
}
|
||||
|
||||
|
||||
int
|
||||
Jim_GetOpt_Obj(Jim_GetOptInfo *goi, Jim_Obj **puthere )
|
||||
Jim_GetOpt_Obj(Jim_GetOptInfo *goi, Jim_Obj **puthere)
|
||||
{
|
||||
Jim_Obj *o;
|
||||
|
||||
o = NULL; // failure
|
||||
if (goi->argc ){
|
||||
if (goi->argc){
|
||||
// success
|
||||
o = goi->argv[0];
|
||||
goi->argc -= 1;
|
||||
goi->argv += 1;
|
||||
}
|
||||
if (puthere ){
|
||||
if (puthere){
|
||||
*puthere = o;
|
||||
}
|
||||
if (o != NULL ){
|
||||
if (o != NULL){
|
||||
return JIM_OK;
|
||||
} else {
|
||||
return JIM_ERR;
|
||||
|
@ -12632,17 +12632,17 @@ Jim_GetOpt_Obj(Jim_GetOptInfo *goi, Jim_Obj **puthere )
|
|||
}
|
||||
|
||||
int
|
||||
Jim_GetOpt_String(Jim_GetOptInfo *goi, char **puthere, int *len )
|
||||
Jim_GetOpt_String(Jim_GetOptInfo *goi, char **puthere, int *len)
|
||||
{
|
||||
int r;
|
||||
Jim_Obj *o;
|
||||
const char *cp;
|
||||
|
||||
|
||||
r = Jim_GetOpt_Obj(goi, &o );
|
||||
if (r == JIM_OK ){
|
||||
cp = Jim_GetString(o, len );
|
||||
if (puthere ){
|
||||
r = Jim_GetOpt_Obj(goi, &o);
|
||||
if (r == JIM_OK){
|
||||
cp = Jim_GetString(o, len);
|
||||
if (puthere){
|
||||
/* remove const */
|
||||
*puthere = (char *)(cp);
|
||||
}
|
||||
|
@ -12651,42 +12651,42 @@ Jim_GetOpt_String(Jim_GetOptInfo *goi, char **puthere, int *len )
|
|||
}
|
||||
|
||||
int
|
||||
Jim_GetOpt_Double(Jim_GetOptInfo *goi, double *puthere )
|
||||
Jim_GetOpt_Double(Jim_GetOptInfo *goi, double *puthere)
|
||||
{
|
||||
int r;
|
||||
Jim_Obj *o;
|
||||
double _safe;
|
||||
|
||||
if (puthere == NULL ){
|
||||
if (puthere == NULL){
|
||||
puthere = &_safe;
|
||||
}
|
||||
|
||||
r = Jim_GetOpt_Obj(goi, &o );
|
||||
if (r == JIM_OK ){
|
||||
r = Jim_GetDouble(goi->interp, o, puthere );
|
||||
if (r != JIM_OK ){
|
||||
r = Jim_GetOpt_Obj(goi, &o);
|
||||
if (r == JIM_OK){
|
||||
r = Jim_GetDouble(goi->interp, o, puthere);
|
||||
if (r != JIM_OK){
|
||||
Jim_SetResult_sprintf(goi->interp,
|
||||
"not a number: %s",
|
||||
Jim_GetString(o, NULL ) );
|
||||
Jim_GetString(o, NULL));
|
||||
}
|
||||
}
|
||||
return r;
|
||||
}
|
||||
|
||||
int
|
||||
Jim_GetOpt_Wide(Jim_GetOptInfo *goi, jim_wide *puthere )
|
||||
Jim_GetOpt_Wide(Jim_GetOptInfo *goi, jim_wide *puthere)
|
||||
{
|
||||
int r;
|
||||
Jim_Obj *o;
|
||||
jim_wide _safe;
|
||||
|
||||
if (puthere == NULL ){
|
||||
if (puthere == NULL){
|
||||
puthere = &_safe;
|
||||
}
|
||||
|
||||
r = Jim_GetOpt_Obj(goi, &o );
|
||||
if (r == JIM_OK ){
|
||||
r = Jim_GetWide(goi->interp, o, puthere );
|
||||
r = Jim_GetOpt_Obj(goi, &o);
|
||||
if (r == JIM_OK){
|
||||
r = Jim_GetWide(goi->interp, o, puthere);
|
||||
}
|
||||
return r;
|
||||
}
|
||||
|
@ -12699,16 +12699,16 @@ int Jim_GetOpt_Nvp(Jim_GetOptInfo *goi,
|
|||
Jim_Obj *o;
|
||||
int e;
|
||||
|
||||
if (puthere == NULL ){
|
||||
if (puthere == NULL){
|
||||
puthere = &_safe;
|
||||
}
|
||||
|
||||
e = Jim_GetOpt_Obj(goi, &o );
|
||||
if (e == JIM_OK ){
|
||||
e = Jim_GetOpt_Obj(goi, &o);
|
||||
if (e == JIM_OK){
|
||||
e = Jim_Nvp_name2value_obj(goi->interp,
|
||||
nvp,
|
||||
o,
|
||||
puthere );
|
||||
puthere);
|
||||
}
|
||||
|
||||
return e;
|
||||
|
@ -12717,18 +12717,18 @@ int Jim_GetOpt_Nvp(Jim_GetOptInfo *goi,
|
|||
void
|
||||
Jim_GetOpt_NvpUnknown(Jim_GetOptInfo *goi,
|
||||
const Jim_Nvp *nvptable,
|
||||
int hadprefix )
|
||||
int hadprefix)
|
||||
{
|
||||
if (hadprefix ){
|
||||
if (hadprefix){
|
||||
Jim_SetResult_NvpUnknown(goi->interp,
|
||||
goi->argv[-2],
|
||||
goi->argv[-1],
|
||||
nvptable );
|
||||
nvptable);
|
||||
} else {
|
||||
Jim_SetResult_NvpUnknown(goi->interp,
|
||||
NULL,
|
||||
goi->argv[-1],
|
||||
nvptable );
|
||||
nvptable);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -12742,17 +12742,17 @@ Jim_GetOpt_Enum(Jim_GetOptInfo *goi,
|
|||
Jim_Obj *o;
|
||||
int e;
|
||||
|
||||
if (puthere == NULL ){
|
||||
if (puthere == NULL){
|
||||
puthere = &_safe;
|
||||
}
|
||||
e = Jim_GetOpt_Obj(goi, &o );
|
||||
if (e == JIM_OK ){
|
||||
e = Jim_GetOpt_Obj(goi, &o);
|
||||
if (e == JIM_OK){
|
||||
e = Jim_GetEnum(goi->interp,
|
||||
o,
|
||||
lookup,
|
||||
puthere,
|
||||
"option",
|
||||
JIM_ERRMSG );
|
||||
JIM_ERRMSG);
|
||||
}
|
||||
return e;
|
||||
}
|
||||
|
@ -12760,16 +12760,16 @@ Jim_GetOpt_Enum(Jim_GetOptInfo *goi,
|
|||
|
||||
|
||||
int
|
||||
Jim_SetResult_sprintf(Jim_Interp *interp, const char *fmt,... )
|
||||
Jim_SetResult_sprintf(Jim_Interp *interp, const char *fmt,...)
|
||||
{
|
||||
va_list ap;
|
||||
char *buf;
|
||||
|
||||
va_start(ap,fmt);
|
||||
buf = jim_vasprintf(fmt, ap );
|
||||
buf = jim_vasprintf(fmt, ap);
|
||||
va_end(ap);
|
||||
if (buf ){
|
||||
Jim_SetResultString(interp, buf, -1 );
|
||||
if (buf){
|
||||
Jim_SetResultString(interp, buf, -1);
|
||||
jim_vasprintf_done(buf);
|
||||
}
|
||||
return JIM_OK;
|
||||
|
@ -12780,23 +12780,23 @@ void
|
|||
Jim_SetResult_NvpUnknown(Jim_Interp *interp,
|
||||
Jim_Obj *param_name,
|
||||
Jim_Obj *param_value,
|
||||
const Jim_Nvp *nvp )
|
||||
const Jim_Nvp *nvp)
|
||||
{
|
||||
if (param_name ){
|
||||
if (param_name){
|
||||
Jim_SetResult_sprintf(interp,
|
||||
"%s: Unknown: %s, try one of: ",
|
||||
Jim_GetString(param_name, NULL ),
|
||||
Jim_GetString(param_value, NULL ) );
|
||||
Jim_GetString(param_name, NULL),
|
||||
Jim_GetString(param_value, NULL));
|
||||
} else {
|
||||
Jim_SetResult_sprintf(interp,
|
||||
"Unknown param: %s, try one of: ",
|
||||
Jim_GetString(param_value, NULL ) );
|
||||
Jim_GetString(param_value, NULL));
|
||||
}
|
||||
while (nvp->name ){
|
||||
while (nvp->name){
|
||||
const char *a;
|
||||
const char *b;
|
||||
|
||||
if ((nvp + 1)->name ){
|
||||
if ((nvp + 1)->name){
|
||||
a = nvp->name;
|
||||
b = ", ";
|
||||
} else {
|
||||
|
@ -12805,7 +12805,7 @@ Jim_SetResult_NvpUnknown(Jim_Interp *interp,
|
|||
}
|
||||
Jim_AppendStrings(interp,
|
||||
Jim_GetResult(interp),
|
||||
a, b, NULL );
|
||||
a, b, NULL);
|
||||
nvp++;
|
||||
}
|
||||
}
|
||||
|
@ -12814,22 +12814,22 @@ Jim_SetResult_NvpUnknown(Jim_Interp *interp,
|
|||
static Jim_Obj *debug_string_obj;
|
||||
|
||||
const char *
|
||||
Jim_Debug_ArgvString(Jim_Interp *interp, int argc, Jim_Obj *const *argv )
|
||||
Jim_Debug_ArgvString(Jim_Interp *interp, int argc, Jim_Obj *const *argv)
|
||||
{
|
||||
int x;
|
||||
|
||||
if (debug_string_obj ){
|
||||
Jim_FreeObj(interp, debug_string_obj );
|
||||
if (debug_string_obj){
|
||||
Jim_FreeObj(interp, debug_string_obj);
|
||||
}
|
||||
|
||||
debug_string_obj = Jim_NewEmptyStringObj(interp );
|
||||
for (x = 0 ; x < argc ; x++ ){
|
||||
debug_string_obj = Jim_NewEmptyStringObj(interp);
|
||||
for (x = 0 ; x < argc ; x++){
|
||||
Jim_AppendStrings(interp,
|
||||
debug_string_obj,
|
||||
Jim_GetString(argv[x], NULL ),
|
||||
Jim_GetString(argv[x], NULL),
|
||||
" ",
|
||||
NULL );
|
||||
NULL);
|
||||
}
|
||||
|
||||
return Jim_GetString(debug_string_obj, NULL );
|
||||
return Jim_GetString(debug_string_obj, NULL);
|
||||
}
|
||||
|
|
140
src/helper/jim.h
140
src/helper/jim.h
|
@ -530,11 +530,11 @@ typedef struct Jim_Interp {
|
|||
void *cookie_stdin; /* input file pointer, 'stdin' by default */
|
||||
void *cookie_stdout; /* output file pointer, 'stdout' by default */
|
||||
void *cookie_stderr; /* errors file pointer, 'stderr' by default */
|
||||
size_t (*cb_fwrite )(const void *ptr, size_t size, size_t n, void *cookie );
|
||||
size_t (*cb_fread )(void *ptr, size_t size, size_t n, void *cookie );
|
||||
int (*cb_vfprintf)(void *cookie, const char *fmt, va_list ap );
|
||||
int (*cb_fflush )(void *cookie );
|
||||
char *(*cb_fgets )(char *s, int size, void *cookie );
|
||||
size_t (*cb_fwrite)(const void *ptr, size_t size, size_t n, void *cookie);
|
||||
size_t (*cb_fread)(void *ptr, size_t size, size_t n, void *cookie);
|
||||
int (*cb_vfprintf)(void *cookie, const char *fmt, va_list ap);
|
||||
int (*cb_fflush)(void *cookie);
|
||||
char *(*cb_fgets)(char *s, int size, void *cookie);
|
||||
} Jim_Interp;
|
||||
|
||||
/* Currently provided as macro that performs the increment.
|
||||
|
@ -591,11 +591,11 @@ typedef struct Jim_Reference {
|
|||
* };
|
||||
*
|
||||
* Jim_Nvp *result
|
||||
* e = Jim_Nvp_name2value(interp, yn, "y", &result );
|
||||
* e = Jim_Nvp_name2value(interp, yn, "y", &result);
|
||||
* returns &yn[0];
|
||||
* e = Jim_Nvp_name2value(interp, yn, "n", &result );
|
||||
* e = Jim_Nvp_name2value(interp, yn, "n", &result);
|
||||
* returns &yn[1];
|
||||
* e = Jim_Nvp_name2value(interp, yn, "Blah", &result );
|
||||
* e = Jim_Nvp_name2value(interp, yn, "Blah", &result);
|
||||
* returns &yn[4];
|
||||
* \endcode
|
||||
*
|
||||
|
@ -629,7 +629,7 @@ typedef struct {
|
|||
|
||||
#ifdef DOXYGEN
|
||||
#define JIM_STATIC
|
||||
#define JIM_API(X ) X
|
||||
#define JIM_API(X) X
|
||||
#else
|
||||
#ifndef __JIM_CORE__
|
||||
# if defined JIM_EMBEDDED
|
||||
|
@ -650,7 +650,7 @@ typedef struct {
|
|||
#endif /* DOXYGEN */
|
||||
|
||||
/** Set the result - printf() style */
|
||||
JIM_STATIC int JIM_API(Jim_SetResult_sprintf )(Jim_Interp *p, const char *fmt, ... );
|
||||
JIM_STATIC int JIM_API(Jim_SetResult_sprintf)(Jim_Interp *p, const char *fmt, ...);
|
||||
|
||||
/* Memory allocation */
|
||||
JIM_STATIC void * JIM_API(Jim_Alloc) (int size);
|
||||
|
@ -660,7 +660,7 @@ JIM_STATIC char * JIM_API(Jim_StrDup) (const char *s);
|
|||
/* evaluation */
|
||||
JIM_STATIC int JIM_API(Jim_Eval)(Jim_Interp *interp, const char *script);
|
||||
/* in C code, you can do this and get better error messages */
|
||||
/* Jim_Eval_Named(interp, "some tcl commands", __FILE__, __LINE__ ); */
|
||||
/* Jim_Eval_Named(interp, "some tcl commands", __FILE__, __LINE__); */
|
||||
JIM_STATIC int JIM_API(Jim_Eval_Named)(Jim_Interp *interp, const char *script,const char *filename, int lineno);
|
||||
JIM_STATIC int JIM_API(Jim_EvalGlobal)(Jim_Interp *interp, const char *script);
|
||||
JIM_STATIC int JIM_API(Jim_EvalFile)(Jim_Interp *interp, const char *filename);
|
||||
|
@ -721,7 +721,7 @@ JIM_STATIC Jim_Obj * JIM_API(Jim_NewStringObjNoAlloc) (Jim_Interp *interp,
|
|||
JIM_STATIC void JIM_API(Jim_AppendString) (Jim_Interp *interp, Jim_Obj *objPtr,
|
||||
const char *str, int len);
|
||||
JIM_STATIC void JIM_API(Jim_AppendString_sprintf) (Jim_Interp *interp, Jim_Obj *objPtr,
|
||||
const char *fmt, ... );
|
||||
const char *fmt, ...);
|
||||
JIM_STATIC void JIM_API(Jim_AppendObj) (Jim_Interp *interp, Jim_Obj *objPtr,
|
||||
Jim_Obj *appendObjPtr);
|
||||
JIM_STATIC void JIM_API(Jim_AppendStrings) (Jim_Interp *interp,
|
||||
|
@ -911,31 +911,31 @@ JIM_STATIC int JIM_API(Jim_InteractivePrompt) (Jim_Interp *interp);
|
|||
JIM_STATIC void JIM_API(Jim_Panic) (Jim_Interp *interp, const char *fmt, ...);
|
||||
|
||||
/* Jim's STDIO */
|
||||
JIM_STATIC int JIM_API(Jim_fprintf )(Jim_Interp *interp, void *cookie, const char *fmt, ... );
|
||||
JIM_STATIC int JIM_API(Jim_vfprintf )(Jim_Interp *interp, void *cookie, const char *fmt, va_list ap );
|
||||
JIM_STATIC size_t JIM_API(Jim_fwrite )(Jim_Interp *interp, const void *ptr, size_t size, size_t nmeb, void *cookie );
|
||||
JIM_STATIC size_t JIM_API(Jim_fread )(Jim_Interp *interp, void *ptr, size_t size, size_t nmeb, void *cookie );
|
||||
JIM_STATIC int JIM_API(Jim_fflush )(Jim_Interp *interp, void *cookie );
|
||||
JIM_STATIC char * JIM_API(Jim_fgets )(Jim_Interp *interp, char *s, int size, void *cookie );
|
||||
JIM_STATIC int JIM_API(Jim_fprintf)(Jim_Interp *interp, void *cookie, const char *fmt, ...);
|
||||
JIM_STATIC int JIM_API(Jim_vfprintf)(Jim_Interp *interp, void *cookie, const char *fmt, va_list ap);
|
||||
JIM_STATIC size_t JIM_API(Jim_fwrite)(Jim_Interp *interp, const void *ptr, size_t size, size_t nmeb, void *cookie);
|
||||
JIM_STATIC size_t JIM_API(Jim_fread)(Jim_Interp *interp, void *ptr, size_t size, size_t nmeb, void *cookie);
|
||||
JIM_STATIC int JIM_API(Jim_fflush)(Jim_Interp *interp, void *cookie);
|
||||
JIM_STATIC char * JIM_API(Jim_fgets)(Jim_Interp *interp, char *s, int size, void *cookie);
|
||||
|
||||
/* Name Value Pairs Operations */
|
||||
JIM_STATIC Jim_Nvp *JIM_API(Jim_Nvp_name2value_simple)(const Jim_Nvp *nvp_table, const char *name );
|
||||
JIM_STATIC Jim_Nvp *JIM_API(Jim_Nvp_name2value_nocase_simple)(const Jim_Nvp *nvp_table, const char *name );
|
||||
JIM_STATIC Jim_Nvp *JIM_API(Jim_Nvp_value2name_simple)(const Jim_Nvp *nvp_table, int v );
|
||||
JIM_STATIC Jim_Nvp *JIM_API(Jim_Nvp_name2value_simple)(const Jim_Nvp *nvp_table, const char *name);
|
||||
JIM_STATIC Jim_Nvp *JIM_API(Jim_Nvp_name2value_nocase_simple)(const Jim_Nvp *nvp_table, const char *name);
|
||||
JIM_STATIC Jim_Nvp *JIM_API(Jim_Nvp_value2name_simple)(const Jim_Nvp *nvp_table, int v);
|
||||
|
||||
JIM_STATIC int JIM_API(Jim_Nvp_name2value)(Jim_Interp *interp, const Jim_Nvp *nvp_table, const char *name, Jim_Nvp **result );
|
||||
JIM_STATIC int JIM_API(Jim_Nvp_name2value)(Jim_Interp *interp, const Jim_Nvp *nvp_table, const char *name, Jim_Nvp **result);
|
||||
JIM_STATIC int JIM_API(Jim_Nvp_name2value_nocase)(Jim_Interp *interp, const Jim_Nvp *nvp_table, const char *name, Jim_Nvp **result);
|
||||
JIM_STATIC int JIM_API(Jim_Nvp_value2name)(Jim_Interp *interp, const Jim_Nvp *nvp_table, int value, Jim_Nvp **result );
|
||||
JIM_STATIC int JIM_API(Jim_Nvp_value2name)(Jim_Interp *interp, const Jim_Nvp *nvp_table, int value, Jim_Nvp **result);
|
||||
|
||||
JIM_STATIC int JIM_API(Jim_Nvp_name2value_obj)(Jim_Interp *interp, const Jim_Nvp *nvp_table, Jim_Obj *name_obj, Jim_Nvp **result );
|
||||
JIM_STATIC int JIM_API(Jim_Nvp_name2value_obj_nocase)(Jim_Interp *interp, const Jim_Nvp *nvp_table, Jim_Obj *name_obj, Jim_Nvp **result );
|
||||
JIM_STATIC int JIM_API(Jim_Nvp_value2name_obj)(Jim_Interp *interp, const Jim_Nvp *nvp_table, Jim_Obj *value_obj, Jim_Nvp **result );
|
||||
JIM_STATIC int JIM_API(Jim_Nvp_name2value_obj)(Jim_Interp *interp, const Jim_Nvp *nvp_table, Jim_Obj *name_obj, Jim_Nvp **result);
|
||||
JIM_STATIC int JIM_API(Jim_Nvp_name2value_obj_nocase)(Jim_Interp *interp, const Jim_Nvp *nvp_table, Jim_Obj *name_obj, Jim_Nvp **result);
|
||||
JIM_STATIC int JIM_API(Jim_Nvp_value2name_obj)(Jim_Interp *interp, const Jim_Nvp *nvp_table, Jim_Obj *value_obj, Jim_Nvp **result);
|
||||
|
||||
/** prints a nice 'unknown' parameter error message to the 'result' */
|
||||
JIM_STATIC void JIM_API(Jim_SetResult_NvpUnknown)(Jim_Interp *interp,
|
||||
Jim_Obj *param_name,
|
||||
Jim_Obj *param_value,
|
||||
const Jim_Nvp *nvp_table );
|
||||
const Jim_Nvp *nvp_table);
|
||||
|
||||
|
||||
/** Debug: convert argc/argv into a printable string for printf() debug
|
||||
|
@ -950,12 +950,12 @@ JIM_STATIC void JIM_API(Jim_SetResult_NvpUnknown)(Jim_Interp *interp,
|
|||
*
|
||||
* For example might want do this:
|
||||
* \code
|
||||
* fp = fopen("some.file.log", "a" );
|
||||
* fprintf(fp, "PARAMS are: %s\n", Jim_DebugArgvString(interp, argc, argv ) );
|
||||
* fp = fopen("some.file.log", "a");
|
||||
* fprintf(fp, "PARAMS are: %s\n", Jim_DebugArgvString(interp, argc, argv));
|
||||
* fclose(fp);
|
||||
* \endcode
|
||||
*/
|
||||
JIM_STATIC const char *JIM_API(Jim_Debug_ArgvString )(Jim_Interp *interp, int argc, Jim_Obj *const *argv );
|
||||
JIM_STATIC const char *JIM_API(Jim_Debug_ArgvString)(Jim_Interp *interp, int argc, Jim_Obj *const *argv);
|
||||
|
||||
|
||||
/** A TCL -ish GetOpt like code.
|
||||
|
@ -983,33 +983,33 @@ typedef struct jim_getopt {
|
|||
* \code
|
||||
* Jim_GetOptInfo goi;
|
||||
*
|
||||
* Jim_GetOpt_Setup(&goi, interp, argc, argv );
|
||||
* Jim_GetOpt_Setup(&goi, interp, argc, argv);
|
||||
*
|
||||
* while (goi.argc ){
|
||||
* e = Jim_GetOpt_Nvp(&goi, nvp_options, &n );
|
||||
* if (e != JIM_OK ){
|
||||
* Jim_GetOpt_NvpUnknown(&goi, nvp_options, 0 );
|
||||
* while (goi.argc){
|
||||
* e = Jim_GetOpt_Nvp(&goi, nvp_options, &n);
|
||||
* if (e != JIM_OK){
|
||||
* Jim_GetOpt_NvpUnknown(&goi, nvp_options, 0);
|
||||
* return e;
|
||||
* }
|
||||
*
|
||||
* switch (n->value ){
|
||||
* switch (n->value){
|
||||
* case ALIVE:
|
||||
* printf("Option ALIVE specified\n");
|
||||
* break;
|
||||
* case FIRST:
|
||||
* if (goi.argc < 1 ){
|
||||
* if (goi.argc < 1){
|
||||
* .. not enough args error ..
|
||||
* }
|
||||
* Jim_GetOpt_String(&goi, &cp, NULL );
|
||||
* printf("FIRSTNAME: %s\n", cp );
|
||||
* Jim_GetOpt_String(&goi, &cp, NULL);
|
||||
* printf("FIRSTNAME: %s\n", cp);
|
||||
* case AGE:
|
||||
* Jim_GetOpt_Wide(&goi, &w );
|
||||
* printf("AGE: %d\n", (int)(w) );
|
||||
* Jim_GetOpt_Wide(&goi, &w);
|
||||
* printf("AGE: %d\n", (int)(w));
|
||||
* break;
|
||||
* case POLITICS:
|
||||
* e = Jim_GetOpt_Nvp(&goi, nvp_politics, &n );
|
||||
* if (e != JIM_OK ){
|
||||
* Jim_GetOpt_NvpUnknown(&goi, nvp_politics, 1 );
|
||||
* e = Jim_GetOpt_Nvp(&goi, nvp_politics, &n);
|
||||
* if (e != JIM_OK){
|
||||
* Jim_GetOpt_NvpUnknown(&goi, nvp_politics, 1);
|
||||
* return e;
|
||||
* }
|
||||
* }
|
||||
|
@ -1029,20 +1029,20 @@ typedef struct jim_getopt {
|
|||
* \code
|
||||
* Jim_GetOptInfo goi;
|
||||
*
|
||||
* Jim_GetOptSetup(&goi, interp, argc, argv );
|
||||
* Jim_GetOptSetup(&goi, interp, argc, argv);
|
||||
* \endcode
|
||||
*/
|
||||
|
||||
JIM_STATIC int JIM_API(Jim_GetOpt_Setup )(Jim_GetOptInfo *goi,
|
||||
JIM_STATIC int JIM_API(Jim_GetOpt_Setup)(Jim_GetOptInfo *goi,
|
||||
Jim_Interp *interp,
|
||||
int argc,
|
||||
Jim_Obj * const * argv );
|
||||
Jim_Obj * const * argv);
|
||||
|
||||
|
||||
/** Debug - Dump parameters to stderr
|
||||
* \param goi - current parameters
|
||||
*/
|
||||
JIM_STATIC void JIM_API(Jim_GetOpt_Debug )(Jim_GetOptInfo *goi);
|
||||
JIM_STATIC void JIM_API(Jim_GetOpt_Debug)(Jim_GetOptInfo *goi);
|
||||
|
||||
|
||||
|
||||
|
@ -1052,7 +1052,7 @@ JIM_STATIC void JIM_API(Jim_GetOpt_Debug )(Jim_GetOptInfo *goi);
|
|||
* \param puthere - where param is put
|
||||
*
|
||||
*/
|
||||
JIM_STATIC int JIM_API(Jim_GetOpt_Obj)(Jim_GetOptInfo *goi, Jim_Obj **puthere );
|
||||
JIM_STATIC int JIM_API(Jim_GetOpt_Obj)(Jim_GetOptInfo *goi, Jim_Obj **puthere);
|
||||
|
||||
/** Remove argv[0] as string.
|
||||
*
|
||||
|
@ -1060,7 +1060,7 @@ JIM_STATIC int JIM_API(Jim_GetOpt_Obj)(Jim_GetOptInfo *goi, Jim_Obj **puthere );
|
|||
* \param puthere - where param is put
|
||||
* \param len - return its length
|
||||
*/
|
||||
JIM_STATIC int JIM_API(Jim_GetOpt_String )(Jim_GetOptInfo *goi, char **puthere, int *len );
|
||||
JIM_STATIC int JIM_API(Jim_GetOpt_String)(Jim_GetOptInfo *goi, char **puthere, int *len);
|
||||
|
||||
/** Remove argv[0] as double.
|
||||
*
|
||||
|
@ -1068,14 +1068,14 @@ JIM_STATIC int JIM_API(Jim_GetOpt_String )(Jim_GetOptInfo *goi, char **puthere,
|
|||
* \param puthere - where param is put.
|
||||
*
|
||||
*/
|
||||
JIM_STATIC int JIM_API(Jim_GetOpt_Double )(Jim_GetOptInfo *goi, double *puthere );
|
||||
JIM_STATIC int JIM_API(Jim_GetOpt_Double)(Jim_GetOptInfo *goi, double *puthere);
|
||||
|
||||
/** Remove argv[0] as wide.
|
||||
*
|
||||
* \param goi - get opt info
|
||||
* \param puthere - where param is put.
|
||||
*/
|
||||
JIM_STATIC int JIM_API(Jim_GetOpt_Wide )(Jim_GetOptInfo *goi, jim_wide *puthere );
|
||||
JIM_STATIC int JIM_API(Jim_GetOpt_Wide)(Jim_GetOptInfo *goi, jim_wide *puthere);
|
||||
|
||||
/** Remove argv[0] as NVP.
|
||||
*
|
||||
|
@ -1084,7 +1084,7 @@ JIM_STATIC int JIM_API(Jim_GetOpt_Wide )(Jim_GetOptInfo *goi, jim_wide *puthere
|
|||
* \param puthere - where param is put.
|
||||
*
|
||||
*/
|
||||
JIM_STATIC int JIM_API(Jim_GetOpt_Nvp)(Jim_GetOptInfo *goi, const Jim_Nvp *lookup, Jim_Nvp **puthere );
|
||||
JIM_STATIC int JIM_API(Jim_GetOpt_Nvp)(Jim_GetOptInfo *goi, const Jim_Nvp *lookup, Jim_Nvp **puthere);
|
||||
|
||||
/** Create an appropriate error message for an NVP.
|
||||
*
|
||||
|
@ -1102,25 +1102,25 @@ JIM_STATIC int JIM_API(Jim_GetOpt_Nvp)(Jim_GetOptInfo *goi, const Jim_Nvp *looku
|
|||
* Example:
|
||||
* \code
|
||||
*
|
||||
* while (goi.argc ){
|
||||
* while (goi.argc){
|
||||
* // Get the next option
|
||||
* e = Jim_GetOpt_Nvp(&goi, cmd_options, &n );
|
||||
* if (e != JIM_OK ){
|
||||
* e = Jim_GetOpt_Nvp(&goi, cmd_options, &n);
|
||||
* if (e != JIM_OK){
|
||||
* // option was not recognized
|
||||
* // pass 'hadprefix = 0' because there is no prefix
|
||||
* Jim_GetOpt_NvpUnknown(&goi, cmd_options, 0 );
|
||||
* Jim_GetOpt_NvpUnknown(&goi, cmd_options, 0);
|
||||
* return e;
|
||||
* }
|
||||
*
|
||||
* switch (n->value ){
|
||||
* switch (n->value){
|
||||
* case OPT_SEX:
|
||||
* // handle: --sex male | female | lots | needmore
|
||||
* e = Jim_GetOpt_Nvp(&goi, &nvp_sex, &n );
|
||||
* if (e != JIM_OK ){
|
||||
* Jim_GetOpt_NvpUnknown(&ogi, nvp_sex, 1 );
|
||||
* e = Jim_GetOpt_Nvp(&goi, &nvp_sex, &n);
|
||||
* if (e != JIM_OK){
|
||||
* Jim_GetOpt_NvpUnknown(&ogi, nvp_sex, 1);
|
||||
* return e;
|
||||
* }
|
||||
* printf("Code: (%d) is %s\n", n->value, n->name );
|
||||
* printf("Code: (%d) is %s\n", n->value, n->name);
|
||||
* break;
|
||||
* case ...:
|
||||
* [snip]
|
||||
|
@ -1129,7 +1129,7 @@ JIM_STATIC int JIM_API(Jim_GetOpt_Nvp)(Jim_GetOptInfo *goi, const Jim_Nvp *looku
|
|||
* \endcode
|
||||
*
|
||||
*/
|
||||
JIM_STATIC void JIM_API(Jim_GetOpt_NvpUnknown)(Jim_GetOptInfo *goi, const Jim_Nvp *lookup, int hadprefix );
|
||||
JIM_STATIC void JIM_API(Jim_GetOpt_NvpUnknown)(Jim_GetOptInfo *goi, const Jim_Nvp *lookup, int hadprefix);
|
||||
|
||||
|
||||
/** Remove argv[0] as Enum
|
||||
|
@ -1139,7 +1139,7 @@ JIM_STATIC void JIM_API(Jim_GetOpt_NvpUnknown)(Jim_GetOptInfo *goi, const Jim_Nv
|
|||
* \param puthere - where param is put.
|
||||
*
|
||||
*/
|
||||
JIM_STATIC int JIM_API(Jim_GetOpt_Enum)(Jim_GetOptInfo *goi, const char * const * lookup, int *puthere );
|
||||
JIM_STATIC int JIM_API(Jim_GetOpt_Enum)(Jim_GetOptInfo *goi, const char * const * lookup, int *puthere);
|
||||
|
||||
|
||||
#undef JIM_STATIC
|
||||
|
@ -1272,12 +1272,12 @@ static void Jim_InitExtension(Jim_Interp *interp)
|
|||
JIM_GET_API(StackPop);
|
||||
JIM_GET_API(StackPeek);
|
||||
JIM_GET_API(FreeStackElements);
|
||||
JIM_GET_API(fprintf );
|
||||
JIM_GET_API(vfprintf );
|
||||
JIM_GET_API(fwrite );
|
||||
JIM_GET_API(fread );
|
||||
JIM_GET_API(fflush );
|
||||
JIM_GET_API(fgets );
|
||||
JIM_GET_API(fprintf);
|
||||
JIM_GET_API(vfprintf);
|
||||
JIM_GET_API(fwrite);
|
||||
JIM_GET_API(fread);
|
||||
JIM_GET_API(fflush);
|
||||
JIM_GET_API(fgets);
|
||||
JIM_GET_API(Nvp_name2value);
|
||||
JIM_GET_API(Nvp_name2value_nocase);
|
||||
JIM_GET_API(Nvp_name2value_simple);
|
||||
|
|
|
@ -85,7 +85,7 @@ extern int debug_level;
|
|||
/* Avoid fn call and building parameter list if we're not outputting the information.
|
||||
* Matters on feeble CPUs for DEBUG/INFO statements that are involved frequently */
|
||||
|
||||
#define LOG_LEVEL_IS(FOO ) ((debug_level) >= (FOO))
|
||||
#define LOG_LEVEL_IS(FOO) ((debug_level) >= (FOO))
|
||||
|
||||
#define LOG_DEBUG(expr ...) \
|
||||
((debug_level >= LOG_LVL_DEBUG) ? log_printf_lf (LOG_LVL_DEBUG, __FILE__, __LINE__, __FUNCTION__, expr) , 0 : 0)
|
||||
|
|
|
@ -161,7 +161,7 @@ int win_select(int max_fd, fd_set *rfds, fd_set *wfds, fd_set *efds, struct time
|
|||
#endif /* _WIN32 */
|
||||
|
||||
/* generic socket functions for Windows and Posix */
|
||||
static __inline int write_socket(int handle, const void *buffer, unsigned int count )
|
||||
static __inline int write_socket(int handle, const void *buffer, unsigned int count)
|
||||
{
|
||||
#ifdef _WIN32
|
||||
return send(handle, buffer, count, 0);
|
||||
|
@ -170,7 +170,7 @@ static __inline int write_socket(int handle, const void *buffer, unsigned int co
|
|||
#endif
|
||||
}
|
||||
|
||||
static __inline int read_socket(int handle, void *buffer, unsigned int count )
|
||||
static __inline int read_socket(int handle, void *buffer, unsigned int count)
|
||||
{
|
||||
#ifdef _WIN32
|
||||
return recv(handle, buffer, count, 0);
|
||||
|
@ -192,7 +192,7 @@ static __inline void socket_nonblock(int fd)
|
|||
{
|
||||
#ifdef _WIN32
|
||||
unsigned long nonblock = 1;
|
||||
ioctlsocket(fd, FIONBIO, &nonblock );
|
||||
ioctlsocket(fd, FIONBIO, &nonblock);
|
||||
#else
|
||||
int oldopts = fcntl(fd, F_GETFL, 0);
|
||||
fcntl(fd, F_SETFL, oldopts | O_NONBLOCK);
|
||||
|
|
|
@ -395,20 +395,20 @@ int amt_jtagaccel_get_giveio_access(void)
|
|||
OSVERSIONINFO version;
|
||||
|
||||
version.dwOSVersionInfoSize = sizeof version;
|
||||
if (!GetVersionEx(&version )) {
|
||||
if (!GetVersionEx(&version)) {
|
||||
errno = EINVAL;
|
||||
return -1;
|
||||
}
|
||||
if (version.dwPlatformId != VER_PLATFORM_WIN32_NT)
|
||||
return 0;
|
||||
|
||||
h = CreateFile("\\\\.\\giveio", GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL );
|
||||
h = CreateFile("\\\\.\\giveio", GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
|
||||
if (h == INVALID_HANDLE_VALUE) {
|
||||
errno = ENODEV;
|
||||
return -1;
|
||||
}
|
||||
|
||||
CloseHandle(h );
|
||||
CloseHandle(h);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -266,7 +266,7 @@ int bitbang_execute_queue(void)
|
|||
break;
|
||||
case JTAG_RUNTEST:
|
||||
#ifdef _DEBUG_JTAG_IO_
|
||||
LOG_DEBUG("runtest %i cycles, end in %s", cmd->cmd.runtest->num_cycles, tap_state_name(cmd->cmd.runtest->end_state) );
|
||||
LOG_DEBUG("runtest %i cycles, end in %s", cmd->cmd.runtest->num_cycles, tap_state_name(cmd->cmd.runtest->end_state));
|
||||
#endif
|
||||
bitbang_end_state(cmd->cmd.runtest->end_state);
|
||||
bitbang_runtest(cmd->cmd.runtest->num_cycles);
|
||||
|
@ -295,7 +295,7 @@ int bitbang_execute_queue(void)
|
|||
break;
|
||||
case JTAG_SCAN:
|
||||
#ifdef _DEBUG_JTAG_IO_
|
||||
LOG_DEBUG("%s scan end in %s", (cmd->cmd.scan->ir_scan) ? "IR" : "DR", tap_state_name(cmd->cmd.scan->end_state) );
|
||||
LOG_DEBUG("%s scan end in %s", (cmd->cmd.scan->ir_scan) ? "IR" : "DR", tap_state_name(cmd->cmd.scan->end_state));
|
||||
#endif
|
||||
bitbang_end_state(cmd->cmd.scan->end_state);
|
||||
scan_size = jtag_build_buffer(cmd->cmd.scan, &buffer);
|
||||
|
|
|
@ -83,7 +83,7 @@ void bitq_in_proc(void)
|
|||
bitq_in_bufsize *= 2;
|
||||
}
|
||||
/* if necessary, allocate buffer and check for malloc error */
|
||||
if (bitq_in_buffer == NULL && (bitq_in_buffer = malloc(bitq_in_bufsize) ) == NULL)
|
||||
if (bitq_in_buffer == NULL && (bitq_in_buffer = malloc(bitq_in_bufsize)) == NULL)
|
||||
{
|
||||
LOG_ERROR("malloc error");
|
||||
exit(-1);
|
||||
|
@ -95,7 +95,7 @@ void bitq_in_proc(void)
|
|||
/* field scanning */
|
||||
while (bitq_in_state.bit_pos < field->num_bits)
|
||||
{
|
||||
if ((tdo = bitq_interface->in() ) < 0 )
|
||||
if ((tdo = bitq_interface->in()) < 0)
|
||||
{
|
||||
#ifdef _DEBUG_JTAG_IO_
|
||||
LOG_DEBUG("bitq in EOF");
|
||||
|
@ -131,7 +131,7 @@ void bitq_io(int tms, int tdi, int tdo_req)
|
|||
{
|
||||
bitq_interface->out(tms, tdi, tdo_req);
|
||||
/* check and process the input queue */
|
||||
if (bitq_interface->in_rdy() )
|
||||
if (bitq_interface->in_rdy())
|
||||
bitq_in_proc();
|
||||
}
|
||||
|
||||
|
@ -184,14 +184,14 @@ void bitq_path_move(pathmove_command_t* cmd)
|
|||
else
|
||||
{
|
||||
LOG_ERROR("BUG: %s -> %s isn't a valid TAP transition", tap_state_name(
|
||||
tap_get_state() ), tap_state_name(cmd->path[i]) );
|
||||
tap_get_state()), tap_state_name(cmd->path[i]));
|
||||
exit(-1);
|
||||
}
|
||||
|
||||
tap_set_state(cmd->path[i]);
|
||||
}
|
||||
|
||||
tap_set_end_state(tap_get_state() );
|
||||
tap_set_end_state(tap_get_state());
|
||||
}
|
||||
|
||||
|
||||
|
@ -208,8 +208,8 @@ void bitq_runtest(int num_cycles)
|
|||
bitq_io(0, 0, 0);
|
||||
|
||||
/* finish in end_state */
|
||||
if (tap_get_state() != tap_get_end_state() )
|
||||
bitq_state_move(tap_get_end_state() );
|
||||
if (tap_get_state() != tap_get_end_state())
|
||||
bitq_state_move(tap_get_end_state());
|
||||
}
|
||||
|
||||
|
||||
|
@ -241,7 +241,7 @@ void bitq_scan_field(scan_field_t* field, int pause)
|
|||
out_ptr = field->out_value;
|
||||
for (bit_cnt = field->num_bits; bit_cnt > 1; bit_cnt--)
|
||||
{
|
||||
bitq_io(0, ((*out_ptr) & out_mask ) != 0, tdo_req);
|
||||
bitq_io(0, ((*out_ptr) & out_mask) != 0, tdo_req);
|
||||
if (out_mask == 0x80)
|
||||
{
|
||||
out_mask = 0x01;
|
||||
|
@ -251,7 +251,7 @@ void bitq_scan_field(scan_field_t* field, int pause)
|
|||
out_mask <<= 1;
|
||||
}
|
||||
|
||||
bitq_io(pause, ((*out_ptr) & out_mask ) != 0, tdo_req);
|
||||
bitq_io(pause, ((*out_ptr) & out_mask) != 0, tdo_req);
|
||||
}
|
||||
|
||||
if (pause)
|
||||
|
@ -298,12 +298,12 @@ int bitq_execute_queue(void)
|
|||
#ifdef _DEBUG_JTAG_IO_
|
||||
LOG_DEBUG("reset trst: %i srst %i", cmd->cmd.reset->trst, cmd->cmd.reset->srst);
|
||||
#endif
|
||||
if ((cmd->cmd.reset->trst == 1) || (cmd->cmd.reset->srst && (jtag_get_reset_config() & RESET_SRST_PULLS_TRST) ) )
|
||||
if ((cmd->cmd.reset->trst == 1) || (cmd->cmd.reset->srst && (jtag_get_reset_config() & RESET_SRST_PULLS_TRST)))
|
||||
{
|
||||
tap_set_state(TAP_RESET);
|
||||
}
|
||||
bitq_interface->reset(cmd->cmd.reset->trst, cmd->cmd.reset->srst);
|
||||
if (bitq_interface->in_rdy() )
|
||||
if (bitq_interface->in_rdy())
|
||||
bitq_in_proc();
|
||||
break;
|
||||
|
||||
|
@ -320,7 +320,7 @@ int bitq_execute_queue(void)
|
|||
LOG_DEBUG("statemove end in %i", cmd->cmd.statemove->end_state);
|
||||
#endif
|
||||
bitq_end_state(cmd->cmd.statemove->end_state);
|
||||
bitq_state_move(tap_get_end_state() ); /* uncoditional TAP move */
|
||||
bitq_state_move(tap_get_end_state()); /* uncoditional TAP move */
|
||||
break;
|
||||
|
||||
case JTAG_PATHMOVE:
|
||||
|
@ -341,8 +341,8 @@ int bitq_execute_queue(void)
|
|||
#endif
|
||||
bitq_end_state(cmd->cmd.scan->end_state);
|
||||
bitq_scan(cmd->cmd.scan);
|
||||
if (tap_get_state() != tap_get_end_state() )
|
||||
bitq_state_move(tap_get_end_state() );
|
||||
if (tap_get_state() != tap_get_end_state())
|
||||
bitq_state_move(tap_get_end_state());
|
||||
break;
|
||||
|
||||
case JTAG_SLEEP:
|
||||
|
@ -350,7 +350,7 @@ int bitq_execute_queue(void)
|
|||
LOG_DEBUG("sleep %i", cmd->cmd.sleep->us);
|
||||
#endif
|
||||
bitq_interface->sleep(cmd->cmd.sleep->us);
|
||||
if (bitq_interface->in_rdy() )
|
||||
if (bitq_interface->in_rdy())
|
||||
bitq_in_proc();
|
||||
break;
|
||||
|
||||
|
|
|
@ -212,7 +212,7 @@ int jtag_build_buffer(const scan_command_t *cmd, uint8_t **buffer)
|
|||
}
|
||||
|
||||
#ifdef _DEBUG_JTAG_IO_
|
||||
//LOG_DEBUG("bit_count totalling: %i", bit_count );
|
||||
//LOG_DEBUG("bit_count totalling: %i", bit_count);
|
||||
#endif
|
||||
|
||||
return bit_count;
|
||||
|
|
|
@ -505,16 +505,16 @@ int jtag_add_statemove(tap_state_t goal_state)
|
|||
|
||||
LOG_DEBUG("cur_state=%s goal_state=%s",
|
||||
tap_state_name(cur_state),
|
||||
tap_state_name(goal_state) );
|
||||
tap_state_name(goal_state));
|
||||
|
||||
|
||||
if (goal_state == cur_state )
|
||||
if (goal_state == cur_state)
|
||||
; /* nothing to do */
|
||||
else if (goal_state == TAP_RESET )
|
||||
else if (goal_state == TAP_RESET)
|
||||
{
|
||||
jtag_add_tlr();
|
||||
}
|
||||
else if (tap_is_state_stable(cur_state) && tap_is_state_stable(goal_state) )
|
||||
else if (tap_is_state_stable(cur_state) && tap_is_state_stable(goal_state))
|
||||
{
|
||||
unsigned tms_bits = tap_get_tms_path(cur_state, goal_state);
|
||||
unsigned tms_count = tap_get_tms_path_len(cur_state, goal_state);
|
||||
|
@ -532,7 +532,7 @@ int jtag_add_statemove(tap_state_t goal_state)
|
|||
jtag_add_pathmove(tms_count, moves);
|
||||
}
|
||||
else if (tap_state_transition(cur_state, true) == goal_state
|
||||
|| tap_state_transition(cur_state, false) == goal_state )
|
||||
|| tap_state_transition(cur_state, false) == goal_state)
|
||||
{
|
||||
jtag_add_pathmove(1, &goal_state);
|
||||
}
|
||||
|
@ -868,7 +868,7 @@ static void jtag_examine_chain_display(enum log_levels level, const char *msg,
|
|||
(unsigned int)idcode,
|
||||
(unsigned int)EXTRACT_MFG(idcode),
|
||||
(unsigned int)EXTRACT_PART(idcode),
|
||||
(unsigned int)EXTRACT_VER(idcode) );
|
||||
(unsigned int)EXTRACT_VER(idcode));
|
||||
}
|
||||
|
||||
static bool jtag_idcode_is_final(uint32_t idcode)
|
||||
|
@ -1026,7 +1026,7 @@ int jtag_validate_chain(void)
|
|||
total_ir_length = 0;
|
||||
for (;;){
|
||||
tap = jtag_tap_next_enabled(tap);
|
||||
if (tap == NULL ){
|
||||
if (tap == NULL){
|
||||
break;
|
||||
}
|
||||
total_ir_length += tap->ir_length;
|
||||
|
@ -1050,7 +1050,7 @@ int jtag_validate_chain(void)
|
|||
int val;
|
||||
for (;;){
|
||||
tap = jtag_tap_next_enabled(tap);
|
||||
if (tap == NULL ){
|
||||
if (tap == NULL){
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -1151,7 +1151,7 @@ static int jtag_init_inner(struct command_context_s *cmd_ctx)
|
|||
LOG_DEBUG("Init JTAG chain");
|
||||
|
||||
tap = jtag_tap_next_enabled(NULL);
|
||||
if (tap == NULL ){
|
||||
if (tap == NULL){
|
||||
LOG_ERROR("There are no enabled taps?");
|
||||
return ERROR_JTAG_INIT_FAILED;
|
||||
}
|
||||
|
|
|
@ -418,7 +418,7 @@ int interface_jtag_add_runtest(int num_cycles, tap_state_t state)
|
|||
return ERROR_OK;
|
||||
}
|
||||
|
||||
int interface_jtag_add_clocks(int num_cycles )
|
||||
int interface_jtag_add_clocks(int num_cycles)
|
||||
{
|
||||
/* allocate memory for a new list member */
|
||||
jtag_command_t * cmd = cmd_queue_alloc(sizeof(jtag_command_t));
|
||||
|
|
|
@ -85,22 +85,22 @@ static int dummy_read(void)
|
|||
static void dummy_write(int tck, int tms, int tdi)
|
||||
{
|
||||
/* TAP standard: "state transitions occur on rising edge of clock" */
|
||||
if (tck != dummy_clock )
|
||||
if (tck != dummy_clock)
|
||||
{
|
||||
if (tck )
|
||||
if (tck)
|
||||
{
|
||||
tap_state_t old_state = dummy_state;
|
||||
dummy_state = tap_state_transition(old_state, tms );
|
||||
dummy_state = tap_state_transition(old_state, tms);
|
||||
|
||||
if (old_state != dummy_state )
|
||||
if (old_state != dummy_state)
|
||||
{
|
||||
if (clock_count )
|
||||
if (clock_count)
|
||||
{
|
||||
LOG_DEBUG("dummy_tap: %d stable clocks", clock_count);
|
||||
clock_count = 0;
|
||||
}
|
||||
|
||||
LOG_DEBUG("dummy_tap: %s", tap_state_name(dummy_state) );
|
||||
LOG_DEBUG("dummy_tap: %s", tap_state_name(dummy_state));
|
||||
|
||||
#if defined(DEBUG)
|
||||
if (dummy_state == TAP_DRCAPTURE)
|
||||
|
@ -126,7 +126,7 @@ static void dummy_reset(int trst, int srst)
|
|||
if (trst || (srst && (jtag_get_reset_config() & RESET_SRST_PULLS_TRST)))
|
||||
dummy_state = TAP_RESET;
|
||||
|
||||
LOG_DEBUG("reset to: %s", tap_state_name(dummy_state) );
|
||||
LOG_DEBUG("reset to: %s", tap_state_name(dummy_state));
|
||||
}
|
||||
|
||||
static int dummy_khz(int khz, int *jtag_speed)
|
||||
|
|
|
@ -1588,7 +1588,7 @@ static int ft2232_execute_pathmove(jtag_command_t *cmd)
|
|||
DEBUG_JTAG_IO("pathmove: %i states, current: %s end: %s", num_states,
|
||||
tap_state_name(tap_get_state()),
|
||||
tap_state_name(path[num_states-1])
|
||||
);
|
||||
);
|
||||
|
||||
/* only send the maximum buffer size that FT2232C can handle */
|
||||
predicted_size = 3 * CEIL(num_states, 7);
|
||||
|
|
|
@ -422,20 +422,20 @@ static int gw16012_get_giveio_access(void)
|
|||
OSVERSIONINFO version;
|
||||
|
||||
version.dwOSVersionInfoSize = sizeof version;
|
||||
if (!GetVersionEx(&version )) {
|
||||
if (!GetVersionEx(&version)) {
|
||||
errno = EINVAL;
|
||||
return -1;
|
||||
}
|
||||
if (version.dwPlatformId != VER_PLATFORM_WIN32_NT)
|
||||
return 0;
|
||||
|
||||
h = CreateFile("\\\\.\\giveio", GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL );
|
||||
h = CreateFile("\\\\.\\giveio", GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
|
||||
if (h == INVALID_HANDLE_VALUE) {
|
||||
errno = ENODEV;
|
||||
return -1;
|
||||
}
|
||||
|
||||
CloseHandle(h );
|
||||
CloseHandle(h);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@ -524,7 +524,7 @@ static int gw16012_init_device(void)
|
|||
LOG_WARNING("No gw16012 port specified, using default '0x378' (LPT1)");
|
||||
}
|
||||
|
||||
LOG_DEBUG("requesting privileges for parallel port 0x%lx...", (long unsigned)(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 */
|
||||
|
|
|
@ -40,7 +40,7 @@
|
|||
*/
|
||||
static tap_state_t state_follower = TAP_RESET;
|
||||
|
||||
void tap_set_state_impl(tap_state_t new_state )
|
||||
void tap_set_state_impl(tap_state_t new_state)
|
||||
{
|
||||
/* this is the state we think the TAPs are in now, was cur_state */
|
||||
state_follower = new_state;
|
||||
|
@ -57,7 +57,7 @@ tap_state_t tap_get_state()
|
|||
*/
|
||||
static tap_state_t end_state_follower = TAP_RESET;
|
||||
|
||||
void tap_set_end_state(tap_state_t new_end_state )
|
||||
void tap_set_end_state(tap_state_t new_end_state)
|
||||
{
|
||||
/* this is the state we think the TAPs will be in at completion of the
|
||||
current TAP operation, was end_state
|
||||
|
@ -71,13 +71,13 @@ tap_state_t tap_get_end_state()
|
|||
}
|
||||
|
||||
|
||||
int tap_move_ndx(tap_state_t astate )
|
||||
int tap_move_ndx(tap_state_t astate)
|
||||
{
|
||||
/* given a stable state, return the index into the tms_seqs[] array within tap_get_tms_path() */
|
||||
|
||||
int ndx;
|
||||
|
||||
switch (astate )
|
||||
switch (astate)
|
||||
{
|
||||
case TAP_RESET: ndx = 0; break;
|
||||
case TAP_DRSHIFT: ndx = 2; break;
|
||||
|
@ -86,7 +86,7 @@ int tap_move_ndx(tap_state_t astate )
|
|||
case TAP_IRSHIFT: ndx = 4; break;
|
||||
case TAP_IRPAUSE: ndx = 5; break;
|
||||
default:
|
||||
LOG_ERROR("fatal: unstable state \"%s\" used in tap_move_ndx()", tap_state_name(astate) );
|
||||
LOG_ERROR("fatal: unstable state \"%s\" used in tap_move_ndx()", tap_state_name(astate));
|
||||
exit(1);
|
||||
}
|
||||
|
||||
|
@ -193,13 +193,13 @@ typedef const struct tms_sequences tms_table[6][6];
|
|||
|
||||
static tms_table *tms_seqs=&short_tms_seqs;
|
||||
|
||||
int tap_get_tms_path(tap_state_t from, tap_state_t to )
|
||||
int tap_get_tms_path(tap_state_t from, tap_state_t to)
|
||||
{
|
||||
return (*tms_seqs)[tap_move_ndx(from)][tap_move_ndx(to)].bits;
|
||||
}
|
||||
|
||||
|
||||
int tap_get_tms_path_len(tap_state_t from, tap_state_t to )
|
||||
int tap_get_tms_path_len(tap_state_t from, tap_state_t to)
|
||||
{
|
||||
return (*tms_seqs)[tap_move_ndx(from)][tap_move_ndx(to)].bit_count;
|
||||
}
|
||||
|
@ -212,7 +212,7 @@ bool tap_is_state_stable(tap_state_t astate)
|
|||
/* A switch () is used because it is symbol dependent
|
||||
(not value dependent like an array), and can also check bounds.
|
||||
*/
|
||||
switch (astate )
|
||||
switch (astate)
|
||||
{
|
||||
case TAP_RESET:
|
||||
case TAP_IDLE:
|
||||
|
@ -278,7 +278,7 @@ tap_state_t tap_state_transition(tap_state_t cur_state, bool tms)
|
|||
new_state = TAP_IREXIT2;
|
||||
break;
|
||||
default:
|
||||
LOG_ERROR("fatal: invalid argument cur_state=%d", cur_state );
|
||||
LOG_ERROR("fatal: invalid argument cur_state=%d", cur_state);
|
||||
exit(1);
|
||||
break;
|
||||
}
|
||||
|
@ -318,7 +318,7 @@ tap_state_t tap_state_transition(tap_state_t cur_state, bool tms)
|
|||
new_state = TAP_IRPAUSE;
|
||||
break;
|
||||
default:
|
||||
LOG_ERROR("fatal: invalid argument cur_state=%d", cur_state );
|
||||
LOG_ERROR("fatal: invalid argument cur_state=%d", cur_state);
|
||||
exit(1);
|
||||
break;
|
||||
}
|
||||
|
@ -331,7 +331,7 @@ const char* tap_state_name(tap_state_t state)
|
|||
{
|
||||
const char* ret;
|
||||
|
||||
switch (state )
|
||||
switch (state)
|
||||
{
|
||||
case TAP_RESET: ret = "RESET"; break;
|
||||
case TAP_IDLE: ret = "RUN/IDLE"; break;
|
||||
|
@ -359,9 +359,9 @@ tap_state_t tap_state_by_name(const char *name)
|
|||
{
|
||||
tap_state_t x;
|
||||
|
||||
for (x = 0 ; x < TAP_NUM_STATES ; x++ ){
|
||||
for (x = 0 ; x < TAP_NUM_STATES ; x++){
|
||||
/* be nice to the human */
|
||||
if (0 == strcasecmp(name, tap_state_name(x) ) ){
|
||||
if (0 == strcasecmp(name, tap_state_name(x))){
|
||||
return x;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -59,7 +59,7 @@ void tap_set_state_impl(tap_state_t new_state);
|
|||
#if defined(_DEBUG_JTAG_IO_)
|
||||
#define tap_set_state(new_state) \
|
||||
do { \
|
||||
LOG_DEBUG("tap_set_state(%s)", tap_state_name(new_state) ); \
|
||||
LOG_DEBUG("tap_set_state(%s)", tap_state_name(new_state)); \
|
||||
tap_set_state_impl(new_state); \
|
||||
} while (0)
|
||||
#else
|
||||
|
|
|
@ -263,20 +263,20 @@ static int parport_get_giveio_access(void)
|
|||
OSVERSIONINFO version;
|
||||
|
||||
version.dwOSVersionInfoSize = sizeof version;
|
||||
if (!GetVersionEx(&version )) {
|
||||
if (!GetVersionEx(&version)) {
|
||||
errno = EINVAL;
|
||||
return -1;
|
||||
}
|
||||
if (version.dwPlatformId != VER_PLATFORM_WIN32_NT)
|
||||
return 0;
|
||||
|
||||
h = CreateFile("\\\\.\\giveio", GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL );
|
||||
h = CreateFile("\\\\.\\giveio", GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
|
||||
if (h == INVALID_HANDLE_VALUE) {
|
||||
errno = ENODEV;
|
||||
return -1;
|
||||
}
|
||||
|
||||
CloseHandle(h );
|
||||
CloseHandle(h);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -41,11 +41,11 @@
|
|||
|
||||
#define DTC_CMD_SHIFT_TMS_TDI_BIT_PAIR(tms, tdi, tdo) ((0x8 << 4) | (\
|
||||
(tms) ? (1 << 0) : 0 \
|
||||
) | (\
|
||||
) | (\
|
||||
(tdi) ? (1 << 1) : 0 \
|
||||
) | (\
|
||||
) | (\
|
||||
(tdo) ? (1 << 3) : 0 \
|
||||
))
|
||||
))
|
||||
/* Single bit shift. */
|
||||
/* tms and tdi are the levels shifted out on TMS and TDI, respectively. */
|
||||
/* tdo indicates whether a byte will be returned in the reply buffer with its least significant bit set to reflect TDO */
|
||||
|
|
|
@ -137,14 +137,14 @@ ep1_generic_commandl(
|
|||
usb_buffer_p,
|
||||
0,
|
||||
sizeof(usb_buffer) - (usb_buffer_p - usb_buffer)
|
||||
);
|
||||
);
|
||||
|
||||
usb_ret = usb_bulk_write(
|
||||
pHDev,
|
||||
USB_EP1OUT_ADDR,
|
||||
(char *)usb_buffer, sizeof(usb_buffer),
|
||||
USB_TIMEOUT_MS
|
||||
);
|
||||
);
|
||||
|
||||
return(usb_ret);
|
||||
}
|
||||
|
@ -170,7 +170,7 @@ ep1_memory_read(
|
|||
usb_buffer + 4,
|
||||
0,
|
||||
sizeof(usb_buffer) - 4
|
||||
);
|
||||
);
|
||||
|
||||
remain = length;
|
||||
count = 0;
|
||||
|
@ -190,7 +190,7 @@ ep1_memory_read(
|
|||
pHDev, USB_EP1OUT_ADDR,
|
||||
usb_buffer, sizeof(usb_buffer),
|
||||
USB_TIMEOUT_MS
|
||||
);
|
||||
);
|
||||
|
||||
if (usb_ret < sizeof(usb_buffer)) {
|
||||
break;
|
||||
|
@ -200,7 +200,7 @@ ep1_memory_read(
|
|||
pHDev, USB_EP1IN_ADDR,
|
||||
buffer, length,
|
||||
USB_TIMEOUT_MS
|
||||
);
|
||||
);
|
||||
|
||||
if (usb_ret < length) {
|
||||
break;
|
||||
|
@ -250,18 +250,18 @@ ep1_memory_write(
|
|||
usb_buffer + 4,
|
||||
buffer,
|
||||
length
|
||||
);
|
||||
);
|
||||
memset(
|
||||
usb_buffer + 4 + length,
|
||||
0,
|
||||
sizeof(usb_buffer) - 4 - length
|
||||
);
|
||||
);
|
||||
|
||||
usb_ret = usb_bulk_write(
|
||||
pHDev, USB_EP1OUT_ADDR,
|
||||
(char *)usb_buffer, sizeof(usb_buffer),
|
||||
USB_TIMEOUT_MS
|
||||
);
|
||||
);
|
||||
|
||||
if ((size_t)usb_ret < sizeof(usb_buffer)) {
|
||||
break;
|
||||
|
@ -345,7 +345,7 @@ dtc_load_from_buffer(
|
|||
usb_err = ep1_generic_commandl(
|
||||
pHDev, 1,
|
||||
EP1_CMD_DTC_STOP
|
||||
);
|
||||
);
|
||||
if (usb_err < 0) return(usb_err);
|
||||
|
||||
while (length) {
|
||||
|
@ -380,7 +380,7 @@ dtc_load_from_buffer(
|
|||
pHDev,
|
||||
DTC_LOAD_BUFFER,
|
||||
header->length + 1, buffer
|
||||
);
|
||||
);
|
||||
if (usb_err < 0) return(usb_err);
|
||||
|
||||
/* Load it into the DTC. */
|
||||
|
@ -389,7 +389,7 @@ dtc_load_from_buffer(
|
|||
EP1_CMD_DTC_LOAD,
|
||||
(DTC_LOAD_BUFFER >> 8),
|
||||
DTC_LOAD_BUFFER
|
||||
);
|
||||
);
|
||||
if (usb_err < 0) return(usb_err);
|
||||
|
||||
break;
|
||||
|
@ -400,7 +400,7 @@ dtc_load_from_buffer(
|
|||
EP1_CMD_DTC_CALL,
|
||||
buffer[0],
|
||||
EP1_CMD_DTC_WAIT
|
||||
);
|
||||
);
|
||||
if (usb_err < 0) return(usb_err);
|
||||
|
||||
break;
|
||||
|
@ -414,7 +414,7 @@ dtc_load_from_buffer(
|
|||
pHDev,
|
||||
ST7_USB_BUF_EP0OUT + lut_start,
|
||||
header->length + 1, buffer
|
||||
);
|
||||
);
|
||||
if (usb_err < 0) return(usb_err);
|
||||
break;
|
||||
|
||||
|
@ -452,7 +452,7 @@ dtc_start_download(void) {
|
|||
ST7_EP2TXR >> 8,
|
||||
ST7_EP2TXR,
|
||||
1
|
||||
);
|
||||
);
|
||||
if (usb_err < 0) return(usb_err);
|
||||
|
||||
/* read back ep2txr */
|
||||
|
@ -460,7 +460,7 @@ dtc_start_download(void) {
|
|||
pHDev, USB_EP1IN_ADDR,
|
||||
(char *)&ep2txr, 1,
|
||||
USB_TIMEOUT_MS
|
||||
);
|
||||
);
|
||||
if (usb_err < 0) return(usb_err);
|
||||
|
||||
usb_err = ep1_generic_commandl(
|
||||
|
@ -479,7 +479,7 @@ dtc_start_download(void) {
|
|||
EP1_CMD_DTC_CALL, /* start running the DTC */
|
||||
dtc_entry_download,
|
||||
EP1_CMD_DTC_GET_CACHED_STATUS
|
||||
);
|
||||
);
|
||||
if (usb_err < 0) return(usb_err);
|
||||
|
||||
/* wait for completion */
|
||||
|
@ -487,7 +487,7 @@ dtc_start_download(void) {
|
|||
pHDev, USB_EP1IN_ADDR,
|
||||
(char *)&ep2txr, 1,
|
||||
USB_TIMEOUT_MS
|
||||
);
|
||||
);
|
||||
|
||||
return(usb_err);
|
||||
}
|
||||
|
@ -513,7 +513,7 @@ dtc_run_download(
|
|||
USB_EP2OUT_ADDR,
|
||||
(char *)command_buffer, USB_EP2BANK_SIZE,
|
||||
USB_TIMEOUT_MS
|
||||
);
|
||||
);
|
||||
if (usb_err < 0) return(usb_err);
|
||||
|
||||
|
||||
|
@ -526,7 +526,7 @@ dtc_run_download(
|
|||
DTC_STATUS_POLL_BYTE >> 8,
|
||||
DTC_STATUS_POLL_BYTE,
|
||||
1
|
||||
);
|
||||
);
|
||||
if (usb_err < 0) return(usb_err);
|
||||
|
||||
usb_err = usb_bulk_read(
|
||||
|
@ -534,7 +534,7 @@ dtc_run_download(
|
|||
USB_EP1IN_ADDR,
|
||||
(char *)ep2_buffer, 1,
|
||||
USB_TIMEOUT_MS
|
||||
);
|
||||
);
|
||||
if (usb_err < 0) return(usb_err);
|
||||
|
||||
if (ep2_buffer[0] & 0x01) break;
|
||||
|
@ -542,7 +542,7 @@ dtc_run_download(
|
|||
if (!--i) {
|
||||
LOG_ERROR("%s, %d: too many retries waiting for DTC status\n",
|
||||
__FILE__, __LINE__
|
||||
);
|
||||
);
|
||||
return(-ETIMEDOUT);
|
||||
}
|
||||
}
|
||||
|
@ -555,12 +555,12 @@ dtc_run_download(
|
|||
USB_EP2IN_ADDR,
|
||||
(char *)ep2_buffer, sizeof(ep2_buffer),
|
||||
USB_TIMEOUT_MS
|
||||
);
|
||||
);
|
||||
|
||||
if (usb_err < (int)sizeof(ep2_buffer)) {
|
||||
LOG_ERROR("%s, %d: Read of endpoint 2 returned %d\n",
|
||||
__FILE__, __LINE__, usb_err
|
||||
);
|
||||
);
|
||||
return(usb_err);
|
||||
}
|
||||
|
||||
|
@ -692,7 +692,7 @@ dtc_queue_run(void) {
|
|||
usb_err = dtc_run_download(pHDev,
|
||||
dtc_queue.cmd_buffer, dtc_queue.cmd_index,
|
||||
NULL, 0
|
||||
);
|
||||
);
|
||||
if (usb_err < 0) {
|
||||
LOG_ERROR("dtc_run_download: %s\n", usb_strerror());
|
||||
exit(1);
|
||||
|
@ -701,7 +701,7 @@ dtc_queue_run(void) {
|
|||
usb_err = dtc_run_download(pHDev,
|
||||
dtc_queue.cmd_buffer, dtc_queue.cmd_index,
|
||||
reply_buffer, dtc_queue.reply_index
|
||||
);
|
||||
);
|
||||
if (usb_err < 0) {
|
||||
LOG_ERROR("dtc_run_download: %s\n", usb_strerror());
|
||||
exit(1);
|
||||
|
@ -715,7 +715,7 @@ dtc_queue_run(void) {
|
|||
rq_p = dtc_queue.rq_head;
|
||||
rq_p != NULL;
|
||||
rq_p = rq_next
|
||||
) {
|
||||
) {
|
||||
tdo_p = rq_p->scan.buffer + (rq_p->scan.offset / 8);
|
||||
tdo_mask = 1 << (rq_p->scan.offset % 8);
|
||||
|
||||
|
@ -730,7 +730,7 @@ dtc_queue_run(void) {
|
|||
;
|
||||
bit_cnt;
|
||||
bit_cnt--
|
||||
) {
|
||||
) {
|
||||
if (*dtc_p & dtc_mask) {
|
||||
*tdo_p |= tdo_mask;
|
||||
} else {
|
||||
|
@ -755,9 +755,9 @@ dtc_queue_run(void) {
|
|||
x = *dtc_p++;
|
||||
if ((
|
||||
rq_p->scan.type == SCAN_IN
|
||||
) && (
|
||||
) && (
|
||||
rq_p->scan.offset != rq_p->scan.size - 1
|
||||
)) {
|
||||
)) {
|
||||
/* extra bits were sent as a full byte with padding on the end */
|
||||
dtc_mask = 1 << (8 - 1);
|
||||
} else {
|
||||
|
@ -768,7 +768,7 @@ dtc_queue_run(void) {
|
|||
;
|
||||
bit_cnt;
|
||||
bit_cnt--
|
||||
) {
|
||||
) {
|
||||
if (x & dtc_mask) {
|
||||
*tdo_p |= tdo_mask;
|
||||
} else {
|
||||
|
@ -1004,7 +1004,7 @@ void rlink_reset(int trst, int srst)
|
|||
ST7_PADR >> 8,
|
||||
ST7_PADR,
|
||||
1
|
||||
);
|
||||
);
|
||||
if (usb_err < 0) {
|
||||
LOG_ERROR("%s", usb_strerror());
|
||||
exit(1);
|
||||
|
@ -1014,7 +1014,7 @@ void rlink_reset(int trst, int srst)
|
|||
pHDev, USB_EP1IN_ADDR,
|
||||
(char *)&bitmap, 1,
|
||||
USB_TIMEOUT_MS
|
||||
);
|
||||
);
|
||||
if (usb_err < 1) {
|
||||
LOG_ERROR("%s", usb_strerror());
|
||||
exit(1);
|
||||
|
@ -1039,7 +1039,7 @@ void rlink_reset(int trst, int srst)
|
|||
ST7_PBDDR >> 8,
|
||||
ST7_PBDDR,
|
||||
1
|
||||
);
|
||||
);
|
||||
if (usb_err < 0) {
|
||||
LOG_ERROR("%s", usb_strerror());
|
||||
exit(1);
|
||||
|
@ -1049,7 +1049,7 @@ void rlink_reset(int trst, int srst)
|
|||
pHDev, USB_EP1IN_ADDR,
|
||||
(char *)&bitmap, 1,
|
||||
USB_TIMEOUT_MS
|
||||
);
|
||||
);
|
||||
if (usb_err < 1) {
|
||||
LOG_ERROR("%s", usb_strerror());
|
||||
exit(1);
|
||||
|
@ -1070,7 +1070,7 @@ void rlink_reset(int trst, int srst)
|
|||
1,
|
||||
bitmap,
|
||||
EP1_CMD_DTC_GET_CACHED_STATUS
|
||||
);
|
||||
);
|
||||
if (usb_err < 0) {
|
||||
LOG_ERROR("%s", usb_strerror());
|
||||
exit(1);
|
||||
|
@ -1080,7 +1080,7 @@ void rlink_reset(int trst, int srst)
|
|||
pHDev, USB_EP1IN_ADDR,
|
||||
(char *)&bitmap, 1,
|
||||
USB_TIMEOUT_MS
|
||||
);
|
||||
);
|
||||
if (usb_err < 1) {
|
||||
LOG_ERROR("%s", usb_strerror());
|
||||
exit(1);
|
||||
|
@ -1120,7 +1120,7 @@ rlink_scan(
|
|||
(!ir_scan && (tap_get_state() == TAP_DRSHIFT))
|
||||
||
|
||||
(ir_scan && (tap_get_state() == TAP_IRSHIFT))
|
||||
)) {
|
||||
)) {
|
||||
saved_end_state = tap_get_end_state();
|
||||
rlink_end_state(ir_scan ? TAP_IRSHIFT : TAP_DRSHIFT);
|
||||
rlink_state_move();
|
||||
|
@ -1162,7 +1162,7 @@ rlink_scan(
|
|||
/* make sure there's room for stop, byte op, and one byte */
|
||||
if (
|
||||
(dtc_queue.cmd_index >= sizeof(dtc_queue.cmd_buffer) - (1 + 1 + 1))
|
||||
) {
|
||||
) {
|
||||
dtc_queue_run();
|
||||
}
|
||||
|
||||
|
@ -1232,7 +1232,7 @@ rlink_scan(
|
|||
type, buffer, scan_size, tdi_bit_offset,
|
||||
chunk_bits,
|
||||
cmd
|
||||
) == NULL) {
|
||||
) == NULL) {
|
||||
LOG_ERROR("enqueuing DTC reply entry: %s\n", strerror(errno));
|
||||
exit(1);
|
||||
}
|
||||
|
@ -1289,7 +1289,7 @@ rlink_scan(
|
|||
(dtc_queue.cmd_index >= sizeof(dtc_queue.cmd_buffer) - (1 + 1 + 1))
|
||||
||
|
||||
(dtc_queue.reply_index >= USB_EP2IN_SIZE - (1))
|
||||
) {
|
||||
) {
|
||||
dtc_queue_run();
|
||||
}
|
||||
|
||||
|
@ -1297,7 +1297,7 @@ rlink_scan(
|
|||
type, buffer, scan_size, tdi_bit_offset,
|
||||
extra_bits,
|
||||
cmd
|
||||
) == NULL) {
|
||||
) == NULL) {
|
||||
LOG_ERROR("enqueuing DTC reply entry: %s\n", strerror(errno));
|
||||
exit(1);
|
||||
}
|
||||
|
@ -1342,7 +1342,7 @@ rlink_scan(
|
|||
(dtc_queue.cmd_index >= sizeof(dtc_queue.cmd_buffer) - (1 + 1))
|
||||
||
|
||||
(dtc_queue.reply_index >= USB_EP2IN_SIZE - (1))
|
||||
) {
|
||||
) {
|
||||
dtc_queue_run();
|
||||
}
|
||||
|
||||
|
@ -1355,7 +1355,7 @@ rlink_scan(
|
|||
type, buffer, scan_size, tdi_bit_offset,
|
||||
1,
|
||||
cmd
|
||||
) == NULL) {
|
||||
) == NULL) {
|
||||
LOG_ERROR("enqueuing DTC reply entry: %s\n", strerror(errno));
|
||||
exit(1);
|
||||
}
|
||||
|
@ -1393,7 +1393,7 @@ int rlink_execute_queue(void)
|
|||
ep1_generic_commandl(pHDev, 2,
|
||||
EP1_CMD_SET_PORTD_LEDS,
|
||||
~(ST7_PD_NBUSY_LED)
|
||||
);
|
||||
);
|
||||
#endif
|
||||
|
||||
while (cmd)
|
||||
|
@ -1484,7 +1484,7 @@ int rlink_execute_queue(void)
|
|||
ep1_generic_commandl(pHDev, 2,
|
||||
EP1_CMD_SET_PORTD_LEDS,
|
||||
~0
|
||||
);
|
||||
);
|
||||
#endif
|
||||
|
||||
return retval;
|
||||
|
@ -1503,7 +1503,7 @@ int rlink_speed(int speed)
|
|||
speed = rlink_speed_table[rlink_speed_table_size - 1].prescaler;
|
||||
}
|
||||
|
||||
for (i = rlink_speed_table_size; i--; ) {
|
||||
for (i = rlink_speed_table_size; i--;) {
|
||||
if (rlink_speed_table[i].prescaler == speed) {
|
||||
if (dtc_load_from_buffer(pHDev, rlink_speed_table[i].dtc, rlink_speed_table[i].dtc_size) != 0) {
|
||||
LOG_ERROR("An error occurred while trying to load DTC code for speed \"%d\".\n", speed);
|
||||
|
@ -1514,7 +1514,7 @@ int rlink_speed(int speed)
|
|||
LOG_ERROR("%s, %d: starting DTC: %s",
|
||||
__FILE__, __LINE__,
|
||||
usb_strerror()
|
||||
);
|
||||
);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
|
@ -1534,7 +1534,7 @@ int rlink_speed_div(
|
|||
) {
|
||||
int i;
|
||||
|
||||
for (i = rlink_speed_table_size; i--; ) {
|
||||
for (i = rlink_speed_table_size; i--;) {
|
||||
if (rlink_speed_table[i].prescaler == speed) {
|
||||
*khz = rlink_speed_table[i].khz;
|
||||
return(ERROR_OK);
|
||||
|
@ -1558,7 +1558,7 @@ int rlink_khz(
|
|||
return ERROR_FAIL;
|
||||
}
|
||||
|
||||
for (i = rlink_speed_table_size; i--; ) {
|
||||
for (i = rlink_speed_table_size; i--;) {
|
||||
if (rlink_speed_table[i].khz <= khz) {
|
||||
*speed = rlink_speed_table[i].prescaler;
|
||||
return(ERROR_OK);
|
||||
|
@ -1607,7 +1607,7 @@ int rlink_register_commands(struct command_context_s *cmd_ctx)
|
|||
handle_dtc_directory_command,
|
||||
COMMAND_CONFIG,
|
||||
"The directory in which to search for DTC load images"
|
||||
);
|
||||
);
|
||||
#endif
|
||||
|
||||
return ERROR_OK;
|
||||
|
@ -1636,26 +1636,26 @@ int rlink_init(void)
|
|||
|
||||
for (dev = bus->devices; dev; dev = dev->next)
|
||||
{
|
||||
if ((dev->descriptor.idVendor == USB_IDVENDOR) && (dev->descriptor.idProduct == USB_IDPRODUCT) )
|
||||
if ((dev->descriptor.idVendor == USB_IDVENDOR) && (dev->descriptor.idProduct == USB_IDPRODUCT))
|
||||
{
|
||||
found = 1;
|
||||
LOG_DEBUG("Found device on bus.\n");
|
||||
|
||||
do
|
||||
{
|
||||
if (dev->descriptor.bNumConfigurations > 1 )
|
||||
if (dev->descriptor.bNumConfigurations > 1)
|
||||
{
|
||||
LOG_ERROR("Whoops! NumConfigurations is not 1, don't know what to do...\n");
|
||||
break;
|
||||
}
|
||||
if (dev->config->bNumInterfaces > 1 )
|
||||
if (dev->config->bNumInterfaces > 1)
|
||||
{
|
||||
LOG_ERROR("Whoops! NumInterfaces is not 1, don't know what to do...\n");
|
||||
break;
|
||||
}
|
||||
|
||||
pHDev = usb_open(dev);
|
||||
if (!pHDev )
|
||||
if (!pHDev)
|
||||
LOG_ERROR ("Failed to open device.\n");
|
||||
else
|
||||
{
|
||||
|
@ -1686,7 +1686,7 @@ int rlink_init(void)
|
|||
|
||||
if (!i)
|
||||
{
|
||||
if (usb_set_altinterface(pHDev,0) )
|
||||
if (usb_set_altinterface(pHDev,0))
|
||||
{
|
||||
LOG_ERROR("Failed to set interface.\n");
|
||||
break;
|
||||
|
@ -1700,13 +1700,13 @@ int rlink_init(void)
|
|||
}
|
||||
}
|
||||
|
||||
if (!found )
|
||||
if (!found)
|
||||
{
|
||||
LOG_ERROR("No device found on bus.\n");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
if (!success )
|
||||
if (!success)
|
||||
{
|
||||
LOG_ERROR("Initialisation failed.");
|
||||
exit(1);
|
||||
|
@ -1719,7 +1719,7 @@ int rlink_init(void)
|
|||
j = ep1_generic_commandl(
|
||||
pHDev, 1,
|
||||
EP1_CMD_GET_FWREV
|
||||
);
|
||||
);
|
||||
if (j < USB_EP1OUT_SIZE) {
|
||||
LOG_ERROR("USB write error: %s", usb_strerror());
|
||||
return(ERROR_FAIL);
|
||||
|
@ -1728,7 +1728,7 @@ int rlink_init(void)
|
|||
pHDev, USB_EP1IN_ADDR,
|
||||
(char *)reply_buffer, sizeof(reply_buffer),
|
||||
200
|
||||
);
|
||||
);
|
||||
if (j != -ETIMEDOUT) break;
|
||||
}
|
||||
|
||||
|
@ -1761,13 +1761,13 @@ int rlink_init(void)
|
|||
ST7_PEDR,
|
||||
1,
|
||||
ST7_PE_ADAPTER_SENSE_OUT
|
||||
);
|
||||
);
|
||||
|
||||
usb_bulk_read(
|
||||
pHDev, USB_EP1IN_ADDR,
|
||||
(char *)reply_buffer, 1,
|
||||
USB_TIMEOUT_MS
|
||||
);
|
||||
);
|
||||
|
||||
if ((reply_buffer[0] & ST7_PE_ADAPTER_SENSE_IN) != 0) {
|
||||
LOG_WARNING("target detection problem\n");
|
||||
|
@ -1786,13 +1786,13 @@ int rlink_init(void)
|
|||
0x00, /* DR */
|
||||
0x00, /* DDR */
|
||||
0x00 /* OR */
|
||||
);
|
||||
);
|
||||
|
||||
usb_bulk_read(
|
||||
pHDev, USB_EP1IN_ADDR,
|
||||
(char *)reply_buffer, 1,
|
||||
USB_TIMEOUT_MS
|
||||
);
|
||||
);
|
||||
|
||||
|
||||
if ((reply_buffer[0] & ST7_PE_ADAPTER_SENSE_IN) == 0) {
|
||||
|
@ -1813,7 +1813,7 @@ int rlink_init(void)
|
|||
ST7_PBDDR,
|
||||
1,
|
||||
0x00
|
||||
);
|
||||
);
|
||||
|
||||
/* make sure DTC is stopped, set VPP control, set up ports A and B */
|
||||
ep1_generic_commandl(
|
||||
|
@ -1833,7 +1833,7 @@ int rlink_init(void)
|
|||
ST7_PBDR,
|
||||
1,
|
||||
0x00
|
||||
);
|
||||
);
|
||||
|
||||
/* set LED updating mode and make sure they're unlit */
|
||||
ep1_generic_commandl(
|
||||
|
@ -1845,7 +1845,7 @@ int rlink_init(void)
|
|||
#endif
|
||||
EP1_CMD_SET_PORTD_LEDS,
|
||||
~0
|
||||
);
|
||||
);
|
||||
|
||||
tap_state_queue_init();
|
||||
dtc_queue_init();
|
||||
|
@ -1868,7 +1868,7 @@ int rlink_quit(void)
|
|||
~0,
|
||||
EP1_CMD_SET_PORTD_VPP,
|
||||
~0
|
||||
);
|
||||
);
|
||||
|
||||
usb_release_interface(pHDev,0);
|
||||
usb_close(pHDev);
|
||||
|
|
178
src/jtag/tcl.c
178
src/jtag/tcl.c
|
@ -228,11 +228,11 @@ static int jtag_tap_configure_cmd(Jim_GetOptInfo *goi, jtag_tap_t * tap)
|
|||
switch (n->value) {
|
||||
case JCFG_EVENT:
|
||||
if (goi->argc == 0) {
|
||||
Jim_WrongNumArgs(goi->interp, goi->argc, goi->argv, "-event ?event-name? ..." );
|
||||
Jim_WrongNumArgs(goi->interp, goi->argc, goi->argv, "-event ?event-name? ...");
|
||||
return JIM_ERR;
|
||||
}
|
||||
|
||||
e = Jim_GetOpt_Nvp(goi, nvp_jtag_tap_event, &n );
|
||||
e = Jim_GetOpt_Nvp(goi, nvp_jtag_tap_event, &n);
|
||||
if (e != JIM_OK) {
|
||||
Jim_GetOpt_NvpUnknown(goi, nvp_jtag_tap_event, 1);
|
||||
return e;
|
||||
|
@ -306,7 +306,7 @@ static int is_bad_irval(int ir_length, jim_wide w)
|
|||
return (w & v) != 0;
|
||||
}
|
||||
|
||||
static int jim_newtap_cmd(Jim_GetOptInfo *goi )
|
||||
static int jim_newtap_cmd(Jim_GetOptInfo *goi)
|
||||
{
|
||||
jtag_tap_t *pTap;
|
||||
jim_wide w;
|
||||
|
@ -340,20 +340,20 @@ static int jim_newtap_cmd(Jim_GetOptInfo *goi )
|
|||
/*
|
||||
* we expect CHIP + TAP + OPTIONS
|
||||
* */
|
||||
if (goi->argc < 3 ){
|
||||
if (goi->argc < 3){
|
||||
Jim_SetResult_sprintf(goi->interp, "Missing CHIP TAP OPTIONS ....");
|
||||
return JIM_ERR;
|
||||
}
|
||||
Jim_GetOpt_String(goi, &cp, NULL );
|
||||
Jim_GetOpt_String(goi, &cp, NULL);
|
||||
pTap->chip = strdup(cp);
|
||||
|
||||
Jim_GetOpt_String(goi, &cp, NULL );
|
||||
Jim_GetOpt_String(goi, &cp, NULL);
|
||||
pTap->tapname = strdup(cp);
|
||||
|
||||
/* name + dot + name + null */
|
||||
x = strlen(pTap->chip) + 1 + strlen(pTap->tapname) + 1;
|
||||
cp = malloc(x );
|
||||
sprintf(cp, "%s.%s", pTap->chip, pTap->tapname );
|
||||
cp = malloc(x);
|
||||
sprintf(cp, "%s.%s", pTap->chip, pTap->tapname);
|
||||
pTap->dotted_name = cp;
|
||||
|
||||
LOG_DEBUG("Creating New Tap, Chip: %s, Tap: %s, Dotted: %s, %d params",
|
||||
|
@ -367,14 +367,14 @@ static int jim_newtap_cmd(Jim_GetOptInfo *goi )
|
|||
/* clear them as we find them */
|
||||
reqbits = (NTREQ_IRLEN | NTREQ_IRCAPTURE | NTREQ_IRMASK);
|
||||
|
||||
while (goi->argc ){
|
||||
e = Jim_GetOpt_Nvp(goi, opts, &n );
|
||||
if (e != JIM_OK ){
|
||||
Jim_GetOpt_NvpUnknown(goi, opts, 0 );
|
||||
while (goi->argc){
|
||||
e = Jim_GetOpt_Nvp(goi, opts, &n);
|
||||
if (e != JIM_OK){
|
||||
Jim_GetOpt_NvpUnknown(goi, opts, 0);
|
||||
return e;
|
||||
}
|
||||
LOG_DEBUG("Processing option: %s", n->name );
|
||||
switch (n->value ){
|
||||
LOG_DEBUG("Processing option: %s", n->name);
|
||||
switch (n->value){
|
||||
case NTAP_OPT_ENABLED:
|
||||
pTap->disabled_after_reset = false;
|
||||
break;
|
||||
|
@ -385,7 +385,7 @@ static int jim_newtap_cmd(Jim_GetOptInfo *goi )
|
|||
{
|
||||
uint32_t *new_expected_ids;
|
||||
|
||||
e = Jim_GetOpt_Wide(goi, &w );
|
||||
e = Jim_GetOpt_Wide(goi, &w);
|
||||
if (e != JIM_OK) {
|
||||
Jim_SetResult_sprintf(goi->interp, "option: %s bad parameter", n->name);
|
||||
return e;
|
||||
|
@ -409,9 +409,9 @@ static int jim_newtap_cmd(Jim_GetOptInfo *goi )
|
|||
case NTAP_OPT_IRLEN:
|
||||
case NTAP_OPT_IRMASK:
|
||||
case NTAP_OPT_IRCAPTURE:
|
||||
e = Jim_GetOpt_Wide(goi, &w );
|
||||
if (e != JIM_OK ){
|
||||
Jim_SetResult_sprintf(goi->interp, "option: %s bad parameter", n->name );
|
||||
e = Jim_GetOpt_Wide(goi, &w);
|
||||
if (e != JIM_OK){
|
||||
Jim_SetResult_sprintf(goi->interp, "option: %s bad parameter", n->name);
|
||||
return e;
|
||||
}
|
||||
switch (n->value){
|
||||
|
@ -441,7 +441,7 @@ static int jim_newtap_cmd(Jim_GetOptInfo *goi )
|
|||
break;
|
||||
}
|
||||
} /* switch (n->value) */
|
||||
} /* while (goi->argc ) */
|
||||
} /* while (goi->argc) */
|
||||
|
||||
/* default is enabled-after-reset */
|
||||
pTap->enabled = !pTap->disabled_after_reset;
|
||||
|
@ -475,7 +475,7 @@ static void jtag_tap_handle_event(jtag_tap_t *tap, enum jtag_event e)
|
|||
tap->dotted_name,
|
||||
e,
|
||||
Jim_Nvp_value2name_simple(nvp_jtag_tap_event, e)->name,
|
||||
Jim_GetString(jteap->body, NULL) );
|
||||
Jim_GetString(jteap->body, NULL));
|
||||
if (Jim_EvalObj(interp, jteap->body) != JIM_OK) {
|
||||
Jim_PrintErrorMessage(interp);
|
||||
} else {
|
||||
|
@ -498,7 +498,7 @@ static void jtag_tap_handle_event(jtag_tap_t *tap, enum jtag_event e)
|
|||
}
|
||||
|
||||
|
||||
static int jim_jtag_command(Jim_Interp *interp, int argc, Jim_Obj *const *argv )
|
||||
static int jim_jtag_command(Jim_Interp *interp, int argc, Jim_Obj *const *argv)
|
||||
{
|
||||
Jim_GetOptInfo goi;
|
||||
int e;
|
||||
|
@ -532,44 +532,44 @@ static int jim_jtag_command(Jim_Interp *interp, int argc, Jim_Obj *const *argv )
|
|||
|
||||
context = Jim_GetAssocData(interp, "context");
|
||||
/* go past the command */
|
||||
Jim_GetOpt_Setup(&goi, interp, argc-1, argv + 1 );
|
||||
Jim_GetOpt_Setup(&goi, interp, argc-1, argv + 1);
|
||||
|
||||
e = Jim_GetOpt_Nvp(&goi, jtag_cmds, &n );
|
||||
if (e != JIM_OK ){
|
||||
Jim_GetOpt_NvpUnknown(&goi, jtag_cmds, 0 );
|
||||
e = Jim_GetOpt_Nvp(&goi, jtag_cmds, &n);
|
||||
if (e != JIM_OK){
|
||||
Jim_GetOpt_NvpUnknown(&goi, jtag_cmds, 0);
|
||||
return e;
|
||||
}
|
||||
Jim_SetEmptyResult(goi.interp );
|
||||
switch (n->value ){
|
||||
Jim_SetEmptyResult(goi.interp);
|
||||
switch (n->value){
|
||||
case JTAG_CMD_INTERFACE:
|
||||
/* return the name of the interface */
|
||||
/* TCL code might need to know the exact type... */
|
||||
/* FUTURE: we allow this as a means to "set" the interface. */
|
||||
if (goi.argc != 0 ){
|
||||
if (goi.argc != 0){
|
||||
Jim_WrongNumArgs(goi.interp, 1, goi.argv-1, "(no params)");
|
||||
return JIM_ERR;
|
||||
}
|
||||
Jim_SetResultString(goi.interp, jtag_interface->name, -1 );
|
||||
Jim_SetResultString(goi.interp, jtag_interface->name, -1);
|
||||
return JIM_OK;
|
||||
case JTAG_CMD_INIT_RESET:
|
||||
if (goi.argc != 0 ){
|
||||
if (goi.argc != 0){
|
||||
Jim_WrongNumArgs(goi.interp, 1, goi.argv-1, "(no params)");
|
||||
return JIM_ERR;
|
||||
}
|
||||
e = jtag_init_reset(context);
|
||||
if (e != ERROR_OK ){
|
||||
if (e != ERROR_OK){
|
||||
Jim_SetResult_sprintf(goi.interp, "error: %d", e);
|
||||
return JIM_ERR;
|
||||
}
|
||||
return JIM_OK;
|
||||
case JTAG_CMD_NEWTAP:
|
||||
return jim_newtap_cmd(&goi );
|
||||
return jim_newtap_cmd(&goi);
|
||||
break;
|
||||
case JTAG_CMD_TAPISENABLED:
|
||||
case JTAG_CMD_TAPENABLE:
|
||||
case JTAG_CMD_TAPDISABLE:
|
||||
if (goi.argc != 1 ){
|
||||
Jim_SetResultString(goi.interp, "Too many parameters",-1 );
|
||||
if (goi.argc != 1){
|
||||
Jim_SetResultString(goi.interp, "Too many parameters",-1);
|
||||
return JIM_ERR;
|
||||
}
|
||||
|
||||
|
@ -619,7 +619,7 @@ static int jim_jtag_command(Jim_Interp *interp, int argc, Jim_Obj *const *argv )
|
|||
break;
|
||||
|
||||
case JTAG_CMD_CGET:
|
||||
if (goi.argc < 2 ){
|
||||
if (goi.argc < 2){
|
||||
Jim_WrongNumArgs(goi.interp, 0, NULL, "?tap-name? -option ...");
|
||||
return JIM_ERR;
|
||||
}
|
||||
|
@ -628,8 +628,8 @@ static int jim_jtag_command(Jim_Interp *interp, int argc, Jim_Obj *const *argv )
|
|||
jtag_tap_t *t;
|
||||
|
||||
Jim_GetOpt_Obj(&goi, &o);
|
||||
t = jtag_tap_by_jim_obj(goi.interp, o );
|
||||
if (t == NULL ){
|
||||
t = jtag_tap_by_jim_obj(goi.interp, o);
|
||||
if (t == NULL){
|
||||
return JIM_ERR;
|
||||
}
|
||||
|
||||
|
@ -639,7 +639,7 @@ static int jim_jtag_command(Jim_Interp *interp, int argc, Jim_Obj *const *argv )
|
|||
break;
|
||||
|
||||
case JTAG_CMD_CONFIGURE:
|
||||
if (goi.argc < 3 ){
|
||||
if (goi.argc < 3){
|
||||
Jim_WrongNumArgs(goi.interp, 0, NULL, "?tap-name? -option ?VALUE? ...");
|
||||
return JIM_ERR;
|
||||
}
|
||||
|
@ -648,8 +648,8 @@ static int jim_jtag_command(Jim_Interp *interp, int argc, Jim_Obj *const *argv )
|
|||
jtag_tap_t *t;
|
||||
|
||||
Jim_GetOpt_Obj(&goi, &o);
|
||||
t = jtag_tap_by_jim_obj(goi.interp, o );
|
||||
if (t == NULL ){
|
||||
t = jtag_tap_by_jim_obj(goi.interp, o);
|
||||
if (t == NULL){
|
||||
return JIM_ERR;
|
||||
}
|
||||
|
||||
|
@ -806,7 +806,7 @@ static int handle_jtag_device_command(struct command_context_s *cmd_ctx, char *c
|
|||
* argv[ 3] = not actually used by anything but in the docs
|
||||
*/
|
||||
|
||||
if (argc < 4 ){
|
||||
if (argc < 4){
|
||||
command_print(cmd_ctx, "OLD DEPRECATED SYNTAX: Please use the NEW syntax");
|
||||
return ERROR_OK;
|
||||
}
|
||||
|
@ -814,41 +814,41 @@ static int handle_jtag_device_command(struct command_context_s *cmd_ctx, char *c
|
|||
command_print(cmd_ctx, "jtag newtap CHIP TAP -irlen %s -ircapture %s -irvalue %s",
|
||||
args[0],
|
||||
args[1],
|
||||
args[2] );
|
||||
args[2]);
|
||||
command_print(cmd_ctx, "Example: STM32 has 2 taps, the cortexM3(len4) + boundaryscan(len5)");
|
||||
command_print(cmd_ctx, "jtag newtap stm32 cortexm3 ....., thus creating the tap: \"stm32.cortexm3\"");
|
||||
command_print(cmd_ctx, "jtag newtap stm32 boundary ....., and the tap: \"stm32.boundary\"");
|
||||
command_print(cmd_ctx, "And then refer to the taps by the dotted name.");
|
||||
|
||||
newargs[0] = Jim_NewStringObj(interp, "jtag", -1 );
|
||||
newargs[1] = Jim_NewStringObj(interp, "newtap", -1 );
|
||||
sprintf(buf, "chip%d", jtag_tap_count() );
|
||||
newargs[2] = Jim_NewStringObj(interp, buf, -1 );
|
||||
sprintf(buf, "tap%d", jtag_tap_count() );
|
||||
newargs[3] = Jim_NewStringObj(interp, buf, -1 );
|
||||
newargs[4] = Jim_NewStringObj(interp, "-irlen", -1 );
|
||||
newargs[5] = Jim_NewStringObj(interp, args[0], -1 );
|
||||
newargs[6] = Jim_NewStringObj(interp, "-ircapture", -1 );
|
||||
newargs[7] = Jim_NewStringObj(interp, args[1], -1 );
|
||||
newargs[8] = Jim_NewStringObj(interp, "-irmask", -1 );
|
||||
newargs[9] = Jim_NewStringObj(interp, args[2], -1 );
|
||||
newargs[0] = Jim_NewStringObj(interp, "jtag", -1);
|
||||
newargs[1] = Jim_NewStringObj(interp, "newtap", -1);
|
||||
sprintf(buf, "chip%d", jtag_tap_count());
|
||||
newargs[2] = Jim_NewStringObj(interp, buf, -1);
|
||||
sprintf(buf, "tap%d", jtag_tap_count());
|
||||
newargs[3] = Jim_NewStringObj(interp, buf, -1);
|
||||
newargs[4] = Jim_NewStringObj(interp, "-irlen", -1);
|
||||
newargs[5] = Jim_NewStringObj(interp, args[0], -1);
|
||||
newargs[6] = Jim_NewStringObj(interp, "-ircapture", -1);
|
||||
newargs[7] = Jim_NewStringObj(interp, args[1], -1);
|
||||
newargs[8] = Jim_NewStringObj(interp, "-irmask", -1);
|
||||
newargs[9] = Jim_NewStringObj(interp, args[2], -1);
|
||||
|
||||
command_print(cmd_ctx, "NEW COMMAND:");
|
||||
sprintf(buf, "%s %s %s %s %s %s %s %s %s %s",
|
||||
Jim_GetString(newargs[0], NULL ),
|
||||
Jim_GetString(newargs[1], NULL ),
|
||||
Jim_GetString(newargs[2], NULL ),
|
||||
Jim_GetString(newargs[3], NULL ),
|
||||
Jim_GetString(newargs[4], NULL ),
|
||||
Jim_GetString(newargs[5], NULL ),
|
||||
Jim_GetString(newargs[6], NULL ),
|
||||
Jim_GetString(newargs[7], NULL ),
|
||||
Jim_GetString(newargs[8], NULL ),
|
||||
Jim_GetString(newargs[9], NULL ) );
|
||||
Jim_GetString(newargs[0], NULL),
|
||||
Jim_GetString(newargs[1], NULL),
|
||||
Jim_GetString(newargs[2], NULL),
|
||||
Jim_GetString(newargs[3], NULL),
|
||||
Jim_GetString(newargs[4], NULL),
|
||||
Jim_GetString(newargs[5], NULL),
|
||||
Jim_GetString(newargs[6], NULL),
|
||||
Jim_GetString(newargs[7], NULL),
|
||||
Jim_GetString(newargs[8], NULL),
|
||||
Jim_GetString(newargs[9], NULL));
|
||||
|
||||
e = jim_jtag_command(interp, 10, newargs );
|
||||
if (e != JIM_OK ){
|
||||
command_print(cmd_ctx, "%s", Jim_GetString(Jim_GetResult(interp), NULL ) );
|
||||
e = jim_jtag_command(interp, 10, newargs);
|
||||
if (e != JIM_OK){
|
||||
command_print(cmd_ctx, "%s", Jim_GetString(Jim_GetResult(interp), NULL));
|
||||
}
|
||||
return e;
|
||||
}
|
||||
|
@ -861,7 +861,7 @@ static int handle_scan_chain_command(struct command_context_s *cmd_ctx, char *cm
|
|||
command_print(cmd_ctx, " TapName | Enabled | IdCode Expected IrLen IrCap IrMask Instr ");
|
||||
command_print(cmd_ctx, "---|--------------------|---------|------------|------------|------|------|------|---------");
|
||||
|
||||
while (tap ){
|
||||
while (tap){
|
||||
uint32_t expected, expected_mask, cur_instr, ii;
|
||||
expected = buf_get_u32(tap->expected, 0, tap->ir_length);
|
||||
expected_mask = buf_get_u32(tap->expected_mask, 0, tap->ir_length);
|
||||
|
@ -1174,20 +1174,20 @@ static int handle_irscan_command(struct command_context_s *cmd_ctx, char *cmd, c
|
|||
*/
|
||||
endstate = TAP_IDLE;
|
||||
|
||||
if (argc >= 4 ){
|
||||
if (argc >= 4){
|
||||
/* have at least one pair of numbers. */
|
||||
/* is last pair the magic text? */
|
||||
if (0 == strcmp("-endstate", args[ argc - 2 ] ) ){
|
||||
if (0 == strcmp("-endstate", args[ argc - 2 ])){
|
||||
const char *cpA;
|
||||
const char *cpS;
|
||||
cpA = args[ argc-1 ];
|
||||
for (endstate = 0 ; endstate < TAP_NUM_STATES ; endstate++ ){
|
||||
cpS = tap_state_name(endstate );
|
||||
if (0 == strcmp(cpA, cpS ) ){
|
||||
for (endstate = 0 ; endstate < TAP_NUM_STATES ; endstate++){
|
||||
cpS = tap_state_name(endstate);
|
||||
if (0 == strcmp(cpA, cpS)){
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (endstate >= TAP_NUM_STATES ){
|
||||
if (endstate >= TAP_NUM_STATES){
|
||||
return ERROR_COMMAND_SYNTAX_ERROR;
|
||||
} else {
|
||||
if (!scan_is_safe(endstate))
|
||||
|
@ -1207,10 +1207,10 @@ static int handle_irscan_command(struct command_context_s *cmd_ctx, char *cmd, c
|
|||
int retval;
|
||||
for (i = 0; i < num_fields; i++)
|
||||
{
|
||||
tap = jtag_tap_by_string(args[i*2] );
|
||||
tap = jtag_tap_by_string(args[i*2]);
|
||||
if (tap == NULL)
|
||||
{
|
||||
command_print(cmd_ctx, "Tap: %s unknown", args[i*2] );
|
||||
command_print(cmd_ctx, "Tap: %s unknown", args[i*2]);
|
||||
return ERROR_FAIL;
|
||||
}
|
||||
int field_size = tap->ir_length;
|
||||
|
@ -1281,12 +1281,12 @@ static int Jim_Command_drscan(Jim_Interp *interp, int argc, Jim_Obj *const *args
|
|||
|
||||
e = Jim_GetLong(interp, args[i], &bits);
|
||||
/* If valid - try next arg */
|
||||
if (e == JIM_OK ){
|
||||
if (e == JIM_OK){
|
||||
continue;
|
||||
}
|
||||
|
||||
/* Not valid.. are we at the end? */
|
||||
if (((i + 2) != argc) ){
|
||||
if (((i + 2) != argc)){
|
||||
/* nope, then error */
|
||||
return e;
|
||||
}
|
||||
|
@ -1297,17 +1297,17 @@ static int Jim_Command_drscan(Jim_Interp *interp, int argc, Jim_Obj *const *args
|
|||
*/
|
||||
|
||||
/* get arg as a string. */
|
||||
cp = Jim_GetString(args[i], NULL );
|
||||
cp = Jim_GetString(args[i], NULL);
|
||||
/* is it the magic? */
|
||||
if (0 == strcmp("-endstate", cp ) ){
|
||||
if (0 == strcmp("-endstate", cp)){
|
||||
/* is the statename valid? */
|
||||
cp = Jim_GetString(args[i + 1], NULL );
|
||||
cp = Jim_GetString(args[i + 1], NULL);
|
||||
|
||||
/* see if it is a valid state name */
|
||||
endstate = tap_state_by_name(cp);
|
||||
if (endstate < 0 ){
|
||||
if (endstate < 0){
|
||||
/* update the error message */
|
||||
Jim_SetResult_sprintf(interp,"endstate: %s invalid", cp );
|
||||
Jim_SetResult_sprintf(interp,"endstate: %s invalid", cp);
|
||||
} else {
|
||||
if (!scan_is_safe(endstate))
|
||||
LOG_WARNING("drscan with unsafe "
|
||||
|
@ -1321,13 +1321,13 @@ static int Jim_Command_drscan(Jim_Interp *interp, int argc, Jim_Obj *const *args
|
|||
}
|
||||
|
||||
/* Still an error? */
|
||||
if (e != JIM_OK ){
|
||||
if (e != JIM_OK){
|
||||
return e; /* too bad */
|
||||
}
|
||||
} /* validate args */
|
||||
|
||||
tap = jtag_tap_by_jim_obj(interp, args[1] );
|
||||
if (tap == NULL ){
|
||||
tap = jtag_tap_by_jim_obj(interp, args[1]);
|
||||
if (tap == NULL){
|
||||
return JIM_ERR;
|
||||
}
|
||||
|
||||
|
@ -1399,12 +1399,12 @@ static int Jim_Command_pathmove(Jim_Interp *interp, int argc, Jim_Obj *const *ar
|
|||
for (i = 0; i < argc-1; i++)
|
||||
{
|
||||
const char *cp;
|
||||
cp = Jim_GetString(args[i + 1], NULL );
|
||||
cp = Jim_GetString(args[i + 1], NULL);
|
||||
states[i] = tap_state_by_name(cp);
|
||||
if (states[i] < 0 )
|
||||
if (states[i] < 0)
|
||||
{
|
||||
/* update the error message */
|
||||
Jim_SetResult_sprintf(interp,"endstate: %s invalid", cp );
|
||||
Jim_SetResult_sprintf(interp,"endstate: %s invalid", cp);
|
||||
return JIM_ERR;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -378,7 +378,7 @@ static int vsllink_execute_queue(void)
|
|||
break; /* above stable states are OK */
|
||||
default:
|
||||
LOG_ERROR("jtag_add_clocks() was called with TAP in non-stable state \"%s\"",
|
||||
tap_state_name(tap_get_state()) );
|
||||
tap_state_name(tap_get_state()));
|
||||
exit(-1);
|
||||
}
|
||||
vsllink_stableclocks(cmd->cmd.stableclocks->num_cycles, scan_size);
|
||||
|
@ -1178,7 +1178,7 @@ static void vsllink_scan_normal(bool ir_scan, enum scan_type type, uint8_t *buff
|
|||
uint8_t bits_left, tms_tmp, tdi_len;
|
||||
int i;
|
||||
|
||||
if (0 == scan_size )
|
||||
if (0 == scan_size)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
@ -1845,7 +1845,7 @@ static int vsllink_usb_message(vsllink_jtag_t *vsllink_jtag, int out_length, int
|
|||
if (in_length > 0)
|
||||
{
|
||||
result = vsllink_usb_read(vsllink_jtag);
|
||||
if (result == in_length )
|
||||
if (result == in_length)
|
||||
{
|
||||
return result;
|
||||
}
|
||||
|
|
|
@ -26,7 +26,7 @@
|
|||
#define TEST_MANUAL() 0
|
||||
|
||||
#if 0
|
||||
int diag_printf(const char *fmt, ... );
|
||||
int diag_printf(const char *fmt, ...);
|
||||
#define ZY1000_POKE(a, b) HAL_WRITE_UINT32(a, b); diag_printf("poke 0x%08x,0x%08x\n", a, b)
|
||||
#define ZY1000_PEEK(a, b) HAL_READ_UINT32(a, b); diag_printf("peek 0x%08x = 0x%08x\n", a, b)
|
||||
#else
|
||||
|
|
|
@ -208,7 +208,7 @@ command_context_t *setup_command_handler(void)
|
|||
}
|
||||
LOG_DEBUG("log init complete");
|
||||
|
||||
LOG_OUTPUT(OPENOCD_VERSION "\n" );
|
||||
LOG_OUTPUT(OPENOCD_VERSION "\n");
|
||||
|
||||
register_command(cmd_ctx, NULL, "init", handle_init_command,
|
||||
COMMAND_ANY, "initializes target and servers - nop on subsequent invocations");
|
||||
|
@ -264,7 +264,7 @@ int openocd_main(int argc, char *argv[])
|
|||
return EXIT_FAILURE;
|
||||
|
||||
ret = parse_config_file(cmd_ctx);
|
||||
if ((ret != ERROR_OK) && (ret != ERROR_COMMAND_CLOSE_CONNECTION) )
|
||||
if ((ret != ERROR_OK) && (ret != ERROR_COMMAND_CLOSE_CONNECTION))
|
||||
return EXIT_FAILURE;
|
||||
|
||||
#if BUILD_HTTPD
|
||||
|
|
|
@ -243,7 +243,7 @@ static int virtex2_pld_device_command(struct command_context_s *cmd_ctx,
|
|||
|
||||
tap = jtag_tap_by_string(args[1]);
|
||||
if (tap == NULL) {
|
||||
command_print(cmd_ctx, "Tap: %s does not exist", args[1] );
|
||||
command_print(cmd_ctx, "Tap: %s does not exist", args[1]);
|
||||
return ERROR_OK;
|
||||
}
|
||||
|
||||
|
|
|
@ -319,9 +319,9 @@ int gdb_put_packet_inner(connection_t *connection, char *buffer, int len)
|
|||
break;
|
||||
if ((retval = gdb_get_char(connection, &reply)) != ERROR_OK)
|
||||
return retval;
|
||||
if (reply == '$' ){
|
||||
if (reply == '$'){
|
||||
/* fix a problem with some IAR tools */
|
||||
gdb_putback_char(connection, reply );
|
||||
gdb_putback_char(connection, reply);
|
||||
LOG_DEBUG("Unexpected start of new packet");
|
||||
break;
|
||||
}
|
||||
|
@ -402,9 +402,9 @@ int gdb_put_packet_inner(connection_t *connection, char *buffer, int len)
|
|||
log_remove_callback(gdb_log_callback, connection);
|
||||
LOG_WARNING("negative reply, retrying");
|
||||
}
|
||||
else if (reply == '$' ){
|
||||
else if (reply == '$'){
|
||||
LOG_ERROR("GDB missing ack(1) - assumed good");
|
||||
gdb_putback_char(connection, reply );
|
||||
gdb_putback_char(connection, reply);
|
||||
return ERROR_OK;
|
||||
} else {
|
||||
|
||||
|
@ -413,9 +413,9 @@ int gdb_put_packet_inner(connection_t *connection, char *buffer, int len)
|
|||
return ERROR_SERVER_REMOTE_CLOSED;
|
||||
}
|
||||
}
|
||||
else if (reply == '$' ){
|
||||
else if (reply == '$'){
|
||||
LOG_ERROR("GDB missing ack(2) - assumed good");
|
||||
gdb_putback_char(connection, reply );
|
||||
gdb_putback_char(connection, reply);
|
||||
return ERROR_OK;
|
||||
}
|
||||
else
|
||||
|
@ -709,7 +709,7 @@ int gdb_target_callback_event_handler(struct target_s *target, enum target_event
|
|||
int retval;
|
||||
connection_t *connection = priv;
|
||||
|
||||
target_handle_event(target, event );
|
||||
target_handle_event(target, event);
|
||||
switch (event)
|
||||
{
|
||||
case TARGET_EVENT_EARLY_HALTED:
|
||||
|
@ -719,7 +719,7 @@ int gdb_target_callback_event_handler(struct target_s *target, enum target_event
|
|||
target_call_event_callbacks(target, TARGET_EVENT_GDB_END);
|
||||
break;
|
||||
case TARGET_EVENT_GDB_FLASH_ERASE_START:
|
||||
target_handle_event(target, TARGET_EVENT_OLD_gdb_program_config );
|
||||
target_handle_event(target, TARGET_EVENT_OLD_gdb_program_config);
|
||||
if ((retval = jtag_execute_queue()) != ERROR_OK)
|
||||
{
|
||||
return retval;
|
||||
|
@ -800,7 +800,7 @@ int gdb_new_connection(connection_t *connection)
|
|||
*/
|
||||
if (initial_ack != '+')
|
||||
gdb_putback_char(connection, initial_ack);
|
||||
target_call_event_callbacks(gdb_service->target, TARGET_EVENT_GDB_ATTACH );
|
||||
target_call_event_callbacks(gdb_service->target, TARGET_EVENT_GDB_ATTACH);
|
||||
|
||||
gdb_actual_connections++;
|
||||
|
||||
|
@ -839,7 +839,7 @@ int gdb_connection_closed(connection_t *connection)
|
|||
target_call_event_callbacks(gdb_service->target, TARGET_EVENT_GDB_END);
|
||||
log_remove_callback(gdb_log_callback, connection);
|
||||
|
||||
target_call_event_callbacks(gdb_service->target, TARGET_EVENT_GDB_DETACH );
|
||||
target_call_event_callbacks(gdb_service->target, TARGET_EVENT_GDB_DETACH);
|
||||
|
||||
return ERROR_OK;
|
||||
}
|
||||
|
@ -847,7 +847,7 @@ int gdb_connection_closed(connection_t *connection)
|
|||
void gdb_send_error(connection_t *connection, uint8_t the_error)
|
||||
{
|
||||
char err[4];
|
||||
snprintf(err, 4, "E%2.2X", the_error );
|
||||
snprintf(err, 4, "E%2.2X", the_error);
|
||||
gdb_put_packet(connection, err, 3);
|
||||
}
|
||||
|
||||
|
@ -1360,7 +1360,7 @@ int gdb_step_continue_packet(connection_t *connection, target_t *target, char *p
|
|||
if (packet[0] == 'c')
|
||||
{
|
||||
LOG_DEBUG("continue");
|
||||
target_handle_event(target, TARGET_EVENT_OLD_pre_resume );
|
||||
target_handle_event(target, TARGET_EVENT_OLD_pre_resume);
|
||||
retval = target_resume(target, current, address, 0, 0); /* resume at current address, don't handle breakpoints, not debugging */
|
||||
}
|
||||
else if (packet[0] == 's')
|
||||
|
@ -1872,7 +1872,7 @@ int gdb_v_packet(connection_t *connection, target_t *target, char *packet, int p
|
|||
|
||||
/* perform any target specific operations before the erase */
|
||||
target_call_event_callbacks(gdb_service->target, TARGET_EVENT_GDB_FLASH_ERASE_START);
|
||||
result = flash_erase_address_range(gdb_service->target, addr, length );
|
||||
result = flash_erase_address_range(gdb_service->target, addr, length);
|
||||
target_call_event_callbacks(gdb_service->target, TARGET_EVENT_GDB_FLASH_ERASE_END);
|
||||
|
||||
/* perform erase */
|
||||
|
@ -1964,10 +1964,10 @@ int gdb_v_packet(connection_t *connection, target_t *target, char *packet, int p
|
|||
int gdb_detach(connection_t *connection, target_t *target)
|
||||
{
|
||||
|
||||
switch (detach_mode )
|
||||
switch (detach_mode)
|
||||
{
|
||||
case GDB_DETACH_RESUME:
|
||||
target_handle_event(target, TARGET_EVENT_OLD_pre_resume );
|
||||
target_handle_event(target, TARGET_EVENT_OLD_pre_resume);
|
||||
target_resume(target, 1, 0, 1, 0);
|
||||
break;
|
||||
|
||||
|
@ -2036,18 +2036,18 @@ int gdb_input_inner(connection_t *connection)
|
|||
/* terminate with zero */
|
||||
packet[packet_size] = 0;
|
||||
|
||||
if (LOG_LEVEL_IS(LOG_LVL_DEBUG ) ){
|
||||
if (packet[0] == 'X' ){
|
||||
if (LOG_LEVEL_IS(LOG_LVL_DEBUG)){
|
||||
if (packet[0] == 'X'){
|
||||
// binary packets spew junk into the debug log stream
|
||||
char buf[ 50 ];
|
||||
int x;
|
||||
for (x = 0 ; (x < 49) && (packet[x] != ':') ; x++ ){
|
||||
for (x = 0 ; (x < 49) && (packet[x] != ':') ; x++){
|
||||
buf[x] = packet[x];
|
||||
}
|
||||
buf[x] = 0;
|
||||
LOG_DEBUG("received packet: '%s:<binary-data>'", buf );
|
||||
LOG_DEBUG("received packet: '%s:<binary-data>'", buf);
|
||||
} else {
|
||||
LOG_DEBUG("received packet: '%s'", packet );
|
||||
LOG_DEBUG("received packet: '%s'", packet);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -111,7 +111,7 @@ static int httpd_Jim_Command_writeform(Jim_Interp *interp, int argc,
|
|||
|
||||
const char *script = alloc_printf("set dummy_val $httppostdata(%s); set dummy_val",
|
||||
name);
|
||||
retcode = Jim_Eval_Named(interp, script, "httpd.c", __LINE__ );
|
||||
retcode = Jim_Eval_Named(interp, script, "httpd.c", __LINE__);
|
||||
free((void *) script);
|
||||
if (retcode != JIM_OK)
|
||||
return retcode;
|
||||
|
@ -152,7 +152,7 @@ httpd_Jim_Command_formfetch(Jim_Interp *interp,
|
|||
|
||||
const char *script = alloc_printf("set dummy_val $httppostdata(%s); set dummy_val",
|
||||
name);
|
||||
int retcode = Jim_Eval_Named(interp, script, "httpd.c", __LINE__ );
|
||||
int retcode = Jim_Eval_Named(interp, script, "httpd.c", __LINE__);
|
||||
free((void *) script);
|
||||
if (retcode != JIM_OK)
|
||||
{
|
||||
|
@ -257,7 +257,7 @@ int handle_request(struct MHD_Connection * connection, const char * url)
|
|||
|
||||
const char *script = alloc_printf(
|
||||
"global httpdata; source {%s}; set httpdata", url);
|
||||
retcode = Jim_Eval_Named(interp, script, "httpd.c", __LINE__ );
|
||||
retcode = Jim_Eval_Named(interp, script, "httpd.c", __LINE__);
|
||||
free((void *) script);
|
||||
|
||||
if (retcode == JIM_ERR)
|
||||
|
@ -415,8 +415,8 @@ static pthread_mutex_t mutex;
|
|||
int httpd_start(void)
|
||||
{
|
||||
pthread_mutexattr_t attr;
|
||||
pthread_mutexattr_init(&attr );
|
||||
pthread_mutex_init(&mutex, &attr );
|
||||
pthread_mutexattr_init(&attr);
|
||||
pthread_mutex_init(&mutex, &attr);
|
||||
|
||||
int port = 8888;
|
||||
LOG_USER("Launching httpd server on port %d", port);
|
||||
|
@ -446,16 +446,16 @@ int httpd_start(void)
|
|||
void httpd_stop(void)
|
||||
{
|
||||
MHD_stop_daemon(d);
|
||||
pthread_mutex_destroy(&mutex );
|
||||
pthread_mutex_destroy(&mutex);
|
||||
}
|
||||
|
||||
void openocd_sleep_prelude(void)
|
||||
{
|
||||
pthread_mutex_unlock(&mutex );
|
||||
pthread_mutex_unlock(&mutex);
|
||||
}
|
||||
|
||||
void openocd_sleep_postlude(void)
|
||||
{
|
||||
pthread_mutex_lock(&mutex );
|
||||
pthread_mutex_lock(&mutex);
|
||||
}
|
||||
|
||||
|
|
|
@ -528,7 +528,7 @@ int server_quit(void)
|
|||
|
||||
#ifdef _WIN32
|
||||
WSACleanup();
|
||||
SetConsoleCtrlHandler(ControlHandler, FALSE );
|
||||
SetConsoleCtrlHandler(ControlHandler, FALSE);
|
||||
#endif
|
||||
|
||||
return ERROR_OK;
|
||||
|
|
|
@ -273,7 +273,7 @@ static const char* tap_state_svf_name(tap_state_t state)
|
|||
{
|
||||
const char* ret;
|
||||
|
||||
switch (state )
|
||||
switch (state)
|
||||
{
|
||||
case TAP_RESET: ret = "RESET"; break;
|
||||
case TAP_IDLE: ret = "IDLE"; break;
|
||||
|
@ -422,7 +422,7 @@ static int handle_svf_command(struct command_context_s *cmd_ctx, char *cmd, char
|
|||
// TAP_RESET
|
||||
jtag_add_tlr();
|
||||
|
||||
while (ERROR_OK == svf_read_command_from_file(svf_fd) )
|
||||
while (ERROR_OK == svf_read_command_from_file(svf_fd))
|
||||
{
|
||||
if (ERROR_OK != svf_run_command(cmd_ctx, svf_command_buffer))
|
||||
{
|
||||
|
@ -505,7 +505,7 @@ static int svf_read_command_from_file(int fd)
|
|||
char ch, *tmp_buffer = NULL;
|
||||
int cmd_pos = 0, cmd_ok = 0, slash = 0, comment = 0;
|
||||
|
||||
while (!cmd_ok && (read(fd, &ch, 1) > 0) )
|
||||
while (!cmd_ok && (read(fd, &ch, 1) > 0))
|
||||
{
|
||||
switch (ch)
|
||||
{
|
||||
|
|
|
@ -709,7 +709,7 @@ int arm11_arch_state(struct target_s *target)
|
|||
arm11_common_t * arm11 = target->arch_info;
|
||||
|
||||
LOG_USER("target halted due to %s\ncpsr: 0x%8.8" PRIx32 " pc: 0x%8.8" PRIx32 "",
|
||||
Jim_Nvp_value2name_simple(nvp_target_debug_reason, target->debug_reason )->name,
|
||||
Jim_Nvp_value2name_simple(nvp_target_debug_reason, target->debug_reason)->name,
|
||||
R(CPSR),
|
||||
R(PC));
|
||||
|
||||
|
@ -732,7 +732,7 @@ int arm11_halt(struct target_s *target)
|
|||
arm11_common_t * arm11 = target->arch_info;
|
||||
|
||||
LOG_DEBUG("target->state: %s",
|
||||
Jim_Nvp_value2name_simple(nvp_target_state, target->state )->name );
|
||||
Jim_Nvp_value2name_simple(nvp_target_state, target->state)->name);
|
||||
|
||||
if (target->state == TARGET_UNKNOWN)
|
||||
{
|
||||
|
@ -789,7 +789,7 @@ int arm11_resume(struct target_s *target, int current, uint32_t address, int han
|
|||
arm11_common_t * arm11 = target->arch_info;
|
||||
|
||||
LOG_DEBUG("target->state: %s",
|
||||
Jim_Nvp_value2name_simple(nvp_target_state, target->state )->name );
|
||||
Jim_Nvp_value2name_simple(nvp_target_state, target->state)->name);
|
||||
|
||||
|
||||
if (target->state != TARGET_HALTED)
|
||||
|
@ -889,7 +889,7 @@ int arm11_step(struct target_s *target, int current, uint32_t address, int handl
|
|||
FNC_INFO;
|
||||
|
||||
LOG_DEBUG("target->state: %s",
|
||||
Jim_Nvp_value2name_simple(nvp_target_state, target->state )->name );
|
||||
Jim_Nvp_value2name_simple(nvp_target_state, target->state)->name);
|
||||
|
||||
if (target->state != TARGET_HALTED)
|
||||
{
|
||||
|
@ -1035,7 +1035,7 @@ int arm11_deassert_reset(struct target_s *target)
|
|||
|
||||
#if 0
|
||||
LOG_DEBUG("target->state: %s",
|
||||
Jim_Nvp_value2name_simple(nvp_target_state, target->state )->name );
|
||||
Jim_Nvp_value2name_simple(nvp_target_state, target->state)->name);
|
||||
|
||||
|
||||
/* deassert reset lines */
|
||||
|
@ -1960,7 +1960,7 @@ int arm11_register_commands(struct command_context_s *cmd_ctx)
|
|||
|
||||
RC_FINAL_BOOL("error_fatal", "Terminate program if transfer error was found (default: enabled)",
|
||||
memwrite_error_fatal)
|
||||
) /* memwrite */
|
||||
) /* memwrite */
|
||||
|
||||
RC_FINAL_BOOL("no_increment", "Don't increment address on multi-read/-write (default: disabled)",
|
||||
memrw_no_increment)
|
||||
|
@ -1976,7 +1976,7 @@ int arm11_register_commands(struct command_context_s *cmd_ctx)
|
|||
|
||||
RC_FINAL("mcr", "Write Coprocessor register",
|
||||
arm11_handle_mcr)
|
||||
) /* arm11 */
|
||||
) /* arm11 */
|
||||
|
||||
return ERROR_OK;
|
||||
}
|
||||
|
|
|
@ -319,7 +319,7 @@ int arm720t_arch_state(struct target_s *target)
|
|||
"cpsr: 0x%8.8" PRIx32 " pc: 0x%8.8" PRIx32 "\n"
|
||||
"MMU: %s, Cache: %s",
|
||||
armv4_5_state_strings[armv4_5->core_state],
|
||||
Jim_Nvp_value2name_simple(nvp_target_debug_reason, target->debug_reason )->name ,
|
||||
Jim_Nvp_value2name_simple(nvp_target_debug_reason, target->debug_reason)->name ,
|
||||
armv4_5_mode_strings[armv4_5_mode_to_number(armv4_5->core_mode)],
|
||||
buf_get_u32(armv4_5->core_cache->reg_list[ARMV4_5_CPSR].value, 0, 32),
|
||||
buf_get_u32(armv4_5->core_cache->reg_list[15].value, 0, 32),
|
||||
|
|
|
@ -526,7 +526,7 @@ int arm7_9_set_watchpoint(struct target_s *target, watchpoint_t *watchpoint)
|
|||
embeddedice_set_reg(&arm7_9->eice_cache->reg_list[EICE_W0_ADDR_VALUE], watchpoint->address);
|
||||
embeddedice_set_reg(&arm7_9->eice_cache->reg_list[EICE_W0_ADDR_MASK], mask);
|
||||
embeddedice_set_reg(&arm7_9->eice_cache->reg_list[EICE_W0_DATA_MASK], watchpoint->mask);
|
||||
if (watchpoint->mask != 0xffffffffu )
|
||||
if (watchpoint->mask != 0xffffffffu)
|
||||
embeddedice_set_reg(&arm7_9->eice_cache->reg_list[EICE_W0_DATA_VALUE], watchpoint->value);
|
||||
embeddedice_set_reg(&arm7_9->eice_cache->reg_list[EICE_W0_CONTROL_MASK], 0xff & ~EICE_W_CTRL_nOPC & ~rw_mask);
|
||||
embeddedice_set_reg(&arm7_9->eice_cache->reg_list[EICE_W0_CONTROL_VALUE], EICE_W_CTRL_ENABLE | EICE_W_CTRL_nOPC | (watchpoint->rw & 1));
|
||||
|
@ -543,7 +543,7 @@ int arm7_9_set_watchpoint(struct target_s *target, watchpoint_t *watchpoint)
|
|||
embeddedice_set_reg(&arm7_9->eice_cache->reg_list[EICE_W1_ADDR_VALUE], watchpoint->address);
|
||||
embeddedice_set_reg(&arm7_9->eice_cache->reg_list[EICE_W1_ADDR_MASK], mask);
|
||||
embeddedice_set_reg(&arm7_9->eice_cache->reg_list[EICE_W1_DATA_MASK], watchpoint->mask);
|
||||
if (watchpoint->mask != 0xffffffffu )
|
||||
if (watchpoint->mask != 0xffffffffu)
|
||||
embeddedice_set_reg(&arm7_9->eice_cache->reg_list[EICE_W1_DATA_VALUE], watchpoint->value);
|
||||
embeddedice_set_reg(&arm7_9->eice_cache->reg_list[EICE_W1_CONTROL_MASK], 0xff & ~EICE_W_CTRL_nOPC & ~rw_mask);
|
||||
embeddedice_set_reg(&arm7_9->eice_cache->reg_list[EICE_W1_CONTROL_VALUE], EICE_W_CTRL_ENABLE | EICE_W_CTRL_nOPC | (watchpoint->rw & 1));
|
||||
|
|
|
@ -822,7 +822,7 @@ int arm7tdmi_init_arch_info(target_t *target, arm7tdmi_common_t *arm7tdmi, jtag_
|
|||
return ERROR_OK;
|
||||
}
|
||||
|
||||
int arm7tdmi_target_create(struct target_s *target, Jim_Interp *interp )
|
||||
int arm7tdmi_target_create(struct target_s *target, Jim_Interp *interp)
|
||||
{
|
||||
arm7tdmi_common_t *arm7tdmi;
|
||||
|
||||
|
|
|
@ -110,7 +110,7 @@ int arm966e_init_arch_info(target_t *target, arm966e_common_t *arm966e, jtag_tap
|
|||
return ERROR_OK;
|
||||
}
|
||||
|
||||
int arm966e_target_create(struct target_s *target, Jim_Interp *interp )
|
||||
int arm966e_target_create(struct target_s *target, Jim_Interp *interp)
|
||||
{
|
||||
arm966e_common_t *arm966e = calloc(1,sizeof(arm966e_common_t));
|
||||
|
||||
|
|
|
@ -39,7 +39,7 @@
|
|||
int handle_arm9tdmi_catch_vectors_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc);
|
||||
|
||||
/* forward declarations */
|
||||
int arm9tdmi_target_create(struct target_s *target, Jim_Interp *interp );
|
||||
int arm9tdmi_target_create(struct target_s *target, Jim_Interp *interp);
|
||||
|
||||
int arm9tdmi_quit(void);
|
||||
|
||||
|
|
|
@ -81,7 +81,7 @@ int adi_jtag_dp_scan(swjdp_common_t *swjdp, uint8_t instr, uint8_t reg_addr, uin
|
|||
arm_jtag_set_instr(jtag_info, instr, NULL);
|
||||
|
||||
/* Add specified number of tck clocks before accessing memory bus */
|
||||
if ((instr == DAP_IR_APACC) && ((reg_addr == AP_REG_DRW)||((reg_addr&0xF0) == AP_REG_BD0) )&& (swjdp->memaccess_tck != 0))
|
||||
if ((instr == DAP_IR_APACC) && ((reg_addr == AP_REG_DRW)||((reg_addr&0xF0) == AP_REG_BD0))&& (swjdp->memaccess_tck != 0))
|
||||
jtag_add_runtest(swjdp->memaccess_tck, jtag_set_end_state(TAP_IDLE));
|
||||
|
||||
fields[0].tap = jtag_info->tap;
|
||||
|
@ -112,7 +112,7 @@ int adi_jtag_dp_scan_u32(swjdp_common_t *swjdp, uint8_t instr, uint8_t reg_addr,
|
|||
arm_jtag_set_instr(jtag_info, instr, NULL);
|
||||
|
||||
/* Add specified number of tck clocks before accessing memory bus */
|
||||
if ((instr == DAP_IR_APACC) && ((reg_addr == AP_REG_DRW)||((reg_addr&0xF0) == AP_REG_BD0) )&& (swjdp->memaccess_tck != 0))
|
||||
if ((instr == DAP_IR_APACC) && ((reg_addr == AP_REG_DRW)||((reg_addr&0xF0) == AP_REG_BD0))&& (swjdp->memaccess_tck != 0))
|
||||
jtag_add_runtest(swjdp->memaccess_tck, jtag_set_end_state(TAP_IDLE));
|
||||
|
||||
fields[0].tap = jtag_info->tap;
|
||||
|
@ -374,13 +374,13 @@ int dap_setup_accessport(swjdp_common_t *swjdp, uint32_t csw, uint32_t tar)
|
|||
if (csw != swjdp->ap_csw_value)
|
||||
{
|
||||
/* LOG_DEBUG("swjdp : Set CSW %x",csw); */
|
||||
dap_ap_write_reg_u32(swjdp, AP_REG_CSW, csw );
|
||||
dap_ap_write_reg_u32(swjdp, AP_REG_CSW, csw);
|
||||
swjdp->ap_csw_value = csw;
|
||||
}
|
||||
if (tar != swjdp->ap_tar_value)
|
||||
{
|
||||
/* LOG_DEBUG("swjdp : Set TAR %x",tar); */
|
||||
dap_ap_write_reg_u32(swjdp, AP_REG_TAR, tar );
|
||||
dap_ap_write_reg_u32(swjdp, AP_REG_TAR, tar);
|
||||
swjdp->ap_tar_value = tar;
|
||||
}
|
||||
if (csw & CSW_ADDRINC_MASK)
|
||||
|
@ -404,7 +404,7 @@ int mem_ap_read_u32(swjdp_common_t *swjdp, uint32_t address, uint32_t *value)
|
|||
swjdp->trans_mode = TRANS_MODE_COMPOSITE;
|
||||
|
||||
dap_setup_accessport(swjdp, CSW_32BIT | CSW_ADDRINC_OFF, address & 0xFFFFFFF0);
|
||||
dap_ap_read_reg_u32(swjdp, AP_REG_BD0 | (address & 0xC), value );
|
||||
dap_ap_read_reg_u32(swjdp, AP_REG_BD0 | (address & 0xC), value);
|
||||
|
||||
return ERROR_OK;
|
||||
}
|
||||
|
@ -428,7 +428,7 @@ int mem_ap_write_u32(swjdp_common_t *swjdp, uint32_t address, uint32_t value)
|
|||
swjdp->trans_mode = TRANS_MODE_COMPOSITE;
|
||||
|
||||
dap_setup_accessport(swjdp, CSW_32BIT | CSW_ADDRINC_OFF, address & 0xFFFFFFF0);
|
||||
dap_ap_write_reg_u32(swjdp, AP_REG_BD0 | (address & 0xC), value );
|
||||
dap_ap_write_reg_u32(swjdp, AP_REG_BD0 | (address & 0xC), value);
|
||||
|
||||
return ERROR_OK;
|
||||
}
|
||||
|
@ -467,7 +467,7 @@ int mem_ap_write_buf_u32(swjdp_common_t *swjdp, uint8_t *buffer, int count, uint
|
|||
uint32_t outvalue;
|
||||
memcpy(&outvalue, pBuffer, sizeof(uint32_t));
|
||||
|
||||
for (i = 0; i < 4; i++ )
|
||||
for (i = 0; i < 4; i++)
|
||||
{
|
||||
*((uint8_t*)pBuffer + (adr & 0x3)) = outvalue;
|
||||
outvalue >>= 8;
|
||||
|
@ -492,7 +492,7 @@ int mem_ap_write_buf_u32(swjdp_common_t *swjdp, uint8_t *buffer, int count, uint
|
|||
|
||||
for (writecount = 0; writecount < blocksize; writecount++)
|
||||
{
|
||||
dap_ap_write_reg(swjdp, AP_REG_DRW, buffer + 4 * writecount );
|
||||
dap_ap_write_reg(swjdp, AP_REG_DRW, buffer + 4 * writecount);
|
||||
}
|
||||
|
||||
if (swjdp_transaction_endcheck(swjdp) == ERROR_OK)
|
||||
|
@ -546,7 +546,7 @@ int mem_ap_write_buf_packed_u16(swjdp_common_t *swjdp, uint8_t *buffer, int coun
|
|||
{
|
||||
nbytes = MIN((writecount << 1), 4);
|
||||
|
||||
if (nbytes < 4 )
|
||||
if (nbytes < 4)
|
||||
{
|
||||
if (mem_ap_write_buf_u16(swjdp, buffer, nbytes, address) != ERROR_OK)
|
||||
{
|
||||
|
@ -561,7 +561,7 @@ int mem_ap_write_buf_packed_u16(swjdp_common_t *swjdp, uint8_t *buffer, int coun
|
|||
uint32_t outvalue;
|
||||
memcpy(&outvalue, buffer, sizeof(uint32_t));
|
||||
|
||||
for (i = 0; i < nbytes; i++ )
|
||||
for (i = 0; i < nbytes; i++)
|
||||
{
|
||||
*((uint8_t*)buffer + (address & 0x3)) = outvalue;
|
||||
outvalue >>= 8;
|
||||
|
@ -602,7 +602,7 @@ int mem_ap_write_buf_u16(swjdp_common_t *swjdp, uint8_t *buffer, int count, uint
|
|||
uint16_t svalue;
|
||||
memcpy(&svalue, buffer, sizeof(uint16_t));
|
||||
uint32_t outvalue = (uint32_t)svalue << 8 * (address & 0x3);
|
||||
dap_ap_write_reg_u32(swjdp, AP_REG_DRW, outvalue );
|
||||
dap_ap_write_reg_u32(swjdp, AP_REG_DRW, outvalue);
|
||||
retval = swjdp_transaction_endcheck(swjdp);
|
||||
count -= 2;
|
||||
address += 2;
|
||||
|
@ -638,7 +638,7 @@ int mem_ap_write_buf_packed_u8(swjdp_common_t *swjdp, uint8_t *buffer, int count
|
|||
{
|
||||
nbytes = MIN(writecount, 4);
|
||||
|
||||
if (nbytes < 4 )
|
||||
if (nbytes < 4)
|
||||
{
|
||||
if (mem_ap_write_buf_u8(swjdp, buffer, nbytes, address) != ERROR_OK)
|
||||
{
|
||||
|
@ -653,7 +653,7 @@ int mem_ap_write_buf_packed_u8(swjdp_common_t *swjdp, uint8_t *buffer, int count
|
|||
uint32_t outvalue;
|
||||
memcpy(&outvalue, buffer, sizeof(uint32_t));
|
||||
|
||||
for (i = 0; i < nbytes; i++ )
|
||||
for (i = 0; i < nbytes; i++)
|
||||
{
|
||||
*((uint8_t*)buffer + (address & 0x3)) = outvalue;
|
||||
outvalue >>= 8;
|
||||
|
@ -692,7 +692,7 @@ int mem_ap_write_buf_u8(swjdp_common_t *swjdp, uint8_t *buffer, int count, uint3
|
|||
{
|
||||
dap_setup_accessport(swjdp, CSW_8BIT | CSW_ADDRINC_SINGLE, address);
|
||||
uint32_t outvalue = (uint32_t)*buffer << 8 * (address & 0x3);
|
||||
dap_ap_write_reg_u32(swjdp, AP_REG_DRW, outvalue );
|
||||
dap_ap_write_reg_u32(swjdp, AP_REG_DRW, outvalue);
|
||||
retval = swjdp_transaction_endcheck(swjdp);
|
||||
count--;
|
||||
address++;
|
||||
|
@ -770,7 +770,7 @@ int mem_ap_read_buf_u32(swjdp_common_t *swjdp, uint8_t *buffer, int count, uint3
|
|||
uint32_t data;
|
||||
memcpy(&data, pBuffer, sizeof(uint32_t));
|
||||
|
||||
for (i = 0; i < 4; i++ )
|
||||
for (i = 0; i < 4; i++)
|
||||
{
|
||||
*((uint8_t*)pBuffer) = (data >> 8 * (adr & 0x3));
|
||||
pBuffer++;
|
||||
|
@ -810,7 +810,7 @@ int mem_ap_read_buf_packed_u16(swjdp_common_t *swjdp, uint8_t *buffer, int count
|
|||
|
||||
do
|
||||
{
|
||||
dap_ap_read_reg_u32(swjdp, AP_REG_DRW, &invalue );
|
||||
dap_ap_read_reg_u32(swjdp, AP_REG_DRW, &invalue);
|
||||
if (swjdp_transaction_endcheck(swjdp) != ERROR_OK)
|
||||
{
|
||||
LOG_WARNING("Block read error address 0x%" PRIx32 ", count 0x%x", address, count);
|
||||
|
@ -819,7 +819,7 @@ int mem_ap_read_buf_packed_u16(swjdp_common_t *swjdp, uint8_t *buffer, int count
|
|||
|
||||
nbytes = MIN((readcount << 1), 4);
|
||||
|
||||
for (i = 0; i < nbytes; i++ )
|
||||
for (i = 0; i < nbytes; i++)
|
||||
{
|
||||
*((uint8_t*)buffer) = (invalue >> 8 * (address & 0x3));
|
||||
buffer++;
|
||||
|
@ -847,11 +847,11 @@ int mem_ap_read_buf_u16(swjdp_common_t *swjdp, uint8_t *buffer, int count, uint3
|
|||
while (count > 0)
|
||||
{
|
||||
dap_setup_accessport(swjdp, CSW_16BIT | CSW_ADDRINC_SINGLE, address);
|
||||
dap_ap_read_reg_u32(swjdp, AP_REG_DRW, &invalue );
|
||||
dap_ap_read_reg_u32(swjdp, AP_REG_DRW, &invalue);
|
||||
retval = swjdp_transaction_endcheck(swjdp);
|
||||
if (address & 0x1)
|
||||
{
|
||||
for (i = 0; i < 2; i++ )
|
||||
for (i = 0; i < 2; i++)
|
||||
{
|
||||
*((uint8_t*)buffer) = (invalue >> 8 * (address & 0x3));
|
||||
buffer++;
|
||||
|
@ -902,7 +902,7 @@ int mem_ap_read_buf_packed_u8(swjdp_common_t *swjdp, uint8_t *buffer, int count,
|
|||
|
||||
do
|
||||
{
|
||||
dap_ap_read_reg_u32(swjdp, AP_REG_DRW, &invalue );
|
||||
dap_ap_read_reg_u32(swjdp, AP_REG_DRW, &invalue);
|
||||
if (swjdp_transaction_endcheck(swjdp) != ERROR_OK)
|
||||
{
|
||||
LOG_WARNING("Block read error address 0x%" PRIx32 ", count 0x%x", address, count);
|
||||
|
@ -911,7 +911,7 @@ int mem_ap_read_buf_packed_u8(swjdp_common_t *swjdp, uint8_t *buffer, int count,
|
|||
|
||||
nbytes = MIN(readcount, 4);
|
||||
|
||||
for (i = 0; i < nbytes; i++ )
|
||||
for (i = 0; i < nbytes; i++)
|
||||
{
|
||||
*((uint8_t*)buffer) = (invalue >> 8 * (address & 0x3));
|
||||
buffer++;
|
||||
|
@ -939,7 +939,7 @@ int mem_ap_read_buf_u8(swjdp_common_t *swjdp, uint8_t *buffer, int count, uint32
|
|||
while (count > 0)
|
||||
{
|
||||
dap_setup_accessport(swjdp, CSW_8BIT | CSW_ADDRINC_SINGLE, address);
|
||||
dap_ap_read_reg_u32(swjdp, AP_REG_DRW, &invalue );
|
||||
dap_ap_read_reg_u32(swjdp, AP_REG_DRW, &invalue);
|
||||
retval = swjdp_transaction_endcheck(swjdp);
|
||||
*((uint8_t*)buffer) = (invalue >> 8 * (address & 0x3));
|
||||
count--;
|
||||
|
@ -1065,7 +1065,7 @@ int dap_info_command(struct command_context_s *cmd_ctx, swjdp_common_t *swjdp, i
|
|||
}
|
||||
else
|
||||
{
|
||||
command_print(cmd_ctx, "\tROM table in legacy format" );
|
||||
command_print(cmd_ctx, "\tROM table in legacy format");
|
||||
}
|
||||
/* Now we read ROM table ID registers, ref. ARM IHI 0029B sec */
|
||||
mem_ap_read_u32(swjdp, (dbgbase&0xFFFFF000) | 0xFF0, &cid0);
|
||||
|
@ -1081,7 +1081,7 @@ int dap_info_command(struct command_context_s *cmd_ctx, swjdp_common_t *swjdp, i
|
|||
}
|
||||
else
|
||||
{
|
||||
command_print(cmd_ctx, "\tMEMTYPE system memory not present. Dedicated debug bus" );
|
||||
command_print(cmd_ctx, "\tMEMTYPE system memory not present. Dedicated debug bus");
|
||||
}
|
||||
|
||||
/* Now we read ROM table entries from dbgbase&0xFFFFF000) | 0x000 until we get 0x00000000 */
|
||||
|
|
|
@ -762,7 +762,7 @@ int evaluate_mrs_msr(uint32_t opcode, uint32_t address, arm_instruction_t *instr
|
|||
(opcode & 0x40000) ? "s" : "",
|
||||
(opcode & 0x80000) ? "f" : "",
|
||||
ror(immediate, (rotate * 2))
|
||||
);
|
||||
);
|
||||
}
|
||||
else /* register variant */
|
||||
{
|
||||
|
@ -774,7 +774,7 @@ int evaluate_mrs_msr(uint32_t opcode, uint32_t address, arm_instruction_t *instr
|
|||
(opcode & 0x40000) ? "s" : "",
|
||||
(opcode & 0x80000) ? "f" : "",
|
||||
Rm
|
||||
);
|
||||
);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -1200,7 +1200,7 @@ int arm_evaluate_opcode(uint32_t opcode, uint32_t address, arm_instruction_t *in
|
|||
if ((opcode & 0x0e000000) == 0x0a000000)
|
||||
return evaluate_blx_imm(opcode, address, instruction);
|
||||
|
||||
/* Extended coprocessor opcode space (ARMv5 and higher )*/
|
||||
/* Extended coprocessor opcode space (ARMv5 and higher)*/
|
||||
/* Coprocessor load/store and double register transfers */
|
||||
if ((opcode & 0x0e000000) == 0x0c000000)
|
||||
return evaluate_ldc_stc_mcrr_mrrc(opcode, address, instruction);
|
||||
|
|
|
@ -299,7 +299,7 @@ int armv4_5_arch_state(struct target_s *target)
|
|||
|
||||
LOG_USER("target halted in %s state due to %s, current mode: %s\ncpsr: 0x%8.8" PRIx32 " pc: 0x%8.8" PRIx32 "",
|
||||
armv4_5_state_strings[armv4_5->core_state],
|
||||
Jim_Nvp_value2name_simple(nvp_target_debug_reason, target->debug_reason )->name,
|
||||
Jim_Nvp_value2name_simple(nvp_target_debug_reason, target->debug_reason)->name,
|
||||
armv4_5_mode_strings[armv4_5_mode_to_number(armv4_5->core_mode)],
|
||||
buf_get_u32(armv4_5->core_cache->reg_list[ARMV4_5_CPSR].value, 0, 32),
|
||||
buf_get_u32(armv4_5->core_cache->reg_list[15].value, 0, 32));
|
||||
|
|
|
@ -144,7 +144,7 @@ extern int armv7m_blank_check_memory(struct target_s *target, uint32_t address,
|
|||
* Rd: source register
|
||||
* SYSm: destination special register
|
||||
*/
|
||||
#define ARMV7M_T_MSR(SYSm, Rn) ((0xF380 | (Rn << 8 )) | ((0x8800 | SYSm) << 16))
|
||||
#define ARMV7M_T_MSR(SYSm, Rn) ((0xF380 | (Rn << 8)) | ((0x8800 | SYSm) << 16))
|
||||
|
||||
/* Change Processor State. The instruction modifies the PRIMASK and FAULTMASK
|
||||
* special-purpose register values (Thumb mode) 16 bit Thumb2 instruction
|
||||
|
@ -159,7 +159,7 @@ extern int armv7m_blank_check_memory(struct target_s *target, uint32_t address,
|
|||
/* Breakpoint (Thumb mode) v5 onwards
|
||||
* Im: immediate value used by debugger
|
||||
*/
|
||||
#define ARMV7M_T_BKPT(Im) ((0xBE00 | Im ) | ((0xBE00 | Im ) << 16))
|
||||
#define ARMV7M_T_BKPT(Im) ((0xBE00 | Im) | ((0xBE00 | Im) << 16))
|
||||
|
||||
/* Store register (Thumb mode)
|
||||
* Rd: source register
|
||||
|
|
|
@ -109,11 +109,11 @@ int cortexm3_dap_read_coreregister_u32(swjdp_common_t *swjdp, uint32_t *value, i
|
|||
|
||||
/* mem_ap_write_u32(swjdp, DCB_DCRSR, regnum); */
|
||||
dap_setup_accessport(swjdp, CSW_32BIT | CSW_ADDRINC_OFF, DCB_DCRSR & 0xFFFFFFF0);
|
||||
dap_ap_write_reg_u32(swjdp, AP_REG_BD0 | (DCB_DCRSR & 0xC), regnum );
|
||||
dap_ap_write_reg_u32(swjdp, AP_REG_BD0 | (DCB_DCRSR & 0xC), regnum);
|
||||
|
||||
/* mem_ap_read_u32(swjdp, DCB_DCRDR, value); */
|
||||
dap_setup_accessport(swjdp, CSW_32BIT | CSW_ADDRINC_OFF, DCB_DCRDR & 0xFFFFFFF0);
|
||||
dap_ap_read_reg_u32(swjdp, AP_REG_BD0 | (DCB_DCRDR & 0xC), value );
|
||||
dap_ap_read_reg_u32(swjdp, AP_REG_BD0 | (DCB_DCRDR & 0xC), value);
|
||||
|
||||
mem_ap_write_u32(swjdp, DCB_DCRDR, dcrdr);
|
||||
retval = swjdp_transaction_endcheck(swjdp);
|
||||
|
@ -134,11 +134,11 @@ int cortexm3_dap_write_coreregister_u32(swjdp_common_t *swjdp, uint32_t value, i
|
|||
|
||||
/* mem_ap_write_u32(swjdp, DCB_DCRDR, core_regs[i]); */
|
||||
dap_setup_accessport(swjdp, CSW_32BIT | CSW_ADDRINC_OFF, DCB_DCRDR & 0xFFFFFFF0);
|
||||
dap_ap_write_reg_u32(swjdp, AP_REG_BD0 | (DCB_DCRDR & 0xC), value );
|
||||
dap_ap_write_reg_u32(swjdp, AP_REG_BD0 | (DCB_DCRDR & 0xC), value);
|
||||
|
||||
/* mem_ap_write_u32(swjdp, DCB_DCRSR, i | DCRSR_WnR ); */
|
||||
/* mem_ap_write_u32(swjdp, DCB_DCRSR, i | DCRSR_WnR); */
|
||||
dap_setup_accessport(swjdp, CSW_32BIT | CSW_ADDRINC_OFF, DCB_DCRSR & 0xFFFFFFF0);
|
||||
dap_ap_write_reg_u32(swjdp, AP_REG_BD0 | (DCB_DCRSR & 0xC), regnum | DCRSR_WnR );
|
||||
dap_ap_write_reg_u32(swjdp, AP_REG_BD0 | (DCB_DCRSR & 0xC), regnum | DCRSR_WnR);
|
||||
|
||||
mem_ap_write_u32(swjdp, DCB_DCRDR, dcrdr);
|
||||
retval = swjdp_transaction_endcheck(swjdp);
|
||||
|
@ -204,7 +204,7 @@ int cortex_m3_single_step_core(target_t *target)
|
|||
return ERROR_OK;
|
||||
}
|
||||
|
||||
int cortex_m3_exec_opcode(target_t *target,uint32_t opcode, int len /* MODE, r0_invalue, &r0_outvalue */ )
|
||||
int cortex_m3_exec_opcode(target_t *target,uint32_t opcode, int len /* MODE, r0_invalue, &r0_outvalue */)
|
||||
{
|
||||
/* get pointers to arch-specific information */
|
||||
armv7m_common_t *armv7m = target->arch_info;
|
||||
|
@ -444,7 +444,7 @@ int cortex_m3_debug_entry(target_t *target)
|
|||
LOG_DEBUG("entered debug state in core mode: %s at PC 0x%" PRIx32 ", target->state: %s",
|
||||
armv7m_mode_strings[armv7m->core_mode],
|
||||
*(uint32_t*)(armv7m->core_cache->reg_list[15].value),
|
||||
Jim_Nvp_value2name_simple(nvp_target_state, target->state )->name);
|
||||
Jim_Nvp_value2name_simple(nvp_target_state, target->state)->name);
|
||||
|
||||
if (armv7m->post_debug_entry)
|
||||
armv7m->post_debug_entry(target);
|
||||
|
@ -520,7 +520,7 @@ int cortex_m3_poll(target_t *target)
|
|||
#if 0
|
||||
/* Read Debug Fault Status Register, added to figure out the lockup when running flashtest.script */
|
||||
mem_ap_read_atomic_u32(swjdp, NVIC_DFSR, &cortex_m3->nvic_dfsr);
|
||||
LOG_DEBUG("dcb_dhcsr 0x%x, nvic_dfsr 0x%x, target->state: %s", cortex_m3->dcb_dhcsr, cortex_m3->nvic_dfsr, Jim_Nvp_value2name_simple(nvp_target_state, target->state )->name );
|
||||
LOG_DEBUG("dcb_dhcsr 0x%x, nvic_dfsr 0x%x, target->state: %s", cortex_m3->dcb_dhcsr, cortex_m3->nvic_dfsr, Jim_Nvp_value2name_simple(nvp_target_state, target->state)->name);
|
||||
#endif
|
||||
|
||||
return ERROR_OK;
|
||||
|
@ -529,7 +529,7 @@ int cortex_m3_poll(target_t *target)
|
|||
int cortex_m3_halt(target_t *target)
|
||||
{
|
||||
LOG_DEBUG("target->state: %s",
|
||||
Jim_Nvp_value2name_simple(nvp_target_state, target->state )->name);
|
||||
Jim_Nvp_value2name_simple(nvp_target_state, target->state)->name);
|
||||
|
||||
if (target->state == TARGET_HALTED)
|
||||
{
|
||||
|
@ -751,7 +751,7 @@ int cortex_m3_assert_reset(target_t *target)
|
|||
int assert_srst = 1;
|
||||
|
||||
LOG_DEBUG("target->state: %s",
|
||||
Jim_Nvp_value2name_simple(nvp_target_state, target->state )->name );
|
||||
Jim_Nvp_value2name_simple(nvp_target_state, target->state)->name);
|
||||
|
||||
enum reset_types jtag_reset_config = jtag_get_reset_config();
|
||||
if (!(jtag_reset_config & RESET_HAS_SRST))
|
||||
|
@ -765,7 +765,7 @@ int cortex_m3_assert_reset(target_t *target)
|
|||
if (!(cortex_m3->dcb_dhcsr & C_DEBUGEN))
|
||||
mem_ap_write_u32(swjdp, DCB_DHCSR, DBGKEY | C_DEBUGEN);
|
||||
|
||||
mem_ap_write_u32(swjdp, DCB_DCRDR, 0 );
|
||||
mem_ap_write_u32(swjdp, DCB_DCRDR, 0);
|
||||
|
||||
if (!target->reset_halt)
|
||||
{
|
||||
|
@ -862,7 +862,7 @@ int cortex_m3_assert_reset(target_t *target)
|
|||
int cortex_m3_deassert_reset(target_t *target)
|
||||
{
|
||||
LOG_DEBUG("target->state: %s",
|
||||
Jim_Nvp_value2name_simple(nvp_target_state, target->state )->name);
|
||||
Jim_Nvp_value2name_simple(nvp_target_state, target->state)->name);
|
||||
|
||||
/* deassert reset lines */
|
||||
jtag_add_reset(0, 0);
|
||||
|
|
|
@ -387,10 +387,10 @@ static int handle_etb_config_command(struct command_context_s *cmd_ctx, char *cm
|
|||
return ERROR_FAIL;
|
||||
}
|
||||
|
||||
tap = jtag_tap_by_string(args[1] );
|
||||
tap = jtag_tap_by_string(args[1]);
|
||||
if (tap == NULL)
|
||||
{
|
||||
command_print(cmd_ctx, "Tap: %s does not exist", args[1] );
|
||||
command_print(cmd_ctx, "Tap: %s does not exist", args[1]);
|
||||
return ERROR_FAIL;
|
||||
}
|
||||
|
||||
|
|
|
@ -533,7 +533,7 @@ static int image_mot_buffer_complete(image_t *image)
|
|||
}
|
||||
else if (record_type >= 1 && record_type <= 3)
|
||||
{
|
||||
switch (record_type )
|
||||
switch (record_type)
|
||||
{
|
||||
case 1:
|
||||
/* S1 - 16 bit address data record */
|
||||
|
@ -636,7 +636,7 @@ static int image_mot_buffer_complete(image_t *image)
|
|||
cal_checksum += (uint8_t)checksum;
|
||||
bytes_read += 2;
|
||||
|
||||
if (cal_checksum != 0xFF )
|
||||
if (cal_checksum != 0xFF)
|
||||
{
|
||||
/* checksum failed */
|
||||
LOG_ERROR("incorrect record checksum found in S19 file");
|
||||
|
@ -852,7 +852,7 @@ int image_read_section(image_t *image, int section, uint32_t offset, uint32_t si
|
|||
memcpy(buffer + *size_read,
|
||||
image_memory->cache + (address - image_memory->cache_address),
|
||||
(size_in_cache > size) ? size : size_in_cache
|
||||
);
|
||||
);
|
||||
|
||||
*size_read += (size_in_cache > size) ? size : size_in_cache;
|
||||
address += (size_in_cache > size) ? size : size_in_cache;
|
||||
|
|
|
@ -265,7 +265,7 @@ int mips32_arch_state(struct target_s *target)
|
|||
}
|
||||
|
||||
LOG_USER("target halted due to %s, pc: 0x%8.8" PRIx32 "",
|
||||
Jim_Nvp_value2name_simple(nvp_target_debug_reason, target->debug_reason )->name ,
|
||||
Jim_Nvp_value2name_simple(nvp_target_debug_reason, target->debug_reason)->name ,
|
||||
buf_get_u32(mips32->core_cache->reg_list[MIPS32_PC].value, 0, 32));
|
||||
|
||||
return ERROR_OK;
|
||||
|
|
|
@ -187,7 +187,7 @@ static int mips32_pracc_exec_write(mips32_pracc_context *ctx, uint32_t address)
|
|||
offset = (address - MIPS32_PRACC_PARAM_IN) / 4;
|
||||
ctx->local_iparam[offset] = data;
|
||||
}
|
||||
else if ((address >= MIPS32_PRACC_PARAM_OUT )
|
||||
else if ((address >= MIPS32_PRACC_PARAM_OUT)
|
||||
&& (address <= MIPS32_PRACC_PARAM_OUT + ctx->num_oparam * 4))
|
||||
{
|
||||
offset = (address - MIPS32_PRACC_PARAM_OUT) / 4;
|
||||
|
|
|
@ -35,7 +35,7 @@
|
|||
#define UPPER16(uint32_t) (uint32_t >> 16)
|
||||
#define LOWER16(uint32_t) (uint32_t & 0xFFFF)
|
||||
#define NEG16(v) (((~(v)) + 1) & 0xFFFF)
|
||||
/*#define NEG18(v) (((~(v)) + 1) & 0x3FFFF )*/
|
||||
/*#define NEG18(v) (((~(v)) + 1) & 0x3FFFF)*/
|
||||
|
||||
extern int mips32_pracc_read_mem(mips_ejtag_t *ejtag_info, uint32_t addr, int size, int count, void *buf);
|
||||
extern int mips32_pracc_write_mem(mips_ejtag_t *ejtag_info, uint32_t addr, int size, int count, void *buf);
|
||||
|
|
|
@ -292,7 +292,7 @@ int mips_ejtag_init(mips_ejtag_t *ejtag_info)
|
|||
ejtag_info->impcode & (1 << 16) ? " MIPS16": "",
|
||||
ejtag_info->impcode & (1 << 14) ? " noDMA": " DMA",
|
||||
ejtag_info->impcode & (1 << 0) ? " MIPS64": " MIPS32"
|
||||
);
|
||||
);
|
||||
|
||||
if ((ejtag_info->impcode & (1 << 14)) == 0)
|
||||
LOG_DEBUG("EJTAG: DMA Access Mode Support Enabled");
|
||||
|
|
|
@ -148,7 +148,7 @@ int mips_m4k_debug_entry(target_t *target)
|
|||
|
||||
LOG_DEBUG("entered debug state at PC 0x%" PRIx32 ", target->state: %s",
|
||||
*(uint32_t*)(mips32->core_cache->reg_list[MIPS32_PC].value),
|
||||
Jim_Nvp_value2name_simple(nvp_target_state, target->state )->name);
|
||||
Jim_Nvp_value2name_simple(nvp_target_state, target->state)->name);
|
||||
|
||||
return ERROR_OK;
|
||||
}
|
||||
|
@ -220,7 +220,7 @@ int mips_m4k_halt(struct target_s *target)
|
|||
mips_ejtag_t *ejtag_info = &mips32->ejtag_info;
|
||||
|
||||
LOG_DEBUG("target->state: %s",
|
||||
Jim_Nvp_value2name_simple(nvp_target_state, target->state )->name);
|
||||
Jim_Nvp_value2name_simple(nvp_target_state, target->state)->name);
|
||||
|
||||
if (target->state == TARGET_HALTED)
|
||||
{
|
||||
|
@ -265,7 +265,7 @@ int mips_m4k_assert_reset(target_t *target)
|
|||
mips_ejtag_t *ejtag_info = &mips32->ejtag_info;
|
||||
|
||||
LOG_DEBUG("target->state: %s",
|
||||
Jim_Nvp_value2name_simple(nvp_target_state, target->state )->name);
|
||||
Jim_Nvp_value2name_simple(nvp_target_state, target->state)->name);
|
||||
|
||||
enum reset_types jtag_reset_config = jtag_get_reset_config();
|
||||
if (!(jtag_reset_config & RESET_HAS_SRST))
|
||||
|
@ -324,7 +324,7 @@ int mips_m4k_assert_reset(target_t *target)
|
|||
int mips_m4k_deassert_reset(target_t *target)
|
||||
{
|
||||
LOG_DEBUG("target->state: %s",
|
||||
Jim_Nvp_value2name_simple(nvp_target_state, target->state )->name);
|
||||
Jim_Nvp_value2name_simple(nvp_target_state, target->state)->name);
|
||||
|
||||
/* deassert reset lines */
|
||||
jtag_add_reset(0, 0);
|
||||
|
|
|
@ -119,7 +119,7 @@ static int register_set_dummy_core_reg(reg_t *reg, uint8_t *buf)
|
|||
void register_init_dummy(reg_t *reg)
|
||||
{
|
||||
static int dummy_arch_type = -1;
|
||||
if (dummy_arch_type == -1 )
|
||||
if (dummy_arch_type == -1)
|
||||
dummy_arch_type = register_reg_arch_type(register_get_dummy_core_reg, register_set_dummy_core_reg);
|
||||
|
||||
reg->arch_type = dummy_arch_type;
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -397,7 +397,7 @@ int target_write_u8(struct target_s *target, uint32_t address, uint8_t value);
|
|||
int target_arch_state(struct target_s *target);
|
||||
|
||||
void target_handle_event(target_t *t, enum target_event e);
|
||||
void target_all_handle_event(enum target_event e );
|
||||
void target_all_handle_event(enum target_event e);
|
||||
|
||||
#define ERROR_TARGET_INVALID (-300)
|
||||
#define ERROR_TARGET_INIT_FAILED (-301)
|
||||
|
@ -412,6 +412,6 @@ void target_all_handle_event(enum target_event e );
|
|||
#define ERROR_TARGET_NOT_EXAMINED (-311)
|
||||
|
||||
extern const Jim_Nvp nvp_error_target[];
|
||||
extern const char *target_strerror_safe(int err );
|
||||
extern const char *target_strerror_safe(int err);
|
||||
|
||||
#endif /* TARGET_H */
|
||||
|
|
|
@ -117,8 +117,8 @@ int target_request(target_t *target, uint32_t request)
|
|||
{
|
||||
target_req_cmd_t target_req_cmd = request & 0xff;
|
||||
|
||||
if (charmsg_mode ) {
|
||||
target_charmsg(target, target_req_cmd );
|
||||
if (charmsg_mode) {
|
||||
target_charmsg(target, target_req_cmd);
|
||||
return ERROR_OK;
|
||||
}
|
||||
switch (target_req_cmd)
|
||||
|
@ -295,7 +295,7 @@ static int handle_target_request_debugmsgs_command(struct command_context_s *cmd
|
|||
}
|
||||
|
||||
command_print(cmd_ctx, "receiving debug messages from current target %s",
|
||||
(receiving) ? (charmsg_mode?"charmsg":"enabled") : "disabled" );
|
||||
(receiving) ? (charmsg_mode?"charmsg":"enabled") : "disabled");
|
||||
return ERROR_OK;
|
||||
}
|
||||
|
||||
|
|
|
@ -129,16 +129,16 @@ struct target_type_s
|
|||
int (*register_commands)(struct command_context_s *cmd_ctx);
|
||||
|
||||
/* called when target is created */
|
||||
int (*target_create)(struct target_s *target, Jim_Interp *interp );
|
||||
int (*target_create)(struct target_s *target, Jim_Interp *interp);
|
||||
|
||||
/* called for various config parameters */
|
||||
/* returns JIM_CONTINUE - if option not understood */
|
||||
/* otherwise: JIM_OK, or JIM_ERR, */
|
||||
int (*target_jim_configure)(struct target_s *target, Jim_GetOptInfo *goi );
|
||||
int (*target_jim_configure)(struct target_s *target, Jim_GetOptInfo *goi);
|
||||
|
||||
/* target commands specifically handled by the target */
|
||||
/* returns JIM_OK, or JIM_ERR, or JIM_CONTINUE - if option not understood */
|
||||
int (*target_jim_commands)(struct target_s *target, Jim_GetOptInfo *goi );
|
||||
int (*target_jim_commands)(struct target_s *target, Jim_GetOptInfo *goi);
|
||||
|
||||
/* invoked after JTAG chain has been examined & validated. During
|
||||
* this stage the target is examined and any additional setup is
|
||||
|
|
|
@ -123,7 +123,7 @@ static int handle_trace_history_command(struct command_context_s *cmd_ctx, char
|
|||
uint32_t first = 0;
|
||||
uint32_t last = trace->trace_history_pos;
|
||||
|
||||
if (!trace->trace_history_size ) {
|
||||
if (!trace->trace_history_size) {
|
||||
command_print(cmd_ctx, "trace history buffer is not allocated");
|
||||
return ERROR_OK;
|
||||
}
|
||||
|
|
|
@ -959,7 +959,7 @@ int xscale_arch_state(struct target_s *target)
|
|||
"MMU: %s, D-Cache: %s, I-Cache: %s"
|
||||
"%s",
|
||||
armv4_5_state_strings[armv4_5->core_state],
|
||||
Jim_Nvp_value2name_simple(nvp_target_debug_reason, target->debug_reason )->name ,
|
||||
Jim_Nvp_value2name_simple(nvp_target_debug_reason, target->debug_reason)->name ,
|
||||
armv4_5_mode_strings[armv4_5_mode_to_number(armv4_5->core_mode)],
|
||||
buf_get_u32(armv4_5->core_cache->reg_list[ARMV4_5_CPSR].value, 0, 32),
|
||||
buf_get_u32(armv4_5->core_cache->reg_list[15].value, 0, 32),
|
||||
|
@ -1202,7 +1202,7 @@ int xscale_halt(target_t *target)
|
|||
xscale_common_t *xscale = armv4_5->arch_info;
|
||||
|
||||
LOG_DEBUG("target->state: %s",
|
||||
Jim_Nvp_value2name_simple(nvp_target_state, target->state )->name);
|
||||
Jim_Nvp_value2name_simple(nvp_target_state, target->state)->name);
|
||||
|
||||
if (target->state == TARGET_HALTED)
|
||||
{
|
||||
|
@ -1568,7 +1568,7 @@ int xscale_assert_reset(target_t *target)
|
|||
xscale_common_t *xscale = armv4_5->arch_info;
|
||||
|
||||
LOG_DEBUG("target->state: %s",
|
||||
Jim_Nvp_value2name_simple(nvp_target_state, target->state )->name);
|
||||
Jim_Nvp_value2name_simple(nvp_target_state, target->state)->name);
|
||||
|
||||
/* select DCSR instruction (set endstate to R-T-I to ensure we don't
|
||||
* end up in T-L-R, which would reset JTAG
|
||||
|
|
|
@ -129,11 +129,11 @@ static int xsvf_fd = 0;
|
|||
|
||||
|
||||
/* map xsvf tap state to an openocd "tap_state_t" */
|
||||
static tap_state_t xsvf_to_tap(int xsvf_state )
|
||||
static tap_state_t xsvf_to_tap(int xsvf_state)
|
||||
{
|
||||
tap_state_t ret;
|
||||
|
||||
switch (xsvf_state )
|
||||
switch (xsvf_state)
|
||||
{
|
||||
case XSV_RESET: ret = TAP_RESET; break;
|
||||
case XSV_IDLE: ret = TAP_IDLE; break;
|
||||
|
@ -152,7 +152,7 @@ static tap_state_t xsvf_to_tap(int xsvf_state )
|
|||
case XSV_IREXIT2: ret = TAP_IREXIT2; break;
|
||||
case XSV_IRUPDATE: ret = TAP_IRUPDATE; break;
|
||||
default:
|
||||
LOG_ERROR("UNKNOWN XSVF STATE 0x%02X", xsvf_state );
|
||||
LOG_ERROR("UNKNOWN XSVF STATE 0x%02X", xsvf_state);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
|
@ -232,10 +232,10 @@ static int handle_xsvf_command(struct command_context_s *cmd_ctx, char *cmd, cha
|
|||
|
||||
if (strcmp(args[0], "plain") != 0)
|
||||
{
|
||||
tap = jtag_tap_by_string(args[0] );
|
||||
if (!tap )
|
||||
tap = jtag_tap_by_string(args[0]);
|
||||
if (!tap)
|
||||
{
|
||||
command_print(cmd_ctx, "Tap: %s unknown", args[0] );
|
||||
command_print(cmd_ctx, "Tap: %s unknown", args[0]);
|
||||
return ERROR_FAIL;
|
||||
}
|
||||
}
|
||||
|
@ -261,7 +261,7 @@ static int handle_xsvf_command(struct command_context_s *cmd_ctx, char *cmd, cha
|
|||
|
||||
LOG_USER("xsvf processing file: \"%s\"", filename);
|
||||
|
||||
while (read(xsvf_fd, &opcode, 1) > 0 )
|
||||
while (read(xsvf_fd, &opcode, 1) > 0)
|
||||
{
|
||||
/* record the position of the just read opcode within the file */
|
||||
file_offset = lseek(xsvf_fd, 0, SEEK_CUR) - 1;
|
||||
|
@ -309,7 +309,7 @@ static int handle_xsvf_command(struct command_context_s *cmd_ctx, char *cmd, cha
|
|||
else
|
||||
{
|
||||
xrepeat = myrepeat;
|
||||
LOG_DEBUG("XREPEAT %d", xrepeat );
|
||||
LOG_DEBUG("XREPEAT %d", xrepeat);
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
@ -327,7 +327,7 @@ static int handle_xsvf_command(struct command_context_s *cmd_ctx, char *cmd, cha
|
|||
xsdrsize = be_to_h_u32(xsdrsize_buf);
|
||||
LOG_DEBUG("XSDRSIZE %d", xsdrsize);
|
||||
|
||||
if (dr_out_buf ) free(dr_out_buf);
|
||||
if (dr_out_buf) free(dr_out_buf);
|
||||
if (dr_in_buf) free(dr_in_buf);
|
||||
if (dr_in_mask) free(dr_in_mask);
|
||||
|
||||
|
@ -354,7 +354,7 @@ static int handle_xsvf_command(struct command_context_s *cmd_ctx, char *cmd, cha
|
|||
|
||||
if (opcode == XSDRTDO)
|
||||
{
|
||||
if (xsvf_read_buffer(xsdrsize, xsvf_fd, dr_in_buf) != ERROR_OK )
|
||||
if (xsvf_read_buffer(xsdrsize, xsvf_fd, dr_in_buf) != ERROR_OK)
|
||||
{
|
||||
do_abort = 1;
|
||||
break;
|
||||
|
@ -366,11 +366,11 @@ static int handle_xsvf_command(struct command_context_s *cmd_ctx, char *cmd, cha
|
|||
|
||||
LOG_DEBUG("%s %d", op_name, xsdrsize);
|
||||
|
||||
for (attempt = 0; attempt < limit; ++attempt )
|
||||
for (attempt = 0; attempt < limit; ++attempt)
|
||||
{
|
||||
scan_field_t field;
|
||||
|
||||
if (attempt > 0 )
|
||||
if (attempt > 0)
|
||||
{
|
||||
/* perform the XC9500 exception handling sequence shown in xapp067.pdf and
|
||||
illustrated in psuedo code at end of this file. We start from state
|
||||
|
@ -393,7 +393,7 @@ static int handle_xsvf_command(struct command_context_s *cmd_ctx, char *cmd, cha
|
|||
TAP_IDLE,
|
||||
};
|
||||
|
||||
jtag_add_pathmove(DIM(exception_path), exception_path );
|
||||
jtag_add_pathmove(DIM(exception_path), exception_path);
|
||||
|
||||
if (verbose)
|
||||
LOG_USER("%s mismatch, xsdrsize=%d retry=%d", op_name, xsdrsize, attempt);
|
||||
|
@ -498,14 +498,14 @@ static int handle_xsvf_command(struct command_context_s *cmd_ctx, char *cmd, cha
|
|||
|
||||
mystate = xsvf_to_tap(uc);
|
||||
|
||||
LOG_DEBUG("XSTATE 0x%02X %s", uc, tap_state_name(mystate) );
|
||||
LOG_DEBUG("XSTATE 0x%02X %s", uc, tap_state_name(mystate));
|
||||
|
||||
/* there is no need for the lookahead code that was here since we
|
||||
queue up the jtag commands anyway. This is a simple way to handle
|
||||
the XSTATE.
|
||||
*/
|
||||
|
||||
if (jtag_add_statemove(mystate ) != ERROR_OK )
|
||||
if (jtag_add_statemove(mystate) != ERROR_OK)
|
||||
{
|
||||
/* For special states known as stable states
|
||||
(Test-Logic-Reset, Run-Test/Idle, Pause-DR, Pause- IR),
|
||||
|
@ -524,7 +524,7 @@ static int handle_xsvf_command(struct command_context_s *cmd_ctx, char *cmd, cha
|
|||
LOG_ERROR("XSTATE %s is not reachable from current state %s in one clock cycle",
|
||||
tap_state_name(mystate),
|
||||
tap_state_name(cmd_queue_cur_state)
|
||||
);
|
||||
);
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
@ -538,9 +538,9 @@ static int handle_xsvf_command(struct command_context_s *cmd_ctx, char *cmd, cha
|
|||
}
|
||||
|
||||
/* see page 22 of XSVF spec */
|
||||
if (uc == 0 )
|
||||
if (uc == 0)
|
||||
xendir = TAP_IDLE;
|
||||
else if (uc == 1 )
|
||||
else if (uc == 1)
|
||||
xendir = TAP_IRPAUSE;
|
||||
else
|
||||
{
|
||||
|
@ -561,9 +561,9 @@ static int handle_xsvf_command(struct command_context_s *cmd_ctx, char *cmd, cha
|
|||
}
|
||||
|
||||
/* see page 22 of XSVF spec */
|
||||
if (uc == 0 )
|
||||
if (uc == 0)
|
||||
xenddr = TAP_IDLE;
|
||||
else if (uc == 1 )
|
||||
else if (uc == 1)
|
||||
xenddr = TAP_DRPAUSE;
|
||||
else
|
||||
{
|
||||
|
@ -583,7 +583,7 @@ static int handle_xsvf_command(struct command_context_s *cmd_ctx, char *cmd, cha
|
|||
int bitcount;
|
||||
tap_state_t my_end_state = xruntest ? TAP_IDLE : xendir;
|
||||
|
||||
if (opcode == XSIR )
|
||||
if (opcode == XSIR)
|
||||
{
|
||||
/* one byte bitcount */
|
||||
if (read(xsvf_fd, short_buf, 1) < 0)
|
||||
|
@ -664,7 +664,7 @@ static int handle_xsvf_command(struct command_context_s *cmd_ctx, char *cmd, cha
|
|||
break;
|
||||
}
|
||||
|
||||
if (ndx < sizeof(comment)-1 )
|
||||
if (ndx < sizeof(comment)-1)
|
||||
comment[ndx++] = uc;
|
||||
|
||||
} while (uc != 0);
|
||||
|
@ -703,15 +703,15 @@ static int handle_xsvf_command(struct command_context_s *cmd_ctx, char *cmd, cha
|
|||
|
||||
LOG_DEBUG("XWAIT %s %s usecs:%d", tap_state_name(wait_state), tap_state_name(end_state), delay);
|
||||
|
||||
if (runtest_requires_tck && wait_state == TAP_IDLE )
|
||||
if (runtest_requires_tck && wait_state == TAP_IDLE)
|
||||
{
|
||||
jtag_add_runtest(delay, end_state);
|
||||
}
|
||||
else
|
||||
{
|
||||
jtag_add_statemove(wait_state );
|
||||
jtag_add_statemove(wait_state);
|
||||
jtag_add_sleep(delay);
|
||||
jtag_add_statemove(end_state );
|
||||
jtag_add_statemove(end_state);
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
@ -734,14 +734,14 @@ static int handle_xsvf_command(struct command_context_s *cmd_ctx, char *cmd, cha
|
|||
if (read(xsvf_fd, &wait, 1) < 0
|
||||
|| read(xsvf_fd, &end, 1) < 0
|
||||
|| read(xsvf_fd, clock_buf, 4) < 0
|
||||
|| read(xsvf_fd, usecs_buf, 4) < 0 )
|
||||
|| read(xsvf_fd, usecs_buf, 4) < 0)
|
||||
{
|
||||
do_abort = 1;
|
||||
break;
|
||||
}
|
||||
|
||||
wait_state = xsvf_to_tap(wait );
|
||||
end_state = xsvf_to_tap(end );
|
||||
wait_state = xsvf_to_tap(wait);
|
||||
end_state = xsvf_to_tap(end);
|
||||
|
||||
clock_count = be_to_h_u32(clock_buf);
|
||||
usecs = be_to_h_u32(usecs_buf);
|
||||
|
@ -758,17 +758,17 @@ static int handle_xsvf_command(struct command_context_s *cmd_ctx, char *cmd, cha
|
|||
*/
|
||||
if (wait_state != TAP_IRPAUSE && wait_state != TAP_DRPAUSE && wait_state != TAP_RESET && wait_state != TAP_IDLE)
|
||||
{
|
||||
LOG_ERROR("illegal XWAITSTATE wait_state: \"%s\"", tap_state_name(wait_state ));
|
||||
LOG_ERROR("illegal XWAITSTATE wait_state: \"%s\"", tap_state_name(wait_state));
|
||||
unsupported = 1;
|
||||
}
|
||||
|
||||
jtag_add_statemove(wait_state );
|
||||
jtag_add_statemove(wait_state);
|
||||
|
||||
jtag_add_clocks(clock_count );
|
||||
jtag_add_clocks(clock_count);
|
||||
|
||||
jtag_add_sleep(usecs );
|
||||
jtag_add_sleep(usecs);
|
||||
|
||||
jtag_add_statemove(end_state );
|
||||
jtag_add_statemove(end_state);
|
||||
}
|
||||
break;
|
||||
|
||||
|
@ -779,7 +779,7 @@ static int handle_xsvf_command(struct command_context_s *cmd_ctx, char *cmd, cha
|
|||
*/
|
||||
uint8_t count_buf[4];
|
||||
|
||||
if (read(xsvf_fd, count_buf, 4) < 0 )
|
||||
if (read(xsvf_fd, count_buf, 4) < 0)
|
||||
{
|
||||
do_abort = 1;
|
||||
break;
|
||||
|
@ -801,7 +801,7 @@ static int handle_xsvf_command(struct command_context_s *cmd_ctx, char *cmd, cha
|
|||
|
||||
if (read(xsvf_fd, &state, 1) < 0
|
||||
|| read(xsvf_fd, clock_buf, 4) < 0
|
||||
|| read(xsvf_fd, usecs_buf, 4) < 0 )
|
||||
|| read(xsvf_fd, usecs_buf, 4) < 0)
|
||||
{
|
||||
do_abort = 1;
|
||||
break;
|
||||
|
@ -827,7 +827,7 @@ static int handle_xsvf_command(struct command_context_s *cmd_ctx, char *cmd, cha
|
|||
LOG_DEBUG("LSDR");
|
||||
|
||||
if (xsvf_read_buffer(xsdrsize, xsvf_fd, dr_out_buf) != ERROR_OK
|
||||
|| xsvf_read_buffer(xsdrsize, xsvf_fd, dr_in_buf) != ERROR_OK )
|
||||
|| xsvf_read_buffer(xsdrsize, xsvf_fd, dr_in_buf) != ERROR_OK)
|
||||
{
|
||||
do_abort = 1;
|
||||
break;
|
||||
|
@ -836,11 +836,11 @@ static int handle_xsvf_command(struct command_context_s *cmd_ctx, char *cmd, cha
|
|||
if (limit < 1)
|
||||
limit = 1;
|
||||
|
||||
for (attempt = 0; attempt < limit; ++attempt )
|
||||
for (attempt = 0; attempt < limit; ++attempt)
|
||||
{
|
||||
scan_field_t field;
|
||||
|
||||
jtag_add_statemove(loop_state );
|
||||
jtag_add_statemove(loop_state);
|
||||
jtag_add_clocks(loop_clocks);
|
||||
jtag_add_sleep(loop_usecs);
|
||||
|
||||
|
@ -871,9 +871,9 @@ static int handle_xsvf_command(struct command_context_s *cmd_ctx, char *cmd, cha
|
|||
}
|
||||
}
|
||||
|
||||
if (!matched )
|
||||
if (!matched)
|
||||
{
|
||||
LOG_USER("LSDR mismatch" );
|
||||
LOG_USER("LSDR mismatch");
|
||||
tdo_mismatch = 1;
|
||||
break;
|
||||
}
|
||||
|
@ -890,7 +890,7 @@ static int handle_xsvf_command(struct command_context_s *cmd_ctx, char *cmd, cha
|
|||
break;
|
||||
}
|
||||
|
||||
switch (trst_mode )
|
||||
switch (trst_mode)
|
||||
{
|
||||
case XTRST_ON:
|
||||
jtag_add_reset(1, 0);
|
||||
|
@ -902,7 +902,7 @@ static int handle_xsvf_command(struct command_context_s *cmd_ctx, char *cmd, cha
|
|||
case XTRST_ABSENT:
|
||||
break;
|
||||
default:
|
||||
LOG_ERROR("XTRST mode argument (0x%02X) out of range", trst_mode );
|
||||
LOG_ERROR("XTRST mode argument (0x%02X) out of range", trst_mode);
|
||||
do_abort = 1;
|
||||
}
|
||||
}
|
||||
|
@ -918,7 +918,7 @@ static int handle_xsvf_command(struct command_context_s *cmd_ctx, char *cmd, cha
|
|||
LOG_DEBUG("xsvf failed, setting taps to reasonable state");
|
||||
|
||||
/* upon error, return the TAPs to a reasonable state */
|
||||
jtag_add_statemove(TAP_IDLE );
|
||||
jtag_add_statemove(TAP_IDLE);
|
||||
jtag_execute_queue();
|
||||
break;
|
||||
}
|
||||
|
@ -927,7 +927,7 @@ static int handle_xsvf_command(struct command_context_s *cmd_ctx, char *cmd, cha
|
|||
if (tdo_mismatch)
|
||||
{
|
||||
command_print(cmd_ctx, "TDO mismatch, somewhere near offset %lu in xsvf file, aborting",
|
||||
file_offset );
|
||||
file_offset);
|
||||
|
||||
|
||||
return ERROR_FAIL;
|
||||
|
|
Loading…
Reference in New Issue