general questions regarding ARMs - Page 2

Do you have a question? Post it now! No Registration Necessary

Translate This Thread From English to

Threaded View
Re: general questions regarding ARMs

Quoted text here. Click to load it

Interesting. Is this how a boot loader would copy code to an ARM as
well?

Quoted text here. Click to load it

Sounds quite complicated - I think I like the AVR initialization
process better :)

Quoted text here. Click to load it

Are there any operating systems designed for some of the less powerful
ARMs? Or am I stuck writing everything on my own? I should mention
almost everything that this chip will be doing will be real time.

Quoted text here. Click to load it

Excuse my ignorance, but what is the difference between this and a
normal DMA unit?

Quoted text here. Click to load it

Thanks,

-Michael


Re: general questions regarding ARMs

Quoted text here. Click to load it

Sure.  Two that I've used are:

  eCos: http://sources.redhat.com/ecos/ Free (community
        supported). Still probably a bit too big for your
        resources.

  http://www.ucos-ii.com /
        Free for educational use if you buy the (very good) book.
        Should run nicely in 64K/256K.  If you've never used an
        RTOS before, the book is worth reading.

It should be trivial to port XMK, but that might be a bit much
if you've never done RTOS stuff before. http://www.shift-right.com/xmk/index.html

There are probably at least a dozen commercial RTOSes, but
since you're a studen I doubt you've got a couple grand to
spare for an RTOS.

Quoted text here. Click to load it

FIQ is just an interrupt pin.  The ARM has two interrupt
inputs.  The "normal" one and the "fast" one.  FIQ is the "fast
one".

--
Grant Edwards                   grante             Yow!  .. does your DRESSING
                                  at               ROOM have enough ASPARAGUS?
We've slightly trimmed the long signature. Click to see the full one.
Re: general questions regarding ARMs
Quoted text here. Click to load it

Kind of ... This is the way to write the initial boot loader
onto the Flash chip.

A boot loader is a piece of code running at the
bottom of the Flash and getting the data in in whatever
way it sees fit. Of course, the write to the Flash has
to be done in a way suitable for the Flash chip. There
is one complication, though: the Flash write code cannot
run from the Flash being written, as the chip cannot
be read during the erase or write cycle. The solution
is to copy the core of the write code into RAM and run it
from there.

In my constructions, there is a piece of boot code
on the first Flash segment (also called sector). The
rest of the Flash chip is handled as a disk with a
simple file system. The boot code is able to read
the file system and load an executable into the RAM
and run it. Alternatively, the boot can read an
executable binary from the outside (serial line or
Ethernet/BOOTP/TFTP) and run it. The boot code is loaded
with JTAG using the process above and all the rest
is then loaded using the boot code or an utility
program loaded by the boot.

Quoted text here. Click to load it

The code is not as complicated as it sounds - I counted
the instructions in my code for the AT91's: there are seven
instructions in the part setting up the memory chip selects
and remapping.

Quoted text here. Click to load it

Yes, there are. You got a good answer from another poster.

I'm using my own kernel and TCP/IP stack.

Quoted text here. Click to load it

Only the fact that is is tied on-chip to the built-in
serial channels, and so unusable for other peripherals.

HTH

--

Tauno Voipio
tauno voipio (at) iki fi


Re: general questions regarding ARMs
<snip>
Quoted text here. Click to load it

Check out http://www.freertos.org/ for a simple free RTOS. It has quite a
good tutorial on there as well which enough to get up and running but a
little bit of prior knowledge about OS theory will grease the wheels a
little. I've run it in a Phillips LPC2129 and it was able to jump straight
in a get a few tasks set up.



Re: general questions regarding ARMs
OK - I just remembered one more really important question: What
programs should I use? Right now in all the AVR development I do I use
WinAVR and code in C. I've seen GNU ARM - is that the best thing to
use?Will that be able to compile code for any ARM chip? Specifically -
I'm worried as I'm planning on using the SAM7X, which isn't even yet on
Atmel's website. Thanks,

-Michael


Re: general questions regarding ARMs

Quoted text here. Click to load it


What's "best" depends on your requirements.  The Gnu toolchain
for ARM is a solid, professional-quality toolchain.  And it's
free.

Quoted text here. Click to load it

Yes.


As long as it has a standard ARM instruction set, the Gnu
toolchain will work fine.

--
Grant Edwards                   grante             Yow!  .. I
                                  at               feel... JUGULAR...
We've slightly trimmed the long signature. Click to see the full one.
Re: general questions regarding ARMs

Quoted text here. Click to load it

What I'm more worried about is all the register names and locations. I
mean, with AVRs you need a file that has the memory locations of each
register to be able to produce code. Would such a file be available for
the SAM7X, being that it isn't even available yet?


Re: general questions regarding ARMs

Quoted text here. Click to load it


Probably.  If not, create one.

--
Grant Edwards                   grante             Yow!  ... I think I'm
                                  at               having an overnight
We've slightly trimmed the long signature. Click to see the full one.
Re: general questions regarding ARMs

Quoted text here. Click to load it


It is on the web site now!
You can compile code using any compiler as long as you can get header files.

--
A. P. Richelieu

