Very interesting! You could try sending a key press from your terminal program to my version of the program to see if it responds. My instrumentation hooks the UART0 interrupt so in theory it should respond unless it is actually hanging in a global constructor but I did switch the ethernet related objects to be dynamically allocated at the beginning of main() instead of being globals so that I could init my instrumentation first.
sorry, no response,
I have also shorted TXD & RXD (with jumper) Just to check <echo>
nothing back from you'r code.
Wow, it must be dying pretty early or pretty hard (infinite loop at priority level 0) :)
Are you able to build simple apps with the online compiler that do nothing but say printf("Hello World"); to UART0 and have it work on your board?
I see that the sample from Thanassis which worked was a .hex file. Could it be that something in the process of flashing the part with a large .bin file from the online compiler is going wrong?
Yes I am using the board,
Normal I/O - fine,
Serial, (230400 K Baud - Flash Magic programming)
HID interface very reliable,
Must admit not tryed I2C, but 99% sure that is bair metal
will eventualy get round to testing I2C on my Frankinstein board
So I did not mess up that mutch :}
Definitely sounds like the board is accepting programs!
The only other thing I can think of is to try this version.
finaly got round to fitting 50R resistors to second board,
That's too bad. I was really hoping that the .hex file found within that .zip archive in my last post would have worked.
What is the actual process that you use to program your device? One thing I am suspicious of is that many of the things that you mentioned which have worked on your board probably don't require very large binaries. In particular they would be less than 64k. However, networking related binaries will be larger than 64k and some of the bin2hex utilities don't support binaries that are larger than 64k.
My bad, i think I flashed the wrong file,
Ethernet example working :)
Dont know what I did wrong.
from the 'ANY' key.
What did you do ???????????????????????
just attempted to make a BIG .HEX with bin2hex,
bin file 104K,
hex file 249K,
Bin2Hex did not complain and was supprisingly fast,
although no longer have that hardware to test it anymore.
info: a 'bitmap' copied twice.
That is the same program that I originally sent you as a .bin file except I used the GNU objcopy tool to do the conversion.
You can download the GNU tools from https://sourcery.mentor.com/sgpp/lite/arm/portal/release1802
The command line to use for converting bin files to hex files with this tool is:
arm-none-eabi-objcopy -I binary -O ihex HTTPServerHelloWorld_LPC1768.bin HTTPServerHelloWorld_LPC1768.hex
Hope that helps,
I am away from my PC, for a while,
But do you think the bin 2 hex program is responsible for Ethernet success ?
I assume the link is for Bin2Hex.
I think that using objcopy instead of bin2hex is responsible for creating a proper hex file. The link I gave is for the Code Sourcery GCC tool chain which includes the objcopy utility that I used for doing the conversion.
Intel hex files use 16-bit addresses and should contain special records to change segments or use 32-bit linear addressing. My guess is that the output from bin2hex is missing these records so the data for addresses above 64k end up overwriting the first 64k of code.
If you look at the hex file I generated, you can search it for the record that starts with :10FFF0. The record after it should contain:
This record signals that the start of the next chunk of records should be at address 0x10000 I don't see where you have posted one of your hex files so I can't dump it to see if it is missing a record like this but I suspect that it is.
More info on hex files can be found on wikipedia http://en.wikipedia.org/wiki/Intel_HEX
The version of bin2hex found here even mentions in its description that it only supports 64k files.
So , the problem was the (ht-lab ) bin2hex utility used for converting bin to hex
for making hex file , for use with flashmagic ?
Is Keil bin2hex utility suitable for files larger than 64K , then ?
or just the Keil compiler bypasses the problem , as it has internal support for hex output ?
Thanks to all of you that helped,
GCC's Bin2Hex works,
Will do some more tests later, just to make sure it was not a fluke !
once again thanks to Adam Green, Giuseppe Zangari and Thanassis Mavrogeorgiadis
I'm so happy! Great!!!
So GCC is free?
This is nice to hear, do You all plan to make some notebook page about ethernet on custom PCB?
Thank You Ceri,
this is far above my skills to get it working by myslef. Thank You for Your hard work.
Nice , you found the problem was at the bin2hex utility !
Today , I went over a very old post mentioning the same problem !!!
Too bad it was "buried " inside the forum long time ago and we couldn't spot it earlier !!!
Oh what a beautiful day. Found my problem, not hardware at all, it was BIN2HEX. Simple in the end, Flash Magic needs a .hex file and I've been converting the compiler .bin file with a very old (Intel8048 era) bin2hex utility. Even the simplest 'Hello World' application with the Ethernet libs fills 75K of code. So if anyone else is using In-System programming (ISP) and FlashMagic then the advice is, get an uptodate BIN2HEX and use the /4 option for either 24 or 32bit addressing range, not the standard 16bit range. Example 'bin2hex /4 test.bin test.hex'. And thank you everyone who reponded here.
Please log in to post a reply.
mbed, the fastest way to prototype with ARM based microcontrollers.
^ back to top