www.mikrocontroller.net

Mikrocontroller.net Forum WinARM / Yagarto / ARM-GCC > Where to start with ARMx please.

Posted by Ian Knight (imk)
on 23.11.2006 11:07
Hello, I know this is rather a big question but please beware with as I 
have know one to talk to about this subject, hence feel free to wade in 
with some very basic or advanced advice.

So I have years and years of C and C++ on many platforms, from embedded 
Z80, PC’s and VAXs etc. Also I have a little recent experience of 
Embedded Rabbit and there C and IDE environment.

So I want/need to start working with ARMx and I guess ARM7 would make a 
good entry point considering the research I have done and the 
cost/variety of development boards there are out there.

The big question I have is  what low cost/free development tools are 
there out there that have an GUI-IDE with them for ARM and what OS does 
the ARM development board run it’s own?, uLinux, RTOS etc??

So if there is someone out there that can point me in the direction of a 
basic development board with some ADC’s and LCD interface also the 
development tools suit I would much appreciate it. Once I am rolling I 
know I’ll pick up speed but picking my way through the mass of stuff out 
there is a nightmare.

Many thanks in advance IMK
Posted by Stefan (Guest)
on 23.11.2006 12:04
Different approach:

Pick some real ARM7 project from the internet which is interesting 
enough to build and to play with for the next few weeks/months.

Normally the autor gives hints about the tools required (WinARM, 
GnuARM/Cygwin, Yagarto/Eclipse to name a few free toolchains on Windows 
host).

Learn how to use the tools (IDE, compiler, debugger, programmer, 
debugger device) and the µC in this first-tryout project.

Then decide what to do next in own projects.

Stefan
Posted by Ian Knight (imk)
on 23.11.2006 12:34
Stefan wrote:
> Different approach:
> 
> Pick some real ARM7 project from the internet which is interesting 
> enough to build and to play with for the next few weeks/months.
> 
> Normally the autor gives hints about the tools required (WinARM, 
> GnuARM/Cygwin, Yagarto/Eclipse to name a few free toolchains on Windows 
> host).
> 
> Learn how to use the tools (IDE, compiler, debugger, programmer, 
> debugger device) and the µC in this first-tryout project.
> 
> Then decide what to do next in own projects.
> 
> Stefan

Many thanks Stefan.
In my research I have found the following items that fit the buget, but 
I am nevus that what I buy will not have the tools and simple won't work 
or just be a minefield try to get it going. Again many thanks IMK
http://cgi.ebay.co.uk/ws/eBayISAPI.dll?ViewItem&ih=020&sspagename=STRK%3AMEWA%3AIT&viewitem=&item=300049234340&rd=1&rd=1

http://cgi.ebay.co.uk/ws/eBayISAPI.dll?ViewItem&item=300052442762&ssPageName=MERC_VIC_RSEE_Pr4_PcY_BIN_Stores_IT&refitem=300049234340&itemcount=4&refwidgetloc=closed_view_item&usedrule1=UpSell_LogicX&refwidgettype=cross_promot_widget
Posted by Stefan (Guest)
on 23.11.2006 14:06
These boards are from Bangkok, Thailand (nice town, very nice country). 
I have seen them in ebay.de too, but never met anyone in the forums who 
uses one.

I would try to contact some buyers of one of these boards before a 
purchase. Or i could try to get some sort of documentation (quick 
manual) from the seller to evaluate the quality of the documentation.

And i think you can get similar boards from a dealer in your country for 
almost the same price, when you calculate the package price (board 
(US$35-50), shipment (US$10-25) and perhaps international money transfer 
(Paypal fee?)).

Stefan
Posted by Martin Thomas (Guest)
on 23.11.2006 21:18
Ian Knight wrote:

> http://cgi.ebay.co.uk/ws/eBayISAPI.dll?ViewItem&ih=020&sspagename=STRK%3AMEWA%3AIT&viewitem=&item=300049234340&rd=1&rd=1

