16
Messages
This section allows you to view all Messages made by this member. Note that you can only see Messages made in areas you currently have access to.
Messages - adamoutler
17
OpenOCD JTAG / Re: cfg for JTAG Cortex A8?
I've never JTAGged anything. I really have no clue what needs to be established for firmware upload. I've been reading alot and it is all very confusing.
18
OpenOCD JTAG / Re: cfg for JTAG Cortex A8?
19
OpenOCD JTAG / Re: cfg for JTAG Cortex A8?
20
OpenOCD JTAG / Re: cfg for JTAG Cortex A8?
it says something about the problem being 1.8V... Well, the Bus Pirate has a VPU line for powering pullup resistors, so that should not be a problem if a 1.8V power source is used.... It seems that the hardware should be capable of the work required.... I'm just not smart enough to do it.
I will support anyone who belives they may be able to get the Bus Pirate to JTAG a S5PC110 processor with anything in my means.
I forgot to mention.... People are selling JTAG services for $50 and a RIFF JTAG(a 1-click device) is available for $199. The bus pirate is the best answer here.
21
OpenOCD JTAG / Re: cfg for JTAG Cortex A8?
The processor is a HummingBird Cortext A8 with CoreSight. model: S5PC110.
22
OpenOCD JTAG / cfg for JTAG Cortex A8?
I've been working on non-invasive recovery methods, but it seems that I've run out of options now. So It's time to really look at JTAG.
The target CPU is a Cortex A8 with CoreSight. I've worked out the proper pinout and connectors to use here: http://forum.xda-developers.com/showthr ... ?t=1000175
I have:
A working device, a daily use device, and some guy's random brick
A bus pirate
The proper connectors worked out.
I need to get a solution for this processor though. Which .cfg do I use?
23
Bus Pirate Support / Re: jtag pinout- what is RES#?
24
Bus Pirate Support / jtag pinout- what is RES#?
http://dangerousprototypes.com/docs/Bus ... or_OpenOCD
Is it TRST, or NRST?
25
Bus Pirate Support / Re: UART Mode Input Problem
I made a program for the Arduino mega for communications with my phone.... If you have an Arduino, this may do the trick.... It will show you every charactor being sent in hex. then the line as it was intended to be read. you can switch modes with the "`" key.
Code: [Select]
/*
Arduino Serial Connector
Copyright 2011 Adam Outler
Licensed under the I Dont Give a Fuck License, Version 1.0 (the "License");
you may not use this file except in compliance with the License.
3. Send me an email if you find this helpful
If you're wondering where number 1 and 2 is, I don't give a fuck.
-Adam Outler adamoutler, gmail.com
/*
HEXOUTPUT displays a line of hex output then
a line of normal text- activated by "`"
BAUD will be the computer's baud rate and the
inital baud rate set for all devices
*/
boolean HEXOUTPUT=true;
unsigned long BAUD=115200;
//begin sketch
String MESSAGE[4]; //Hexoutput messages dumped into this string array
unsigned long SerialPrintTimer[4]={0,0,0,0}; //Serial timers off
int inByte;//byte received from serials 1,2,3
void setup() {
Serial.begin(BAUD); //Initialize Computer baud
setSerialBaudRate(BAUD); //Initialize Serials 1,2,3 baud
Serial.print("Communications established");
}
/*
Loop will check if Serial(computer) has anything to
say to the Serial1(device), and then says it. It
will also print all values from Serial1, Serial2,
and Serial3 to Serial(computer)
If HEXOUTPUT formatting is requested by pressing the
"`" key, it will display output in hex format, then
output a line of human readable text
*/
void loop() {
if ( HEXOUTPUT ) { // if hex output is requested then use this
hexOutputHandling();
} else { //Serial1,Serial2, Serial3>Computer in byte format
standardOutputHandling();
}
serialInputHandler();//send to Serial1 and handle special keys
checkForUntruncatedSerial(); //timer to print serial lines in std output
}
/*
serialInputHandler reads keys comming from computer
makes decisions based on key numbers
sends output to Serial1
*/
void serialInputHandler() {
if (Serial.available()) { //User has commanded input
int IncommingSerial=Serial.read(); //read input to var
//turn on/off HEXOUTPUT with the "`" key
if (IncommingSerial == 96 ) displayMenu();
Serial1.print(IncommingSerial, BYTE); //Send var to Serial1
}
}
void displayMenu(){
Serial.println("");
Serial.println("Main Menu");
Serial.println("--------------------");
Serial.println("--HEX OUTPUT--");
Serial.println("`-toggle hex output"); //96
Serial.println("--BAUD RATE--");
Serial.println("a-115200");//97
Serial.println("b-57600");//98
Serial.println("c-38400");//99
Serial.println("d-28800");//100
Serial.println("e-19200");//101
Serial.println("f-14400");//102
Serial.println("g-9600");//103
Serial.println("h-4800");//104
Serial.println("i-2400");//105
Serial.println("j-1200");//106
Serial.println("k-300");//107
Serial.print("Select one, press enter");
int inkey;
Serial.flush();
while (inkey != 13 ){
inkey=-1;
if (Serial.available()) inkey=Serial.read();
switch (inkey) {
case 96: //`
HEXOUTPUT=(!HEXOUTPUT);
displayBlatentChangeMessage("HEX Output toggled");
break;
case 97: //a
setSerialBaudRate(115200);
displayBlatentChangeMessage("Baud 115200");
break;
case 98: //b
setSerialBaudRate(57600);
displayBlatentChangeMessage("Baud 57600");
break;
case 99: //c
setSerialBaudRate(38400);
displayBlatentChangeMessage("Baud 38400");
break;
case 100: //d
setSerialBaudRate(28800);
displayBlatentChangeMessage("Baud 28800");
break;
case 101: //e
setSerialBaudRate(19200);
displayBlatentChangeMessage("Baud 19200");
break;
case 102: //f
setSerialBaudRate(14400);
displayBlatentChangeMessage("Baud 14400");
break;
case 103: //g
setSerialBaudRate(9600);
displayBlatentChangeMessage("Baud 9600");
break;
case 104: //h
setSerialBaudRate(4800);
displayBlatentChangeMessage("Baud 4800");
break;
case 105: //i
setSerialBaudRate(2400);
displayBlatentChangeMessage("Baud 2400");
break;
case 106: //j
setSerialBaudRate(1200);
displayBlatentChangeMessage("Baud 1200");
break;
case 107: //k
setSerialBaudRate(300);
displayBlatentChangeMessage("Baud 300");
break;
case 13: //l
return;
break;
}
}
}
void displayBlatentChangeMessage(String Message){
for (int i = 0; i < 40; i++){
Serial.println(Message);
}
}
/*
checkForUntruncatedSerial reads timers put on
each serial line and if it has been greater then
the time allowed for a 0x13, then it will print the line
*/
void checkForUntruncatedSerial() {
double time=millis();
for ( int i = 1; i <= 3; i++){
if ( SerialPrintTimer[i] != 0 && SerialPrintTimer[i] < time ){
displayNormal(i);
}
}
}
void setSerialBaudRate(unsigned long baud){
if ( baud == 0.00 ) baud=BAUD;
Serial1.begin(baud);
Serial2.begin(baud);
Serial3.begin(baud);
}
/*
standardOutputHandling reads from Serial1
Serial2, and serial3 then outputs to computer
*/
void standardOutputHandling(){
if (Serial1.available()) Serial.print(Serial1.read(), BYTE);
if (Serial2.available()) Serial.print(Serial2.read(), BYTE);
if (Serial3.available()) Serial.print(Serial3.read(), BYTE);
}
/*
hexOutputHandling reads from Serial1, Serial2,
and Serial3 then sends to displayHex function
for processing. The output is stored in an
array and displayed on 0x13, or after timer
has elapsed
*/
void hexOutputHandling(){
if (Serial1.available()) {
inByte = Serial1.read();
displayHex(1); //Serial1>displayHexfunction>Computer
}
if (Serial2.available()) {
inByte = Serial2.read();
displayHex(2);//Serial2>displayHexfunction>Computer
}
if (Serial3.available()) {
inByte = Serial3.read();
displayHex(3);//Serial3>displayHexfunction>Computer
}
}
/*
displayNormal is called at the end of a line of hexoutput
or when serialPrintTimer has elapsed. It displays the
byte format output and the serial line which originated
the transaction
*/
void displayNormal( int SerialID ){
Serial.println("");
Serial.print(" SERIAL");
Serial.print(SerialID);
Serial.println(": " + MESSAGE[SerialID]);//Serial1:Message
MESSAGE[SerialID]="";//clear message
SerialPrintTimer[SerialID]=0;//reset print timer
}
/*
displayHex formats the hexoutput and the final message
which is displayed when char 13 is received or the timer
has elapsed
*/
void displayHex(int SerialID){
SerialPrintTimer[SerialID]=millis()+ 1000;//set timer for display
if ( inByte >= 19 ) MESSAGE[SerialID] = MESSAGE[SerialID] + " " + (char)inByte; //dump char into string
Serial.print("|");
Serial.print(inByte, HEX); //print character
if ( inByte == 13 ){ displayNormal( SerialID ); }//line ending dump string onto screen
}
example:
Code: [Select]
+k�́Co., Ltd. 2006-2010
-----------------------------------------------------------
+n1stVPN 2688
+nPgsPerBlk 64
+n1stVPN 3008
+nPgsPerBlk 64
PBL found bootable SBL: Partition(4).
Main Menu
--------------------
--HEX OUTPUT--
`-toggle hex output
--BAUD RATE--
a-115200
b-57600
c-38400
d-28800
e-19200
f-14400
g-9600
h-4800
i-2400
j-1200
k-300
Select one, press enterHEX Output toggled
HEX Output toggled
HEX Output toggled
........
|D6|D1|C9|BD|B9|A5|8D|CD|81|43|6F|2E|2C|20|4C|74|64|2E|20|32|30|30|36|2D|32|30|31|30|A|D
SERIAL1: � � � ֽ � � � � ́ C o . , L t d . 2 0 0 6 - 2 0 1 0
|2D|2D|2D|2D|2D|2D|2D|2D|2D|2D|2D|2D|2D|2D|2D|2D|2D|2D|2D|2D|2D|2D|2D|2D|2D|2D|2D|2D|2D|2D|2D|2D|2D|2D|2D|2D|2D|2D|2D|2D|2D|2D|2D|2D|2D|2D|2D|2D|2D|2D|2D|2D|2D|2D|2D|2D|2D|2D|2D|A|D
SERIAL1: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|A|D
SERIAL1:
|2B|6E|31|73|74|56|50|4E|20|20|20|20|20|20|20|32|36|38|38|20|A|D
SERIAL1: + n 1 s t V P N 2 6 8 8
|2B|6E|50|67|73|50|65|72|42|6C|6B|20|20|20|20|36|34|20|A|D
SERIAL1: + n P g s P e r B l k 6 4
|2B|6E|31|73|74|56|50|4E|20|20|20|20|20|20|20|33|30|30|38|20|A|D
SERIAL1: + n 1 s t V P N 3 0 0 8
|2B|6E|50|67|73|50|65|72|42|6C|6B|20|20|20|20|36|34|20|A|D
SERIAL1: + n P g s P e r B l k 6 4
|50|42|4C|20|66|6F|75|6E|64|20|62|6F|6F|74|61|62|6C|65|20|53|42|4C|3A|20|50|61|72|74|69|74|69|6F|6E|28|34|29|2E|A|D
SERIAL1: P B L f o u n d b o o t a b l e S B L : P a r t i t i o n ( 4 ) .
|AB|8D|D1|C9|BD|B9|A5|8D|CD|81|43|6F|2E|2C|20|4C|74|64|2E|20|32|30|30|36|2D|32|30|31|30|A|D
SERIAL1: � � � � ѽ � � � � ́ C o . , L t d . 2 0 0 6 - 2 0 1 0
|2D|2D|2D|2D|2D|2D|2D|2D|2D|2D|2D|2D|2D|2D|2D|2D|2D|2D|2D|2D|2D|2D|2D|2D|2D|2D|2D|2D|2D|2D|2D|2D|2D|2D|2D|2D|2D|2D|2D|2D|2D|2D|2D|2D|2D|2D|2D|2D|2D|2D|2D|2D|2D|2D|2D|2D|2D|2D|2D|A|D
SERIAL1: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|A|D
26
Bus Pirate Support / Re: Improved Bus Pirate case sticker
27
Bus Pirate Support / Re: Improved Bus Pirate case sticker
:-)
UART bridge mode that includes the CTS and RTS flow control signals. CTS is on the CS pin (PIC input from external circuit is passed to FTDI USB->serial chip). RTS is on the CLOCK pin (PIC output mirrors output from FTDI chip).[/quote]
Done. Also adjusted size of MISO line and spacing to minimum. With the Dangerous Prototypes logo at the bottom this case sticker now has the same dimensions as the bus pirate when printed at 42%
28
Bus Pirate Support / Re: Improved Bus Pirate case sticker
Yeah, like I said... It's unclaimed work... take it, put your name on it, market it.... I just wanted a case sticker which was accurate and easy to read. I got mine.
29
Bus Pirate Support / Re: Improved Bus Pirate case sticker
Added Dangerous Prototypes name to the bottom as I did not think it was right to have SeeedStudios name on there without Dangerous Prototypes.
Adjusted P0-P9 so they were not merged into the edges
Adjusted spacing
New printing size:
42% for sticker which covers the back
38% for paper with clear tape over the top
30
Bus Pirate Support / Re: Improved Bus Pirate case sticker
[quote author="Sjaak"]we got some comments on the way we wrote the colors, so we'll fix it.[/quote]
You can just use mine if you'd like. Like I said... It's not Copyright. So it's unclaimed work with the SeeedStudios name on it.
It would be nice if the Bus Pirate came with one of these on the back or something.