GD32F470在debug时遇到“Cannot access target. Shutting down debug session.”及解决方法

本文讲述了作者在使用GD32F470VKT6开发板时遇到的调试问题,通过取消STM32的VerifyCodeDownload选项解决了Cannotaccesstarget错误,虽然看似玄学,但提供了实用的解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用板子信号:GD32F470VKT6(开发板)。

问题:在连接自带的GD-Link后,在正常可以download的情况下,debug会出现“Cannot access target. Shutting down debug session.”情况,如下图所示:

网上查了很多方法,基本都是STM32的,也没有解决,于是无意间发现,在Options for Target(魔法棒)中的debug的settings中,将“Verify Code Download
”取消勾选(之前是默认勾选的),问题解决,很玄学,但是至少可以debug了。

个人见解,仅供参考!

在基于GD32F470开发板移植UCOSIII系统的过程中,`bsp.c`文件中的`RCC_ClocksTypeDef`结构体用于存储系统钟信息。处理这个结构体的主要步骤如下: 1. **包含头文件**:首先,需要包含相关的头文件,以便使用`RCC_ClocksTypeDef`结构体和相关函数。 ```c #include "gd32f4xx.h" ``` 2. **定义结构体变量**:在`bsp.c`文件中定义一个`RCC_ClocksTypeDef`类型的变量,用于存储钟信息。 ```c RCC_ClocksTypeDef rcc_clocks; ``` 3. **获取钟信息**:使用`rcu_clock_freq_get`函数获取系统钟信息,并将其存储在定义的变量中。 ```c rcu_clock_freq_get(&rcc_clocks); ``` 4. **使用钟信息**:在需要的地方,可以访问`rcc_clocks`结构体中的成员变量来获取具体的钟频率,例如`SYSCLK_FREQ`、`HCLK_FREQ`、`PCLK1_FREQ`和`PCLK2_FREQ`等。 ```c uint32_t sysclk_freq = rcc_clocks.SYSCLK_FREQ; uint32_t hclk_freq = rcc_clocks.HCLK_FREQ; uint32_t pclk1_freq = rcc_clocks.PCLK1_FREQ; uint32_t pclk2_freq = rcc_clocks.PCLK2_FREQ; ``` 5. **调试和验证**:在系统初始化过程中,可以通过调试输出来验证钟配置是否正确。 ```c printf("SYSCLK_FREQ: %ld\n", rcc_clocks.SYSCLK_FREQ); printf("HCLK_FREQ: %ld\n", rcc_clocks.HCLK_FREQ); printf("PCLK1_FREQ: %ld\n", rcc_clocks.PCLK1_FREQ); printf("PCLK2_FREQ: %ld\n", rcc_clocks.PCLK2_FREQ); ``` 通过以上步骤,`RCC_ClocksTypeDef`结构体在`bsp.c`中的处理就完成了。这样可以确保系统钟的正确配置和获取,为后续的系统初始化和任务调度提供可靠的钟信息。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值