The ADUC 7000 have a rather good internal ADC with 12bit ADC. But IRC 
they do not offer an Interrupt-Controller (like the VIC in LPC2000s or 
AT91 AIC). This might be nice for the beginning since the interrupt 
handling is easier but also not that flexible. The PLA in the ADUC ARMs 
is a feature I have not seen on other ARM-controllers so far. While 
there are ready-made examples available for ADUC7000 from the 
ADI-website you might find more "getting started" examples for the 
LPC2000- and the AT91SAM7-series on manufacturers Website or in "the 
net". Take a look at the evaluation-board available from IAR, Keil, 
Propox, Olimex, embest, Embedded-Artist too (to name a few).

> http://cgi.ebay.co.uk/ws/eBayISAPI.dll?ViewItem&item=300052442762&ssPageName=MERC_VIC_RSEE_Pr4_PcY_BIN_Stores_IT&refitem=300049234340&itemcount=4&refwidgetloc=closed_view_item&usedrule1=UpSell_LogicX&refwidgettype=cross_promot_widget

This seems to be a clone of the Keil ULINK"1". As far as I know the 
Keil-IDE (uVision) is the only software which can access this interface. 
The Keil-IDE is nice and easy to use but if you want to develop 
commercial applications or if your hobby-projects need more then 16kByte 
you have to buy the commercial license. If you want to use 
"open-source"-tools like gdb/Insight-gdb/Eclipse+gdb get a FT2232-based 
interface (for Amontec, Olimex, Signalyzer and others). OpenOCD supports 
this type of interfaces. There is a J-LINK (AT91-only OEM version: 
SAM-ICE (cheaper), OEM version from IAR too). A lot of commercial IDEs 
support this hardware (native or thru RDI) and there is even a 
gdb-server for it. Read the descriptions closely esp. the difference 
between SAM-ICE and J-LINK in terms of supported devices (limited with 
SAM-ICE) and included licenses (not sure but AKAIK the flash and 
RDI-license is already included with the SAM-ICE).

You could even start with a Wiggler if your PC stills has a 
parallel-port and use OpenOCD (gdb-server) or H-JTAG (rdi-server) as 
interface to the debugging software.

Martin Thomas
Posted by Ian Knight (imk)
on 24.11.2006 00:48
Martin, many thanks for your input.
But you see this is where I simply can not see the wood for the trees.
I have looked at many of these site (IAR, Keil etc) and they all seem to 
have nice low cost get you going (kickstart kits) However when it come 
to writing an application of any size they all seem to limited, so you 
have to buy in to a four figure development enviroment.

What I have in mind for my fist project is a data loga for a three axis 
accelerometer, hence I need some ADC input, a good few K of RAM, and a 
host upload port Enet or USB or even rs232 would do at a push.

Also I would like a set of development tools that are portable to other 
boards/project so I can aviod the learning curve.

And as far as ULINK"1", SAM-ICE and J-LINK etc which way to go for 
debuggers that are also not going to incure an initial large investment.

One card that I think would be a good start for me is the ST Micro 
STDV710 Evaluation board, from 
http://www.computer-solutions.co.uk/chipdev/embestevb.htm. But are there 
any shareware/GNU development tools for this. I have downloaded WinArm 
but I havent made head nor tail of it yet.

Again many thanks for all the advice and please do not stop.
Many thanks in advance IMK
Posted by Martin Thomas (Guest)
on 27.11.2006 18:02
Ian Knight wrote:
> Martin, many thanks for your input.
> But you see this is where I simply can not see the wood for the trees.
> I have looked at many of these site (IAR, Keil etc) and they all seem to 
> have nice low cost get you going (kickstart kits) However when it come 
> to writing an application of any size they all seem to limited, so you 
> have to buy in to a four figure development enviroment.

You could use the Rowley IDE. The GNU compiler is working in the 
background but is hidden behind a user-friendly IDE. (I have not used 
the Rowley tools, so I can not provide further details). You also get a 
integrated debugging-software.

> What I have in mind for my fist project is a data loga for a three axis 
> accelerometer, hence I need some ADC input, a good few K of RAM, and a 
> host upload port Enet or USB or even rs232 would do at a push.

Since you are starting with ARM-controllers stay with RS232 first, it's 
much easier. USB is not that difficult if you have some example codes 
but difficult if you want to write the USB code from scratch. Put Enet 
last on your TODO list.   A lot of controllers offer integrated ADC 
converters and accessing them is rather easy.

