This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] 编译器/MSP430F4.7187万:在ROM中创建字符串表的最有效方式是什么?

Guru**** 2386600 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/586181/compiler-msp430f47187-what-is-the-most-efficient-way-to-create-a-string-table-in-rom

部件号:MSP430F4.7187万

工具/软件:TI C/C++编译器

大家好,

很抱歉这个简单的问题……但是我不能弄清楚。 在ROM中创建消息表的最佳方法是什么?

最明显的方法当然是使用

const unsigned char MessageTable[N][K];

其中N表示消息数,K表示每条消息的字符数。

但是,这仍然让我需要创建一个指针并指向此消息表。

是否可以创建指向常量字符的常量指针数组?

感谢您的帮助,我们将不胜感激。

此致

Aniruddha Phadnis

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    请考虑以这种方式编写...

    const char *message_table[]={"first
    message",
    "second message",
    "third message",
    /*... */"
    最后一条消息"};
    

    注意:这将创建两个需要分配给ROM的输入部分。  字符串的指针表(以符号message_table开头)位于输入部分.data:message_table中。  这些字符串位于输入部分".const:.string"中。  链接程序命令文件可能会忽略子名称(冒号后面的部分),并将.data和.const分配给ROM。

    谢谢,此致,

    -George

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    请考虑以这种方式编写...

    我认为原始海报需要一个指向常量字符串的恒定指针数组,在这种情况下,建议使用以下形式,这意味 着message_table数组位于.const而不是.data部分:

    const char *const message_table[]={"first
    message",
    "second message",
    "third message",
    /*... */"
    最后一条消息"};
    

    [将message_table放置在.const部分中可将其存储在MSP430闪存中,从而节省.data部分的RAM空间]