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.

[参考译文] MSP430F67791:Code composer 输出问题

Guru**** 2430620 points
Other Parts Discussed in Thread: MSP430F67791

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1381231/msp430f67791-code-composer-output-issue

器件型号:MSP430F67791

工具与软件:

大家好!

我被要求将一个使用 IAR Workbench 开发的现有工程转换为 MSP430F67791的 code composer。 我已经能够编译代码(有一些警告)并将代码加载到 MC 中。但是、代码无法正常工作。 在 IAR 下编译的相同源文件工作正常。 当我查看 IAR 生成的.txt 文件时、它从@C000开始、在检查中我发现这个部分包含了项目中使用的文本消息、而 Code Composer 生成的代码看起来就像从这个地址开始的代码。 我对这种差异感到困惑。 我认为连接器已经将复位矢量(在0xFFFE 处)正确填充到代码开始位置。 这是我使用 TI 控制器的第一个项目、尽管我已经在其他控制器上工作多年。 是否有人能让我了解这段模仿 并指导/帮助我在 CC 中编译代码?  急切地等待着帮助。  感谢你能抽出时间。

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

    尊敬的 Nayani:

    复位矢量用于触发系统级复位并执行一些操作、以便充分清除 RAM 中的数据、然后跳转到主代码。

    主代码存储在主闪存区域中、该代码可能位于@C000或编译器优化的其他地址。

    在其下面是器件的存储器表:

    B.R.

    SAL

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

    尊敬的 Sal Ye:

    感谢您的答复。 问题不在于复位代码、而在于矢量本身。 我已在 IAR 的输出(.txt 文件)下方粘贴

    @C000
    20 20 20 20 20 20 20 20 20 43 4C 4F 53 45 20 54 48 --关闭探头
    45 20 50 52 4F 42 45 20 20 20 20 20 20 20 20 00 20
    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20.
    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 00 20 20
    20 20 20 20 20 20 20 57 45 54 54 49 4E 47 20 43 --湿性循环
    59 43 4C 45 20 20 20 20 20 20 20 20 20 00 20 20 20
    20 54 69 6D 65 20 4C 65 66 74 20 3A 20 20 20 20 -- Time left:
    20 20 20 20 20 20 20 20 20 20 20 20 20 00 20 20 20 20
    20 20 20 20 50 4C 45 41 53 45 20 57 41 49 54 2E --请稍候...
    2E 2E 20 20 20 20 20 20 20 20 20 20 00 20 20 20 20 20 20
    20 20 20 20 20 20 20 20 44 4E 45 21 20 20 20 20 -完成!

    和来自 CCS (Intel Hex 文件)  

    :02FFF8000CC13A.
    :02FFFA000CC138.
    :02FFFC000CC136.
    :02FFFE00F0C051   //根据文档这是复位向量地址、向量是0xF0C0 (如果我错了、请更正我)。 在包含该地址的十六进制文件中没有记录(不一定是以该地址开始的记录、但我查找了包含该地址的任何记录)。  

    问题的关键是、CCS 输出在加载到闪存时无法正常工作。  

    请帮助解决该问题。 比您高。

    此致

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

    复位矢量(在0xFFFE 处)的内容将是0xC0F0、它似乎在您的.text 段中。 我希望它显示为类似"_c_int00_ " .map 文件。

    至于您遇到的故障,我从警告开始,他们可能会告诉您 CCS 不支持的 IAR 功能。

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

    Bruce、您好!

    感谢发帖。 我已检查.map 文件。 将再次检查以确认。 至于警告、它们主要与下标超出范围、与 I/O 端口相关的功耗等有关、而不是转换。 我将在浏览映射文件后更新。

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

    功耗信息来自 ULP Advisor、它们是"建议"而不是"警告"、可以毫无罪恶感地忽略它们。 如果它们太杂乱、可以在"Project->Properties->Build->Compiler->ULP Advisor"(按钮"None")中将其关闭。

    "下标超出范围"警告(至少在它的脸上)似乎值得关注。

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

    Bruce、您好!

    感谢您展示如何阻止警告。 是的、下标需要关注、因为它可能会造成灾难。 此时、我的注意力是代码被执行、但我增加了数组大小、没有获得这些警告。 请查看我的文章和建议。 此致

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

    我不确定您指的是哪些(未回答的)问题。 如 Sal 所述、没有理由认为 IAR 和 CCS 编译器(链接器)会相同地布置存储器。 特别是、对于 CCS、我不会期望常量字符串(章节".const")出现在闪存底部、这是因为(至少) ISR/复位代码将首先出现。 (我不记得 IAR 是如何布置的。)

    如果您已纠正所有警告、我想下一步是调试问题。 什么是不起作用的? 当您运行它时会发生什么情况?

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

    文档 SLAU157AS 第7章提到了一些需要注意的 IAR->CCS 迁移事项:

    https://www.ti.com/lit/ug/slau157as/slau157as.pdf

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

    Bruce、您好!

    我不比较内存布局。 在 CCS 中编译的代码仅不起作用。 这就是问题所在。 最简单的方法是初始化 LCD 并显示欢迎横幅。 这不会发生。 此致。

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

    谢谢你。 我将继续。  

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

    尊敬的 Nayani:

    我建议您 选择 TI-TXT 十六进制格式、而不是 INTEL-HEX 格式、检查是否起作用。

    B.R.

    SAL