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.

[参考译文] TMDSLCDK138:和 TMDSLCDK6748相关问题

Guru**** 1587505 points
Other Parts Discussed in Thread: OMAP-L138, TMS320C6748, TMDSLCDK138
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/974788/tmdslcdk138-and-tmdslcdk6748-questions-around

器件型号:TMDSLCDK138
主题中讨论的其他器件:OMAP-L138TMS320C6748OMAPL138

大家好、

   我对这两个开发套件有一些疑问、这两个套件上的处理器以及 Code Composer Studio 对它们进行编程、也许我忽略了一些应用手册中的一些现有主题或信息、在这种情况下、请原谅我。

1) 1)这些套件上的 TMS320C6748和 OMAP-L138处理器是否具有 ROM 等内部程序存储器闪存? 或者、这些处理器必须始终具有用于程序的外部存储器? 我查看了这一点、在数据表中、我没有找到任何有关内部 ROM 程序存储器的配方。 我之所以要求这样做、是因为我在使用套件时会在套件中进行内存写入周期...

2) 2)这个问题与第一个问题相关、与存储器相关。 当我在 CCS 中通过调试器将程序加载到开发套件时、它存在于处理器中并在我按下 RESET 按钮之前运行、那么程序将丢失。 是否可以配置 OMAPL138.cmd 或 C6748.cmd 文件以将程序加载到电路板中的方式、使程序存储在 RAM 中并复位只会导致"从零地址重新启动程序"和第二种方式将程序存储到某些 ROM 存储器中(如果我查找正确-板载 NAND 闪存) 和复位功能类似的功能和关闭电源不会导致程序丢失。

StarterWare 中的 OMAPL138.cmd 文件如下所示:

-stack 0x8000 //软件栈大小*/
heap 0x2000 /*堆区域大小*/
-e 条目

/*指定系统内存映射*/

存储器

DDR_MEM:org = 0xC1080000 len = 0x2F7FFFF /* RAM */

/*指定段分配到内存中*/

部分

初始化:{
system_config.lib (.text)
}加载> 0xC1080000

.text:load > DDR_MEM /* code */
.data:load > DDR_MEM
.bss:load > DDR_MEM //全局和静态 VARS */
RUN_START (BSS_START)、
RUN_END (BSS_END)
.const:load > DDR_MEM /*软件系统堆栈*/
.cinit:load > DDR_MEM /*软件系统堆栈*/
stack:load > 0xC3FF7FFC /*软件系统堆栈*/

在从 CCS 中默认替换 OMAPL138.cmd 之后、看起来是:

存储器

#ifdef DSP_CORE /* DSP 专用内存区域*/

DSPL2ROM o = 0x00700000 l = 0x00100000 // 1MB L2 DSP 本地 ROM */
DSPL2RAM o = 0x00800000 l = 0x00040000 // 256KB L2 DSP 本地 RAM */
DSPL1PRAM o = 0x00E00000 l = 0x00008000 // 32kB L1 DSP 本地程序 RAM *
DSPL1DRAM o = 0x00F00000 l = 0x00008000 // 32kB L1 DSP 本地数据 RAM *

#endif

SHDSPL2ROM o = 0x11700000 l = 0x00100000 // 1MB L2共享内部 ROM */
SHDSPL2RAM o = 0x11800000 l = 0x00040000 // 256KB L2共享内部 RAM */
SHDSPL1PRAM o = 0x11E00000 l = 0x00008000 // 32kB L1共享内部程序 RAM *
SHDSPL1DRAM o = 0x11F00000 l = 0x00008000 // 32kB L1共享内部数据 RAM *
EMIFACS0 o = 0x40000000 l = 0x20000000 // 512MB SDRAM 数据(CS0)*/
EMIFACS2 o = 0x60000000 l = 0x02000000 // 32MB 异步数据(CS2)*/
EMIFACS3 o = 0x62000000 l = 0x02000000 /* 32MB 异步数据(CS3)*/
EMIFACS4 o = 0x64000000 l = 0x02000000 /* 32MB 异步数据(CS4)*/
EMIFACS5 o = 0x66000000 l = 0x02000000 // 32MB 异步数据(CS5)*/
SHRAM o = 0x8000000 l = 0x00020000 // 128KB 共享 RAM */
DDR2 o = 0xC0000000 l = 0x20000000 // 512MB DDR2数据*/

#ifndef DSP_CORE /* ARM 专用存储器区域*/

ARMROM o = 0xFFFD0000 l = 0x00010000 // 64KB ARM 本地 ROM *
ARMRAM o = 0xFFFFFF0000 l = 0x00002000 // 8kB ARM 本地 RAM *

#endif

部分

.text > SHRAM
.stack > SHRAM
.bss > SHRAM
.cio > SHRAM
.const > SHRAM
.data > SHRAM
.switch > SHRAM
.sysmem > SHRAM
.far > SHRAM
.args > SHRAM
.ppdinfo > SHRAM
.ppdata > SHRAM

