Dear All,
I am very new to microprocessors.and having some experience with Micro controller PIC ,ATmel,Atmega,ARM... Now I would like to start projects with microprocessor...
My doubts as follows..
1. How to load programs to processor?
2.How to write OS? Why Linux OS is so special in embedded?
3.What is the need of SRAM and DRAM?
4. Where we can write our application program? Means which language or compiler need to use?
5. I know Little bit about raspberry PI.. Why they used SD card instead any other memery ICs?
Thanks a lot friends.. Happy Saturday.. cheers:lol:
If you are considering Raspberry pi as a case, at power ON, the ARM core will not be active, the GPU will execute first stage bootloader residing inside the ROM (it is there in the SoC while manufacuring) which will reads the SD card and loads the second stage bootloader(bootcode.bin) from SD card to L2 cache and from there it executes and initializes the SDRAM and pull the third stage bootloader ( start.elf) from SD card to RAM and executes it. At this time it reads config.txt from SD card which will have lot of parameters like arm_freq, gpu_freq, h264_freq, isp_freq, v3d_freq,core_freq,h264_freq,isp_freq, v3d_freq, sdram_freq etc which sets accordingly. Finally it loads the kernel.img which is the binary of the operating system to RAM and starts executing it using the ARM core.
Writing and OS is not that easy task, or it is not a one man job. You can write simple schedulers but writing a well matured operating system like linux is not a one man game. It takes lot of time, effort, resources and collaborations. You can read about it online.
Linux is so special because linux is opensource which means you have the flexibility to customize it and modify it according to your requirement. Also it supports various architectures.
Application programs for a raspberry pi generally means an application running on top of the operating system. This application program can be compiled by a linux gcc compiler inside the raspberry pi or an external cross compiler for raspberry pi sitting inside your computer.
To build bare metal code for raspberry pi, you can use normal arm-none-eabi-gcc compiler which you normally use for compiling C programs for any ARM microcontroller.