【发布时间】:2021-12-30 00:41:19
【问题描述】:
TI Tiva Arm 板 EK-TM4C123GXL 无法运行以下程序。需要帮助调试, 其教科书程序,书籍链接:http://www.microdigitaled.com/ARM/TI_ARM_books.htm
/* p2_7.c: Read a switch and write it to the LED */
/* This program reads SW1 of Tiva LaunchPad and writes the inverse of the value to the green LED. SW1 is low when pressed (Normally High). LED is on when high. */
#include "TM4C123GH6PM.h"
int main(void)
{
unsigned int value;
SYSCTL->RCGCGPIO |= 0x20; /* enable clock to GPIOF */
GPIOF->DIR = 0x08; /* set PORTF3 pin as output (LED) pin */
/* and PORTF4 as input, SW1 is on PORTF4 */
GPIOF->DEN = 0x18; /* set PORTF pins 4-3 as digital pins */
GPIOF->PUR = 0x10; /* enable pull up for pin 4 */
while(1)
{
value = GPIOF->DATA; /* read data from PORTF */
value = ~value; /* switch is low active; LED is high active */
value = value >> 1; /* shift it right to display on green LED */
GPIOF->DATA = value; /* put it on the green LED */
}
}
【问题讨论】:
-
IDE 版本:µVision V5.36.0.0 工具版本号: 工具链:MDK-Lite 版本:5.36.0.0 C 编译器:ArmClang.exe V6.16 汇编器:Armasm.exe V6.16 链接器/定位器:ArmLink.exe V6.16 库管理器:ArmAr.exe V6.16 十六进制转换器:FromElf.exe V6.16 CPU DLL:SARMCM3.DLL V5.36.0.0 对话框 DLL:TCM.DLL V1.53.0.0 目标DLL:lmidk-agdi.dll 对话框 DLL:TCM.DLL V1.53.0.0
-
不要在 cmets 中添加与问题相关的信息 - 编辑问题。这是您声明特定程序无法运行的第二个问题。以前不是这样,我怀疑这里是真的。你怎么知道它没有运行?几乎可以肯定它正在运行,但没有达到您的预期。您是否在调试器中单步执行了代码?
-
你的
TM4C123GH6PM.h头文件是从哪里来的?例如,结构成员GPIOA_Type::DATA应使用__IO限定符声明(或在最新的 CMSIS 标头__IOM中)。反过来,这些宏应该在core_cm4.h中定义为volatile。这应该确保代码有效 - 我承认被这个代码难住了。你声明valuevolatile有效吗?不过应该没必要。请注意,在任何情况下,优化这样的琐碎代码几乎没有用处,并且在使用符号调试器时,优化的代码很少有意义。 -
那个头文件,来自 Keil 运行时环境设置
-
您有付费许可证还是演示版?这可能是 Keil/ARM 技术支持的问题:keil.com/support/contact.asp 请注意,Keil 是 ARM 的子公司,因此您将获得最好的专业知识。
标签: c embedded texas-instruments