打印

用keil开发GD32E103C8

[复制链接]
2339|39
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
rurubudong|  楼主 | 2020-3-19 13:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
用keil在线调试GD32E103C8怎么进不了main函数啊?

使用特权

评论回复
评论
apleilx 2020-3-21 09:27 回复TA
打断看下停在哪里? 如果系统用了print函数,没有勾选microlib或者没重定向 输入输出函数就会进不了main。这种情况是编译器决定的,和芯片没啥关系。 
沙发
ykwym| | 2020-3-19 14:40 | 只看该作者
时钟有没有搞对,代码里面有8M和25两种选择

使用特权

评论回复
板凳
rurubudong|  楼主 | 2020-3-19 16:41 | 只看该作者
ykwym 发表于 2020-3-19 14:40
时钟有没有搞对,代码里面有8M和25两种选择

我用的是内部8M的时钟,然后PLL倍频到72M。现在我烧到单片机里面,程序运行正常。但是已在线调试就不行,不能进入main

使用特权

评论回复
地板
xdqfc| | 2020-3-19 16:59 | 只看该作者
呵呵,我在用GD32VF103,就是那个RISC_V国产核的,也碰到这个问题,普通试验可以仿真调试,但是与USB相关的试验,就始终进不了Main函数,问GD的工程师(见下面的帖子),,没有回复,我搞不明白的是,他们为什么把启动文件做那么复杂,本来器件上电默认就是内部8MHz振荡器,按理来讲,就可以直接进入main函数了,至于主频怎么弄,那是用户自己的事情,main之后再设定,他们把这些做在main之前,不知道有什么好处。

使用特权

评论回复
5
rurubudong|  楼主 | 2020-3-19 17:51 | 只看该作者
xdqfc 发表于 2020-3-19 16:59
呵呵,我在用GD32VF103,就是那个RISC_V国产核的,也碰到这个问题,普通试验可以仿真调试,但是与USB相关的 ...

,那我也把时钟改为默认的8M试试

使用特权

评论回复
6
rurubudong|  楼主 | 2020-3-19 17:59 | 只看该作者
rurubudong 发表于 2020-3-19 16:41
我用的是内部8M的时钟,然后PLL倍频到72M。现在我烧到单片机里面,程序运行正常。但是已在线调试就不行, ...

我现在时钟改为内部时钟8M了还是不行

使用特权

评论回复
7
xdqfc| | 2020-3-20 09:13 | 只看该作者
rurubudong 发表于 2020-3-19 17:59
我现在时钟改为内部时钟8M了还是不行

是用的官方提供的例程吗,官方例程基本上还是可以调试的,mdk选的是哪一个版本啊,另外是用的哪一种仿真器??

使用特权

评论回复
8
xdqfc| | 2020-3-20 09:17 | 只看该作者
按照我的想法,即使晶振选择不对,也不会影响程序运行到main处,晶振的选择跟是不是运行到main处有什么关系呢??除非选择外部振荡器而外部根本没有接晶振。

使用特权

评论回复
9
rurubudong|  楼主 | 2020-3-20 10:14 | 只看该作者
xdqfc 发表于 2020-3-20 09:13
是用的官方提供的例程吗,官方例程基本上还是可以调试的,mdk选的是哪一个版本啊,另外是用的哪一种仿真 ...

用的是keil5,用官方的例程不过我把官方的外部晶振改成内部晶振了,仿真器是用的CMSIS-DAP Debugger

使用特权

评论回复
10
xdqfc| | 2020-3-20 10:51 | 只看该作者
rurubudong 发表于 2020-3-20 10:14
用的是keil5,用官方的例程不过我把官方的外部晶振改成内部晶振了,仿真器是用的CMSIS-DAP Debugger ...

我手上几个项目就是用的GD32F130跟GD32E230,仿真器跟你一样,倒是没有出现仿真进入不到main的现象,是MDK5.26以上的版本吗??要么换个E230试试看。

使用特权

评论回复
11
rurubudong|  楼主 | 2020-3-20 12:03 | 只看该作者
xdqfc 发表于 2020-3-20 10:51
我手上几个项目就是用的GD32F130跟GD32E230,仿真器跟你一样,倒是没有出现仿真进入不到main的现象,是MD ...

是keil5.26,你的keil是哪个版本,能给我分享么?

使用特权

