This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

How to learn ARM

Hi everyone!!

I am looking to work on some projects using ARM. I have completed a basic course on ARM M3/M4 (UT Austin 6.01x by Jon Valvano and Ramesh Yerraballi) online. Now, I want to learn advanced things, especially real-time applications. How should I go about it? Please recommend good books/sites. If you think I need to learn something else before or work on something else, please tell that as well.

Thanks in advance.

Parents
  • First: keep working with simpler devices. I'm learning Cortex-A7 and it feels like an endless swamp.

    Each time you think you have things covered, you'll find a situation that changes everything.

    It's very complicated device.

    It probably says something that the ARMv7-A/R ARM is 2736 pages, and ARMv8-A ARM has 5886 pages.

    There are so many configurable items and vendor specific things.

    When it comes to real-time stuff and such, this site might interest you:

    Expanded Main Page - OSDev Wiki

    It somewhat leans towards x86 architecture, but has something ARM-specifics too, and most of it is quite generic

    and applicable to any architecture.

    Forgot: don't hurry with RTOSes. Often non-RT OS is quite enough. RTOSes are not faster or anything.

    The difference between RTOS and non-RT OS is the guaranteed event response time which pretty much translates to

    well-defined priority in case of simultaneous events. And that usually requires that you explicitly set the priorities for stuff.

    Of course you could use an RTOS if it's nicely available without concentrating on the real-time aspects.

    In that case I've heard good things about UCOS ( Micro-Controller Operating Systems (MicroC/OS) - Wikipedia, the free encyclopedia ).

    It's commercial, but the documentation is good reading (I've been told).

    If you want to experiment yourself, maybe FreeRTOS is the answer: FreeRTOS - Market leading RTOS (Real Time Operating System) for embedded systems with Internet of Things extensions .

    Also doing some bare metal programming doesn't hurt - it gives you perspective.

Reply
  • First: keep working with simpler devices. I'm learning Cortex-A7 and it feels like an endless swamp.

    Each time you think you have things covered, you'll find a situation that changes everything.

    It's very complicated device.

    It probably says something that the ARMv7-A/R ARM is 2736 pages, and ARMv8-A ARM has 5886 pages.

    There are so many configurable items and vendor specific things.

    When it comes to real-time stuff and such, this site might interest you:

    Expanded Main Page - OSDev Wiki

    It somewhat leans towards x86 architecture, but has something ARM-specifics too, and most of it is quite generic

    and applicable to any architecture.

    Forgot: don't hurry with RTOSes. Often non-RT OS is quite enough. RTOSes are not faster or anything.

    The difference between RTOS and non-RT OS is the guaranteed event response time which pretty much translates to

    well-defined priority in case of simultaneous events. And that usually requires that you explicitly set the priorities for stuff.

    Of course you could use an RTOS if it's nicely available without concentrating on the real-time aspects.

    In that case I've heard good things about UCOS ( Micro-Controller Operating Systems (MicroC/OS) - Wikipedia, the free encyclopedia ).

    It's commercial, but the documentation is good reading (I've been told).

    If you want to experiment yourself, maybe FreeRTOS is the answer: FreeRTOS - Market leading RTOS (Real Time Operating System) for embedded systems with Internet of Things extensions .

    Also doing some bare metal programming doesn't hurt - it gives you perspective.

Children
No data