Design
Quadros Announces Graphical Configuration Tool for the ARM MMU
Continuing its drive to reduce complexity and development time for embedded systems, Quadros Systems, Inc. has announced an editor and table generator for configuring the ARM memory management unit (MMU). The MMU Table Editor and Generator, MTEG, allows the developer to specify the properties of the process spaces in an easy-to-use, graphical interface and eliminates the need for the embedded developer to master the underlying technology of the ARM MMU in order to use it.
The ARM provides a very powerful and flexible memory management unit with virtual memory features required for task and access protection. A set of two-level page tables stored in main memory is used to control the MMU. In use, the entire 32-bit address space is divided into multiple memory regions with respect to the application requirements. Each memory region requires properties, defined in associated tables, which implement the memory access protection, cache-ability, buffering method and address translation of that region. The higher level table, L1, maps the application’s process space with megabyte granularity, permitting the entire ARM address space to be mapped into 4096 32-bit entries. For each megabyte mapped in the L1 table, an individual L2 table is required. Each L2 table consists of 256 or 1024 32-bit elements. Thus, to configure an ARM MMU requires that the developer understand, create and enter a large number of 32-bit numbers.
The MTEG tool presents a high level view of the configuration procedure, reducing the problem to a few definitions, leaving the tool to perform the repetitious work. When the MMU configuration is complete, the developer can instruct the MTEG tool to generate the tables that represent the specification. Editing the properties of a memory region of a process space is always a possibility when configuring an MMU for an embedded application. The MTEG tool makes it easy through a high level dialog box.
Without the MTEG tool, manual configuration requires intimate knowledge of the inner workings of the particular ARM MMU. This alternative approach forces the developer to specify and enter each process space’s table elements manually. Considering the number and detail of the necessary table entries for even a simple application, a manual configuration procedure can be a daunting task. It is highly susceptible to data entry errors, whose diagnosis and correction can severely impact a development schedule. The enormity and tedium of proper MMU configuration and the error-prone nature of manual methods makes the MTEG tool the superior method to perform this laborious procedure.