For a short-term measurement RAM will do. Even "small" ARM7 offer some 
kBytes. If you want to store data  "permanently" you could use external 
ICs like Atmel's Dataflash's or a MMC/SD-Card. Both can be connected 
easily to the SPI-interface of the controller and some source-code is 
available as template for own developments.

> Also I would like a set of development tools that are portable to other 
> boards/project so I can aviod the learning curve.

This should be no problem. If the tools support the ARM7TDMI code you 
can use them for all devices with this core (same for other cores). Most 
"cheap" controller are based on this core.

> And as far as ULINK"1", SAM-ICE and J-LINK etc which way to go for 
> debuggers that are also not going to incure an initial large investment.

You may start with a Wiggler(-clone) interface. IAR, Rowley and gdb 
(thru OpenOCD) support it. Its rather cheap and you can buy something 
better/faster/with USB later. Stay away from ULINK/NLINK if you don't 
want to use the Keil tools. I don't know if the SAM-ICE can be upgraded 
to support non-Atmel ARM7. So ask Segger if you want to use a non-AT91 
(I don't think the Atmel support will answer on the question). I have a 
J-Link but have to admit that I have not used it enough to comment on 
it.

> One card that I think would be a good start for me is the ST Micro 
> STDV710 Evaluation board, from 
> http://www.computer-solutions.co.uk/chipdev/embestevb.htm. But are there 
> any shareware/GNU development tools for this. I have downloaded WinArm 
> but I havent made head nor tail of it yet.

I understand that WinARM is a little confusing in the beginning since 
it's meant for people who already know a little bit about handling the 
gnu-tools. IDEs like Eclipse, the one from Rowley, Anglia use the same 
tools in the background "envelop" them in a GUI.

For a start I would suggest that you get a ready-made Evaluation Board 
with an NXP LPC2148 or AT91SAM7S256. You can learn how to handle 
controllers with ARM7TDMI core with them, both offer USB for later. I 
can not recommend one of them. For the very start the LPCs might be 
easier since the serial bootloader is easier to use than the one in the 
AT91. But if you have a JTAG hardware and supporting software it does 
not matter. I like the AT91SAM PDC. There is a rather good Tutorial from 
Jim Lynch for the AT91SAM7 read this tutorial. If you want to follow the 
tutorial get a board with an AT91SAM7S (from IAR, Propox, Olimex 
Atmel...).

There are a lot of examples available for both families (some examples 
in WinARM but a lot more at other places).

> Again many thanks for all the advice and please do not stop.

Sorry, no real "final advice" from my side. I think you simply have to 
jump into the water with a evaluation-Board and try the Rowley-Software 
or the software described in Jim Lynch's tutorial. Also take a look at 
Michael Fischer's Yagarto collection, he offers some instructions on his 
web-pages.


> Many thanks in advance IMK

Hope this helps,
Martin Thomas
Posted by Witold Kaczurba (wkaczurba)
on 07.06.2008 01:02
Ian Knight wrote:
> Hello, I know this is rather a big question but please beware with as I 
> have know one to talk to about this subject, hence feel free to wade in 
> with some very basic or advanced advice.
> 
> So I have years and years of C and C++ on many platforms, from embedded 
> Z80, PC’s and VAXs etc. Also I have a little recent experience of 
> Embedded Rabbit and there C and IDE environment.
> 
> So I want/need to start working with ARMx and I guess ARM7 would make a 
> good entry point considering the research I have done and the 
> cost/variety of development boards there are out there.
> 
> The big question I have is  what low cost/free development tools are 
> there out there that have an GUI-IDE with them for ARM and what OS does 
> the ARM development board run it’s own?, uLinux, RTOS etc??
> 
> So if there is someone out there that can point me in the direction of a 
> basic development board with some ADC’s and LCD interface also the 
> development tools suit I would much appreciate it. Once I am rolling I 
> know I’ll pick up speed but picking my way through the mass of stuff out 
> there is a nightmare.
> 
> Many thanks in advance IMK

Hello,

I have made small tutorial on ADuC7000, to help people using this 
microcontroller. It is on www.kaczurba.pl/aduc
I hope you will find this useful - please send me any suggestions - on 
what can I put. I realize that this is only short, and briefly overview, 
but hope - it can be useful for anybody, that wants use this powerful 
uC.

Best regards,
Witold