Hi, this is my first post and I don't know if this is the right place, so please excuse me if I'm a little clumsy here.
I'm using a Raspberry Pi 2 (but I got a Pi 3 as well) as a learning platform.
I'm a novice embedded programmer,and I've some experience on 8 bit and 32 bit MCUs (AVR and ARM Cortex), and I want to program the Pi with C to access the peripherals and do some serious learning about OSs and Linux in particular.
I know there are some good libraries out there (WiringPi,BCM), but I would like to do direct register acces (I'm reading the BCM peripherals manual).
I don't know much about Operating Systems and their inner workings (system calls,APIs) and I would like to shed some light on the subject (what is a kernel? how do I access it? what are all those headers I see when I read some C code that uses function like read() ? Are they part of some standard?)
So my question is,where to begin?
I need advice on where to start learning,possibly a very good book on the subject (I know the web is full of resources but I need some guidance here..)
Luca