打印

关于STM32的GCC开发平台的搭建

[复制链接]
6379|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
kuaikuai2010|  楼主 | 2011-1-27 22:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 kuaikuai2010 于 2011-1-28 09:20 编辑

好:
      最近闲来无事,准备搭建个STM32的GCC开发平台(免费开源的),非常顺利用cygdrive+CodeSourcery g++ 编译器 (最新版对coretx-m3的支持还不错)搭建了一个GCC环境,写了个测试工程,目标文件下载到开发板上可以正常跑起来。:)
      但是这只是其中的一半工作,关键在于GDB功能的实现,目前我的设想是用jLink自带的gdbserver配合cygdrive+CodeSourcery来实现gdb调试的功能,弄了一段时间,jLink可以连接上,但是不能正常加载目标文件,
      介于上面的情况,想问下有这方面经验的大虾:
cygdrive+CodeSourcery+jLink gdbserver 能否实现GDB调试功能?实现思路怎样?
沙发
kuaikuai2010|  楼主 | 2011-1-28 09:16 | 只看该作者
走过路过的发表下看法和思路

使用特权

评论回复
板凳
byeyear| | 2011-1-29 17:34 | 只看该作者
先下个insight,在cygwin下编译出可执行文件,这样调试的话就有GUI了
然后到segger的网站上下个最新的jlink驱动 安装好后会有帮助文件 到里面找例子
我当时是参照segger的帮助文件弄出来的

使用特权

评论回复
地板
kuaikuai2010|  楼主 | 2011-1-30 11:12 | 只看该作者
终于有人来了,:'(   先谢啦!
目前的想法还是想用cygwin代替insight,其实无论是GUI还是命令行模式,下面的操作都是一样的。
现在还在调试中,还有些问题,鉴于目前的理解,上述的设想还是可行的。

使用特权

评论回复
5
kuaikuai2010|  楼主 | 2011-1-30 17:18 | 只看该作者
本帖最后由 kuaikuai2010 于 2011-1-30 17:20 编辑

在CodeSourcery g++ 编译器中默认的模式貌似是ARM指令集的,我用cortex-m3 -mthumb模式去编生成的elf文件 在gdb加载的时候出现了如下的 错误:
Administrator@PC-201101182203 /cygdrive/d/SDK/src
$ arm-none-eabi-gdb main.elf

GNU gdb (Sourcery G++ Lite 2010.09-51) 7.2.50.20100908-cvs
Copyright (C) 2010 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "--host=i686-mingw32 --target=arm-none-eabi".
For bug reporting instructions, please see:
<https://support.codesourcery.com/GNUToolchain/>...
Reading symbols from d:\sdk\src\main.elf...done.
.gdbinit:8: Error in sourced command file:
Remote 'g' packet reply is too long: 0000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000d3000000
(gdb)

如果去掉cortex-m3 -mthumb模式,则可以正常下载,但是由于指令集不对,在jump的时候就会挂掉,所以还必须指定编译器用cortex-m3 -mthumb模式,但是又会出现上面的问题,纠结中..........
莫非CodeSourcery 的gdb还不支持cortex-m3 ?

使用特权

评论回复
6
kuaikuai2010|  楼主 | 2011-1-30 17:43 | 只看该作者
本帖最后由 kuaikuai2010 于 2011-2-14 10:54 编辑

发现问题了,仔细看了下CodeSourcery 的官网,确认是支持cortex-m3,后面查了下指令集,codesourcery 最新版本对GDB做了更新,之后我下载个更新之前的版本就没有这个问题了。
现在可以GDB调试了,GCC环境搭建完成,但是后续还需优化和完善平台,以便运用到实际项目开发当中

使用特权

评论回复
7
李富贵| | 2013-1-10 21:42 | 只看该作者
jlink的gdb手册里面推荐的yagarto要比你这套简单一些。

使用特权

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

本版积分规则

0

主题

5

帖子

1

粉丝