4.4.2 Errors

Reading and writing memory can fail for various reasons, including data aborts, translation errors, unsupported byteWidth, and reading past the end of the memory space.

Such errors do not cause the memory_read() or memory_write() function to return an error status, which would prevent them from returning meaningful return values, but instead are reported in the error member of the MemoryReadResult or MemoryWriteResult return value.

Reads and writes specify a start address, an access width per element (byteWidth), and a number of elements (count). The start address must be within the range supported by the memory space, in other words between minAddr and maxAddr of the memory space, or E_address_out_of_range is returned. However, the end address can be beyond the end of the memory space. In other words, address+(byteWidth*count)-1 is not required to be within minAddr to maxAddr. Reads and writes must return an error in the error member of the result for all elements that exceed the memory space address range.

Target instances that do not expose any memory must return E_function_not_supported_by_instance for the memory_*() functions.

Non-ConfidentialPDF file icon PDF version101196_0100_00_en
Copyright © 2018 Arm Limited or its affiliates. All rights reserved.