码迷,mamicode.com
首页 > 系统相关 > 详细

在Mac上搭建SylixOS开发环境

时间:2017-10-24 11:16:47      阅读:275      评论:0      收藏:0      [点我收藏+]

标签:mac   搭建开发环境   sylixos   

Mac环境开发指南


1. 适用范围及局限性

本文档适用于考虑在Mac上进行开发的SylixOS工程师,目前SylixOS集成开发环境并不支持Mac,本文当前的处理方法并不能真正实现Mac上的开发流程,后期待完善,特此申明。

2. 下载SylixOS源代码

打开终端,创建一个名为 sylixos_workspace 的目录(下文约定该目录是 /home/user/sylixos_workspace 目录,即 ~/sylixos_workspace):

cd ~ 
mkdir sylixos_workspace

进入该目录,输入如下命令即可下载 SylixOS Base工程、mini2440开发板BSP工程、示例工程等:

cd sylixos_workspace 
git clone http://git.sylixos.com/repo/sylixos-base.git 
git clone http://git.sylixos.com/repo/bspmini2440.git 
git clone http://git.sylixos.com/repo/examples.git 
git clone http://git.sylixos.com/repo/tools.git 
git clone http://git.sylixos.com/repo/qemu-mini2440.git

sylixos-base 是 SylixOS Base 工程,里面包含了 libsylixos 和 libcextern 子工程,输入如下命令初始化和更新子工程:

cd sylixos-base 
git submodule init 
git submodule update 
cd ..

3. 安装交叉编译器

交叉编译器的下载地地址是:https://launchpad.net/gcc-arm-embedded/+download 
到上述网站下载Mac版本的编译器。 
输入如下命令将其解压到 /usr/lib 目录:

sudo tar jxvf gcc-arm-none-eabi-5_4-2016q3-20160926-mac.tar.bz2 -C /usr/lib

输入如下命令将解压后的目录重命名为 /usr/lib/gcc-arm-none-eabi 目录(避免编译器升级,版本号日期改变带来不必要的问题):

sudo mv /usr/lib/gcc-arm-none-eabi-5_4-2016q3/ /usr/lib/gcc-arm-none-eabi

由于 SylixOS 修改了编译器的 reent.h 文件,所以使用编译器自带的 reent.h 文件将不能编译成功,需要复制 ~/sylixos_workspace/tools/arm-none-eabi-patch/4.9/reent.h 文件到 /usr/lib/gcc-arm-none-eabi/arm-none-eabi/include/sys 目录替换原有的文件。 
替换前先备份编译器原有的 reent.h 文件:

sudo mv /usr/lib/gcc-arm-none-eabi/arm-none-eabi/include/sys/reent.h /usr/lib/gcc-arm-none-eabi/arm-none-eabi/include/sys/reent.h.bak

再替换编译器原有的 reent.h 文件:

sudo cp ~/sylixos_workspace/tools/arm-none-eabi-patch/4.9/reent.h 
/usr/lib/gcc-arm-none-eabi/arm-none-eabi/include/sys

为了方便后续使用,修改环境变量 PATH:

sudo vi ~/.bash_profile

添加如下命令:

export PATH=/usr/lib/gcc-arm-none-eabi/bin:$PATH

最后重新启动终端,输入 arm-none-eabi-gcc 如果得到以下结果说明编译器安装成功:

sean-xps:~ sean$ arm-none-eabi-gcc
arm-none-eabi-gcc: fatal error: no input files
compilation terminated.
sean-xps:~ sean$12345

4. 终端编译SylixOS Base工程

sylixos-base工程包含了SylixOS操作系统libsylixos和SylixOS进程C库libextern子工程。 
打开sylixos-base下的config.mk,修改为如程序清单 4-1所示。

              程序清单 4-1  config.mk修改操作

#******************************************************************************
# SylixOS Base Project path
#******************************************************************************
SYLIXOS_BASE_PATH = /home/user/sylixos_workspace/sylixos-base
#******************************************************************************
# Toolchain prefix
#******************************************************************************
TOOLCHAIN_PREFIX = arm-none-eabi-
#******************************************************************************
# Debug options (debug or release)
#******************************************************************************
DEBUG_LEVEL = debug

输入 make 命令以编译:

make

编译耗费的时间视你的机器的性能而定。经过上述配置之后,使用Mac编译,一般3,4分钟就可以编译完成。由此可见,在Mac下的编译速度明显优于Windows平台。

如果SylixOS的Base工程成功编译,最后libsylixos子工程生成静态库文件libsylixos.a和libdsohandle.a及libvpmpdm.a、动态库文件libvpmpdm.so、内核模块xinput.ko和xsiipc.ko、符号表文件symbol.c和symbol.h(位于/home/user/sylixos_workspace/sylixos-base/libsylixos/Debug目录)。

libextern子工程生成静态库文件libcextern.a和动态库文件libcextern.so(位于/home/user/sylixos_workspace/sylixos-base/libcextern/Debug目录)。

但使用当前配置的环境虽然make命令执行完成后,提示编译完成,但却不能编译生成上述全部文件,具体原因见下文。

5. 使用Ecplise搭建开发环境

Mac上Ecplise的安装本文不再赘述,可以参考网上相关内容。

5.1 安装Zylin CDT 
打开eclipse菜单栏的“Help”并选择“Install New Software”选项,如图 5-1所示。 
技术分享

                         5-1  Ecplise Help

然后在“work with”后面的输入框输入 http://opensource.zylin.com/zylincdt,再单击“ADD”按钮,之后eclipse会自动查找软件包,查找完成之后出现下面的界面,然后选中插件,如图 5-2所示。单击“next”,出现安装协议时,单击同意,最后单击“finish”,并等待安装完成,由于该过程是先下载再安装,如果网络不好,等待时间会比较长。 
技术分享 
                                                                            图 5-2 Ecplise安装CDT

5.2 导入工程并设置编译工具链 
将从官网git上下载的Base工程导入Ecplise,这里导入的方法有多种,比较推荐读者先创建一个空的工程,然后将整个Base里的文件复制到创建的空的工程里。这样便于自定义编译工具链。

工程导入后,在工程属性栏设置上文安装过的交叉编译工具链,如图 5-3 所示。 
技术分享

                        5-3  设置编译工具链

5.3 编译Base工程 
上述操作做完之后即可,右键工程选择“build Project”对Base工程进行编译。编译的结果如图 5 4 所示。 
技术分享

                               图 5-4  Ecplise编译结果

结果显示,使用Ecplise编译出的工程也并没有完全成功,查看控制台提示没有找到环境变量的脚本文件。因此也导致了编译不成功。

综上,在Mac上使用上述两种方式编译均失败的原因,是windows下编译时会使用makesymbol.bat脚本文件去生成符号表,而在Mac环境下是无法运行bat脚本文件的,因此要想在Mac上搭建SylixOS的开发环境,必须重新改写makesymbol脚本文件。从Ecplise编译的结果来看,Makefile里其余的编译内容基本执行完成,如果重写此脚本文件应该可以在Mac下实现SylixOS的基本开发。


本文出自 “11451177” 博客,请务必保留此出处http://11461177.blog.51cto.com/11451177/1975462

在Mac上搭建SylixOS开发环境

标签:mac   搭建开发环境   sylixos   

原文地址:http://11461177.blog.51cto.com/11451177/1975462

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!