本帖最后由 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 hidapi
接下来就是安装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原创,如需转载或用于商业用途需征得作者同意并注明出处