ARM start guide  - Page 1
Forum section: electronics / general

author: Cloud
author_rank: Regular Contributor
timestamp: April 09, 2016, 08:23:08 pm
content: I am looking for a start guide for programming ARM microcontrollers, preferably NXP or Infinion ones

author: dannyf
author_rank: Super Contributor
timestamp: April 09, 2016, 08:29:59 pm
content: 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.

author: westfw
author_rank: Super Contributor
timestamp: April 10, 2016, 08:34:27 am
content: 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.

author: ez24
author_rank: Super Contributor
timestamp: April 11, 2016, 03:31:01 am
content: HiI not even sure this is ARMTM4C123but 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)https://courses.edx.org/courses/course-v1:UTAustinX+UT.6.03x+1T2016/infoBut if this is not an ARM - never mind

author: ade
author_rank: Unknown
timestamp: April 11, 2016, 03:42:09 am
content: It is ARM... there are a couple previous threads on the course:https://www.eevblog.com/forum/beginners/free-course-ut-6-03x-embedded-systems-on-edx-starting-now/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.)