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.
工具/软件:TI C/C++编译器
您好!
您能否告诉我 CCS 选项-no_fast_branch 的后继路由器?
它在 CGT 6.4.12之前可用。
我的客户首选此选项、因为其源代码中的"for "循环已转换为 BF 指令。 因此、代码的运行速度比更高的编译器更快。
请参阅文章 在 RAM 中放置函数。 关于 C2000、它说...
将为 ramfunc 函数生成快速分支指令。 将为所有其他函数生成常规分支指令(假定这些函数从闪存运行)。 -no_fast_branch 选项已被弃用、不再具有任何效果。
谢谢、此致、
乔治
Hideaki Nambu 说:发生故障的原因是,RAM 中的 main()在复制到 RAM 之前被调用。
在 main 开始执行之前、所有 ramfunc 函数、包括 main、由启动代码从闪存复制到 RAM。 不过、这确实假定您的链接器命令文件正确处理 ramfunc 函数。 也许不是。 请发布您使用的链接器命令文件。 因此论坛将接受它、添加文件扩展名.txt。
谢谢、此致、
乔治
乔治
感谢您的回答。 我附上了整个项目:
生成工程的步骤:
Christopher、
感谢您的转售。
由于工具限制、我们正在寻找一种解决方案来将项目属性设置为更喜欢快速分支、我们现在可以这样做。
当{main()、InitSysCtrl()和 DisableDog()}分配给.text 时,项目不会崩溃。 添加的函数 sub()是使用快速分支指令编译的。
这种解决方案对我来说似乎很好、但您是否有任何疑虑?
[Blinky_cpu01.c:ln86] #pragma CODE_SECTION (main、".text")
[F2837xS_SYSCTRL.c:Ln91] #pragma CODE_SECTION (InitSysCtrl、".text")
[F2837xS_SYSCTRL.c:Ln619]#pragma CODE_SECTION (DisableDog、".text")
我向 George 发送了一个更新的示例项目。 请他转发。