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.

[参考译文] Linux/processor-SDK-OMAPL138:使用 Linux 中的 remoteproc.0时、将 DSP 加载到 OMAP-L138的 L2RAM 中

Guru**** 2540720 points
Other Parts Discussed in Thread: OMAP-L138

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/774854/linux-processor-sdk-omapl138-loading-dsp-into-the-l2ram-of-the-omap-l138-when-using-remoteproc-0-from-linux

器件型号:PROCESSOR-SDK-OMAPL138
主题中讨论的其他器件:OMAP-L138DA8XX

工具/软件:Linux

您好!

我尝试从 Linux 加载 DSP 固件、其中 DSP 存储器使用 L2RAM/IRAM 作为其存储器位置。
如果将内存放入 DDR 中、则可以正常工作、但如果在 L2RAM 中放置了任何内存、则 Remoteproc.0不会加载固件。

这是我的 config.Bld

/*
=== CONFIG.BRD =====
*
//
var build = xdc.useModule('xdc.bld.BuildEnvironment');
var Pkg = xdc.useModule('xdc.bld.PackageContents');

//构建发行版时,请释放所有内容*/
Pkg.attrs.exportAll = true;

//取消注释此项以构建具有调试支持的应用*/
Pkg.attrs.profile ="Debug";

// bin/是生成的目录,"XDC clean"应删除*/
Pkg.generatedFiles。$add ("bin/);

Build.platformTable["ti.platforms.evmOMAPL138:dsp"]={
externalMemoryMap:[
["DDR"、{
名称:"DDR"、空格:"代码/数据"、访问:"rwx"、
基地址:0xC3100000、len:0x800000、
注释:"DSP 程序存储器(8 MB)"
}
]、
代码内存:"DDR"、
数据存储器:"DDR"、
stackMemory:"DDR"、
L1DMode:"32K"、
L1PMode:"32K"、
l2Mode:"0K"
};


/*
==== TI.targets.elf.c674 ===
*/
var C674 = xdc.useModule('ti.targets.elf.C674');
c674.ccopts.suffix +="-mi10 -mo "; 

在尝试加载固件时、将任何内存区域设置为 IRAM 中不起作用。

IRAM 的地址为0x18000000、大小为0x40000

我尝试了以下操作:

1.已尝试将 DEVMEM 添加到资源表中。

{
TYPE_DEVMEM、IRAM_DA、IRAM_DA、IRAM_SIZE、0、 0、"DSP_IRAM"、
}、 

2.在资源表中向 DTS 添加内存池并进行分配

保留存储器{
#address-cells =<1>;
#size-cells =<1>;
范围;

DSP_memory_region:DSP-memory@c3000000{
compatible ="shared_dma-pool";
reg =<0xc3000000 0x1000000>;
可重复使用;
status ="确定";
};

DSP_memory_Region2:DSP-IRAM@=

0x400000000;reg

;"shared dma-pool =";"OK"= 0x18000000;"reusable
};"reusable}
{
TYPE_CARVEOUT、IRAM_DA、IRAM_DA、IRAM_SIZE、0、 0、"DSP_IRAM"、
}、 

这种情况都不起作用。

我需要将 DSP 存储器驻留在 IRAM/L2RAM 中。


以下是完整的资源表:

/*
=== rsc_table_omapl138.h ===========
*
*在每个基本映像中包含此表
,该基本映像从*主机端的 remoteproc 读取。
*
/

#ifndef _RSC_TABLE _OMAPL138_H_
#define _RSC_TABLE _OMAPL138_H_

#include "RSC_Types.h"

#define IRAM_DA 0x18000000
#define IRAM_SIZE SZ_256K

#define DATA_DA 0xc3100000

#ifndef DATA_SIZE
# define DATA_SIZE (SZ_8M)
#endif

#define RPMSG_VRING0_DA 0xc3000000
#define RPMSG_VRING1_DA 0xc3004000

#define console_VRING0_DA 0xc3008000
#define console_VRING1_DA 0xc300C000

#define BUFS0_DA 0xc3040000
#define BUFS1_DA 0xc3080000

/*
虚拟队列的大小(以支持的缓冲区数量表示,
*并且必须是2的幂)
*/
#define RPMSG_VQ0_SIZE 256
#define RPMSG_VQ1_SIZE 256

#define console_VQ0_size 256
#define console_VQ1_size 256

//翻转位,其索引代表我们支持的功能*/
#define RPMSG_DSP_features 1

结构 my_resource_table{
struct resource_table base;

uint32 offset[4];

/* rpmsg vdev 条目*/
struct fw_RSC_vdev rpmsg_vdev;
struct fw_rsc_vdev_vring rpmsg_vring0;
struct fw_rsc_vdev_vring rpmsg_vring1;

/*数据分割条目*/
struct fw_RSC_carveout data_cout;

/*数据设备条目*/
struct FW_RSC_devmem IRAM;

/*跟踪条目*/
struct fw_RSC_trace;
};
extern char XDC_RUNTIME_SysMIN_Module_State_0_outbuf__A;
#define TRACEBUFADDR (uint32)&XDC_RUNTIME_SYSMIN_Module_State_0_outbuf_A
#define TRACEBUFUST_IPC 0x8000

(uinti_ipc_table


)#proc_remote_data_remote_table、#proc_remote_data_remote_data_remote_remote_date_remote_remote_remote_remote_remote_date_te_te_remote_remote_remote_remote_remote_remote_remote_remote_
1、/*我们是实现此功能的第一个版本*/
4、/*表中的条目数*/
0、0、/*保留、必须为零*/
/*条目的偏移量*/
{
offsetof (struct my_resource_table、rpmsg_vdev)、
offsetof (struct my_resource_table、data_cout)、
offsetof (struct my_resource_table、IRAM)、
offsetof (struct my_resource_table、trace)、
}、

/* rpmsg vdev 条目*/
{
TYPE_VDEV、virtio_ID_RPMSG、0、
RPMSG_DSP_features、0、0、0、2、 {0、0}、
/*无配置数据*/
}、
/*两个振铃*/
{RPMSG_VRING0_DA、4096、RPMSG_VQ0_SIZE、1、0}、
{RPMSG_VRING1_DA、4096、RPMSG_VQ1_SIZE、2、0}、

{
TYPE_CARVEOUT、DATA_DA、DATA_DA、DATA_SIZE、0、 "DSP_MEM_DATA"、
}、

{
TYPE_DEVMEM、IRAM_DA、IRAM_DA、IRAM_SIZE、0、 0、"DSP_IRAM"、
}、

{
TYPE_TRACE、TRACEBUFADDR、TRACEBUFSIZE、0、"TRACE:DSP"、
}、
};

#endif /*_RSC_TABLE _OMAPL138_H_*


将 IRAM 声明为 CARVEOUT 或 DEVMEM 都无法解决我的问题。

这是 Linux 通过 dmesg 提供的完整日志:

[3128.896586] davinci-rproc davia-rproc.0:pm_clk_notify () 6
[3128.897324] PM:删除无总线的信息:proc 0
[3128.920801] firmware_class:fw_name_devm_release:fw_r868-dsp-fw devm-remote_proc 3128.9320801]
dspc
:rproc davinci_proc 3rproc 3rproc:rproc 3rproc 3rproc 3rproc 3rproc:rproc 3rprob_remotic release32 davinci

