Comment My experience (Score 1) 1
Hi MouseTheLuckyDog,
What I will explain here is how I get into ARM development, however there are many other ways to learn how ARM architecture works. First, you should read a document about how the architecture differs from other architecture such as x86. I can recommend you a good book about ARM architecture, it contains many information about the architecture (of course), the instruction set, how to do task scheduling, how the interrupts are working, etc. It is very interesting, especially if you love embedded systems. The book is: ARM System Developer's Guide ( link: http://amzn.to/UiWvV0 )
Just learning a book is not enough in embedded system, so I recommend you to have a pet project. What I did, actually it was a course project but I keep working on it, is to write a little kernel. I'm not saying that you should write an advanced kernel, just a simple one with a scheduler. If you don't know yet, you'll learn many things about ldscript, memory management, stack management, cross-compilation, etc. To test your kernel you can use qemu with gdb to see what's happening. Here is a good starting point: http://www.bravegnu.org/gnu-eprog/hello-arm.html If you already know all this stuff, you'll focus on ARM development: the bootloader, and the context switch. You can push your knowledge by playing with the MMU and MPU of your processor, the ARM System Developer's Guide provides useful information about how to set-up memory management.
I can't post a comment without recommending the ARM documentation itself. I will not provide you with any link because it will depend on your processor. Well, read the book, choose one board to emulate with qemu, and start writing your own little kernel, that's not difficult (if you KISS)! :)
What I will explain here is how I get into ARM development, however there are many other ways to learn how ARM architecture works. First, you should read a document about how the architecture differs from other architecture such as x86. I can recommend you a good book about ARM architecture, it contains many information about the architecture (of course), the instruction set, how to do task scheduling, how the interrupts are working, etc. It is very interesting, especially if you love embedded systems. The book is: ARM System Developer's Guide ( link: http://amzn.to/UiWvV0 )
Just learning a book is not enough in embedded system, so I recommend you to have a pet project. What I did, actually it was a course project but I keep working on it, is to write a little kernel. I'm not saying that you should write an advanced kernel, just a simple one with a scheduler. If you don't know yet, you'll learn many things about ldscript, memory management, stack management, cross-compilation, etc. To test your kernel you can use qemu with gdb to see what's happening. Here is a good starting point: http://www.bravegnu.org/gnu-eprog/hello-arm.html If you already know all this stuff, you'll focus on ARM development: the bootloader, and the context switch. You can push your knowledge by playing with the MMU and MPU of your processor, the ARM System Developer's Guide provides useful information about how to set-up memory management.
I can't post a comment without recommending the ARM documentation itself. I will not provide you with any link because it will depend on your processor. Well, read the book, choose one board to emulate with qemu, and start writing your own little kernel, that's not difficult (if you KISS)!