如何指定常量数组的内存位置(C30 编译器)

发布于 2025-01-07 03:22:34 字数 345 浏览 0 评论 0原文

我试图使用 Microchip C30 编译器将数组放置在 PIC24EP256G810 处理器上辅助存储器的最高位置。数组定义如下:

const int __attribute__((space(auxflash), aligned(2048))) AuxFlashRows[8][128]
{
    {
        0x0000,etc,etc
    },
    {
        0x0000,etc,etc
    },
    etc
};

上面的代码将数据放置在辅助内存空间中,但我不确定如何让编译器将其放置在最高位置。刚才它把数组放到了引导加载程序占用的位置。

谢谢

I am trying to place an array at the highest location in auxiliary memory on a PIC24EP256G810 processor using the Microchip C30 compiler. The array is defined as follows:

const int __attribute__((space(auxflash), aligned(2048))) AuxFlashRows[8][128]
{
    {
        0x0000,etc,etc
    },
    {
        0x0000,etc,etc
    },
    etc
};

The code above will place the data in the auxiliary memory space, but I am unsure how to make the compiler place it at the highest location. Just now it puts the array in a location occupied by the bootloader.

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

何处潇湘 2025-01-14 03:22:34

您不需要修改链接描述文件。除了 space() 和aligned() 之外,您只需在attribute 修饰符中添加address() 关键字,然后对所需的地址进行硬编码。它记录在我的 C30 用户指南版本的 2.3.1 节中,但无论哪种方式,您都可以只搜索“属性”,它们都记录在一起。 (抱歉,表格正在吃掉我的下划线:)

You shouldn't need to modify the linker script. You should just have to add the address() keyword in your attribute modifier, in addition to space() and aligned(), and hard-code the address you want. It's documented in section 2.3.1 in my version of the C30 User's Guide, but either way you could just search the "attribute", where they are all documented together. (Sorry, the form is eating my underscores :)

日记撕了你也走了 2025-01-14 03:22:34

IIRC 您必须调整链接器文件(c30/support/pic24e/gld 中的 p24EP256GU810.gld),

例如程序长度段:

program (xr) : ORIGIN = 0x200, LENGTH = 0x2A9FE

并相应减少。

IIRC you have to adapt the linker file (p24EP256GU810.gld in c30/support/pic24e/gld)

e.g. the program length segment:

program (xr) : ORIGIN = 0x200, LENGTH = 0x2A9FE

and reduce accordingly.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文