a707083746 发表于 2019-8-2 18:30:01

如何定义多个变量从指定的位置开始存放

请教大家一个问题:D
如下面的3个变量这样定义:
u8V1 __attribute__((at(0x20004000)));
u16 V2 __attribute__((at(0x20004002)));
u32 V3 __attribute__((at(0x20004004)));


在map文件中可以看到分配成功:

    V1                                       0x20004000   Data         1main.o(.ARM.__AT_0x20004000)
    V2                                       0x20004002   Data         2main.o(.ARM.__AT_0x20004002)
    V3                                       0x20004004   Data         4main.o(.ARM.__AT_0x20004004)


上面这种方法需要在每个变量后面都指定一个地址,有没有什么办法可以让某一段或一个C文件的变量从一个指定的位置开始存放呢?


butterflyspring 发表于 2019-9-9 16:50:21

看了一下keil的帮助文件,可以将某个文件通过编辑SCATTER文件后指定位置。这样就可以将批量变量的文件统一放置在某个区域。请参考编译器下面的HELP目录:)

a707083746 发表于 2019-9-10 08:21:21

butterflyspring 发表于 2019-9-9 16:50
看了一下keil的帮助文件,可以将某个文件通过编辑SCATTER文件后指定位置。这样就可以将批量变量的文件统一 ...

厉害了,应该是这样

glenxu 发表于 2019-10-14 09:02:07

定义一个数组也可以实现
页: [1]
查看完整版本: 如何定义多个变量从指定的位置开始存放