评论回复
12
xdqfc| | 2020-3-20 15:29 | 只看该作者
rurubudong 发表于 2020-3-20 12:03
是keil5.26,你的keil是哪个版本,能给我分享么?

我现在用的是5.28a,你要是方便的话,可以拍几个GD32E230试试看吧,我一直在用的,没有问题的,假如还不行的话,我发个例程给你吧。

使用特权

评论回复
13
apleilx| | 2020-3-21 09:34 | 只看该作者
xdqfc 发表于 2020-3-19 16:59
呵呵,我在用GD32VF103,就是那个RISC_V国产核的,也碰到这个问题,普通试验可以仿真调试,但是与USB相关的 ...

很多RTOS是把main创建为一个线程启动的,操作系统在main之前完成初始化,这个初始化包括TICK,所以大多数厂商的MCU时钟初始化都在启动文件调用的,初始化函数自己可以随便改。

使用特权

评论回复
14
rurubudong|  楼主 | 2020-3-21 10:09 | 只看该作者
xdqfc 发表于 2020-3-20 15:29
我现在用的是5.28a,你要是方便的话,可以拍几个GD32E230试试看吧,我一直在用的,没有问题的,假如还不 ...

好的,先谢谢啦

使用特权

评论回复
15
xdqfc| | 2020-3-21 10:16 | 只看该作者
apleilx 发表于 2020-3-21 09:34
很多RTOS是把main创建为一个线程启动的,操作系统在main之前完成初始化,这个初始化包括TICK,所以大多数 ...

这样处理也无可厚非,但是出现进入不了main函数怎么办,现在不止我一个人遇到这个问题,兄弟你也可以试一下,有人说是晶振配置不对,这是不可能的,都是按照官方的电路搭建的,其他DEMO程序都可以实现,唯独USB的例程进入不了main,不是很奇怪吗,GD32VF103我已经放弃使用了,本来是冲着国产的RISC_V来试用的,可能我的能力还达不到这么先进的产品的使用要求吧。

使用特权

评论回复
16
apleilx| | 2020-3-21 10:41 | 只看该作者
xdqfc 发表于 2020-3-21 10:16
这样处理也无可厚非,但是出现进入不了main函数怎么办,现在不止我一个人遇到这个问题,兄弟你也可以试一 ...

我们用GD的芯片也比较多了, F130,F103,E103,F205,F330都有,芯片的USB也有用,没出现过进不到 main的情况,估计是和工程选项配置有关,没配置好处出现进不到main的情况,以前学习LPC1768的时候遇到过,貌似和microlib和printf函数的重定向有关。

使用特权

评论回复
17
xdqfc| | 2020-3-21 10:56 | 只看该作者

兄弟,你直接到system_gd32e10x.c里面,把static void system_clock_120m_hxtal(void){


}
里面的时钟初始化全部删光,再编译,就可以进main了,
之后你再重新按照自己的要求配置时钟吧。我刚才用350代替E103仿真,出现你所讲的情况,这样处理即可。


使用特权

评论回复
18
xdqfc| | 2020-3-21 11:03 | 只看该作者

我上面用的例程是120M配置的,就删的是120M的时钟配置,你自己仿真看看,停在哪里的,就先删掉那块。

使用特权

评论回复
19
xdqfc| | 2020-3-21 11:11 | 只看该作者
apleilx 发表于 2020-3-21 10:41
我们用GD的芯片也比较多了, F130,F103,E103,F205,F330都有,芯片的USB也有用,没出现过进不到 main ...

另外一个方法,你在刚才的文件开头部分重新定义一下,把//#define __SYSTEM_CLOCK_48M_PLL_IRC8M            (uint32_t)(48000000)前面的双劈拿掉变成#define __SYSTEM_CLOCK_48M_PLL_IRC8M            (uint32_t)(48000000)



再把#define __SYSTEM_CLOCK_120M_PLL_HXTAL           (uint32_t)(120000000)这个
前面加双劈变成
//#define __SYSTEM_CLOCK_120M_PLL_HXTAL           (uint32_t)(120000000)
也可以进入主函数。其他就不要删掉了。

使用特权

评论回复
20
xdqfc| | 2020-3-21 11:13 | 只看该作者
xdqfc 发表于 2020-3-21 11:11
另外一个方法,你在刚才的文件开头部分重新定义一下,把//#define __SYSTEM_CLOCK_48M_PLL_IRC8M         ...

发错人了,对不起。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

15

帖子

0

粉丝