:rproc 3rproc 3rproc 3rproc 3rproc 3rproc 3rproc:rproc 3rproc 3rproc 3rproc 3r 探测驱动程序 Davinci-rproc.0
[3128.936681] Davinc-rproc Davinci-rproc.0:无 pinctrl 句柄
[3128.96756] Davinc-rproc Davinci-rproc.0:pm_clk_notify () 4
[3128.936922] devices_kset:移动 davinci-rproc dfadm.r3000-rproc.0:将
davinci r3003003000-r3003003000-r3003003003000-r300300300990添加到器件节点:r300393003900]器件目录[3r3009940]@

添加无总线的信息:remoteproc0
[ 3129.005493] remoteproc remoteproc0:DSP 可用
[ 3129.009591] firmware_class:__allocy_fw_buf:fw-rproc-dSP-fw buf=c26ac5c0
[3129.009728] remoteproc0:加载/lib/firmware/updates/4.14.40-g4796173fc5/rproc-dsp-fw
/lib/firmware/updates/rproc-dsp-fw 时失败,错误为:3129.77
加载/lib/firmware/4.14.40-g4796173fc5/rproc-dsp-fw 失败,错误-2
[3129.053666]驱动程序:'davinci-rproc':driver_bound:绑定到设备'davinci-rproc.0'
[3129.053763] dava-rproc davia-rproc.0:pm_clk_notify () 5
[3129.054058]总线:'platform':dspc:3129.053763] davincrproc-rproc-rproc.0] davincrproc davincrproc.0=rproc.0=davincrproc.rproc davincrproc.0_rproc dave13rproc.0]rproc davincrproc.0=dave13rproc davincrproc.0=dave13rproc dave13rproc.0]rproc.0=davinc


