Must possess expertise/knowledge sufficient to adequately perform the duties of the job being offered. Expertise/knowledge may be gained through employment experience or education. Such expertise/knowledge cannot be “quantified” by “time”. Required expertise/knowledge includes:
- Knowledge of microprocessor and microcontroller architectures.
- Experience in memory organization and interfacing (up to 64-bit widths).
- Experience in the construction of a real-time operating system (preemptive and cooperative).
- Experience in RTOS implementation, Proficiency in C programming.
- Knowledge of ARM advanced memory bus architectures.
- Understanding of determining microcontroller memory, speed, and capabilities to solve a task, and experience in system design of high speed analog capture/generation devices.
- Understanding of hardware/software development techniques for microcontroller systems, interfacing with external sensors and devices (relays, AC and DC loads).
- Understanding of hardware construction and firmware development and use of hardware tools including Oscilloscope and Logic analyzers.
- Knowledge of communication protocols including SPI bus, UART.
- Knowledge of I/O buses and interfaces, Port masking.
- Knowledge of PID controllers.
- Knowledge of hardware testing and interfacing to signal conditioning and measurement techniques.
- Understanding of computer science fundamentals including finite and infinite impulse response digital filtering, ring buffers, and Multitasking Operating Systems.
- Knowledge of thread-level parallelism, multiprocessor, multicore designs.
- Knowledge of PWM, ADCs, Timers, Interrupts.
- Experience on bootloaders.