官术网_书友最值得收藏!

The Cortex-M microprocessor

The main characteristic of the 32-bit cores in the Cortex-M family are:

  • 16 generic-purpose CPU registers
  • Thumb 16-bit only instructions for code density optimizations
  • Built-in Nested Vector Interrupt Controller (NVIC) with 8 to 16 priority levels
  • ARMv6 (M0, M0+) or ARMv7 (M3, M4, M7) architecture
  • Optional 8-region memory protection unit (MPU)

The total memory address space is 4 GB. The beginning of the internal RAM is typically mapped at the fixed address of 0x20000000. The mapping of the internal flash, as well as the other peripherals, depends on the silicon manufacturer. However, the highest 512 MB (0xE0000000 to 0xFFFFFFFF) addresses are reserved for the System Control Block (SCB), which groups together several configuration parameters and diagnostics that can be accessed by the software at any time to directly interact with the core.

Synchronous communication with peripherals and other hardware components can be triggered through interrupt lines. The processor can receive and recognize a number of different digital input signals and react to them promptly, interrupting the execution of the software and temporarily jumping to a specific location in the memory. Cortex-M supports up to 240 interrupt lines on the high-end cores of the family. The interrupt vector, located at the beginning of the software image in flash, contains the addresses of the interrupt routines that will automatically execute on specific events. Thanks to the NVIC, interrupt lines can be assigned priorities, so that when a higher-priority interrupt occurs while the routine for a lower interrupt is executed, the current interrupt routine is temporarily suspended to allow the higher-priority interrupt line to be serviced. This ensures minimal interrupt latency for these signal lines, which are somewhat critical for the system to execute as fast as possible.

At any time, the software on the target can run in two privilege modes: unprivileged or privileged. The CPU has built-in support for privilege separation between system and application software, even providing two different registers for the two separate stack pointers. We will examine in more detail how to properly implement privilege separation, and how to enforce memory separation when running untrusted code on the target.

A Cortex-M core is present in many microcontrollers, from different silicon vendors. Software tools are similar for all the platforms, but each MCU has a different configuration to take into account. Convergence libraries are available to hide manufacturer-specific details and improve portability across different models and brands. Manufacturers provide reference kits and all the documentation required to get started, which are intended to be used for evaluation during the design phase, and may also be useful for developing prototypes at a later stage. Some of these evaluation boards are equipped with sensors, multimedia electronics, or other peripherals that extend the functionality of the microcontroller.

主站蜘蛛池模板: 鲁甸县| 新干县| 淮滨县| 涿州市| 和政县| 潜山县| 宣威市| 武安市| 抚州市| 南澳县| 历史| 晋江市| 大余县| 开江县| 巴青县| 昂仁县| 呼图壁县| 乌拉特前旗| 邹城市| 修武县| 朔州市| 通道| 定结县| 兴城市| 九龙城区| 易门县| 惠安县| 马边| 利川市| 宿州市| 唐山市| 璧山县| 平湖市| 堆龙德庆县| 小金县| 德清县| 喜德县| 东宁县| 新蔡县| 洛浦县| 闸北区|