tag 标签: sylixos

相关博文
  • 热度 18
    2015-7-4 14:01
    784 次阅读|
    1 个评论
    后续博客转移到http://bbs.ednchina.com/blog_index***pa?blog_id=2004864
  • 热度 21
    2015-6-28 14:25
    808 次阅读|
    0 个评论
    SylixOS的开发环境有三种选择: 1、根据“SylixOS入门指南”自己搭建Windows下的开发环境; 2、根据“Linux环境开发指南”像开发嵌入式Linux一样在ubuntu下开发; 3、使用RealCoder,这个需要申请,试用没有啥费用,就是填个邮箱而已。 本着学习的态度,作者在开始的时候将上述三种方式都试用了下。其中根据“SylixOS入门指南”、“应用程序调试指南”自己搭建Windows下的开发环境并调试之后,感触颇深。对于一个操作系统的外行,一个长久以硬件工程师为职业的人来讲,突然感到那种商业操作系统并不在神秘。曾经非常喜欢Qnx系统的调试方式,系统启动后使用一根网线全部搞定,在项目开发中调试是非常的方便。或许这些对一些嵌入式的老鸟来讲是理所当然,但在此之前,一直以为vxworks、Qnx的开发环境使用了多么高级的技术。 系统的应用编程也十分的重要。实际上目前SylixOS上的文字资料还比较稀少。在说明中注意到多次POSIX,看到POSIX的时候,还真不知道怎么回事。经过一番的查找,得出这么一个结论,所谓POSIX,就是Linux下的应用程序在SylixOS开发环境中编译下就可以直接运行了,即使需要修改也是很小的修改。当然更大的意义是,如果你是一个熟悉Linux的人,基本上对SylixOS就是自然会。当然如果原来是画电路板的可能还是需要一些学习,不过借助铺天盖地的Linux资料和SylixOS良好的开发环境RealCoder也会很快上手。 Vxworks和Qnx都在很大程度上兼容POSIX标准,这里系统统称类Unix系统。 注:RealCoder的使用说明在安装镜像“RealCoder”文件夹下。
  • 热度 19
    2015-6-28 14:20
    756 次阅读|
    0 个评论
      在 SylixOS 网站的百科页面有“ Zlib 移植指南”根据指南的说明,可以方便的进行 zlib 库的移植和安装。  除上述方法外,还能够在 RealCoder 下编译 zlib 库,从网站 http://www.zlib.net/ 下载 zlib source code ,这里使用的是 tar.xz 格式 ( 其他格式应该也可以,没有验证 ) 。下载后的文件名为 zlib-1.2.8.tar.xz ,使用普通的 rar 解压软件解压到当前文件即可。解压后的文件所在文件夹名称为 zlib-1.2.8 。     进入 zlib-1.2.8 文件夹,打开 /watcom/watcom_l.mak 文件,感觉此文件比较像 makefile 。在此文件里面会看到这样一些语句: 以下是代码片段: C_SOURCE =  adler32.c  compress.c crc32.c   deflate.c            gzclose.c  gzlib.c    gzread.c  gzwrite.c                infback.c  inffast.c  inflate.c inftrees.c               trees.c    uncompr.c  zutil.c    上述语句中包含的 **.c 文件应该就是实现 zlib 库压缩功能的文件。将 zlib-1.2.8 文件夹下中同名的 **.c 文件单独拷贝到一个文件夹 zlib ,并将相关的 **.h 文件也一并拷贝到相同目录下。     打开 RealCoder ,建立一个“ SylixOS Shared  Lib ”工程,此处命名为 zlib_dll ,将上一步骤中 zlib 文件夹下的 **.c 和 **.h 文件均拷贝到工程 zlib_dll 的目录下,并将自动生成的 zlib_dll.c 文件删除。        修改 zlib_dll 工程的 Makefile ,将 SRCS 修改如下: 以下是代码片段: #****************************************************************************** # src(s) file #****************************************************************************** SRCS = \     adler32.c  \     compress.c \     crc32.c    \     deflate.c  \     gzclose.c  \     gzlib.c    \     gzread.c   \     gzwrite.c  \     infback.c  \     inffast.c  \     inflate.c  \     inftrees.c \     trees.c    \     uncompr.c  \     zutil.c  会发现这里的 SRCS 与 watcom_l.mak 文件下的 C_SOURCE 相同。修改 target 输出如下 #****************************************************************************** #  target #****************************************************************************** LIB = $(OUTPATH)/libzlib.a DLL = $(OUTPATH)/libzlib.so    其实这里也可以不更改,默认 libzlib_dll.so 文件也可以使用,只是不习惯。   上述步骤完成后,右键选择“ Build Project ”,编译成功后会在 Debug 目录下生成 target 中定义的两个文件。自此我们已经完成 zlib 库在 SylixOS 下编译移植。 /*********************zlib 库的验证 ***********************/        新建“ SylixOS App ”工程,将生成的 main 函数更改如下: 以下是代码片段: #include #include   int main() {   /* 原始数据 */   unsigned char strSrc = {0};   unsigned char strDst = {0};   unsigned long srcLen = sizeof(strSrc);   unsigned long bufLen = sizeof(buf);   unsigned long dstLen = sizeof(strDst);   printf("Src string:%s\nLength:%ld\n", strSrc, srcLen);     /* 压缩 */   compress(buf, bufLen, strSrc, srcLen);   printf("After Compressed Length:%ld\n", bufLen);     /* 解压缩 */   uncompress(strDst, dstLen, buf, bufLen);   printf("After UnCompressed Length:%ld\n",dstLen);   printf("UnCompressed String:%s\n",strDst);   return 0; }     修改 makefile ,在 include path 下添加头文件包含路径,修改后如下: INCDIR  = -I"$(SYLIXOS_BASE_PATH)/libsylixos/SylixOS" INCDIR += -I"$(SYLIXOS_BASE_PATH)/libsylixos/SylixOS/include" INCDIR += -I"$(SYLIXOS_BASE_PATH)/libsylixos/SylixOS/include/inet" INCDIR += -I"../zlib_dll"        在动态链接库下添加需要的 zlib 库文件名称和目录 #****************************************************************************** # depend dynamic library #****************************************************************************** DEPEND_DLL = -lvpmpdm DEPEND_DLL += -lzlib #****************************************************************************** # depend dynamic library search path #****************************************************************************** DEPEND_DLL_PATH = -L"$(SYLIXOS_BASE_PATH)/libsylixos/$(OUTDIR)" DEPEND_DLL_PATH += -L"../zlib_dll/Debug"    这里需要注意动态库名称的填写,在 zlib_dll 工程中生成的文件是 libzlib.so 文件,在填写的时候头尾都去除了,并添加了 -l 。编译 zlib_demo 工程。 使用 FTP 工具或者使用 RealCoder 里面的 Upload 工具,可以 ibzlib.so 文件上传到 SylixOS 设备中的 /lib 目录, zlib_demo /apps/zlib_demo 目录下,执行程序,会输出程序运行结果。 说明运行成功。
  • 热度 23
    2015-6-27 12:19
    1354 次阅读|
    0 个评论
    /************** 命令行下的系统时间设置 ******************/      SylixOS 中的时钟分为系统时钟和硬件时钟,在其对应的 shell 命令也是两个不同的命令 date 和 hwclock 。      Sylixos 设备的控制台中输入 help date 命令,会得到该命令的使用方法 # help date set system current time. eg. date -s 23:28:25    date -s 20110217 date 使用 help hwclock 也可以得到 hwclock 的使用方法。      我们先对系统时间进行设置,首先使用 date 命令查看当前的系统时间   # date Sat Jun 27 11:50:39 2015     /*  可以看到当前的系统时间  */ 我们将时间更改下,这么分开设置了时间和日期   # date -s 22:02:12 Sat Jun 27 22:02:12 2015 # date -s 20120222 Wed Feb 22 22:02:21 2012        可以看到当前时间是 2012 年 2 月 22 号 22 点 02 分 21 秒,此时使用 hwclock 查看 rtc 时间,   # hwclock --show Sun Jun 07 11:57:29 2015  /* 时间仍然是设置前的时间,与系统时间并不一致*/     再执行同步命令,会发现当前硬件时间与系统时间保持了一致。   # hwclock --systohc # hwclock --show Thu Feb 02 22:05:36 2012 /************** 程序中的系统时间设置 ******************/          对系统时间的操作使用 POSIX 的函数 clock_gettime 和 clock_settime 就可以进行设置,这里给出一个简单的实例,首先读取当前时间,随后将系统时间增加一天,并写入硬件时钟。   以下是代码片段: void setting_time(void){     struct timespec stime;     if( clock_gettime( CLOCK_REALTIME, stime) == -1 ) {            perror( "getclock" );     }     /*      * 增加一天      */     stime.tv_sec += (60*60)*24L;     stime.tv_nsec = 0;     if( clock_settime( CLOCK_REALTIME, stime) == -1 ) {            perror( "setclock" );     }     /*      *将系统时间同步到rtc上。      */     sysToRtc(); }   
  • 热度 20
    2015-6-20 09:33
    836 次阅读|
    0 个评论
        项目中使用的 CPU 越来越复杂,裸奔越来越不实际,有必要选择一款合适的操作系统。就目前看支持 MMU 的嵌入式操作系统可选范围也不是很大。 Vxworks 性能、开发环境都没得说,需要收费,而且高版本连试用的机会都没有 Qnx 跟 vxworks 类似的一种操作系统,虽然收费,但又学术版可用,而且 bsp 是开放的,可以随便下载 Wince 开发环境也容易获得,但是性能和灵活性感觉还是有差距,而且对于一个从硬件起步的人来讲,在很多方便还是有欠缺 Linux 由于 arm 的兴起,与 Linux 几乎是绝配,大有一统天下的趋势,除了开发环境欠缺,其他找不到太多不足        如果没有意外我可能会选择 Linux ,毕竟实时这个问题在很多场合还是不需要的。只是一个很偶然的机会,看到了 sylixos ,感觉还不错。可以对 Linux 做一个非常好的补充。 最大的好处是能够提供了一个在 Windows 下的开发环境和有比较高的运行效率,也就是实时性。虽然在使用 Linux 的时候也可以裁剪到很小,但效率估计还是比不了实时系统,有时候这个实时并不是必须,但却可以降低对硬件的要求,省下些银子。      此外还有一个最最重要的问题,版权和费用。 Sylixos 除了系统是遵循 GPL 协议,还提供了一种方法,可以自己搭建开发环境。估计公司开发的 RealCoder 会收费,但至少还是有一种选择,不会让开发的程序白费。况且如果赚钱了花些银子也不痛不痒,如果手头紧张可以拿开源的应急下不至于被卡脖子。
相关资源