15075|15

1366

帖子

6

TA的资源

版主

楼主
 

openocd+arm-none-eabi-gcc+gdb搭建arm开发环境 [复制链接]

 
本帖最后由 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(调试器,楼主就是用这个调试器进行调试)。

      要先安装之前肯定要下载了,当然最简便的方法就是apt-get,但是有个问题就是可能你apt-get的版本有点低,导致会有一些情况发生,比如jlink的SWD模式不能用,编译源码有错误等错误。所以,毕竟开源,还是乖乖去官网wget或者git源码进行安装比较好。
      环境的搭建楼主之前已经搭好了,这里就大概梳理下,可能中间会出现一系列安装问题,其实不用紧张,大部分都是因为缺少依赖包的原因,按照指示百度安装就好了。
     对于openocd的安装,去官网下载http://openocd.org/   。官方提供了很多种压缩形式的包,可以根据自己的爱好下载。
   
    当然首先得安装下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"
   
     退出保存,然后在终端敲击命令:echo $PATH  查看变量设置情况。可见已经设置成功。
            
    最后再敲击命令,使系统共享库更新。
    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

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


   接下来就是要添加udev规则了。其实这个规则还很深,楼主太菜没深入了解,其实就是设定一个规则,然后电脑能够识别到设备。
   像楼主这么菜的人,要自己写udev规则,简直就是还没入门就放弃了。好在openocd太人性了,直接就丢给你个规则了,你只要把它复制到相关目录即可。输入以下命令
   cp   /usr/local/share/openocd/contrib/60-openocd.rules  /etc/udev/rules.d/
   这个udev规则文件已经足够用了,起码在楼主来说已经够用了。     
   接下来就是链接目标器件的时候了,Openocd已经把相关配置文件已经弄好了,包括仿真器和目标器件的配置文件。



  很方便有没有,当然觉得不方便的话,还是可以自己写的。
  然后我们来测试下openocd,终端敲击
  
openocd -f interface/jlink.cfg -c "transport select swd" -f target/stm32f7x.cfg


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

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




此帖出自stm32/stm8论坛

最新回复

666,linux玩得飞起来了   详情 回复 发表于 2020-5-2 14:09

赞赏

1

查看全部赞赏

点赞 关注
个人签名

1084534438 欢迎交流  [加油,一切皆有可能]

 

回复
举报

356

帖子

0

TA的资源

一粒金砂(中级)

沙发
 
顶                                    
此帖出自stm32/stm8论坛
 
 

回复

767

帖子

2

TA的资源

纯净的硅(初级)

板凳
 
顶                                                                          
此帖出自stm32/stm8论坛
 
个人签名物致DIY 欢迎你的加入~
QQ群:646461928 公众号:智物知心致成
小店
 

回复

1403

帖子

1

TA的资源

纯净的硅(中级)

4
 
叮,linux玩的6的飞起了
此帖出自stm32/stm8论坛
 
个人签名HELLO_WATER
 
 

回复

714

帖子

2

TA的资源

一粒金砂(高级)

5
 
厉害了渣渣橙                                 
此帖出自stm32/stm8论坛
 
个人签名Hello astroturfers
 
 

回复

1310

帖子

3

TA的资源

一粒金砂(高级)

6
 
顶一个,挺详细的。
此帖出自stm32/stm8论坛
 
个人签名

RTEMS

 
 

回复

15

帖子

1

TA的资源

宇宙尘埃

7
 
顶一个  
此帖出自stm32/stm8论坛
 
 
 

回复

721

帖子

1

TA的资源

一粒金砂(高级)

8
 
此帖出自stm32/stm8论坛
 
 
 

回复

7815

帖子

56

TA的资源

裸片初长成(中级)

9
 
大神,有没兴趣集成进codeblocks里?
此帖出自stm32/stm8论坛
 
 
 

回复

7671

帖子

2

TA的资源

五彩晶圆(高级)

10
 
渣渣,傻孩子,折腾之前杂不问问蜀黍有没有easy的办法嘞?年轻人精力旺盛是好事。
我打赌5块钱你最多不超过2次如此安装的经历。
此帖出自stm32/stm8论坛
 
个人签名

默认摸鱼,再摸鱼。2022、9、28

 
 

回复

1366

帖子

6

TA的资源

版主

11
 
辛昕 发表于 2017-10-9 20:03
大神,有没兴趣集成进codeblocks里?

教主,查了下codeblocks,原来是个集成开发环境; 有兴趣但是学不来啊
此帖出自stm32/stm8论坛
 
个人签名

1084534438 欢迎交流  [加油,一切皆有可能]

 
 

回复

1366

帖子

6

TA的资源

版主

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

这点小事就先不麻烦叔叔了,我得自己挖挖坑。话说我已经在一个台式机、两个笔记本都安装了
此帖出自stm32/stm8论坛
 
个人签名

1084534438 欢迎交流  [加油,一切皆有可能]

 
 

回复

7815

帖子

56

TA的资源

裸片初长成(中级)

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

我,同感。
不过,貌似主流的开源IDE里,它,至少也算最好的,之一吧.......
此帖出自stm32/stm8论坛
 
个人签名

强者为尊,弱者,死无葬身之地

 
 

回复

7815

帖子

56

TA的资源

裸片初长成(中级)

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

话说其实为毛你不试试 mbed
此帖出自stm32/stm8论坛
 
个人签名

强者为尊,弱者,死无葬身之地

 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

15
 

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

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

请问该语句是什么意思

此帖出自stm32/stm8论坛
 
 
 

回复

40

帖子

1

TA的资源

一粒金砂(中级)

16
 

666,linux玩得飞起来了

此帖出自stm32/stm8论坛
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/6 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表