 |
Zephyr API 3.6.99
|
Loading...
Searching...
No Matches
Go to the documentation of this file.
13#ifndef ZEPHYR_INCLUDE_LINKER_LINKER_DEVNULL_H_
14#define ZEPHYR_INCLUDE_LINKER_LINKER_DEVNULL_H_
16#if defined(CONFIG_LINKER_DEVNULL_MEMORY)
18#if defined(CONFIG_XIP)
19#if (!defined(ROM_ADDR) && !defined(ROM_BASE)) || !defined(ROM_SIZE)
20#error "ROM_SIZE, ROM_ADDR or ROM_BASE not defined"
24#if (!defined(RAM_ADDR) && !defined(RAM_BASE)) || !defined(RAM_SIZE)
25#error "RAM_SIZE, RAM_ADDR or RAM_BASE not defined"
28#if defined(CONFIG_XIP) && !defined(ROM_ADDR)
29#define ROM_ADDR ROM_BASE
33#define RAM_ADDR RAM_BASE
36#define ROM_END_ADDR (ROM_ADDR + ROM_SIZE)
37#define DEVNULL_SIZE CONFIG_LINKER_DEVNULL_MEMORY_SIZE
38#define ROM_DEVNULL_END_ADDR (ROM_END_ADDR + DEVNULL_SIZE)
39#define MAX_ADDR UINT32_MAX
50#if !defined(CONFIG_XIP)
52#if RAM_ADDR >= DEVNULL_SIZE
53#define DEVNULL_ADDR (RAM_ADDR - DEVNULL_SIZE)
55#define DEVNULL_ADDR (RAM_ADDR + RAM_SIZE)
60#if ((ROM_ADDR > RAM_ADDR) && ((MAX_ADDR - ROM_END_ADDR) >= DEVNULL_SIZE)) || \
61 ((ROM_END_ADDR + DEVNULL_SIZE) <= RAM_ADDR)
62#define DEVNULL_ADDR ROM_END_ADDR
63#elif ROM_ADDR > DEVNULL_SIZE
64#define DEVNULL_ADDR (ROM_ADDR - DEVNULL_SIZE)
66#error "Cannot place devnull segment adjacent to ROM region."
71#define DEVNULL_REGION DEVNULL_ROM