社区导航

 

搜索
查看: 4208|回复: 15

[原创] openocd+arm-none-eabi-gcc+gdb搭建arm开发环境

[复制链接]

1022

TA的帖子

6

TA的资源

版主

Rank: 6Rank: 6

发表于 2017-9-25 16:26 | 显示全部楼层 |阅读模式
本帖最后由 RCSN 于 2017-9-25 16:29 编辑

       window下的IDE集成了代码编辑器编译器调试器和图形用户界面等工具,直接给你生成了编译文件。无奈楼主公司大部分人用linux进行开发,所以也折腾了段时间的linux下的ARM开发环境搭建。
      当然楼主水贴的顺序就是:简单介绍、手把手教搭建、然后后面再跑个LED灯。
      关于openocd的,网上和官网上大体都有介绍,其实就是一个开源的片上调试器,可以对目标器件进行下载、调试等功能,支持的仿真器也有很多比如jlink、stlink、DAP等等。可以作为GDBserver,进而使用GDB进行调试。
      关于交叉编译器的,我选择了arm-none-eabi-gcc,用于编译 ARM 架构的裸机系统,一般适合 ARM7、Cortex-M 和 Cortex-R 内核的芯片使用。工具链工具比较多,如下图。我们需要比较多的是arm-none-eabi-gcc(C语言编译器,将c文件转换为中间文件.o)、arm-none-eabi-ld(最后链接所有.o文件生成可执行文件的工具)、arm-none-eabi-objcopy(将生成的文件转化为bin/hex等格式)、arm-none-eabi-gdb(调试器,楼主就是用这个调试器进行调试)。
wcLzUkIX5alRQAAAABJRU5ErkJggg==
      要先安装之前肯定要下载了,当然最简便的方法就是apt-get,但是有个问题就是可能你apt-get的版本有点低,导致会有一些情况发生,比如jlink的SWD模式不能用,编译源码有错误等错误。所以,毕竟开源,还是乖乖去官网wget或者git源码进行安装比较好。
      环境的搭建楼主之前已经搭好了,这里就大概梳理下,可能中间会出现一系列安装问题,其实不用紧张,大部分都是因为缺少依赖包的原因,按照指示百度安装就好了。
     对于openocd的安装,去官网下载http://openocd.org/   。官方提供了很多种压缩形式的包,可以根据自己的爱好下载。
4+msmWG6NooAAAAASUVORK5CYII=     aZG6sKkEsJZnaSwaDbehD+tXrIdm5wk+qOaOOVqS7emQWMUO5IvDAfu1qr7tP2drTEXxQgTPa0ej8f0RPEPlWhwXNAAAAAElFTkSuQmCC
    当然首先得安装下openocd的安装库以及相关依赖包
   在终端敲击:
    sudo apt-get install autotools-dev make libtool pkg-config autoconf automake texinfo libudev1 libudev-dev libusb-1.0-0-dev libfox-1.6-dev  
     然后再安装HID-API包
     终端命令:
    cd ~/
     git clone https://github.com/signal11/hidapi.git(没有安装git就先:sudo apt get  install git)
     cd hidapi/
     ./bootstrap
     ./configure
     make
     sudo make install

     安装成功之后需要将该包的安装位置添加到我们系统PATH变量来。
     终端命令 :sudo nano ~/.profile
     在脚本最下面添加:PATH="$HOME/bin:/usr/local/lib:$PATH"
    AT6i2W1XXMNUAAAAAElFTkSuQmCC
     退出保存,然后在终端敲击命令:echo $PATH  查看变量设置情况。可见已经设置成功。
      uVqgu9zAAAAAElFTkSuQmCC       
    最后再敲击命令,使系统共享库更新。
    sudo ldconfig
    最后我们删除下载的安装包。先回到主目录
    cd ~/
    sudo rm -r hidap
i
   
    接下来就是安装openocd的时候了。
    终端敲击:
    cd ~/
   wgethttps://sourceforge.net/projects ... 0.10.0.zip/download
   sudo unzip openocd-0.10.0.zip
   cd openocd-0.10.0
   ./configure --enable-cmsis-dap --enable-jlink --enable-stlink --enable-ti-icdi(使能各类仿真器支持,楼主就只有前三个,土豪的随意)
   make   sudo make install

   跟上面的一样套路,按照上面的命令安装即可
   然后返回主目录,删除安装包
