ZHCUAV7Z september 1995 – march 2023 66AK2E05 , 66AK2H06 , 66AK2H12 , 66AK2H14 , AM1705 , AM1707 , AM1802 , AM1806 , AM1808 , AM1810 , AM5K2E04 , C346BA02 , C348A01 , CS241C01-Q1 , CS241C05-Q1 , CS246C01-Q1 , CS348C02-Q1 , OMAP-L132 , OMAP-L137 , OMAP-L138 , S470AV336LYSQRB , TMS470R1A288 , TMS470R1A384 , TMS470R1A64 , TMS470R1B1M , TMS470R1B512 , TMS470R1B768
存储器范围原点和长度可以使用带有以下运算符的整数常量表达式:
二元运算符: | * / % + - << >> == = < <= > >= & | && || | |
一元运算符: | - ~ ! |
表达式根据标准 C 运算符优先级规则进行求值。
不会检查上溢和下溢,但会使用更大的整数类型来计算表达式。
可使用预处理指令 #define 常量代替整数常量。不能在存储器指令表达式中使用全局符号。
三个地址运算符从先前的存储器范围条目中引用存储器范围属性:
START(MR) | 返回先前定义的存储器范围 MR 的起始地址。 | |
SIZE(MR) | 返回先前定义的存储器范围 MR 的大小。 | |
END(MR) | 返回先前定义的存储器范围 MR 的结束地址。 |
/********************************************************/
/* 带有 MEMORY 指令的示例命令文件 */
/********************************************************/
file1.c.obj file2.c.obj /* 输入文件 */
--output_file=prog.out /* 选项 */
#define ORIGIN 0x00000000
#define BUFFER 0x00000200
#define CACHE 0x0001000
MEMORY
{
FAST_MEM (RX): origin = ORIGIN + CACHE length = 0x00001000 + BUFFER
SLOW_MEM (RW): origin = end(FAST_MEM) length = 0x00001800 - size(FAST_MEM)
EXT_MEM (RX): origin = 0x10000000 length = size(FAST_MEM) - CACHE