一、引言

Sedona协议是朗德华楼控领域上重要的技术合作伙伴Tridium公司所研发的设计用于自控领域事实上的行业技术规范和标准。
Sedona Framework是一个开源的用于嵌入式设备编程和开发的软件平台,是一个“Micro-Niagara"。
如果Niagara是“Windows XP"的话,Sedona就是”Windows CE“。

二、详细介绍

Niagara大多时候是应用在控制系统的中上层,对于大量的底层智能设备,需要一个效率更高,更简单的平台。
在延续Niagara模块化结构的体系下,保留设备驱动,实时控制和图形化编程的功能。就是我们现在看到的Sedona。
所有的Sedona设备可以使用Worbench来编程(所有会Niagara的人都会很容易使用Sedona设备),
可以装载到不同的CPU和内存的嵌入式设备中:支持有线或无线电应用。
对于设备制造商来说:Sedona可以让智能设备的开发更便捷,大大缩短智能设备进入市场的时间
(功能强大的编程工具已经具备,大量的潜在客户无需太多的培训和支持)。
对于系统集成商:可以自己为硬件设备开发功能,适应不同用户的要求,并且这个功能还可以移植到新的硬件中。
这一切像极了我们今天所使用的智能手机,所有的功能是看第三方的软件设计的。
 Sedona本质也是一个虚拟机,开源的不仅仅是虚拟机的虚拟引擎,而且还有编译器。
 对比sedona的虚拟机和Java的虚拟机,发现sedona从Java虚拟机借用的思想还不少,但同时为了能在嵌入式系统上很好的运行,
 也优化了Java虚拟机里面的一些内容,比如:将垃圾回收去掉了,换成了符合图形化开发的架构,
 这样就非常适合用类似Niagara那样的组件化、图形化的编程方式来进行业务逻辑的开发。

三、总结

虚拟机的编写本来就有一定的难度,再重新定义一个sedona语言并实现这个语言的编译器,这就更难了。
另外,现在在sedona上面又架构了一个面向对象的框架,并实现了sox通信协议,以此来完成嵌入式设备的图形化开发的工作。
即Sedona协议是一套与硬件平台和操作系统无关的,用于构建以网络为中心的嵌入式智能设备的软件平台架构技术。

重点介绍;构建基于ubuntu的Sedona开发平台步骤:

1、检查java jdk环境,没有安装的用户请自行安装:

leekwen@Lenovo:~$ java -version
java version "1.6.0_45"
Java(TM) SE Runtime Environment (build 1.6.0_45-b06)
Java HotSpot(TM) 64-Bit Server VM (build 20.45-b01, mixed mode)

2、安装jikes.tar.gz

leekwen@Lenovo:~$ tar zxvf jikes_1.22.orig.tar.gzleekwen@Lenovo:~$ cd jikes-1.22.orig/leekwen@Lenovo:~/jikes-1.22.orig$ ./configureleekwen@Lenovo:~/jikes-1.22.orig$ makeleekwen@Lenovo:~/jikes-1.22.orig$ jikes -versionJikes Compiler - Version 1.22 - 3 October 2004
Copyright (C) IBM Corporation 1997-2003, 2004.
- Licensed Materials - Program Property of IBM - All Rights Reserved.
Originally written by Philippe Charles and David Shields of IBM Research,
Jikes is now maintained and refined by the Jikes Project at:
<http://ibm.com/developerworks/opensource/jikes>
Please consult this URL for more information and for reporting problems.

3、修改ubuntu系统环境配置

# Add those line for Java HOME by leekwen
export JAVA_HOME="/home/leekwen/android/jdk1.6.0_45"
export JRE_HOME="$JAVA_HOME/jre"
export CLASSPATH=.:JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
export SEDONA_HOME="/home/leekwen/sedonadev"
source $SEDONA_HOME/adm/unix/init.sh
export PATH=$JAVA_HOME/bin:$SEDONA_HOME/bin:$PATHleekwen@Lenovo:~$ source ~/.bashrc

4、进入SEDONA_HOME目录进行虚拟机SVM的编译:

leekwen@Lenovo:~/sedonadev$ makeunixdev
Compile [sedona.jar]Javac [/home/leekwen/sedonadev/src/sedona/src]Jar [/home/leekwen/sedonadev/lib/sedona.jar]
Compile [sedonac.jar]Javac [/home/leekwen/sedonadev/src/sedonac/src]Jar [/home/leekwen/sedonadev/lib/sedonac.jar]
Compile [sedonacert.jar]Javac [/home/leekwen/sedonadev/src/sedonacert/src]Jar [/home/leekwen/sedonadev/lib/sedonacert.jar]
Compile [sys]Parse [49 files]WriteKit [/home/leekwen/sedonadev/kits/sys/sys-d3984c51-1.2.28.kit]WriteManifest [/home/leekwen/sedonadev/manifests/sys/sys-d3984c51.xml]Compile [inet]Parse [11 files]WriteKit [/home/leekwen/sedonadev/kits/inet/inet-25648ba7-1.2.28.kit]WriteManifest [/home/leekwen/sedonadev/manifests/inet/inet-25648ba7.xml]Compile [sox]Parse [9 files]WriteKit [/home/leekwen/sedonadev/kits/sox/sox-397a84dd-1.2.28.kit]WriteManifest [/home/leekwen/sedonadev/manifests/sox/sox-397a84dd.xml]Compile [soxcert]Parse [1 files]WriteKit [/home/leekwen/sedonadev/kits/soxcert/soxcert-69ef332c-1.2.28.kit]WriteManifest [/home/leekwen/sedonadev/manifests/soxcert/soxcert-69ef332c.xml]Compile [serial]Parse [2 files]WriteKit [/home/leekwen/sedonadev/kits/serial/serial-87314b6e-1.2.28.kit]WriteManifest [/home/leekwen/sedonadev/manifests/serial/serial-87314b6e.xml]Compile [web]Parse [10 files]WriteKit [/home/leekwen/sedonadev/kits/web/web-462d43e-1.2.28.kit]WriteManifest [/home/leekwen/sedonadev/manifests/web/web-0462d43e.xml]Compile [control]Parse [94 files]WriteKit [/home/leekwen/sedonadev/kits/control/control-808b7db3-1.2.28.kit]WriteManifest [/home/leekwen/sedonadev/manifests/control/control-808b7db3.xml]Compile [driver]Parse [8 files]WriteKit [/home/leekwen/sedonadev/kits/driver/driver-b4cc82ce-1.2.28.kit]WriteManifest [/home/leekwen/sedonadev/manifests/driver/driver-b4cc82ce.xml]Compile [datetime]Parse [5 files]WriteKit [/home/leekwen/sedonadev/kits/datetime/datetime-3a280dce-1.2.28.kit]WriteManifest [/home/leekwen/sedonadev/manifests/datetime/datetime-3a280dce.xml]Compile [datetimeStd]Parse [1 files]WriteKit [/home/leekwen/sedonadev/kits/datetimeStd/datetimeStd-fc5628d7-1.2.28.kit]WriteManifest [/home/leekwen/sedonadev/manifests/datetimeStd/datetimeStd-fc5628d7.xml]Compile [basicSchedule]Parse [5 files]WriteKit [/home/leekwen/sedonadev/kits/basicSchedule/basicSchedule-7fdca638-1.2.28.kit]WriteManifest [/home/leekwen/sedonadev/manifests/basicSchedule/basicSchedule-7fdca638.xml]Compile [pstore]Parse [3 files]WriteKit [/home/leekwen/sedonadev/kits/pstore/pstore-7ea2cb06-1.2.28.kit]WriteManifest [/home/leekwen/sedonadev/manifests/pstore/pstore-7ea2cb06.xml]Compile [logManager]Parse [1 files]WriteKit [/home/leekwen/sedonadev/kits/logManager/logManager-da7714f6-1.2.28.kit]WriteManifest [/home/leekwen/sedonadev/manifests/logManager/logManager-da7714f6.xml]Compile [../platforms/src/generic/win32]Parse [6 files]WriteKit [/home/leekwen/sedonadev/kits/platWin32/platWin32-3746c8c1-1.2.28.kit]WriteManifest [/home/leekwen/sedonadev/manifests/platWin32/platWin32-3746c8c1.xml]Compile [../platforms/src/generic/unix]Parse [2 files]WriteKit [/home/leekwen/sedonadev/kits/platUnix/platUnix-751711ab-1.2.28.kit]WriteManifest [/home/leekwen/sedonadev/manifests/platUnix/platUnix-751711ab.xml]Compile [types]Parse [15 files]WriteKit [/home/leekwen/sedonadev/kits/types/types-10936551-1.2.28.kit]WriteManifest [/home/leekwen/sedonadev/manifests/types/types-10936551.xml]Compile [func]Parse [23 files]WriteKit [/home/leekwen/sedonadev/kits/func/func-821b7396-1.2.28.kit]WriteManifest [/home/leekwen/sedonadev/manifests/func/func-821b7396.xml]Compile [hvac]Parse [8 files]WriteKit [/home/leekwen/sedonadev/kits/hvac/hvac-7264c67c-1.2.28.kit]WriteManifest [/home/leekwen/sedonadev/manifests/hvac/hvac-7264c67c.xml]Compile [logic]Parse [24 files]WriteKit [/home/leekwen/sedonadev/kits/logic/logic-9fe95ce1-1.2.28.kit]WriteManifest [/home/leekwen/sedonadev/manifests/logic/logic-9fe95ce1.xml]Compile [math]Parse [20 files]WriteKit [/home/leekwen/sedonadev/kits/math/math-c22b255c-1.2.28.kit]WriteManifest [/home/leekwen/sedonadev/manifests/math/math-c22b255c.xml]Compile [timing]Parse [7 files]WriteKit [/home/leekwen/sedonadev/kits/timing/timing-aeaac82a-1.2.28.kit]WriteManifest [/home/leekwen/sedonadev/manifests/timing/timing-aeaac82a.xml]Compile [pricomp]Parse [7 files]WriteKit [/home/leekwen/sedonadev/kits/pricomp/pricomp-b5cd6698-1.2.28.kit]WriteManifest [/home/leekwen/sedonadev/manifests/pricomp/pricomp-b5cd6698.xml]*** Success! ***Removing "/home/leekwen/sedonadev/temp/generic-unix"Removing "/home/leekwen/sedonadev/temp/generic-unix/.par"Removing "/home/leekwen/sedonadev/temp/generic-unix/.par/svm"Removing "/home/leekwen/sedonadev/temp/generic-unix/.par/out"InitStagePlatform [generic-unix.xml]ReadKits [4 kits]StageVM [/home/leekwen/sedonadev/temp/generic-unix]GenNativeTable [/home/leekwen/sedonadev/temp/generic-unix/nativetable.c]StagePlatform
*** Success! ***
gcc -D__UNIX__=1 -DSOCKET_FAMILY_INET=1 -DPLAT_BUILD_VERSION=\"1.2.28\" /home/leekwen/sedonadev/temp/generic-unix/*.c -O2 -o /home/leekwen/sedonadev/bin/svm
/home/leekwen/sedonadev/temp/generic-unix/main.c: In function ‘runInStandaloneMode’:
/home/leekwen/sedonadev/temp/generic-unix/main.c:184:7: warning: format ‘%lld’ expects argument of type ‘long long int’, but argument 2 has type ‘int64_t’ [-Wformat]
/home/leekwen/sedonadev/temp/generic-unix/main.c: In function ‘printVersion’:
/home/leekwen/sedonadev/temp/generic-unix/main.c:321:3: warning: format ‘%d’ expects argument of type ‘int’, but argument 2 has type ‘long unsigned int’ [-Wformat]
/home/leekwen/sedonadev/temp/generic-unix/sys_Sys_std.c: In function ‘sys_Sys_longStr’:
/home/leekwen/sedonadev/temp/generic-unix/sys_Sys_std.c:51:3: warning: format ‘%lld’ expects argument of type ‘long long int’, but argument 3 has type ‘int64_t’ [-Wformat]
/home/leekwen/sedonadev/temp/generic-unix/sys_Sys_std.c: In function ‘sys_Sys_longHexStr’:
/home/leekwen/sedonadev/temp/generic-unix/sys_Sys_std.c:67:3: warning: format ‘%llx’ expects argument of type ‘long long unsigned int’, but argument 3 has type ‘int64_t’ [-Wformat]Success [/home/leekwen/sedonadev/bin/svm]
Creating folder /home/leekwen/sedonadev/temp/generic-unix/.par/out

5、运行编译好的SVM虚拟机:

leekwen@Lenovo:~/sedonadev$ svm --helpSedona VM 1.2.28
buildDate: Mar 21 2014 14:15:26
endian:    little
blockSize: 4
refSize:   8usage:svm [options] <scode file> [<sab file>] [<Sedona main args>]svm [options] --plat
options:--?       dump usage--ver     dump version--home=d  set current working directory--plat    run in platform mode. 'kits.scode[.stage]' and 'app.sab[.stage]'must be present in the working directory

到此虚拟机的编译已经全部完成了,至于编译的命令,其实都是在$SEDONA_HOME/adm目录下的python脚本文件,需要修改或扩展的请自行修改,欢迎大家来共同交流!

<-----------转载此文请注明出处------------->

构建基于ubuntu 12.04的Sedona开发环境相关推荐

  1. #Kinect之路#基于ubuntu 12.04的Kinect开发环境搭建 OpenNI+NITE+AVIN2+qt

    之前基于Win7搭建了kinect的开发环境,由于本人的机子太慢,编一个qt的hello world都要半分钟,所以为了方便以后的开发调试,尝试在ubuntu 12.04下搭建开发环境. 注意,如果你 ...

  2. Ubuntu 12.04下Pomelo开发环境搭建(转)

    关于Pomelo的开发之前一直是在Win7下搞的,最近决定迁移到Ubuntu下,我用的是Ubuntu 12.04,个人认为Ubuntu下搭建Pomelo开发环境,最重要的工作就是安装Nodejs,搞定 ...

  3. 基于VMware+Ubuntu 14.04 搭建ESP32 开发环境

    基于VMware+Ubuntu 14.04 搭建ESP32 开发环境 开发环境:VMware + 14.04 1.更新 cmake 准备工作:官网下载cmake-3.6.3.tar.gz(https: ...

  4. 基于 Ubuntu 18.04 的 STM32F407 开发

    基于 Ubuntu 18.04 的 STM32F407 开发 作者:解琛 时间:2020 年 8 月 2 日 基于 Ubuntu 18.04 的 STM32F407 开发 一.编译一个最小工程 1.1 ...

  5. ubuntu 11.04下Android开发环境的搭建!

    ubuntu 11.04下Android开发环境的搭建! 1.安装JDK 首先到oracle的官网上下载linux版本的JDK,网址为:http://www.oracle.com/technetwor ...

  6. apache服务器安装以及使用passenger插件部署rails应用,基于ubuntu 12.04 LTS

    小例子可以部署在rails自带的WEBrick上,逐渐往后走还得上Apache. 安装apache服务器 命令是sudo apt-get install apache2 安装passenger插件 安 ...

  7. 使用Ubuntu 12.04作为日常电脑环境

    搜狗输入法出来之后,我觉得有必要写一篇博客说明一下,如何使用Ubuntu作为日常的电脑系统.我使用的Ubuntu版本是12.04,没有使用Ubuntukylin,因为的电脑比较老,使用那个版本,电脑有 ...

  8. Ubuntu 13.04搭建J2EE开发环境

    摘要: 1.此教程基于 本本:Lenovo v470c OS:Ubuntu 13.04 32bit 2.搭建eclipse J2ee版本+MySQL+Tomcat 7.0+Jdk7开发环境 3.目的: ...

  9. Ubuntu 14.04.5 imx6 开发环境搭建

    1,下载VMware Workstation虚拟机 地址:http://1.xp510.com:801/xp2011/VMware10.7z 2,下载Ubuntu 14.04.5 LTS 32位Ubu ...

最新文章

  1. ORB_SLAM2帧Frame
  2. 在线作图丨高级的微生物分析——在线做Variance Partitioning Analysis(VPA分析)
  3. 《Oracle高性能SQL引擎剖析:SQL优化与调优机制详解》一2.2 内部函数与操作
  4. spring boot 异常处理
  5. linux基础面试题(46个汇总)
  6. PHP中环境变量的设置
  7. linux重置网络协议,Linux 内核网络协议栈 ------ tcp_ack 函数处理接收到的ACK包之后 ....
  8. html和css占前端的多少比例,【CSS】前端怎么实现像chrome浏览器的百分比缩放同样的效果?...
  9. 服务器电源can协议,硬件接口协议之“CAN总线EMC设计”
  10. linux进去网卡,Linux上使用socket进行网卡抓包
  11. servlet+JQuery ajax以json的形式的验证表单小实例
  12. 深度linux安装make,linux下安装python3完整教程(依赖环境gcc,make,cmake,configure等详细解释)...
  13. Win8 开发者训练营第一天的过程,感受和收获 :D
  14. javascript学习随笔(编写浏览器脚本 Navigator Scripting )
  15. JS === 实现通过点击td 跳转相应的图片
  16. SQL WITH AS
  17. mysql分组去掉重复记录_MYSQL中GROUP分组去除重复数据
  18. Unity3D开发之unity和js通信交互
  19. BZOJ2525: [Poi2011]Dynamite
  20. AHP中特征向量、权重值、CI值等指标如何计算?

热门文章

  1. Python核心编程朱红庆_朱红庆作品_朱红庆简介_朱红庆作品大全-当当网
  2. 推荐UML插件Green UML、AmaterasUML
  3. Anki同步经常出错的解决办法
  4. 贝索斯前妻去年减持250万股亚马逊股票 价值85亿美元
  5. html网页中怎么让图片旋转90度,css怎么让图片旋转90度
  6. RAW+ASM 的RAC 10g 安装文档
  7. Python查找涉密关键字文件
  8. 掉电锁存可调时的电子闹钟
  9. docker环境下安装nginx、挂载文件、docker容器中文乱码
  10. vim 快速查找功能