cd ~/
  sudo rm -r  openocd-0.10.0

  然后安装好了之后,就看下版本啦。
AoO3qMem9bjMAAAAAElFTkSuQmCC

   接下来就是要添加udev规则了。其实这个规则还很深,楼主太菜没深入了解,其实就是设定一个规则,然后电脑能够识别到设备。
   像楼主这么菜的人,要自己写udev规则,简直就是还没入门就放弃了。好在openocd太人性了,直接就丢给你个规则了,你只要把它复制到相关目录即可。输入以下命令
   cp   /usr/local/share/openocd/contrib/60-openocd.rules  /etc/udev/rules.d/
   这个udev规则文件已经足够用了,起码在楼主来说已经够用了。     
   接下来就是链接目标器件的时候了,Openocd已经把相关配置文件已经弄好了,包括仿真器和目标器件的配置文件。
n+wV5vmPCxA+AAAAABJRU5ErkJggg==
zq8N6u0h2eIAAAAASUVORK5CYII=
D8qFboay5ocfgAAAABJRU5ErkJggg==
  很方便有没有,当然觉得不方便的话,还是可以自己写的。
  然后我们来测试下openocd,终端敲击
  
openocd -f interface/jlink.cfg -c "transport select swd" -f target/stm32f7x.cfg
AUmKhrhoPqgNAAAAAElFTkSuQmCC

  通过终端可以看到链接板子的类型,目标电压,以及断电数
   P70925-160550.jpg
  
接下来就是arm-none-eabi-gcc的安装了。同样也是下载。最好不要apt-get,版本使4.8的。我找的安装是5.4版本的,附件到时候上传。
下载完解压放到你想放的目录,然后把目录位置添加到环境变量去。  
sudo nano /etc/profile
D31Gr4EUO0PgAAAAAElFTkSuQmCC   
然后使变量生效
source /etc/profile
然后查看版本
M8t3LvfNrKRh7LsisPQwjJPc49IKvBcrMSVjQoC7Us121Knr6RtjgpiqIoiqIKOX2s47qjH9e0KVduWZm0bkOzePsy34DMQQj9f0D9tEYZJZMbAAAAAElFTkSuQmCC   
就可以愉快编译啦。接下来就是点灯点灯。

此内容由EEWORLD论坛网友RCSN原创,如需转载或用于商业用途需征得作者同意并注明出处




此帖出自stm32/stm8论坛

评分

1

查看全部评分


回复

使用道具 举报

405

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2017-9-25 16:29 | 显示全部楼层
顶                                    

回复

使用道具 举报

787

TA的帖子

2

TA的资源

纯净的硅(初级)

Rank: 4

发表于 2017-9-25 16:33 | 显示全部楼层
顶                                                                          
物致DIY 欢迎你的加入~
QQ群:646461928 公众号:智物知心致成
小店

回复

使用道具 举报

1449

TA的帖子

1

TA的资源

纯净的硅(中级)

Rank: 5Rank: 5

发表于 2017-9-25 16:34 | 显示全部楼层
叮,linux玩的6的飞起了
HELLO_WATER

回复

使用道具 举报

693

TA的帖子

2

TA的资源

一粒金砂(高级)

Rank: 3Rank: 3

发表于 2017-9-25 16:53 | 显示全部楼层
厉害了渣渣橙                                 
Hello astroturfers

回复

使用道具 举报

1243

TA的帖子

3

TA的资源

一粒金砂(高级)

Rank: 3Rank: 3

发表于 2017-9-25 17:02 | 显示全部楼层
顶一个,挺详细的。

RTEMS


回复

使用道具 举报

15

TA的帖子

1

TA的资源

宇宙尘埃

发表于 2017-9-25 17:28 | 显示全部楼层
顶一个  

回复

使用道具 举报

734

TA的帖子

1

TA的资源

一粒金砂(高级)

Rank: 3Rank: 3

发表于 2017-9-25 20:01 | 显示全部楼层

回复

使用道具 举报

7913

TA的帖子

54

TA的资源

裸片初长成(中级)

