主题中讨论的其他器件:OMAP-L138、 TMS320C6748、 OMAPL138、
大家好、
我对这两个开发套件有一些疑问、这两个套件上的处理器以及 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.