/* TI-ABI 或 COFF 部分*/
.pinit > SHRAM
.cinit > SHRAM

/* EABI SECTIONS *
.binit > SHRAM
.init_array > SHRAM
.neardata > SHRAM
.fardata > SHRAM
.rodata > SHRAM
.c6xabi.exidx > SHRAM
.c6xabi.extab > SHRAM

我有点困惑、我必须加载什么以及在哪里使它像我提到的那样工作、因为我对这些处理器不了解。 并且 cmd 文件中的错误地址是否会损坏处理器或有什么值得注意的地方?

3) 3) Windows 7 64位上6.0.0.00040版的 CCS 是否可能会导致一些错误:

ARM9_0:文件加载程序:地址0xC1080000处的数据验证失败请验证目标存储器和存储器映射

ARM9_0:GEL:文件:OMAPL138_ARM9_GPIO.out:发生数据验证错误、文件加载失败。

当我从第2点将演示 GPIO 程序加载到具有 StarterWare OMAPL138.cmd 文件的 OMAP-L138上时? 当我将项目压缩到 ZIP 并将其导入 Windows 7 32位版 CCS6.0.1.00040时、这些错误不会出现、 虽然有时我无法在程序运行时从 CCS 调试中重新加载处理器中的程序、但似乎调试器无法连接该程序、但在第二次测试中、使用连接也可以重置处理器(它会擦除程序、如1中所述)问题)。 TMS320C6748我在两个 Windows 版本上加载时没有任何问题、并且始终工作、在 OMAP-L138上、我安装了64位 Windows、以防似乎程序已成功加载到 ARM9并在调试器中进行步进工作、但板载 LED 未更改其状态。

4) 4)最后一个问题是 OMAP-L138和 TMS320C6748之间的区别。 如果我理解这一点、OMAP-L138上的演示程序看起来像 C6748的演示、但在 OMAP-L138上、我必须始终运行 ARM 版本、然后可以选择具有一些附加功能的 C6748、而在 C6748上、我只运行一个程序? 或者、是否可以在 OMAP-L138上仅加载 C6748程序并且它将正常工作(我在上面失败)。

提前感谢您的回答

此致

Josef K.

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

    Josef 您好、

    是的、这些器件具有 ROM、但您无法写入。 但是、您可以使用 ROM 引导加载程序从包括闪存在内的各种源引导应用程序。 当您执行此操作时、应用程序将在电路板上电时自动启动并运行、我相信这正是您想要执行的操作。  

    对于多核器件、执行 CCS 复位通常不够用、您需要执行系统复位或在调试会话之间对电路板进行下电上电。  

    在链接器 cmd 文件中设置"错误地址"不会损坏器件、但会阻止您加载代码-发生这种情况时、CCS 应抛出错误。  

    数据验证错误听起来像是在链接器 cmd 文件中没有正确的存储器映射、或者没有正确复位您的电路板(如上所述)。 如果您的电路板在加电时已经在运行某项操作、也可能会发生这种情况(检查您的引导模式引脚)。

    C6748应用确实可以在 OMAPL138上运行、但 ARM 需要先启动并使 DSP 退出复位状态。 这由 GEL 文件处理当通过 CCS 连接到内核时、您应该在控制台窗口中看到一条消息、指示 DSP 已退出复位状态。 使用引导加载程序时、引导加载程序将在加载 DSP 内核之前处理此问题。

    我建议查看此常见问题解答、尤其是引导加载程序部分、以获取有关我在上面提到的内容的指导。  

    [常见问题解答] OMAP-L13x/C674x 资源和常见问题解答

    如果您仍有任何疑问或疑问、请告诉我。  

    希望这对您有所帮助、
    Sahin

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

    您好、Sahin、

       感谢您的回答、发布了链接并花了很多时间。 我今天也与 TMDSLCDK138讨论了问题。 早期、似乎只有问题(数据验证)是在 CCS IDE 的某些不一致安装中出现的、因此我卸载并重新安装它、这解决了一段时间的问题、但当我添加到项目看门狗计时器时、FTDI 出现了错误。 它只解决断开电路板电源并重新连接的问题、然后 XDS100V2调试器加载程序成功。 因此、我尝试卸载 CCS 并安装了一些时间、同时还重新启动了计算机、还使用软件从设备管理器中删除了 XDS100V2器件、还从程序列表中删除了 FTDI 驱动程序、在安装 Windows 的一段时间里、我还意外损坏了系统、但我在不丢失任何数据的情况下将其恢复。 然后我尝试从 StarterWare 导入 GPIO 演示、该演示未导致此错误、因此我在项目中使用 WatchdogTimerActivate 注释行、但错误未发生。 因此、我认为必须重点关注 WDD 初始化和使用... 但我有点困惑、在其他计算机上(也是 Windows 7和64位)、没有发生此错误、并且看门狗计时器存在、但我认为这可能是随机的积极情况、因为这种错误第一次在两台计算机上都不存在。 但是、正如您所说的、调试器复位通常不是很可靠、因此我将记住它。

    感谢 Josef K.