为 DSP 加电
[3129.137771] firmware_class:batched request - sharing the same struct firmware_buf and lookup for multiple requests
[3129.137805] firmware_class:fw_set_page_data:fw-rproc-dSP-fw buf=c26ac5c0 data=cproc1000 s=2845088
[312137841

固件_remote_dsp:12286024_remote_remote_ds] fw-rproc-dsp-FW buf=c26ac5c0 data=cbec1000 size=2845088



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

    很抱歉、我刚回到办公室、需要一些时间来消化您的信息。 我可能需要与 DSP 专家讨论它。 通常、这是由配置不一致造成的。 我会在收到信息后尽快回复您。

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

    我通读您的帖子、您似乎需要配置分割或修改资源表。 您是否尝试过这两种方法?
    Carveout 将保留使用它、但资源表会通知 MMU 获取对存储器区域的访问。

    IPC 用户指南 software-dl.ti.com/.../Foundational_Components_IPC.html 中 AM57x 的 IPC 章节"更改 DSP 存储器映射"中有一节 、其中可能包含您需要的信息。

    我邀请了 DSP 专家、以防他需要添加任何内容。

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

    尊敬的 Rex:

    我想向大家保证、我已经非常仔细地研究了"更改 DSP 存储器映射"、并找到了多个与此相关的线程。
    我将尝试使用车辆和记忆图、因为我认为我以前曾绘制出错误的记忆区域。 但请添加可用于此目的的任何更多信息。 我的项目必须在其他情况下工作、因为我要求 DSP 的所有存储器位于内部 DSP 存储器 L1/L2中、而不是位于 DDR 上。

    编辑:

    我编辑了 DTS 中的 CARVEOUT 以获得正确的存储器区域:

    保留存储器{
    #address-cells =<1>;
    #size-cells =<1>;
    范围;
    
    DSP_memory_region:DSP-memory@c3000000{
    compatible ="shared_dma-pool";
    reg =<0xc3000000 0x1000000>;
    可重复使用;
    status ="确定";
    };
    
    DSP_memory_Region2:DSP-memory@11800000;"reuse-pool
    
    
    
    = 0x1800000";"可重复使用;"reg"
    
    

    将我的构建设置为使用所有 IRAM (L2RAM):

    Build.platformTable["ti.platforms.evmOMAPL138:dsp"]={
    externalMemoryMap:[
    ["DDR"、{
    名称:"DDR"、空格:"代码/数据"、访问:"rwx"、
    基地址:0xC3100000、len:0x800000、
    注释:"DSP 程序存储器(8 MB)"
    }
    ]、
    代码存储器:"IRAM"、
    dataMemory:"IRAM"、
    stackMemory:"IRAM"、
    L1DMode:"32K"、
    L1PMode:"32K"、
    L2Mode:"0K"
    }; 

    并修改了资源表:

    /*
    === rsc_table_omapl138.h ===========
    *
    *在每个基本映像中包含此表
    ,该基本映像从*主机端的 remoteproc 读取。
    *
    /
    
    #ifndef _RSC_TABLE _OMAPL138_H_
    #define _RSC_TABLE _OMAPL138_H_
    
    #include "RSC_Types.h"
    
    #define IRAM_DA 0x1180000
    #define IRAM_SIZE SZ_256K
    
    #define DATA_DA 0xc3100000
    
    #ifndef DATA_SIZE
    # define DATA_SIZE (SZ_8M)
    #endif
    
    #define RPMSG_VRING0_DA 0xc3000000
    #define RPMSG_VRING1_DA 0xc3004000
    
    #define console_VRING0_DA 0xc3008000
    #define console_VRING1_DA 0xc300C000
    
    #define BUFS0_DA 0xc3040000
    #define BUFS1_DA 0xc3080000
    
    /*
    虚拟队列的大小(以支持的缓冲区数量表示,
    *并且必须是2的幂)
    */
    #define RPMSG_VQ0_SIZE 256
    #define RPMSG_VQ1_SIZE 256
    
    #define console_VQ0_size 256
    #define console_VQ1_size 256
    
    //翻转位,其索引代表我们支持的功能*/
    #define RPMSG_DSP_features 1
    
    结构 my_resource_table{
    struct resource_table base;
    
    uint32 offset[4];
    
    /* rpmsg vdev 条目*/
    struct fw_RSC_vdev rpmsg_vdev;
    struct fw_rsc_vdev_vring rpmsg_vring0;
    struct fw_rsc_vdev_vring rpmsg_vring1;
    
    /*数据分割条目*/
    struct fw_RSC_carveout data_cout;
    
    /*数据分割条目*/
    struct FW_RSC_carveout IRAM;
    
    /*跟踪条目*/
    struct fw_RSC_trace;
    };
    extern char XDC_RUNTIME_SysMIN_Module_State_0_outbuf__A;
    #define TRACEBUFADDR (uint32)&XDC_RUNTIME_SYSMIN_Module_State_0_outbuf_A
    #define TRACEBUFUST_IPC 0x8000
    
    (uinti_ipc_table
    
    
    )#proc_remote_data_remote_table、#proc_remote_data_remote_data_remote_remote_date_remote_remote_remote_remote_remote_date_te_te_remote_remote_remote_remote_remote_remote_remote_remote_
    1、/*我们是实现此功能的第一个版本*/
    4、/*表中的条目数*/
    0、0、/*保留、必须为零*/
    /*条目的偏移量*/
    {
    offsetof (struct my_resource_table、rpmsg_vdev)、
    offsetof (struct my_resource_table、data_cout)、
    offsetof (struct my_resource_table、IRAM)、
    offsetof (struct my_resource_table、trace)、
    }、
    
    /* rpmsg vdev 条目*/
    {
    TYPE_VDEV、virtio_ID_RPMSG、0、
    RPMSG_DSP_features、0、0、0、2、 {0、0}、
    /*无配置数据*/
    }、
    /*两个振铃*/
    {RPMSG_VRING0_DA、4096、RPMSG_VQ0_SIZE、1、0}、
    {RPMSG_VRING1_DA、4096、RPMSG_VQ1_SIZE、2、0}、
    
    {
    TYPE_CARVEOUT、DATA_DA、DATA_DA、DATA_SIZE、0、 "DSP_MEM_DATA"、
    }、
    
    {
    TYPE_CARVEOUT、IRAM_DA、IRAM_DA、IRAM_SIZE、0、 0、"DSP_MEM_IRAM"、
    }、
    
    {
    TYPE_TRACE、TRACEBUFADDR、TRACEBUFSIZE、0、"TRACE:DSP"、
    }、
    };
    
    #endif /*_RSC_TABLE _OMAPL138_H_*
    

    我的 SYS/BIOS 多处理器配置:

    VAR MultiProc = xdc.useModule('ti.sdo.utils.MultiProc');
    MultiProc.setConfig("DSP"、["host"、"DSP"]);
    
    //启用在资源表上运行的内存转换模块
    VAR 资源= xdc.useModule('ti.ipc.remoteproc.Resource');
    resource.customTable = true;
    resource.loadSegment ="DDR";
    //Resource.loadSegment = Program.platform.dataMemory;
    
    /*使用 SysMin、因为 Linux/QNX 需要跟踪缓冲区地址
    *跟踪调试驱动程序、加提供更好的性能。
    //
    System.SupportProxy = SysMin;
    SysMin。bufSize = 0x8000;
    
    Program.sectMap[".tracebuf"]="DDR";
    Program.sectMap[".errorbuf"]="DDR"; 

     

    结果:

    Linux 现在接受资源表并加载固件、但无法正常工作。

    即使从 DDR 加载时起作用的基本启动 GPIO 也不再工作。

    因此、我假设它实际上不再将固件加载到 DSP 中。

    resource.loadSegment ="IRAM";但结果仍然相同。

    我只尝试在资源表中为 IRAM 使用一个分割线、结果也是一样的。

    请提供任何帮助。

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

    我从开发人员那里得到信息、OMAP-L138目前不支持将 DSP 代码加载到 IRAM/L2RAM 中。 它仅支持 KS2和 AM57x DSP。 很抱歉造成混淆。

    雷克斯
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    因此、从 Linux 中将 DSP 代码加载到 IRAM/L2RAM 中需要0%或无论如何。 此时、我并不真的关心跟踪或 IPC。
    我只需要将代码加载到适当的存储器区域中。

    这可以通过 U-Boot 而不是 Linux 来实现吗? 那么、限制 Linux 使用特定范围的 DDR、以免其重叠?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Dmitriy、

    我们还没有尝试过这种方法。 需要重写内核驱动程序。

    雷克斯
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我找到了与其他人的链接、他人在谈论这一点是可能的:
    e2e.ti.com/.../1929519

    不知道为什么需要重新编写 Linux 驱动程序、因为我真的不需要 Linux 来执行任何操作。
    Linux 仅适用于 LAN 和文件系统。 唯一的交叉通信是通过 SRAM 完成的、
    但 ARM 和 DSP 在我的系统中的大部分时间都是独立存在的。

    我只是想知道、通过提供的链接、是否有其他人在 TI 上尝试或遇到过这种情况
    电压。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Dmitriy、

    我不确定您提到的链接是否仍然有效、但如果您需要、您可以按照 Rahul 的第一条建议尝试使用 DSP 重建 u-boot 映像并将这些代码添加到 DSP 中。 Rahul 的第二个建议是集成 ELF 加载程序、它指的是 syslink。 Syslink 不再受支持、已迁移到 IPC。 此方法可能不起作用。

    关于 Titus 的建议、我不确定处理器 SDK 中是否支持该命令、并将其包含在 TI u-boot 中。

    正如 Rahul 提到的、从 u-boot 加载不是一种常规方法。 TI 未在 SDK 版本中进行验证。 您可以尝试查看它们是否正常工作。

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

    我将尝试将固件嵌入 U-Boot、因为这是唯一看起来最可行的方法。
    我认为、Titus 所指的自定义命令仅添加到由其他人创建的特定 Mitty 板中。
    似乎该线程的 OP 说它已经完成了、所以我将尝试执行它。

    感谢您验证 Linux remoteproc 不支持内部存储器加载。 这为我节省了时间
    尝试使用它。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Dmitriy、

    我在内部进行了讨论。 OMAP-L138似乎需要像中那样添加 da_TO_va 的补丁
    git.ti.com/.../

    或 keyston_remoteproc.c 中的等效代码

    如果在该集成 ELF 加载程序映像路径中被阻止、您可能需要尝试使用此路径来修改 da8xx_remoteproc.c

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

    有没有关于如何将修补程序应用到内核或执行您建议的操作的指南。 我想这个
    尝试这种方法、看看它的工作效果如何。 我对内核并不是很熟悉。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Dmitriy、

    该 URL 中的补丁适用于 OMAP 器件。 您不能简单地应用它。 我看了 OMAP 补丁和 KeyStone 代码、它们是相似的。 但 rproc->privc 指向不同的 rproc 结构。 您希望将器件地址与内核虚拟地址进行类似的地址转换、以便可以访问内部 RAM。

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

    例如、我尝试将 da_to_va 添加到 remoteproc 中

    /*
    内部存储器转换帮助程序
    *
    *实现 rproc .da_TO_va 操作的自定义函数,为
    
    DSP 或 IPU 器件中的内部 RAM 提供地址*转换(器件地址到内核虚拟地址)。 转换后的地址
    可以*由 Remoteproc 内核用于加载,或由任何 rpmsg 总线驱动程序使用。
    */
    static void *da8xx_rproc_da_to_va (struct rproc *rproc,u64 da,int len,
    u32 flags)
    {
    struct da8xx_rproc *drproc =rproc->priv;
    void *va =
    
    
    
    
    
    
    num;int i;u32 offset;if (<=0) return NULL;if (!drms-<>nulp<<<<=0); if <<<<<<<<<<<<>MErms->nulc <<<<<<=nulc
    
    
    i++){
    if (da >= drproc->mem[i]。dev_addr && da + len <=
    drproc->mem[i].dev_addr + drproc->mem[i].size){
    offset = da - drproc->mem[i].dev_addr;
    
    /*__force 以使稀疏对类型转换感到满意*/
    va =(__force void *)(drc->mem[i].cpu_adva);
    
    
    
    
    return}+ offset
    }
    
    静态常量结构 rproc_ops da8xx_rproc_ops ={
    .start = da8xx_rproc_start、
    .stop = da8xx_rproc_stop、
    .kick = da8xx_rproc_kick、
    .da_TO_va = da8xx_rproc_for_TO_va、
    };
    

    我修改了结构并添加了函数、但它没有执行任何操作。

    有/没有车辆存在。 它仍然不加载、从而提供

    davinci-rproc davi-rproc.0:分配的保留存储器节点 dsp-memory@c3000000
    remoteRemoteproproc0:DSP 是
    根可用的@omapl138-lcdk:~/dsp_Apps# remoteproc
    处理器1960:加电 DSP remoteproc remotepproc0:引导固件映像 rproc-dsp-Fw、大小为2948:
    错误
    的资源条目远程处理0:错误的远程处理0:错误的远程处理器远程处理0:错误的远程处理
    
    

    我有一点损失、我想有加载器解决方案、但我并不十分了解其中的任何一个。

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

    您好、Dmitriy、

    不确定还会涉及什么。 您是否尝试过 Rahul 的第一个建议、使用 DSP 映像重建 u-boot 并将这些代码添加到 DSP 中? 顺便说一下、您的 L2SRAM 地址是否正确? 您有0x18000000、但我在数据表中看到、它从0x1180000开始。 我不确定这是否是拼写错误、或者您是否打算将其定位在0x18000000。

    雷克斯

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尝试重建 u-boot 以及更改内核以不在启动时重置 DSP 实际上还有许多其他方面需要做的事情。 现在、这一点已经有了实际意义、我希望外部人员能够帮助解决这一问题。 地址是一个排印错误、它是0x1180000、这对于解决此问题无关紧要。 我感到非常惊讶的是、TI 没有任何类型的支持/服务来解决这类问题。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Dmitriy、

    这不是要求。 我必须为其提交功能请求、现在将执行此操作。

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

    因为这现在由内部处理并进行评估。 我现在要关闭这个线程。

    雷克斯