Quoted text here. Click to load it
We've slightly trimmed the long signature. Click to see the full one.
Re: general questions regarding ARMs

Indeed it is - they must have posted it in the last day or two as I
checked quite recently. But are header files for it available? I
suppose now that the datasheet is released if they aren't already
available they will be soon.

-Michael


Re: general questions regarding ARMs

Quoted text here. Click to load it

In general, the ARM core executes instructions in 1/2/3 cycles
depending on whether memory is involved. Non-memory instructions
nearly all take one cycle. If the memory system can't provide
opcodes/data fast enough, the core stalls.

The Atmel AT91 ARM7 cores mostly use a 16 bit external bus and no
caches. The ARM9 cores are nearly always cached and the memory system
is usually optimised for SDRAM.

Of the ARM7 chips we have used, the Philips LPC2000 family's MAM
unit is far and away the best solution for hard real-time systems. The
downside is that it only works on internal Flash (up to 512k). The
cached Sharp parts are pretty good too, providing you can live with
the usual cache side-effects.

We're running embedded web servers (CGI and ASP, Telnet ...) on
LPC2000 parts just using the internal Flash and RAM.

Until you say what you're going to do with the system, I can't say
whether you eed a 'big' ARM or a 'little' ARM.

Stephen


--
Stephen Pelc, snipped-for-privacy@mpeforth.com
MicroProcessor Engineering Ltd - More Real, Less Time
We've slightly trimmed the long signature. Click to see the full one.
Re: general questions regarding ARMs

Quoted text here. Click to load it

Samsung's ARM7 parts have a cache, and are pretty cheap (though
in my experience the peripherals tend to be buggy).  The
Linksys WAPs run Samsung ARM7 parts and can be a cheap
"development platform" for running uCLinux.

--
Grant Edwards                   grante             Yow!  I Know A Joke!!
                                  at              
We've slightly trimmed the long signature. Click to see the full one.
Re: general questions regarding ARMs

Quoted text here. Click to load it

We used the S3C4510B a while ago. It had quite the nastiest
Ethernet controller and very buggy code examples on the
development CD. Apart from that, it was dirt cheap and our client
is very happy. However, I have heard rumours about Samsung's
commitment to commodity ARMs. Can anyone confirm/deny?

Stephen


--
Stephen Pelc, snipped-for-privacy@mpeforth.com
MicroProcessor Engineering Ltd - More Real, Less Time
We've slightly trimmed the long signature. Click to see the full one.
Re: general questions regarding ARMs

Quoted text here. Click to load it

Yup, I've used that part as well as its 5V predecessor the
'4500. The basic design of the controller wasn't too bad (it
was a bit overly complex), but there were a couple nasty bugs.
OTOH, the basic design of the internal UARTs was just plain
f*&ked up.  Whoever designed the UART had no idea how flow
control on serial ports worked.

Quoted text here. Click to load it

The sample code was mostly useless, and the "English" in the
documentation was entertaining if not always informative.

Quoted text here. Click to load it

The features/dollar (even with bugs) are hard to beat.  Just
ask Linksys (which I believe used the '4510 in a lot of WAPs).

Quoted text here. Click to load it

--
Grant Edwards                   grante             Yow!  I FORGOT to do the
                                  at               DISHES!!
We've slightly trimmed the long signature. Click to see the full one.
Re: general questions regarding ARMs
Quoted text here. Click to load it

I've not used Atmel ARM parts but I have used the Phillips ones and the
fundamental principles are the same,. I bought a Keil MBC2100 development
kit which is based around an LPC2129 and has a serial port, CAN controller,
a few LEDs, a pot and a couple of push switches to get you started. It costs
about GBP75 for the board or GBP250 for the board and a JTAG programmer. It
will accept programs via the serial port so you don't have to use JTAG but
if you corrupt it's boot loader then you'll have to get the JTAG probe out.

It ran FreeRTOS quite comfortably and it only took a morning or so using the
FreeRTOS on-line manual to get some tasks up and running. I even managed to
get the serial port to send a few strings.

Quoted text here. Click to load it



Re: general questions regarding ARMs
Quoted text here. Click to load it

Atmel ARMs w Flash has an internal Bootloader.
The AT91RM9200 has also an internal bootloader, but it is different.

Quoted text here. Click to load it

If you execute in Thumb mode, the memory controller will fetch two
instructions per
two clock cycles, so you get one instruction per clock cycle in average
until you do a jump.
Then you have a two clock cycle fetch.
Executing from SRAM will ensure you always get 1 instruction per clock
even in ARM mode.


Quoted text here. Click to load it

No, Linux needs just more.
If you want to run Linux, then the AT91RM9200 is a better choice.

Quoted text here. Click to load it

The DMA allows you to send/receive large blocks of data, so
you do not get so many interrupts.
Each interrupt will have to handle more than one byte.

Quoted text here. Click to load it



--
A. P. Richelieu




Re: general questions regarding ARMs

Quoted text here. Click to load it

For a cheap arm 7 dev boards  look at
http://www.sparkfun.com/shop/index.php?shop=1&cart38%0020&cat73%&

boards are made by olimex but its a lot easier to buy from sparkfun.com

They also have a good range of sensors

Alex



Site Timeline