1、测试目的
2、测试过程
2.1在其中一台电脑上,把开GPIO Demo测例,位于..\ ET6001\ET6001 SDK示例代码\Examples\GPIO\GPIO_TogglePin\Project。查看代码,用于在主循环中进P2.4进行阻塞式Delay翻转,里面用了读改写的操作
DRV_StatusTypeDef GPIO_TogglePin(GPIO0_Type *GPIOx, uint16_t pin_mask)
{
uint32_t val = 0;
assert_param(GPIOx != NULL);
assert_param(IS_GPIO_ALL_PERIPH(GPIOx));
val = READ_REG(GPIOx->DATAOUT);
if (val & pin_mask) //根据当前寄器(上一次写入的值),决定本次写入的电平状态
{
CLEAR_BIT(GPIOx->DATAOUT, pin_mask);
}
else
{
SET_BIT(GPIOx->DATAOUT, pin_mask);
}
return DRV_OK;
}
编译,下载,执行。。。。。顺利,但没有效果
于是Debug调试,不能控制断点,查看SDK用户手册,严格按软件版本进行操作,重新下载MDK 5.3以上的版本测试,效果一样(无效果)
重新写最简函数
Int32_t gCnt = 0;
Void main(void)
{
While(1)
{
gCnt++;
}
}
在线Debug下载,仍为异常。在wworld网上看到一个同行,也类似的现象。原帧如下
https://bbs.eeworld.com.cn/thread-1296575-1-1.html
怀疑是电脑的原因,换台电脑,重装环境
2.2 新电脑重新梳理
安装pack包 ETMCU.ET600x_DFP.1.0.6.pack
打开GPIO demo,编译,下载,运行,OK
Debug 查看watch window变量,仍然无效。
怀疑LINK调试器的原因,手上有1个通用版本DAP LINK,可以识别芯片,但不能下载程序。
改写程序,验证变量是事有效果。让闪灯有点节奏,如下
下载,执行,闪灯程序,快到慢,有一个变化的过程 ,说明gCnt生效了。
但Debug仍无法观测gCnt变量的值
3、总结
引用: majorshu 发表于 2024-10-26 14:04 貌似,不能发表附件。MDK配置信息如下:
可以,记得上传后,记得点击一下,才能插入到里面