From 4d3142a06baa820186fb26eb441baab091a41715 Mon Sep 17 00:00:00 2001 From: Adrien Destugues Date: Sun, 12 Aug 2018 15:24:16 +0200 Subject: Fix python path diff --git a/src/ec2drv/csv2c.py b/src/ec2drv/csv2c.py index 65ca8f6..029a473 100755 --- a/src/ec2drv/csv2c.py +++ b/src/ec2drv/csv2c.py @@ -1,4 +1,4 @@ -#!/usr/bin/python +#!python # cvs2c # csv converter for devices table to c table # -- 2.16.4 From c84048849d8d96e1523478e8e360ce9922bac966 Mon Sep 17 00:00:00 2001 From: Adrien Destugues Date: Sun, 12 Aug 2018 15:24:24 +0200 Subject: Do not use "read_port" It overrides the kernel kit one, making everything crash on startup, of course. diff --git a/src/devel-tools/playback-comms.cpp b/src/devel-tools/playback-comms.cpp index f9de0a3..2652d0b 100644 --- a/src/devel-tools/playback-comms.cpp +++ b/src/devel-tools/playback-comms.cpp @@ -94,7 +94,7 @@ void Ec2Sim::go() { cout << "waiting for : "; print_vec( mSimData[i].tx ); - while(!read_port( buf,mSimData[i].tx.size()) ); + while(!read_ec2_port( buf,mSimData[i].tx.size()) ); for(unsigned int j=0; jboot_ver = read_port_ch(obj); + obj->boot_ver = read_ec2_port_ch(obj); DUMP_FUNC_END(); return obj->boot_ver; } @@ -102,7 +102,7 @@ BOOL boot_write_flash_page( EC2DRV *obj, uint8_t *buf, BOOL do_xor ) { write_port(obj,(char*)out_buf,512); } - read_port_ch(obj); // 0x00 + read_ec2_port_ch(obj); // 0x00 // printf("local_csum = 0x%04x, remote_csum=0x%04x\n",local_csum, boot_calc_page_cksum(obj)); BOOL r = boot_calc_page_cksum(obj) == local_csum; DUMP_FUNC_END(); @@ -124,7 +124,7 @@ uint8_t boot_read_byte( EC2DRV *obj, uint16_t addr ) cmd[1] = (addr>>8) & 0xff; cmd[2] = addr & 0xff; write_port(obj,cmd,3); - while(!read_port(obj,(char*)&c,1)) + while(!read_ec2_port(obj,(char*)&c,1)) write_port(obj,cmd,3); DUMP_FUNC_END(); return c; @@ -141,7 +141,7 @@ uint16_t boot_calc_page_cksum( EC2DRV *obj ) char buf[2]; uint16_t cksum; write_port(obj,"\x04\x00\x00",3); - read_port(obj,buf,2); + read_ec2_port(obj,buf,2); cksum = (buf[0]&0xff)<<8 | (buf[1]&0xff); // printf("checksum = 0x%04x\n",cksum); DUMP_FUNC(); diff --git a/src/ec2drv/c2_mode.c b/src/ec2drv/c2_mode.c index 3e69e3f..38c1851 100644 --- a/src/ec2drv/c2_mode.c +++ b/src/ec2drv/c2_mode.c @@ -15,7 +15,7 @@ uint8_t c2_special_read( EC2DRV *obj, uint8_t sfr) cmd[2] = 1; write_port( obj, (char*)cmd, 3 ); - read_port( obj, (char*)buf, 2 ); // +1 for 0x0d + read_ec2_port( obj, (char*)buf, 2 ); // +1 for 0x0d return buf[0]; } @@ -31,7 +31,7 @@ void c2_special_write( EC2DRV *obj, uint8_t sfr, uint8_t value ) cmd[2] = 1; cmd[3] = value & 0xff; write_port( obj, (char*)cmd, 4 ); - read_port( obj, (char*)buf, 1 ); // +1 for 0x0d + read_ec2_port( obj, (char*)buf, 1 ); // +1 for 0x0d } /** Perform opperations necessary before any flash write or erase @@ -145,7 +145,7 @@ uint16_t c2_device_id( EC2DRV *obj ) // this appeared in new versions of IDE but seems to have no effect for F310 // EC2 chokes on this!!!! trx(obj,"\xfe\x08",2,"\x0d",1); write_port( obj,"\x22", 1 ); // request device id (C2 mode) - read_port( obj, buf, 3 ); + read_ec2_port( obj, buf, 3 ); return buf[0]<<8 | buf[1]; } @@ -156,7 +156,7 @@ uint16_t c2_unique_device_id( EC2DRV *obj ) // ec2_target_halt(obj); // halt needed otherwise device may return garbage! write_port(obj,"\x23",1); - read_port(obj,buf,3); + read_ec2_port(obj,buf,3); dev_id = buf[1]; // print_buf( buf,3); // ec2_target_halt(obj); // halt needed otherwise device may return garbage! @@ -189,7 +189,7 @@ void c2_erase_flash( EC2DRV *obj ) printf("Start erase3\n"); write_port( obj, "\x3C",1); // Erase entire device printf("Start erase4\n"); - read_port_ch(obj); // 0x0d + read_ec2_port_ch(obj); // 0x0d printf("Start erase5\n"); flash_write_post(obj); printf("Start erase6\n"); @@ -418,7 +418,7 @@ BOOL c2_read_flash( EC2DRV *obj, uint8_t *buf, uint32_t start_addr, int len, BOO cmd[2] = high; cmd[3] = l; write_port( obj, (char*)cmd, 4 ); - read_port( obj, (char*)buf+i, cmd[3]+1 ); // +1 for 0x0d + read_ec2_port( obj, (char*)buf+i, cmd[3]+1 ); // +1 for 0x0d if (buf[i+cmd[3]] != 0x0d) return FALSE; i+=l; @@ -474,7 +474,7 @@ BOOL c2_read_xdata_emif( EC2DRV *obj, char *buf, int start_addr, int len ) block_len = (len-cnt)>block_len_max ? block_len_max : len-cnt; cmd[3] = block_len; write_port( obj, cmd, 4 ); - read_port( obj, buf+cnt, block_len+1 ); // +1 for 0x0d terminator ///@FIXME do we need to read one extra here for 0x0d? + read_ec2_port( obj, buf+cnt, block_len+1 ); // +1 for 0x0d terminator ///@FIXME do we need to read one extra here for 0x0d? addr += block_len; cnt += block_len; } @@ -521,7 +521,7 @@ BOOL c2_read_xdata_F350( EC2DRV *obj, char *buf, int start_addr, int len ) cmd[2] = 0x00; cmd[3] = (len-ofs)>=max_read_len ? max_read_len : (len-ofs); write_port( obj, (char*)cmd, 4 ); - read_port( obj, (char*)buf+ofs, cmd[3]+1 ); // for 0x0d terminator + read_ec2_port( obj, (char*)buf+ofs, cmd[3]+1 ); // for 0x0d terminator } // restore SFR page register @@ -578,12 +578,12 @@ BOOL c2_write_xdata_emif( EC2DRV *obj, char *buf, int start_addr, int len ) // split write over 2 USB writes write_port( obj, cmd, 0x3f ); write_port( obj, &cmd[cmd_len+0x3b], 1 ); - ok |= (read_port_ch( obj)=='\x0d'); + ok |= (read_ec2_port_ch( obj)=='\x0d'); } else { write_port( obj, cmd, block_len + cmd_len ); - ok |= (read_port_ch( obj)=='\x0d'); + ok |= (read_ec2_port_ch( obj)=='\x0d'); } addr += block_len; cnt += block_len; @@ -605,9 +605,9 @@ void c2_read_ram( EC2DRV *obj, char *buf, int start_addr, int len ) //T 28 24 02 R 7C 00 //T 28 26 02 R 00 00 write_port( obj,"\x28\x24\x02",3 ); - read_port( obj, &tmp[0], 2); + read_ec2_port( obj, &tmp[0], 2); write_port( obj,"\x28\x26\x02",3 ); - read_port( obj, &tmp[2], 2); + read_ec2_port( obj, &tmp[2], 2); if( start_addr<3 ) { memcpy( &buf[0], &tmp[start_addr], 3-start_addr ); @@ -627,7 +627,7 @@ void c2_read_ram_sfr( EC2DRV *obj, char *buf, int start_addr, int len, BOOL sfr cmd[1] = start_addr+i; cmd[2] = len-i >= block_len ? block_len : len-i; write_port( obj, (char*)cmd, 3 ); - read_port( obj, buf+i, cmd[2] ); + read_ec2_port( obj, buf+i, cmd[2] ); } } @@ -753,12 +753,12 @@ BOOL c2_write_xdata_F35x( EC2DRV *obj, char *buf, int start_addr, int len ) // split write over 2 USB writes write_port( obj, cmd, 0x3f ); write_port( obj, &cmd[cmd_len+0x3b], 1 ); - ok |= (read_port_ch( obj)=='\x0d'); + ok |= (read_ec2_port_ch( obj)=='\x0d'); } else { write_port( obj, cmd, block_len + cmd_len ); - ok |= (read_port_ch( obj)=='\x0d'); + ok |= (read_ec2_port_ch( obj)=='\x0d'); } addr += block_len; cnt += block_len; @@ -937,7 +937,7 @@ BOOL c2_target_halt_poll( EC2DRV *obj ) char buf[2]; write_port( obj, "\x27", 1 ); //write_port( obj, "\x27\x00", 2 ); - read_port( obj, buf, 2 ); + read_ec2_port( obj, buf, 2 ); return buf[0]==0x01; // 01h = stopped, 00h still running } diff --git a/src/ec2drv/ec2drv.c b/src/ec2drv/ec2drv.c index adb3ab6..5468e5d 100644 --- a/src/ec2drv/ec2drv.c +++ b/src/ec2drv/ec2drv.c @@ -29,6 +29,7 @@ #include // Error number definitions #include // POSIX terminal control definitions #include +#include #include "ec2drv.h" #include "config.h" #include "boot.h" @@ -1107,7 +1108,7 @@ void read_active_regs( EC2DRV *obj, char *buf ) // R0-R1 write_port( obj, "\x02\x02\x24\x02", 4 ); - read_port( obj, &buf[0], 2 ); + read_ec2_port( obj, &buf[0], 2 ); } /** Read the targets program counter @@ -1122,12 +1123,12 @@ uint16_t ec2_read_pc( EC2DRV *obj ) if( obj->mode==JTAG ) { write_port( obj, "\x02\x02\x20\x02", 4 ); - read_port( obj, (char*)buf, 2 ); + read_ec2_port( obj, (char*)buf, 2 ); } else if( obj->mode==C2 ) { write_port( obj, "\x28\x20\x02", 3 ); - read_port( obj, (char*)buf, 2 ); + read_ec2_port( obj, (char*)buf, 2 ); } return ((buf[1]<<8) | buf[0]); } @@ -1182,7 +1183,7 @@ uint16_t ec2_step( EC2DRV *obj ) trx( obj, "\x13\x00", 2, "\x01", 1 ); // very similar to 1/2 a target_halt command, test to see if stopped... write_port( obj, "\x02\x02\x20\x02", 4 ); - read_port( obj, buf, 2 ); + read_ec2_port( obj, buf, 2 ); return (uint8_t)buf[0] | ((uint8_t)buf[1]<<8); } else if( obj->mode==C2 ) @@ -1654,7 +1655,7 @@ BOOL trx( EC2DRV *obj, char *txbuf, int txlen, char *rxexpect, int rxlen ) { char rxbuf[256]; write_port( obj, txbuf, txlen ); - if( read_port( obj, rxbuf, rxlen ) ) + if( read_ec2_port( obj, rxbuf, rxlen ) ) return memcmp( rxbuf, rxexpect, rxlen )==0 ? TRUE : FALSE; else return FALSE; @@ -1781,7 +1782,7 @@ BOOL write_port( EC2DRV *obj, char *buf, int len ) } } -int read_port_ch( EC2DRV *obj ) +int read_ec2_port_ch( EC2DRV *obj ) { if( obj->dbg_adaptor==EC3 ) { @@ -1790,7 +1791,7 @@ int read_port_ch( EC2DRV *obj ) else { char ch; - if( read_port( obj, &ch, 1 ) ) + if( read_ec2_port( obj, &ch, 1 ) ) return ch; else return -1; @@ -1803,9 +1804,9 @@ int read_port_ch( EC2DRV *obj ) \param len Number of bytes to read. \returns TRUE on success, FALSE on timeout ro failure. */ -BOOL read_port( EC2DRV *obj, char *buf, int len ) +BOOL read_ec2_port( EC2DRV *obj, char *buf, int len ) { - return read_port_tm( obj, buf, len, 100000 ); + return read_ec2_port_tm( obj, buf, len, 100000 ); } @@ -1816,7 +1817,7 @@ BOOL read_port( EC2DRV *obj, char *buf, int len ) \param ms Number of milliseconds beefore a timeout will occur. \returns TRUE on success, FALSE on timeout ro failure. */ -BOOL read_port_tm( EC2DRV *obj, char *buf, int len, uint32_t ms ) +BOOL read_ec2_port_tm( EC2DRV *obj, char *buf, int len, uint32_t ms ) { if( obj->dbg_adaptor==EC3 ) { diff --git a/src/ec2drv/ec2drv.h b/src/ec2drv/ec2drv.h index 95cb94e..5975807 100644 --- a/src/ec2drv/ec2drv.h +++ b/src/ec2drv/ec2drv.h @@ -131,9 +131,9 @@ BOOL ec2_write_raw_sfr(EC2DRV *obj, uint8_t addr, uint8_t value ); BOOL trx( EC2DRV *obj, char *txbuf, int txlen, char *rxexpect, int rxlen ); BOOL write_port_ch( EC2DRV *obj, char ch ); BOOL write_port( EC2DRV *obj, char *buf, int len ); -int read_port_ch( EC2DRV *obj ); -BOOL read_port( EC2DRV *obj, char *buf, int len ); -BOOL read_port_tm( EC2DRV *obj, char *buf, int len, uint32_t ms ); +int read_ec2_port_ch( EC2DRV *obj ); +BOOL read_ec2_port( EC2DRV *obj, char *buf, int len ); +BOOL read_ec2_port_tm( EC2DRV *obj, char *buf, int len, uint32_t ms ); void set_flash_addr_jtag( EC2DRV *obj, uint32_t addr ); void ec2_core_suspend( EC2DRV *obj ); diff --git a/src/ec2drv/jtag_mode.c b/src/ec2drv/jtag_mode.c index 7004cff..7ccaff7 100644 --- a/src/ec2drv/jtag_mode.c +++ b/src/ec2drv/jtag_mode.c @@ -26,7 +26,7 @@ uint16_t jtag_device_id( EC2DRV *obj ) char buf[6]; // trx( obj,"\x0A\x00",2,"\x21\x01\x03\x00\x00\x12",6); write_port( obj, "\x0A\x00", 2 ); - read_port( obj, buf, 6 ); + read_ec2_port( obj, buf, 6 ); return buf[2]<<8 | 0; // no rev id known yet } @@ -39,7 +39,7 @@ uint16_t jtag_unique_device_id( EC2DRV *obj ) ec2_target_halt(obj); // halt needed otherwise device may return garbage! trx(obj,"\x10\x00",2,"\x07\x0D",2); write_port(obj,"\x0C\x02\x80\x12",4); - read_port(obj,buf,4); + read_ec2_port(obj,buf,4); // print_buf( buf,4); return buf[2]; } @@ -220,7 +220,7 @@ BOOL jtag_write_flash_sector( EC2DRV *obj, uint32_t sect_addr, uint8_t *buf, memcpy(tbuf,"\x12\x02\x0c\x00",4); memcpy(tbuf+4,buf,max_block_len); write_port(obj,tbuf,max_block_len+4); - result |= read_port_ch(obj)==0x0d; + result |= read_ec2_port_ch(obj)==0x0d; addr += max_block_len; buf += max_block_len; } @@ -235,7 +235,7 @@ BOOL jtag_write_flash_sector( EC2DRV *obj, uint32_t sect_addr, uint8_t *buf, tbuf[3] = 0x00; memcpy(&tbuf[4],buf,len); write_port(obj, tbuf,4+len); - result &= read_port_ch( obj )==0x0d; + result &= read_ec2_port_ch( obj )==0x0d; } } else @@ -257,7 +257,7 @@ BOOL jtag_write_flash_sector( EC2DRV *obj, uint32_t sect_addr, uint8_t *buf, : sector_size-offset; write_port(obj,(char*)buf+offset,blk); } - result &= read_port_ch(obj)==0x0d; + result &= read_ec2_port_ch(obj)==0x0d; } jtag_flashcon( obj, 0x00 ); @@ -423,11 +423,11 @@ BOOL jtag_read_flash( EC2DRV *obj, uint8_t *buf, cmd[2] = (len-i)>=block_size ? block_size : (len-i); cmd[3] = 0x00; write_port( obj, (char*)cmd, 4 ); - read_port( obj, tmp_buf, cmd[2]+1 ); // +1 for 0x0d terminator + read_ec2_port( obj, tmp_buf, cmd[2]+1 ); // +1 for 0x0d terminator memcpy(buf+i,tmp_buf,cmd[2]); result &= tmp_buf[cmd[2]]==0x0d; - //read_port( obj, buf+i, cmd[2]+1 ); - // result &= read_port_ch( obj )==0x0d; // requires ec2 ver 0x13 or newer + //read_ec2_port( obj, buf+i, cmd[2]+1 ); + // result &= read_ec2_port_ch( obj )==0x0d; // requires ec2 ver 0x13 or newer } jtag_flashcon( obj, 0x00 ); //trx( obj, "\x0D\x05\x82\x08\x00\x00\x00", 7, "\x0D", 1 ); @@ -631,7 +631,7 @@ BOOL jtag_erase_flash( EC2DRV *obj ) write_port(obj,"\x0F\x01\xA5",3); BOOL r; char c; - r = read_port_tm(obj,&c,1,5000); + r = read_ec2_port_tm(obj,&c,1,5000); r &= c==0x0d; trx( obj, "\x0b\x02\x02\x00",4,"\x0d",1); @@ -827,7 +827,7 @@ uint8_t JTAG_0x14( EC2DRV *obj, uint8_t a, uint8_t b ) cmd[2] = a; cmd[3] = b; write_port( obj, cmd, 4 ); - read_port( obj, cmd, 2 ); + read_ec2_port( obj, cmd, 2 ); return cmd[0]; } @@ -839,7 +839,7 @@ uint8_t JTAG_unknown_op_0x15( EC2DRV *obj ) { char buf[2]; write_port( obj, "\x15\x02\x18\x00",4); - read_port( obj, buf, 2); + read_ec2_port( obj, buf, 2); return buf[0]; } @@ -852,7 +852,7 @@ uint16_t JTAG_0x16_Len2( EC2DRV *obj, uint8_t a, uint8_t b ) cmd[2] = a; cmd[3] = b; write_port( obj, cmd, 4); - read_port( obj, cmd, 3); + read_ec2_port( obj, cmd, 3); return cmd[0] | (cmd[1]<<8); } @@ -865,7 +865,7 @@ uint32_t JTAG_0x16_Len3( EC2DRV *obj, uint8_t a, uint8_t b, uint8_t c ) cmd[3] = b; cmd[4] = c; write_port( obj, cmd, 5); - read_port( obj, cmd, 4); + read_ec2_port( obj, cmd, 4); return cmd[0] | (cmd[1]<<8) | (cmd[1]<<16); } @@ -897,7 +897,7 @@ BOOL ec2_connect_jtag( EC2DRV *obj, const char *port ) return FALSE; } write_port( obj, "\x06\x00\x00",3); - read_port( obj, buf, 1); + read_ec2_port( obj, buf, 1); printf("Debug adaptor ver = 0x%02x\n",buf[0]); ec2_target_reset( obj ); @@ -914,10 +914,10 @@ void jtag_read_ram( EC2DRV *obj, char *buf, int start_addr, int len ) ec2_read_ram_sfr( obj, buf, start_addr, len, FALSE ); char tmp[4]; write_port( obj,"\x02\x02\x24\x02",4 ); - read_port( obj, &tmp[0], 3); // 3rd byte is 0x0d terminator + read_ec2_port( obj, &tmp[0], 3); // 3rd byte is 0x0d terminator usleep(10000); write_port( obj,"\x02\x02\x26\x02",4 ); - read_port( obj, &tmp[2], 3); // 3rd byte is 0x0d terminator + read_ec2_port( obj, &tmp[2], 3); // 3rd byte is 0x0d terminator usleep(10000); if( start_addr<3 ) { @@ -938,8 +938,8 @@ void jtag_read_ram_sfr( EC2DRV *obj, char *buf, int start_addr, int len, BOOL sf cmd[3] = len-i >= 0x0C ? 0x0C : len-i; write_port( obj, cmd, 0x04 ); // usleep(10000); // try to prevent bad reads of RAM by letting the EC2 take a breather - //read_port( obj, buf+i, cmd[3] ); - read_port( obj, rbuf, cmd[3]+1 ); // +1 for terminator 0x0d + //read_ec2_port( obj, buf+i, cmd[3] ); + read_ec2_port( obj, rbuf, cmd[3]+1 ); // +1 for terminator 0x0d memcpy(buf+i,rbuf,cmd[3]); } } @@ -1236,7 +1236,7 @@ void jtag_read_xdata_page( EC2DRV *obj, char *buf, unsigned char page, cmd[2] = (start+i) & 0xFF; cmd[3] = (len-i)>=0x3C ? 0x3C : (len-i); write_port( obj, (char*)cmd, 4 ); - read_port( obj, buf, cmd[3]+1 ); // +1 for 0x0d terminator + read_ec2_port( obj, buf, cmd[3]+1 ); // +1 for 0x0d terminator buf += cmd[3]; } // close out XDATA read process...bug fix for bug #2024032 @@ -1313,7 +1313,7 @@ BOOL jtag_target_halt( EC2DRV *obj ) BOOL jtag_target_halt_poll( EC2DRV *obj ) { write_port( obj, "\x13\x00", 2 ); - return read_port_ch( obj )==0x01; // 01h = stopped, 00h still running + return read_ec2_port_ch( obj )==0x01; // 01h = stopped, 00h still running } -- 2.16.4