-凯发k9国际首页登录

凯发·k8(国际) - 官方网站
股票代码:688047
请输入搜索条件
凯发·k8(国际) - 官方网站
邮箱登录
点击图片刷新
忘记密码
点击图片刷新
06-23 2017

在fedora21下移植arduino ide

          废话不多说,进入正题,去年我就弄了个小新闻,弄了当时最新版的arduino ide到龙芯fedora21上,
,后来又发现串口监视器和串口绘图器根本没法儿使用,这使得arduino开发板在龙芯电脑上进行串口调试非常不方便。前几天,我又在龙芯上折腾了一番,最终解决了所有问题。下面来说说整个移植的过程(本帖旨在抛砖引玉,如有不完善之处,敬请指出以便更正)
         fedora21/25软件源也提供了arduino ide软件包,不过版本实在太老。此外,arduino ide是开源软件,绝大部分代码用java进行编写,根据java的“一处编译,四处运行”的特性,此处只以已经编译好的压缩包进行修改,感兴趣的朋友可以从源代码进行编译,然后进行修改。
测试环境:龙芯3a1000 fedora21、fedora25
1、前期准备
首先,我们需要下载已经编译好的版本,下载地址:,
选择下载linux 64 bits的包。下载完毕后,使用tar -xvf命令将压缩包解开,然后使用cd命令进入该文件夹。
2、去除x86_64相关的二进制文件
      删除java文件夹以去除供x64使用的java。接着删除可执行文件arduino-builder、tools/ctags/5.8-arduino11/ctags; hardware/tools/avr目录、库文件lib/liblistserialsj.so和lib/libastylej.so。
3、编译所需库文件
         步骤2删除了两个x64平台的库文件liblistserialsj.so和astylej.so,现在需要为龙芯平台提供这两个库文件。
         首先编译所需的liblistserialsj.so,先确保龙芯电脑安装了git以及java-devel
git  clone https://github.com/facchinm/listserialportsc --recursive
cd   listserialportsc
打开compile_linux.sh将java_include_path一行修改为
java_include_path=/usr/lib/jvm/java-1.8.0/include/
         此外,因为我们使用的是64位操作系统,不需要给32位系统和arm平台编译这个库,所以我们需要将compile_linux.sh中mkdir -p distrib/linux32这一行及以下行的所有内容删除。接着执行compile_linux.sh完成编译,将生成的库文件distrib/linux64/liblistserialsj.so拷贝到arduino ide目录下的lib目录里。
         sh   compile_linux.sh
         cp   distrib/linux64/liblistserialsj.so  ~/arduino-1.8.2/lib/
         对于astylej.so,可以使用由系统的astyle软件包提供,使用yum软件包管理器安装astyle,然后将/usr/lib64/libastyle-2.04.so复制到arduino ide目录的lib文件夹下并重命名为libastylej.so即可。
yum  install  astyle
cp  /usr/lib64/libastyle-2.04.so     ~/arduino-1.8.2/lib/libastylej.so    //本条命令仅针对fedora21系统,fedora25根据实际情况进行修改

4、编译arduino-builder
         请确保已经安装了golang编译器!编译完成后将生成的arduino-builder二进制文件复制到arduino ide的目录下
git  clone https://github.com/arduino/arduino-builder/
cd   arduino-builder
export   gopath=$(pwd)       //设置gopath变量
go  get  github.com/go-errors/errors
go  get  github.com/stretchr/testify
go  get  github.com/jstemmer/go-junit-report
go  build  arduino.cc/arduino-builder
cp   arduino-builder  ~/arduino-1.8.2/
5、编译ctags
         fedora21软件仓库里的ctags并不支持arduino,因此必须使用arduino官方提供的ctags。
