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.

[参考译文] 编译器/TMS320F28377S:GPIO 在 SYS/BIOS 程序中不工作

Guru**** 2482225 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/709797/compiler-tms320f28377s-gpio-not-working-in-sys-bios-program

器件型号:TMS320F28377S

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

我正在使用28377s LaunchPad 探索 SYS/BIOS 编程。

我首先在非 SYS/BIOS 程序中初始化并切换 GPIO 12、它工作正常。

然后我在 SYS/BIOS 模板中使用了相同的代码、编译后运行程序、GPIO 似乎没有响应。

代码:

#include "F28x_Project.h"

int i=0;
int main()

//如果从闪存运行,则只将 RAM 复制到 RAM
#ifdef _flash
memcpy (&RamfuncsRunStart、&RamfuncsLoadStart、(size_t)&RamfuncsLoadSize);
#endif

// InitSysCtrl();
InitGpio();

EALLOW;
GpioCtrlRegs.GPAMUX1.bit.GPIO12=0;
GpioCtrlRegs.GPADIR.bit.GPIO12=1;
GpioDataRegs.GPADAT.bit.GPIO12=1;
GpioDataRegs.GPASET.bit.GPIO12=1;
EDIS;

对于(i = 0;i < 5;i++){

GpioDataRegs.GPATOGGLE.bit.GPIO12=1;
DELAY_US (50000);


返回(0);

我在调试窗口中监视 I、然后将值从0增加到5、这表明正在执行循环、GPIO 应该正在切换。 但是、当我探测它时、GPIO12引脚始终为低电平。

是否有人可以分享这方面的知识?

非常感谢。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    如果您在 GPATOGGLE 行中放置一个断点并单步执行它、您能在引脚上看到切换吗?

    您如何在 SYS/BIOS 引导模块中配置时钟? SYSCLK 以多快的速度运行?

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

    "如果您在 GPATOGGLE 行中放置一个断点并单步执行它、您能在引脚上看到切换吗?" -单步执行断点、无切换。

    "您如何在 SYS/BIOS 引导模块中配置时钟? SYSCLK 以多快的速度运行?" -通过 XGCONF 配置了 syclk。 在启动模块中、引导子模块。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您能否在 CCS 中上拉寄存器窗口、并确保在单步执行代码时为 GPIO12正确设置 GPADIR 和 GPAMUX1寄存器?

    我将代码放入我自己的 SYS/BIOS 项目中、没有任何问题使 GPIO12切换。 您是否在项目中收到任何编译警告?

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

    表达式窗口显示 GAPSET、GPIO12的 GPADIR 设置为1。 但是、两个寄存器的寄存器映射显示为0。

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

    收到了大量警告、其中两个与 GPIO 相关

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我怀疑您需要将 device_support\f2837xs\headers\cmd\F2837xS_Headers_BIOS.cmd 添加到您的项目中。 您目前没有告诉链接器 GPIO 寄存器的位置、因此它只是将 GpioCtrlRegsFile 放置在合适的位置、而不是将其叠加在存储器映射寄存器上。

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

    尊敬的惠特尼:

    您是对的、SYS/BIOS 项目中的.cmd 文件不会为 ADC 或 GPIO 等外设指定任何内存。  

    重新配置.cmd 文件后、一切都正常。

    非常感谢!

    Rgds、

    Alex