主题中讨论的其他部件:controlSUITE,
我有一台在Mac上运行CCS v7的IDDK_PM_Servo_F2837x-v2。
我收到一条警告,指出该项目是在不同的编译器版本上构建的。
是否存在兼容性问题?
当前状态是程序正在运行,但PWM未运行。 PWM1regs.TRCTR从不离开0。
TBCTL为0x83。 IER是0x05,IFR是0,但可能是因为没有发生中断
PWM未运行。 我假设软件可以正常工作。 请帮我弄清楚我做了什么错。
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.
我有一台在Mac上运行CCS v7的IDDK_PM_Servo_F2837x-v2。
我收到一条警告,指出该项目是在不同的编译器版本上构建的。
是否存在兼容性问题?
当前状态是程序正在运行,但PWM未运行。 PWM1regs.TRCTR从不离开0。
TBCTL为0x83。 IER是0x05,IFR是0,但可能是因为没有发生中断
PWM未运行。 我假设软件可以正常工作。 请帮我弄清楚我做了什么错。
我不知道什么可能是错误的。 一种猜测是这些行的初始化记录...
Wayne Hunter 说://默认ADC初始化
Int ChSel[16]={0,0,0,0,0,0,0,0,0,0,0,0,0,0};
内部分类[16]={5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5};
Int ACQPS[16]={8,8,8,8,8,8,8,8,8,8,8,8,8};[/报价]
...在Windows上构建时是正确的,但在Mac上构建时是错误的。 请 预处理 包含这些行的源文件,并将其附加到下一篇文章中。 同时显示编译器版本以及编译器看到的编译选项。 我将在Mac和Windows上构建文件,并查找差异。
谢谢,此致,
-George
Wayne Hunter 说:执行main()之前初始化的所有变量都将在boot.asm中移动。
我假定您指的是初始化C环境的例程中.cinit部分的处理,称为_c_int00。 要更好地理解该代码,请参阅 C2000编译器手册 中标题为 Automatic Initialization of Variables (变量自动初始化)的部分。 执行此处理的源代码位于名为boot28.inc (较旧的编译器版本)或boot28.asm (较新的编译器版本)的文件中。 典型的文件位置是...
C:\ti\ccsv7\tools\compiler\ti-CGT-C2000_C2000<xmt-block0>2000 16.9 .1.LTS\lib\src.
这种初始化全局变量的方法长期以来一直以同样的方式工作。 现在不太可能出现问题。 我认为最终可执行文件(.out)中的.cinit部分很可能与系统内存中加载的.cinit部分不同。 我建议您比较它们并找出不同之处。
从命令行执行...
>>ofd2000 -v --obj_display=none,sections final_executable.out
检查输出以查看类似以下内容的内容...
<5>".cinit" 加载地址: 0x0.0001万ede运行地址: 0x0.0001万ede 大小: 0x81 对齐: 1. 已加载到设备:是 地址单元大小:16位 文件偏移量: 0x3e38. #关系: 0 重新分配文件偏移:0x0万 #行: 0 行文件偏移:0x0万 TI-COFF s_flags: 0x0.004万 TI-COFF s_flag: STYP_DATA
这是有关存储在可执行文件中的.cinit段的信息。 感兴趣的字段是"文件偏移量"。 该值是从文件开头开始的偏移量,其中.cinit部分的原始数据开始。 使用您最喜欢的二进制文件编辑器(或者您可能更喜欢Unix命令od)来检查可执行文件。
要将.cinit内存地址映射到文件偏移,请使用以下公式...
文件偏移基数+(当前cinit地址-起始cinit地址)
对于基于上述.cinit部分的特定示例,假设当前cinit地址为0x1f0a。 然后文件中的偏移量为0x3e38 +(0x1f0a - 0x1ede)= 0x3e64。
Wayne Hunter 说:在cinit部分,移动开始正常,直到达到0x2e或0x2F的内存中的计数。
我假定0x2e不是正在执行的指令的地址,而是正在处理的.cinit的某些部分的地址。 我不熟悉您的特定设备的内存映射。 位于此地址的.cinit是否有效? 现在,我想是这样。 将可执行文件中的内存地址0x2e与.cinit进行比较会很有趣。
谢谢,此致,
-George
我要求提供自检模块的位置,我在某处看到该模块存在。 但像往常一样,我被忽略了。[/QUOT]
2月2日,在另一个线程中,Adam Haun建议:"如果要测试硬件,可以尝试运行 controlSUITE中的其他一些示例。 我建议使用闪子,CPU_TIMERS或一个或CLA数学示例。" 您是否有权访问controlSUITE? 您是否能够成功运行这些测试案例?