Author Topic: ARM start guide  (Read 1174 times)

0 Members and 1 Guest are viewing this topic.

Offline Cloud

  • Regular Contributor
  • *
  • Posts: 144
  • Country: si
ARM start guide
« on: April 10, 2016, 06:23:08 AM »
I am looking for a start guide for programming ARM microcontrollers, preferably NXP or Infinion ones

Offline dannyf

  • Super Contributor
  • ***
  • Posts: 8230
  • Country: 00
Re: ARM start guide
« Reply #1 on: April 10, 2016, 06:29:59 AM »
there is no generic guide, because it is specific to your skills, tools used, and devices you intend to use.

In general, however, you will need to be familiar with the following:

1) good with C;
2) good with a modern IDE: understand how to set up the tool chain and manage a workspace / project;
3) being willing and able to read and comprehend the datasheet;
4) being able to work with libraries;
5) being able to use a hardware debugger.

Some or all of them can be optional, depending on what you want to do; And there exit tools that will make some of them easier for you, depending on what you want to do, again.

Offline westfw

  • Super Contributor
  • ***
  • Posts: 2410
  • Country: us
Re: ARM start guide
« Reply #2 on: April 10, 2016, 06:34:27 PM »
The ARM itself is pretty straightforward.  It fetches initial PC and SP from 0x0, and off it goes.  Given even the simplest of C environments, you can probably just start your program with main().  There are a couple of useful peripherals (for Cortex-M, anyway) that are common across all the chips - the interrupt controller and the Systick timer, so those are things you'll want to study in particular.

The complications show up in configuring the other parts of the chips.
1) Most ARM chips come up running on a slow-ish internal clock.  To run at maximum speed, you usually have to set up an external Crystal oscillator at some based frequency and a PLL or FLL to multiply that up to the desired final clock rate.  And configure the memories for appropriate number of wait states for that clock rate. This is chip-specific.  It might be done in code that happens before main() (system_init() and/or board_init()) depending on library setup.  The flow is somewhat standardized, but not always implemented.
2) Most ARM chip peripherals initialize to "off" - frequently even things like GPIO that you wouldn't think has an "off."  Turning on a peripheral frequently involves "enable", "set clock", and "set up pins", in addition to what you'd think of as normal peripheral initialization.  Chip and vendor dependent, of course.
3) Many ARM chips have peripherals that are much more complex than the typical 8-bit microcontroller peripheral, so you need to wade through either the datasheet (sometimes called a "User Manual" or "Technical Reference Manual", leaving little in the "datasheet" but pinout and electrical specs), or the library documentation, or both, to figure out how to actually do anything.
The following users thanked this post: igendel

Offline ez24

  • Super Contributor
  • ***
  • Posts: 2907
  • Country: us
  • L.D.A.
Re: ARM start guide
« Reply #3 on: April 11, 2016, 01:31:01 PM »

I not even sure this is ARM


but there is a course that is about to end (but still can enroll)  If you enroll, free, you  can access all forums and materials for a year.  There are videos and written materials and the forum.  After the course ends the only thing you cannot do is ask questions on the forum.

Only a couple weeks left to sign up.  Online courses are hard to find.  (this is the only one I could find)

But if this is not an ARM - never mind  :-DD

YouTube and Website Electronic Resources ------>

Offline ade

  • Supporter
  • ****
  • Posts: 231
  • Country: ca
Re: ARM start guide
« Reply #4 on: April 11, 2016, 01:42:09 PM »
It is ARM... there are a couple previous threads on the course:

Depending on your embedded background / experience the early modules might be basic, but the whole course serves as a good hands-on intro into ARM and common topics / peripherals (GPIO, Interrupts/NVIC, SysTick, ADC and DAC, UART, etc.)
« Last Edit: April 11, 2016, 01:45:11 PM by ade »

Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo