thread crashes or attempts to access a protected resource (memory, peripheral, etc.) an exception will be thrown and the kernel will then be able to shut down the offending thread/process. The official guidance from ADI on how to use the Blackfin in non-OS environments is to reserve the lowest-priority interrupt for general-purpose code so that all software is run in supervisor space. Blackfin uses a variable-length RISC-like instruction set consisting of 16-, 32- and 64-bit instructions. Commonly used control instructions are encoded as 16-bit opcodes while complex DSP and mathematically intensive functions are encoded as 32- and 64-bit opcodes. This variable length opcode encoding is designed for code density equivalence to modern microprocessor architectures. Media-processing features The Blackfin instruction set contains media-processing extensions to help accelerate pixel-processing operations commonly used in video compression and image compression and decompression algorithms. Peripherals Blackfin processors contain an array of connectivity peripherals, depending on the specific processor: ATAPI CAN: A wide-area, low-speed serial bus used in some automotive and industrial electronics DMA with support for memory-to-memory DMA and peripheral DMA EMAC (Ethernet Media Access Controller) with MII and RMII External memory: the EBIU (External Bus Interface Unit) can include a controller for SDRAM, Mobile SDRAM, DDR1, DDR2, or LPDDR, and an asynchronous memory controller for SRAM, ROM, flash EPROM, and memory-mapped I/O devices GPIO including level-triggered and edge-triggered interrupts I²C, also known as TWI (Two-Wire Interface): a lower speed, shared serial bus MXVR: a MOST Network Interface Controller NAND flash PPI: A parallel input/output port that can be used to connect to LCDs, video encoders (video DACs), video decoders (video ADCs), CMOS sensors, CCDs and generic, parallel, high-speed devices. The PPI can run up to 75 MHz and can be configured from 8 to 16-bits wide. PWM and timers/counters Real-time clock SD/SDIO SPI: a fast serial bus used in some high-speed embedded electronics applications SPORT: A synchronous, high speed serial port that can support TDM, I²S and a number of other configurable framing modes for connection to ADCs, DACs, other processors, FPGAs, etc. UART: allows for bi-directional communication with RS-232 devices (PCs, modems, PC peripherals, etc.), MIDI devices, IRDA devices USB 2.0 OTG (On-The-Go) Watchdog timer All of the peripheral control registers are memory-mapped in the normal address space. Development tools ADI provides its own software development toolchains. The original VisualDSP++ IDE is still supported (its last release was 5.1.2 in ), but is