Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

ARM - getting started

Status
Not open for further replies.

shampoo

Newbie level 3
Joined
Jul 8, 2010
Messages
4
Helped
0
Reputation
0
Reaction score
0
Trophy points
1,281
Activity points
1,330
Dear all

i usually use AVR for my projects, but as you all may know arm is more powerful (because it has lots of stuff about USB LAN Speed ... ) so i want to learn this, but unfortunately i can't buy any development kits i just have the software KEIL installed on our university computer ( i have complete access to the computer).

the problem is that ,the guides on the net are a lot !! when i wanted too learn AVR i used a simple book starting with a simple example of blinking led, and then when i worked more i used AVR datasheets, to understand how exactly each part works and know i feel familiar with AVR.

but you know, about ARM there's lots of datasheets, and i know learning arm is more complicated, but it would be a risk if i start any of datasheets on the net (arm.com , or atmel arm based microcontrollers like at91sam7s .. ) without consulting any experienced people.

so do you know any getting started guide which is based on using ARM (not the architecture) uses KEIL or another free software?

i want you to suggest me somewhere to start .

Thank you.
 

what is your proposed language.?

assembly or c for arm processors?

srizbf
8thjuly2010
 

it depends on what you want to do and what your toolchain support.

In general, LPCs are some of the easiest to get started, for a beginner. LM and ADI are some of the more difficult ones to get going. STM32 are somewhere in between.

the newer chips are very hardware friendly and you can get going quickly. However, your toolchain may (or may not) support them.

then you have the question of OEM libraries to complicate matter a little bit further for you. They are great helpers in getting you started but may become a hindrance down the road.

if you are on a budget, I would suggest an older chip, like LPC210x or LPC213x: you can get a minimum configuration LPC213x for a song now.
 

You could try the insiders guides from Hitex. The non-printable version can be downloaded for free here: http://www.hitex.com/index.php?id=download-insiders-guides&L=1
You mentioned SAM7, they are not represented there and honestly they are not the most popular ARM7 devices.
You might also want to check out Cortex-M3 based STM32, LM3, LPC1000 just to name the current top dogs.
More information on Cortex-M3 based devices here:
**broken link removed**

Hope this helps, Bob
 

assembly or c for arm processors?

i don't care the easier one (i think it will be C)

To Bob:

i downloaded the free lpc2000 book from hitex it looks cool thank you for your help, if there was any problem i will be in touch here , but now i think i should study the pdf for a while.

and i would appreciate any other comments which you feel helpful.

thanks
 

IMHO programming in c first without skimming through assembly programs will not
be a smooth path for development of arm applications.

srizbf
8thjuly2010
 

IMHO programming in c first without skimming through assembly programs will not
be a smooth path for development of arm applications.

I am not sure.

I think for a reasonably complex project, coding in assembly is out of the question.

so C is a necessity. there, if you code carefully, 90% of the code in a typical project is C-related and hardware independent. the remaining 10% is hardware dependent but you can easily interface there through oem libraries or registers.

One area where C may fall short is in timing critical applications where it is painful to predict execution delays / overload from C, or hand optimization at the lowest level is required for speed.

but you can easily mix assembly and C together and insulate it from 99% of your applications.
 

i am not saying that one should use only assembly programming.

using c you are saving huge dev time.

but ... , if an application is developed finally without knowledge of alp it is not a smooth path. (you require time critical intr routine , startup codes ... etc)

that is why i said just skim through .
but dont stay in.
 

I think we are saying the same thing but from different angles. In my experience, you can be an excellent programmer on a modern mcu (reasonable speed + space), without knowing assembly, most of the times.

if you are pushing the envelope of your mcu, you may need to know assembly to extract the last juice out of your chip but that's rare.
 

well, this is going off topic, could you people answer the main question??

even if you work only with assembler, how do you begin with ARM? (ok, so we got the instruction sets, now what?)

which toolchain do you use for ARM, how about GNUARM? and the WinARM version??? is there something from IAR or KEil or others? (also howmuch $$$)

how do you program an ARM? (I have read by somewhere that it's all jtag, but do you people have a prefered programmer?) or even a DIY programmer??? (that would be nice!)

[note that I'm also searching for a good start point for ARM, like shampoo]
 

I went with Keil because that's what's available to me when I started. They have a free version with 16k(or 32k?) code limitation.

i have found it to be extremely helpful in debugging.

My use a jlink to primarily program the chip, not for debugging it. my work flow is mostly in keil -> proteus -> downloading -> keil ...

jlink is expensive if you need it for commercial purposes. you can get the same thing a lot less if you can limit it for educational / non-profit(?) purposes.

some chips (lpc for example) can be downloaded via serial port, or on-board debuggers via the usb port (luminary / lpc / stm) or straight usb (lpc).

the lpcxpresso or the upcoming stm32 discovery boards are also quite interesting: the stm32value line discovery board, complete with a debugger, and ide, and a stm32 chip, should be available for around $7. if you want to toy around with it, that's the way to go.
 

Kurenai_ryu said:
which toolchain do you use for ARM, how about GNUARM? and the WinARM version??? is there something from IAR or KEil or others? (also how much $$$)
First of all I don't know about delivery in Bolivia and here in the US that is not an issue for any of the tools. There are many tools out there, Keil and IAR covering most of the professional market with pricing in the $$$ range. There is only Greenhills and ARM (RVDK) that I know off with with higher pricing. These tool chains have propriety compilers and offer a better output and a MUCH better debugger interface than GNU-CC and GDB. They also offer special JTAG debuggers thoroughly tested and very nice speed, that would be ULink for Keil and JLink for IAR.
There are also other professional tools out there especially for Cortex-M3 and they cost about 1/4 of Keil / IAR. That would be Raisonance, Code Red, and Crossworks just to name a few. All three offer a dedicated JTAG debugger as well, that would be RLink, don't know :) and CrossLink.
Last but for many not least there is the Code Sourcery Lite version, WinARM, Yagarto and more that offer solutions for free, however that usually comes with significant investment in your time, another form of money.

Kurenai_ryu said:
how do you program an ARM? (I have read by somewhere that it's all jtag, but do you people have a preferred programmer?) or even a DIY programmer??? (that would be nice!)

[note that I'm also searching for a good start point for ARM, like shampoo]
How to program is depending on the manufacturer. Many vendors offer very low cost solutions. ST offers STLink, NXP offers LPCXpresso, ST also offers RLink, NXP can be programmed with FlashMagic that works as shareware and you only pay for professional use.

For a DIY programmer google for OpenOCD.

That you give you plenty of words to feed into your favorite search engine.

My personal preference: High end, I like Keil http://www.keil.com the best, budget solution for STM32 I prefer Raisonance RIDE7 http://www.mcu-raisonance.com/, free solution I don't use because my time is WAY too expensive for free tools ;-)

Cheers, Bob
A number of links to the above mentioned tools are to be found here:
http://www.lpc2000.com/tools/indextools.html
 
I've bought a JLink Lite from here it is cheap :

**broken link removed**

do you know what is the difference between JLink and JLink-Lite ?
how ever it works well like JLink V8.0
It has 2 LEDs
 

How to program is depending on the manufacturer.

bob gave a good summary for programming ARM.

some newer chips (lpc1343/1768 for example) also allow direct programming with its usb: those chips can be connected to a PC's usb and will show up as a mass storage device. all you need to do is to copy / drag your compiled code onto them and they will self-program themselves, neglecting the need for a dedicated programmer.

Again, if you are starting today, learning a 8051/pic/avr would be a (largely) waste of time and money.
 
Status
Not open for further replies.

Similar threads

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top