git  clone https://github.com/arduino/ctags
cd   ctags
sh  configure
make  -j4
cp  ctags  ~/arduino-1.8.2/tools-builder/ctags/5.8-arduino11/
6、修改配置文件,使用由系统提供的工具链和avrdude烧写工具
cd ~/arduino-1.8.2/hardware/arduino/avr/
         使用文本编辑器打开platform.txt,修改的内容如下
diff --git a/platform.txt b/platform.txt
index 3985678..b2ad919 100644
--- a/platform.txt
b/platform.txt
@@ -18,6 18,7 @@ compiler.warning_flags.more=-wall
compiler.warning_flags.all=-wall -wextra
# default "compiler.path" is correct, change only if you want to override the initial value
runtime.tools.avr-gcc.path=/usr
compiler.path={runtime.tools.avr-gcc.path}/bin/
compiler.c.cmd=avr-gcc
compiler.c.flags=-c -g -os {compiler.warning_flags} -std=gnu11 -ffunction-sections -fdata-sections -mmd -flto -fno-fat-lto-objects
@@ -91,9 92,9 @@ recipe.preproc.macros="{compiler.path}{compiler.cpp.cmd}" {compiler.cpp.flags} {
# avr uploader/programmers tools
# ------------------------------
-tools.avrdude.path={runtime.tools.avrdude.path}
-tools.avrdude.cmd.path={path}/bin/avrdude
-tools.avrdude.config.path={path}/etc/avrdude.conf
tools.avrdude.path=/
tools.avrdude.cmd.path={path}usr/bin/avrdude
tools.avrdude.config.path={path}etc/avrdude/avrdude.conf
tools.avrdude.network_cmd={runtime.tools.arduinoota.path}/bin/arduinoota
7、修复串口监视器/绘图器不能使用的问题
         arduino ide里的jssc模块在龙芯平台并不能正常使用,导致串口监视器/绘图器不能使用甚至不能选择开发板的端口。因此这里需要编译fedora25软件仓库里的jssc去替换掉arduino ide里的jssc模块。
   wget  http://mirrors.ustc.edu.cn/fedora/releases/25/everything/source/tree/packages/j/jssc-2.8.0-5.fc24.src.rpm
   rpmbuild  --clean  --rebuild  jssc-2.8.0-5.fc24.src.rpm
sudo  yum  install
rpmbuild/rpms/mips64el/jssc-2.8.0-5.fc21.loongson.mips64el.rpm
cp   /usr/lib/java/jssc.jar  ~/arduino-1.8.2/lib/jssc-2.8.0.jar
8、升级工具链(仅针对fedora21系统)
         fedora21系统下,在编译程序时会报"this program has been built without plugin suppot"的错误,升级一下avr-binutils即可。此处选择使用fedora25软件仓库里的srpm进行编译安装,以方便管理。
首先安装rpm打包工具rpm-build,然后下载avr-bniutils的srpm进行打包并安装
wget http://mirrors.ustc.edu.cn/fedora/releases/25/everything/source/tree/packages/a/avr-binutils-2.26-1.fc25.src.rpm
  rpmbuild  --rebuild  --clean  avr-binutils-2.26-1.fc25.src.rpm
  sudo  yum  install
~/rpmbuild/rpms/mips64el/avr-binutils-2.26-1.fc21.loongson.mips64el.rpm
      至此,整个移植工作就完成了。我们通过如下命令安装工具链和烧写工具就可以使用连接上自己的arduino开发板,打开arduino ide进行开发了
sudo  yum  install  avr-libc avr-gcc avrdude avr-binutils
    在arduino ide的目录里,可以通过执行install.sh脚本文件添加启动器到启动菜单,以后可以在应用程序->编程找到arduino ide的启动菜单了。
      另外,为了保证当前用户有权限对设备进行读写,使用一下命令将用户加入dialout组,注销后重新登陆即可
usermod -a -g dialout user

凯发一触即发 copyright © 2008-2022 龙芯中科技术股份有限公司

本网站由龙芯3c5000服务器提供强劲动力

网站地图