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.

[参考译文] CCS/TMS570LS1224:代码运行时、链接器文件中的.intvecs 未初始化。

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/593944/ccs-tms570ls1224-intvecs-in-linker-file-uninitialized-when-code-is-run

器件型号:TMS570LS1224
主题中讨论的其他器件: HALCOGEN

工具/软件:Code Composer Studio

您好!

我使用的是 TMS570LS1224板和 CCS 版本7。

我正在尝试运行一个在调试模式下不在电路板上执行任何操作的简单程序。 代码会编译并运行、但当我在存储器浏览器的32位十六进制- TI 样式下搜索"main"时、我发现一个问题。 十六进制代码中的前几个段0x00000000到0x00000020仍然未初始化。 显示如下:

0x00000000 FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF
0x00000010 FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF

如果我不解决问题、这将导致我在电路板上运行的未来代码出现问题。 我已将问题跟踪到链接器文件"TMS570LS122xFlashLnk.cmd"。 在配置段中、有一个名为".intvecs"的段当前不指向任何代码文件。

/*------------------ *

/* TMS570LS122xFlashLnk.cmd                             *

/*                                       *

/*(c) Texas Instruments 2011、保留所有权利。              *

/*                                       *

/*用户代码开始(0)*/

/*用户代码结束*/

/*------------------ *

/*链接器设置                               *

--retain="*(.intvecs)"

/*------------------ *

/*内存映射                                 *

存储器

  引导程序(X) :origin=0x00000000 length=0x00000020

  FLASH0 (RX):origin=0x00000020 length=0x0013FFE0

  堆栈 (RW):origin=0x08000000 length=0x00001300

  RAM  (RW):origin=0x08001300 length=0x0002ED00

/*------------------ *

/*段配置                            *

剖面

  .intvecs:{}>向量

  .text  :{}> FLASH0

  .const :{}>FLASH0

  .cinit :{}> FLASH0

  .pinit :{}> FLASH0

  .bss  :{}> RAM

  .data  :{}> RAM

/*------------------ *

.intvecs 显示为黑色、而其他部分则显示为紫色、这进一步告诉我它存在问题。 我一直在浏览计算机的文件(Macintosh HD >应用程序> ti > ccsv7 > ccs_base > arm)、查找包含这八个十六进制行的代码的文件、但我找不到任何有用的东西。

浏览电路板的在线手册和参考指南、我发现.intvecs 应该包含如下内容:

";中断向量
resetEntry:
0x00 b _c_int00
undefEntry:
0x04 b undefEntry
svcEntry:
0x08 b svcEntry
预取 Entry:
0x0C b 预取 Entry
0x10 b _dabort
0x14 b phantomInterrupt
0x18 LDR PC、[PC、#-0x1b0]
0x1C LDR PC、[PC、#-0x1b0]" 

我一直在寻找一个包含这些内容的.c 文件、但我还没有找到一个。 在哪里可以找到包含所需内容的文件?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 Derek:

    您所引用的代码行位于 HalCoGen 生成的代码内的 sys_intvecs.asm 文件中。 您似乎在尝试在 Halcogen 之外开发代码、如果是、您需要在具有给定段标识符的文件中设置中断向量代码。 对您编写自己的代码(包括启动代码)没有限制、但我强烈建议您使用 Halcogen 来开发您自己的代码(尽管它可以用于生产目的)、如果没有的话、也可以使用 Halcogen 来学习工具。