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.

[参考译文] C5505 SoC 录制和回放

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/694235/c5505-soc-record-and-playback

您好!

我需要一个示例、说明如何录制简短的音频(单声道)文件、将其存储在位于 NOR FLASH 的 Q15阵列中、然后在输出扬声器上播放。

我的 SoC 基于 C5505

非常感谢您的参与

Paolo

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

    您可以将 C55x Connected Audio Framework 用作起点、网址为:
    www.ti.com/.../c55x-audioframework
    另请查看类似的 E2E 主题、网址为:
    e2e.ti.com/.../109077
    还有一个示例项目- C5515_eZdsp_Audio_Filter_Demo
    code.google.com/.../downloads

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

    尊敬 的 Cvetolin Shulev-XID:

    非常感谢您的支持。 我的主要问题是将样本存储在 NOR 闪存中并在稍后播放。

    因此、我只想录制一次语音短语、以 Q15格式将其存储在 NOR 闪存中。 然后、我想在程序运行期间的某些情况下从 NOR 读取它、有时也可以播放它。

    有任何提示?

    提前感谢。

    Paolo

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

    很抱歉耽误你的时间。 我找到了一个更好的示例、该示例有助于将样本存储在 NOR 闪存中。
    请查看以下示例:
    /C55_LP/C55_CSL_3.08/CCS_v6.x_examples/EMIF/CSL_EMIF_NOR_CpuTransfer

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

    感谢 Cvetolin Shulev-XID、

    我尝试了另一种方法、包括 sigle 步骤:

    我想在 NOR 中分配一个准备好的 Q15数组代码。 我要做的是:  

    #pragma DATA_SECTION (signal_2KHz、"signal_2KHz");
    Int16 signal_2KHz[192]={
    
    0x0000,0x006b,0x00D6,0x0140,0x01A8,0x020F,0x0273,0x02D5,0x0333,0x038E,0x03E5,0x0438,0x0487,0x04D0.0x0114,0x0552,
    0x058B、0x05BD、0x05EA、0x060F、0x062F、0x0647、0x0658、0x0663、0x0666、0x0663、0x0658、0x0647、0x062F、0x060F、0x05EA、0x05BD、
    0x058B、0x0552、0x0514、0x04D、0x0487、0x0438、0x03E5、0x038E、0x0333、0x02D5、0x0273、0x020F、0x01A8、0x0140、0x00D6、0x006B、
    0x0000.0xFF95、0xFF2A、0xFEC0、0xFE58、0xFDF1、0xFD8D、0xFD2B、0xFCCD、0xFC72、0xFC1B、0xFBC8、0xFB79、0xFB30、0xFEC、0xFAAE、
    0xFA75、0xFA43、0xFA16、0xF9F1、0xF9D1、0xF9B9、0xF9A8、0xF99D、0xF99D、0xF9A8、0xF9B9、0xF9D1、0xF9F1、0xFA16、0xFA43、
    0xFA75、0xFAAE、0xFEC、0xFB30、0xFB79、0xFBC8、0xFC1B、0xFC72、0xFCCD、0xFD2B、0xFD8D、0xFDF1、0xFE58、0xFEC0、0xFF2A、0xFF95、
    0x0000,0x006b,0x00D6,0x0140,0x01A8,0x020F,0x0273,0x02D5,0x0333,0x038E,0x03E5,0x0438,0x0487,0x04D0.0x0114,0x0552,
    0x058B、0x05BD、0x05EA、0x060F、0x062F、0x0647、0x0658、0x0663、0x0666、0x0663、0x0658、0x0647、0x062F、0x060F、0x05EA、0x05BD、
    0x058B、0x0552、0x0514、0x04D、0x0487、0x0438、0x03E5、0x038E、0x0333、0x02D5、0x0273、0x020F、0x01A8、0x0140、0x00D6、0x006B、
    0x0000.0xFF95、0xFF2A、0xFEC0、0xFE58、0xFDF1、0xFD8D、0xFD2B、0xFCCD、0xFC72、0xFC1B、0xFBC8、0xFB79、0xFB30、0xFEC、0xFAAE、
    0xFA75、0xFA43、0xFA16、0xF9F1、0xF9D1、0xF9B9、0xF9A8、0xF99D、0xF99D、0xF9A8、0xF9B9、0xF9D1、0xF9F1、0xFA16、0xFA43、
    0xFA75、0xFAAE、0xFEC、0xFB30、0xFB79、0xFBC8、0xFC1B、0xFC72、0xFCCD、0xFD2B、0xFD8D、0xFDF1、0xFE58、0xFEC0、0xFF2A、0xFF95
    }; 

    我有这个.cmd 文件:

    内存
    {
    MMR (RW):origin = 0000000h length = 0000c0h /* MMRs */
    DARAM (RW):origin = 00000c0h length = 00ff40h //片上 DARAM */
    Saram (RW):origin = 0030000h length = 01e000h //片上 SARAM */
    
    SAROM_0 (RX):origin = 0fe0000h length = 008000h//片上 ROM 0 */
    SAROM_1 (RX):origin = 0fe8000h length = 008000h//片上 ROM 1 */
    SAROM_2 (RX):origin = 0ff0000h length = 008000h//片上 ROM 2 *
    SAROM_3 (RX):origin = 0ff8000h length = 008000h//片上 ROM 3 */
    
    
    EMIF_CS0 (RW):origin = 0050000h length = 07B0000h /* mSDR */
    EMIF_CS2 (RW):origin = 0800000h length = 0400000h // ASINC1:NAND */
    EMIF_MIF (RW):origin = 0C00000h length = 0200000h //* NC2:CS3
    origin = 0E00000h length = 0100000h // ASYNC3:NOR */
    EMIF_CS5 (RW):origin = 0F00000h length = 00E0000h //* ASYNC4:SRAM *
    
    }
    
    
    SECTIONS
    {
    向量(空载)
    .bss :> DARAM /*,fill = 0 */
    矢量 :> SARAM 对齐= 256
    堆栈 :> SARAM
    .sysstack:> SARAM
    .sysmem:> SARAM
    .text :> SARAM
    .data :> SARAM
    .cinit:> SARAM
    .const:> SARAM
    .cio:> SARAM
    .usect:> SARAM
    .switch :> SARAM
    
    
    buf :> DARAM
    Buf2 :> DARAM
    rfftL :> DARAM
    ifftL:> DARAM
    CMPLxBuf :> DARAM
    brBuf:> DARAM
    tmpBuf:> DARAM
    BPF_32_TX:> DARAM
    BPF_42_TX:> DARAM
    BPF_32_Rx:> DARAM
    BPF_42_Rx:> DARAM
    BPF_Rx:> DARAM
    dbuffer_Rx:> DARAM
    dbuffer_TX :> DARAM
    //hilb_fil :> DARAM
    //hilb_dbuf:> DARAM
    signal_2KHz:>??
    
    
    
    ?}
    _hwafft_br= 0x00ff6cd6;
    _hwafft_1024pts = 0x00ff7a56;
    

    我不知道如何分配'ignal_2KHz'数组、使其处于 NOR 中、并且可以在运行时作为正常数组进行访问。

    有任何提示?

    提前感谢、

    Paolo

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

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

    您好 Paolo、

    signal_2KHz   :> EMIF_CS4

    工作。

     

    Ming

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

    您好、Ming、
    我认为、正确的意思是内存分配向我展示了您所说的内容。
    但在运行时、阵列不能以传统方式访问、并且写入的数据不正确:

    EMIF 分配后、数据结果与代码定义的结果不同、并且它们在运行时发生变化(通过在调试模式中查看观察表达式)。

    为什么?

    此致、
    Paolo

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

    您好!

    请提供任何提示?

    非常感谢

    Paolo

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

    您好 Paolo、

    您将需要初始化 EMIF 以访问 NOR。 尝试使用 GEL 文件正确设置 EMIF 以访问 NOR。

    此致、

    Ming