Olimex STR-P712 with RLink Troubles

Please bear with me; I’m really new to both the ARM7 and to anything open-source, so I’m hopefully missing something obvious.

I’m using the STR712FR2 ARM7. We bought the demo board from Olimex so we could start working on some test programs and figuring out how to program the chip. We wanted a portable programming interface, so we chose the RLink from Raisonance. It was inexpensive and we should be able to send a hex file to a customer and have them upload it with the RFlasher utility that comes with it.

My question is two-fold.

First, none of the sample code from Raisonance seems to execute. I don’t know why it doesn’t work, and I don’t really know where to start. I know the RLink is communicating with and programming the ARM7, because I can load the program in and verify it. I can try to verify a different program, and the interface reports that the programs don’t match, etc.

Is anyone else familiar with this problem? Or, does anyone know where I can get a hex file that does something simple, that for sure works on the Olimex board?

The other, less important issue, is when I build a program with Eclipse and try to load the hex file, I get an error that says “Loading data to non-physical address: 0x0. This will not work on a real device.” I don’t get this error when I load in the hex file from Raisonance’s sample programs, or a hex file output from their RIDE environment.

Thanks in advance,

Matt

meiermat@msu.edu

When you say doesn’t work what do you mean?

The raisonance examples will probably be configured for their reva board, so it is very unlikely they will work on other hardware.

Raisonance probably does not like loading code to address 0, even though this is a real address it will me mapped internally to the flash - for your device it will start at 0x40000000.

why not modify one of the Raisonance example to work with your hardware using RIDE?

Regards

Spen

What I mean by “Doesn’t work” is this:

When I load the example application that toggles the GPIO pins, none of the IO pins are toggled. When I load the UART example, the UART doesn’t transmit the bytes it should, according to their code. Similarly, the PWM example doesn’t output a PWM on the specified pin.

I’m observing the pins on the built-in headers on the Olimex board, as well as directly out of the ARM. Shouldn’t the program work on the STR712 no matter where it is mounted? Why should the processor behave differently when it’s mounted on a different piece of hardware?

Thanks again,

Matt

The processor will behave exactly the same on both boards.

But if the software for example writes to uart0 then it will need to be connected on both boards.

Are the examples that come with the olimex board not suitable?

Cheers

Spen

There weren’t any pre-compiled projects that came with the Olimex board. I contacted Olimex, and they sent me the source files for IAR, which didn’t help me because the RLink isn’t compatible with IAR and I couldn’t figure out how to compile the source files without a makefile and linker script.

However, I was able to get the RLink working. I had inadvertently deleted some of the software from Raisonance while I was cleaning up my desktop, and so I reinstalled everything and that seemed to solve my problem. I feel like an idiot, since I must have changed something in RIDE or RFlasher and not noticed, but at least it works now.

Now I have a new question: does anyone have some suggestions for setting up a project for the STR712 using Eclipse?

I obviously have no idea what I’m doing, otherwise I wouldn’t have had so much trouble with a simple flash programmer. I was previously using the LPC2106. It was GREAT because I could step through the oodles of tutorials and set-up help that was out there (Jim Lynch is my hero).

Unfortunately, we needed four serial ports, so we moved over to the STR712. I thought it would be a pretty smooth transition, but apparently I was way off with that estimation.

I’ve downloaded sample projects for all sorts of development environments. Many of them even use the gnuarm toolchain, but none of them runs properly when I try and set them up in Eclipse. I CAN get the samples from Raisonance to compile and run fine with their RIDE environment; I just don’t like their IDE, and to exacerbate things I can’t figure out how to add source files to keep my main.c from getting really huge. I suppose I can deal with it, but I’m so used to Eclipse I would like to keep using it. Plus, I’m using it to continue programming the LPC2106 and the MSP430 for other projects at work.

I know my issue is rooted in the boot sequence for the chip, and with the memory map. All the examples I’ve found are configured for debugging, so they all are configured to run in RAM. I have two demo boards with the boot pin pulled low, so I need to program the chip to run in flash. I’ve tried altering the linker scripts, writing my own makefile, and all sorts of other stuff, but nothing has worked. I have been able to elimiate the addressing error I mentioned in my first post, but I might as well be performing open-heart surgery, since I’m still just taking stabs in the dark.

Does anyone have any basic suggestions about where to start? I’ve read all the appnotes from ST five times over, and they don’t seem to help, and I’ve been searching the internet for four days between this and my previous problem, without much success. Does anyone know if there’s a sample project out there with the basic files, makefile, etc all in once place? That would be perfect. Otherwise, any other tips would be greatly appreciated.

Thanks to all who’ve offered help thus far.

Matt