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.

[参考译文] 编译器/LAUNCHXL-F2.8377万S:如果"--RAMFUNC"选项被激活,处理器无法启动....

Guru**** 2587365 points
Other Parts Discussed in Thread: C2000WARE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/656712/compiler-launchxl-f28377s-if---ramfunc-option-is-activated-processor-can-not-start

部件号:LAUNCHXL-F2.8377万S

工具/软件:TI C/C++编译器

1.我有 LAUNCXL-F2.8377万S SO,导入的示例  

     C:\ti\C2000Ware_1_00_03_00_Software\driverlib\f2837xs+示2837示例\CPU1 \CLA\CCS\

    [CLA_EX1_ASIN] 项目

2.我选择了[CPU1_FLASE]配置,它工作正常。

3.为了更快地运行,我更改了选项 (用于在ram中运行,而不是在flash中运行)

  [build]-> C2000编译器->高级选项->运行时模型选项  

  =>从RAM运行函数(--ramfunc) ->[On ]

4.在ramfunc=on之后,当我启动处理器时,它停止。消息“No source available for "0x3fe493"”(没有可用的源代码"0x3fe493")

5.我已更改[2837xS_FLASH_CLA_lnk_CPU1.cmd]文件  

.cinit :> FLASHB page =0,align(4)
.Pinit:> FLASHB,第页=0,对齐(4)

binit :> FLASHB,page =0,align(4)  <=插入此行(1/2)

Cla1Prog:负载= FLASHD,
RUN = RAMLS4_5,

表(binit,   <=我插入了这一行(2/2)

但它仍然不起作用。

6.我该怎么办?

7.我期待您的回复...谢谢您

8.程序加载时,状态如下

   

9.我的编译器版本如下(我尝试了这两个版本)

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    可能是程序无法加载到内存中。
    如何将程序从闪存加载到RAM?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你好

    ramfunc选项尝试将所有函数移动到RAM,这可能会导致引导时出现问题,并且找不到应用程序入口点。
    processors.wiki.ti.com/.../Placing_functions_in_RAM

    我建议指定要移动的函数,而不是启用该选项。 闪存构建配置会将某些功能移至RAM。 请参见memcpy的用法。
    此示例演示了如何使用pragma来指定要移动到RAM的某些函数。 ~\c2000Ware_1_00_03_00\device_support\f2837xs\examples\CPU1 \F2837xS_sci_flash_kernel\cpu012837 \F2837xS_sci_flash_kernel\cpu01</s>2837

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

    您好,Christopher Chiarella
    我知道"__attribute___((ramfunc)"
    我正在使用它。
    但是,在driverlib模式下
    在闪存启动模式下,处理器会减慢3~4 º C,即使所有功能都配置为ramfunction。
    尤其是在ADC中断例程中(ADC中断例程被配置为ramfunction)。
    所以我把我的程序从驱动程序库->位域模式转换成了。
    那么一切都很好。
    因此,我认为driverlib模式中的ramfunction不能很好地工作。
    对于我的未来开发,以及其他开发人员,
    请查找解决方案
    "[build]-> C2000编译器->高级选项->运行时模型选项
    =>从RAM运行函数(--ramfunc)->[on ]"
    在LAUNCXL-F2.8377万S中。
    每个人都可以像我一样进行测试,这是TI的启动板和TI的示例。
    祝你好运。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我将提出一个有关此问题的错误,以便我们可以进一步调查此问题并了解发生了什么情况。
    对此造成的不便,我深表歉意。

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

    你  

    我期待你的答复

    此致

    崔雄