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.

[参考译文] RTOS/TM4C123GH6PGE:TM4C123GH6PGE

Guru**** 2535750 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/798639/rtos-tm4c123gh6pge-tm4c123gh6pge

器件型号:TM4C123GH6PGE

工具/软件:TI-RTOS

您好!

我最近获得了 TM4C123GXL 评估套件、以准备新项目。 我正在移植一个只包含几个任务和信号量的拆分 TI-RTOS 项目。 以下是我获得的一些结果:

1) 1)项目构建良好、并在调试模式下运行正常。

2) 2)当我复位电路板时、程序运行并且我的 UART ISR 正在触发。

3) 3)任务看起来没有运行

我已设置 CCS (v7.3.0)以生成.bin 文件和.hex 文件(Motorola S3输出)。 我注意到 bin 文件大于500 MB。 看起来 RAM 中的数据段(0x2000000)正在添加到.bin 文件中、闪存和 RAM 之间的间隙正在填充零(0)。 这将使 bin 文件变得很大。  Flasher 无法打开 bin 文件并将其加载到 FLASH。  

我对.cmd 文件做了一个更改,以便.data 段进入闪存而不是 SRAM (.data:> FLASH)。 我提出以下意见:

4) 4)程序在调试器中的运行方式与上述步骤(2)中的运行方式相同。

5) 5)生成的 bin 文件仅约为33KB

6) 6)我能够暂停程序并查看 ROV。

7) 7) ROV 显示所有任务都处于"无效模式"。 请参见下图:

"无效模式"是什么意思?  

看起来我可能需要一个更复杂的链接器命令文件。 我有哪些选择?

提前感谢您的帮助。

此致、

Kens  

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

    尊敬的 Kens:

     我有一些意见。

     正常情况下、任务将被一个 Semaphore_pend 函数阻断、等待 Hwi 调用 Semaphore_post 函数。 如果任务未运行、则可能需要检查是否调用了 Semaphore_post。

     2.您不能将.data 映射到闪存。 闪存是非易失性存储器。 data 保存您的运行时变量。 如果变量在闪存中、则不能更改它们。

     3.您不想使用.out 文件的原因是什么? 当然、如果需要、可以使用.bin 文件、但它没有调试符号。 我建议您首先从.out 文件开始。

     4.有许多 TI-RTOS 示例(例如 UART 示例和其他示例)。 我建议您查看这些示例(即使用信标的 UART 和内核)、也许可以使用其中一个示例、然后在上面构建应用程序。 这可能更容易开始。

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

    感谢您对我的帖子的详细回复。 我做了一个您指向我的 UART 示例、这很好。 在移植项目时、我必须拧紧一些东西。 您为我提供了一些我可以从中构建的东西。 我感谢你的帮助。

    此致、

    Kens