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/UCD3138064:使用 CCS 运行时库中的启动代码

Guru**** 2494635 points


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

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/721102/ccs-ucd3138064-using-startup-codes-from-ccs-runtime-libary

器件型号:UCD3138064

工具/软件:Code Composer Studio

 目前、我们使用的是不支持 C 环境初始化变量的 load.asm。 有些客户可能不了解差异、他们的计划可能会出现问题。 我们是否曾尝试使用 CCS 标准运行时库中的启动代码?   

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

    实际上、我们的常规 load.asm 确实支持 C 环境的自动初始化变量。  

    它是以以下内容开头的代码:

    ;*--------------------------------------------------
    ;*执行自动初始化。  如果 CINIT 为-1、则
    ;*没有。
    ;*--------------------------------------------------
    ;  BL $c_int00
    ;  BL $c_int00
     LDR r0、c_cinit

    我们确实会在引导加载程序 load.asm 中保留此功能、这可能是您看到的结果。   这应该是唯一一个被排除的地方。  因为我们正在尝试将其放入2K 空间、所以它不会被引导加载程序所占用。  在这里、我们还会保留一些内容、例如进入用户模式和初始化几个堆栈值。

    最初在第一个 UCD 器件上、我尝试使用标准运行时库。  它非常大、默认情况下包括用于初始化完整 C 语言和 C++的代码。

    我想它是几 KB。  我认为它也不会初始化所有堆栈。  与 CCS 3.3相同。  我们从那时起就没有再讨论过它。  

    load.asm 不会为堆进行初始化。  堆对于我们相对较小的 RAM 来说似乎不是一个好主意、但它仍然不是。