Rank: 11Rank: 11Rank: 11Rank: 11

荣誉会员勋章

发表于 2017-10-9 20:03 | 显示全部楼层
大神,有没兴趣集成进codeblocks里?

点评

教主,查了下codeblocks,原来是个集成开发环境; 有兴趣但是学不来啊  详情 回复 发表于 2017-10-11 14:40

回复

使用道具 举报

2000

TA的帖子

1

TA的资源

五彩晶圆(初级)

Rank: 7Rank: 7Rank: 7

发表于 2017-10-11 00:28 | 显示全部楼层
渣渣,傻孩子,折腾之前杂不问问蜀黍有没有easy的办法嘞?年轻人精力旺盛是好事。
我打赌5块钱你最多不超过2次如此安装的经历。

点评

这点小事就先不麻烦叔叔了,我得自己挖挖坑。话说我已经在一个台式机、两个笔记本都安装了  详情 回复 发表于 2017-10-11 14:41
人已离开,无事别找,找也找不到。

回复

使用道具 举报

1022

TA的帖子

6

TA的资源

版主

Rank: 6Rank: 6

 楼主| 发表于 2017-10-11 14:40 | 显示全部楼层
辛昕 发表于 2017-10-9 20:03
大神,有没兴趣集成进codeblocks里?

教主,查了下codeblocks,原来是个集成开发环境; 有兴趣但是学不来啊

点评

我,同感。 不过,貌似主流的开源IDE里,它,至少也算最好的,之一吧.......  详情 回复 发表于 2017-10-11 16:26

回复

使用道具 举报

1022

TA的帖子

6

TA的资源

版主

Rank: 6Rank: 6

 楼主| 发表于 2017-10-11 14:41 | 显示全部楼层
freebsder 发表于 2017-10-11 00:28
渣渣,傻孩子,折腾之前杂不问问蜀黍有没有easy的办法嘞?年轻人精力旺盛是好事。
我打赌5块钱你最多不超 ...

这点小事就先不麻烦叔叔了,我得自己挖挖坑。话说我已经在一个台式机、两个笔记本都安装了

点评

话说其实为毛你不试试 mbed  详情 回复 发表于 2017-10-11 16:26

回复

使用道具 举报

7913

TA的帖子

54

TA的资源

裸片初长成(中级)

Rank: 11Rank: 11Rank: 11Rank: 11

荣誉会员勋章

发表于 2017-10-11 16:26 | 显示全部楼层
RCSN 发表于 2017-10-11 14:40
教主,查了下codeblocks,原来是个集成开发环境; 有兴趣但是学不来啊

我,同感。
不过,貌似主流的开源IDE里,它,至少也算最好的,之一吧.......

八年一梦,洗尽铅华,重头再来


回复

使用道具 举报

7913

TA的帖子

54

TA的资源

裸片初长成(中级)

Rank: 11Rank: 11Rank: 11Rank: 11

荣誉会员勋章

发表于 2017-10-11 16:26 | 显示全部楼层
RCSN 发表于 2017-10-11 14:41
这点小事就先不麻烦叔叔了,我得自己挖挖坑。话说我已经在一个台式机、两个笔记本都安装了 {:1_105 ...

话说其实为毛你不试试 mbed

八年一梦,洗尽铅华,重头再来


回复

使用道具 举报

1

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

发表于 2019-11-13 20:31 | 显示全部楼层

您好,我在windows环境下配置的该操作,但是显示的是

arm-none-eabi-gdb.exe: warning: Couldn't determine a path for the index cache directory.

请问该语句是什么意思


回复

使用道具 举报

43

TA的帖子

1

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2020-5-2 14:09 | 显示全部楼层

666,linux玩得飞起来了


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

关闭

站长推荐上一条 1/7 下一条

  • 论坛活动 E手掌握

    扫码关注
    EEWORLD 官方微信

  • EE福利  唾手可得

    扫码关注
    EE福利 唾手可得

Archiver|手机版|小黑屋|电子工程世界 ( 京ICP证 060456 )

GMT+8, 2020-5-30 17:39 , Processed in 0.489705 second(s), 37 queries , Gzip On, MemCache On.

快速回复 返回顶部 返回列表