工具/软件:
您好 Champ、
我要找我的客户。
它们对缩短启动时间有很强的要求(上电时到达 main() 中的第一行)。
根据理解、 F28003x 器件在复位释放时的指定启动时间约为 1.2ms。 它仅 包括每个器件初始化器件时必须经历的内部引导时间。 它不包括 c_int00 执行时间、对吧?
那么、是否有任何方法/提示来缩短 c_int00 函数的执行时间? 专家可以提供一些很好的建议吗?
谢谢。此致、
Johnny
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.
工具/软件:
您好 Champ、
我要找我的客户。
它们对缩短启动时间有很强的要求(上电时到达 main() 中的第一行)。
根据理解、 F28003x 器件在复位释放时的指定启动时间约为 1.2ms。 它仅 包括每个器件初始化器件时必须经历的内部引导时间。 它不包括 c_int00 执行时间、对吧?
那么、是否有任何方法/提示来缩短 c_int00 函数的执行时间? 专家可以提供一些很好的建议吗?
谢谢。此致、
Johnny
您好 Johnny、
是的、1.2ms 会记录 在闪存中第一次取指令之前的引导 ROM 执行时间。 这不包括 c_int00 执行、因为它是可变的、 具体取决于应用程序的复杂性和使用中的存储器容量。
您可以将不希望编译器初始化为 NOINIT 的变量设置为以下方式、例如在链接器命令文件中:
.bss: > RAMLS7, TYPE = NOINIT
您还可以 在加载时使用“--ram_model 链接器选项初始化变量、通过缩短启动时间和保存初始化表使用的存储器来增强性能。 请参阅 C28x 优化 C/C++编译器 v22.6.0.LTS 用户指南中的 7.10.4.5 加载时变量初始化。
让我和编译器专家一起看看他们是否还有其他建议。
此致、
马特
确保您了解使用等功能意味着什么 TYPE = NOINIT 或 -- ram_model 。 概括来说、这意味着您同意以其他方式初始化相应的变量、或者 假设这些变量从未初始化。 我建议在一个小型测试程序上尝试这些功能。 构建这两种方式、并直接观察差异。
运行时支持函数的源代码、包括启动函数 c_int00 它调用的所有内容都是编译器安装的一部分。 查看目录 install_root /lib/sysv src 。
谢谢。此致、
-乔治