Friday, June 26, 2009

Firmware Questions

1. Driver questions
- bitrate, specific register, interrupt, polling
Interrupt vs polling: http://everything2.com/title/Polling%2520vs.%2520interrupt

2. MCU/Processor
- Architecture
- Specs (Speed, Bus, Mem)
- Endian-ness

3. memory type
NOR, NAND
Cache
NAND vs NOR: http://www.toshiba.com/taec/components/Generic/Memory_Resources/NANDvsNOR.pdf

4. Peripheral
UART
Serial

5. OS
- Real time
- VxWork vs Linux
- Preemptive
Some real-time operating systems feature preemptive kernels, which means that a process running in Kernel Mode can be interrupted after any instruction, just as it can in User Mode. The Linux kernel is not preemptive, which means that a process can be preempted only while running in User Mode; nonpreemptive kernel design is much simpler, since most synchronization problems involving the kernel data structures are easily avoided (see the section "Nonpreemptability of Processes in Kernel Mode" in Chapter 11, Kernel Synchronization).
http://oreilly.com/catalog/linuxkernel/chapter/ch10.html (pre 2.4)

http://www.linuxjournal.com/article/7477
http://www.linuxjournal.com/article/6530


6. Multithread
Semaphore
Mutex

7. Board bring up
CPU boot up sequence
http://en.wikipedia.org/wiki/Booting

uboot:
http://www.linuxfordevices.com/c/a/Linux-For-Devices-Articles/Introduction-to-Das-UBoot-the-universal-open-source-bootloader/
http://sourceforge.net/projects/u-boot/

8. language
volatile
http://en.wikipedia.org/wiki/Volatile_variable

register
http://www.devx.com/tips/Tip/12477

(not really abt firmware but general C/C++)
double pointer: http://www.daniweb.com/forums/thread69966.html#

1. draw a hw architecture of the board I worked on, explain where the software/firmware I developed resides, the functionality, what hw are involved and how does the firmware interact with main controller or other components on the board
2. Processor architecture like MIPS, ARM (I am not familar with this. The spelling might be wrong). For this one, it is good enough if you know some basic concepts. But better knows the processor models used in your projects to impress them. Also some basic characteristics of the processors, like cpu speed and RAM size.
3. What kind of OS is running on the processors and DSPs? Embedded OS knowledge, especially the scheduling and ISR handling. They asked a lot about the preempt and task priority implementation in your projects
4. Boot sequence after the board is power up (something like how does the main processor boot up and how are the DSPs loaded).

No comments: