# openSCA **Repository Path**: opensca/openSCA ## Basic Information - **Project Name**: openSCA - **Description**: OpenSCA核心框架完全符合SCA2.2.2标准规范,已在多个项目中投入使用,为SCA4.1或SRTF核心框架的研究及开发提供很大的参考价值。 - **Primary Language**: C++ - **License**: GPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 3 - **Forks**: 3 - **Created**: 2022-03-20 - **Last Updated**: 2024-03-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # openSCA OpenSCA是由上海介方信息技术有限公司(jFounder)孵化及运营的开源项目,该项目依据SCA2.2.2标准构建的SCA软件平台适用于通信、导航、雷达、电子对抗等多各种类型无线电平台,同时为SCA4.1/SRTF软件无线电平台的研究及研制提供参考,目标是促进国内软件无线电技术的发展。
## 编译环境 1. 宿主机操作系统:建议Ubuntu 16.04及以上版本 宿主机硬件版本:ARMv7_CortexA9;
2. 交叉编译器现支持两类:jLinux、PetaLinux2015.4。
获取编译器路径:https://gitee.com/opensca/jRootfs-and-Toolchains
jLinux:arm-linux-gnueabihf-gcc、arm-linux-gnueabihf-g++
版本:6.5.0 (Linaro GCC 6.5-2018.12)
PetaLinux2015.4:arm-xilinx-linux-gnueabi-gcc、arm-xilinx-linux-gnueabi-g++
版本:4.9.2 (Sourcery CodeBench Lite 2015.05-17)
3. cmake,版本不低于3.5;
## 编译设置 本项目使用CMake工具进行编译,需要先配置交叉编译器的环境变量。
### jLinux:
1. 安装Linaro_SDK
2. 新建gcc-linaro-6.5.0-2018.12-i686_arm-linux-gnueabihf/settings64.sh脚本,添加如下内容:
> export PATH=$PATH:/home/jf-yt/gcc-linaro-6.5.0-2018.12-i686_arm-linux-gnueabihf/bin/
export CPLUS_INCLUDE_PATH=/home/jf-yt/gcc-linaro-6.5.0-2018.12-i686_arm-linux-gnueabihf/include/
export C_INCLUDE_PATH=/home/jf-yt/gcc-linaro-6.5.0-2018.12-i686_arm-linux-gnueabihf/include/
export CPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH:/home/jf-yt/gcc-linaro-6.5.0-2018.12-i686_arm-linux-gnueabihf/include/
export LD_LIBRARY_PATH=/home/jf-yt/gcc-linaro-6.5.0-2018.12-i686_arm-linux-gnueabihf/lib:$LD_LIBRARY_PATH
export LIBRARY_PATH=$LIBRARY_PATH:/home/jf-yt/gcc-linaro-6.5.0-2018.12-i686_arm-linux-gnueabihf/lib
export CXX=arm-linux-gnueabihf-g++
export CC=arm-linux-gnueabihf-gcc
/home/jf-yt为具体安装路径,请根据实际情况更改。
3. 编译前请先执行如下命令: ``` source ~/gcc-linaro-6.5.0-2018.12-i686_arm-linux-gnueabihf/settings64.sh ``` 配置目录下的configure.cmake文件,配置选项如下:
[![交叉编译器配置](/jLinux_compiler_config.png)](https://gitee.com/opensca/openSCA/blob/master/jLinux_compile_config.png)
4. 设置openSCA/cmake/common/compiler_setting.cmake文件
> SET(CMAKE_C_COMPILER "${COMPILER_DIR}/bin/arm-linux-gnueabihf-gcc")
SET(CMAKE_CXX_COMPILER "${COMPILER_DIR}/bin/arm-linux-gnueabihf-g++")
SET(CMAKE_AR "${COMPILER_DIR}/bin/arm-linux-gnueabihf-ar")
SET(CMAKE_FIND_ROOT_PATH
"${COMPILER_DIR}/lib")
如图:
[![交叉编译器设置](/jLinux_compiler_setting.png)](https://gitee.com/opensca/openSCA/master/jLinux_compiler_setting.png)
### PetaLinux2015.4:
1. 安装Xilinx_SDK
2. 在Xilinx-2015.4/SDK/2015.4/settings64.sh脚本中,添加如下内容:
> export CC=arm-xilinx-linux-gnueabi-gcc
export CXX=arm-xilinx-linux-gnueabi-g++ 3. 编译前请先执行如下命令: ``` source ~/Xilinx-2015.4/SDK/2015.4/settings64.sh ``` 配置目录下的configure.cmake文件,配置选项如下:
[![交叉编译器设置](/PetaLinux_compiler_config.png)](https://gitee.com/opensca/openSCA/master/PetaLinux_compile_config.png)
4. 设置openSCA/cmake/common/compiler_setting.cmake文件
> SET(CMAKE_C_COMPILER "${COMPILER_DIR}/SDK/2015.4/gnu/arm/lin/bin/arm-xilinx-linux-gnueabi-gcc")
SET(CMAKE_CXX_COMPILER "${COMPILER_DIR}/SDK/2015.4/gnu/arm/lin/bin/arm-xilinx-linux-gnueabi-g++")
SET(CMAKE_AR "${COMPILER_DIR}/SDK/2015.4/gnu/arm/lin/bin/arm-xilinx-linux-gnueabi-ar")
SET(CMAKE_FIND_ROOT_PATH
"${COMPILER_DIR}/SDK/2015.4/lib"
"${COMPILER_DIR}/SDK/2015.4/gnu/arm/lin/arm-xilinx-linux-gnueabi/lib"
"${COMPILER_DIR}/SDK/2015.4/gnu/arm/lin/arm-xilinx-linux-gnueabi/libc")
如图 [![交叉编译器设置](/PetaLinux_compiler_setting.png)](https://gitee.com/opensca/openSCA/master/PetaLinux_compiler_setting.png)
## 编译步骤 1. 编译本项目,首先从GitHub拉取sdrLibrary仓库,新建openSCA/libs目录,然后将sdrLibrary中ace_tao、boost、
runtime_env、tiny1xml四个文件夹直接拷贝到openSCA/libs目录下。
sdrLibrary仓库地址为:(https://gitee.com/opensca/sdrLibrary.git)
2. 拉取examples仓库,将拉取到的examples文件夹直接拷贝到OpenSCA目录下,
examples仓库地址为:(https://gitee.com/opensca/examples.git)
3. 拉取testsuite仓库,将拉取到的testsuite文件夹直接拷贝到OpenSCA目录下,
testsuite仓库地址为:(https://gitee.com/opensca/testsuite.git)
4. 新建openSCA/build目录,在此目录下执行"cmake ../"命令
5. 步骤3执行成功后,继续执行"make"命令,生成目标文件
## 运行环境 jLab实验平台 1.0
[![jLab实验平台](/jLab实验平台.png)](https://gitee.com/opensca/openSCA/master/jLab%E5%AE%9E%E9%AA%8C%E5%B9%B3%E5%8F%B0.png)
## 依赖的开源项目 1、ACE+TAO-2.0a
2、boost 1.69.0
3、tinyxml
## 补充说明 项目还提供如下内容:
1. 可直接运行的demo,仓库地址:(https://gitee.com/opensca/demos)
2. 说明文档,仓库地址:(https://gitee.com/opensca/documents)
3. 第三方库源码:仓库地址:(https://gitee.com/opensca/thirdparty)
4. 组件和逻辑设备开发实例代码,仓库地址:(https://gitee.com/opensca/examples) 5. 测试实例代码,仓库地址:(https://gitee.com/opensca/testsuite) 6. openSCA-SDK,仓库地址:(https://gitee.com/opensca/sdrSDK) 7. 根文件系统和编译器,仓库地址:(https://gitee.com/opensca/jRootfs-and-Toolchains) 8. 内核源码,仓库地址:(https://gitee.com/opensca/jLinux) 9. uboot,仓库地址:(https://gitee.com/opensca/jU-Boot) ## 项目描述   本项目为开源版本,供开发者学习、研究之用,实现了部分基础接口,如加载波形、卸载波形、
设置与查询属性、启动与停止波形,且未对性能进行优化,如加载波形时采用的是串行加载波形组件的方式,耗时较长。
  介方商业版openSCA在实现完整SCA接口的基础上又做了增强型设计,且对性能进行了优化。 ### 开源版与商业版的区别 | | 开源版 | 商业版 | | ------ | ----- | ------ | | SCA接口实现情况 | 基础接口 | 所有接口 | | ace_tao库是否优化 | 未优化 | 优化 | | 波形加载方式 | 串行加载 | 并行加载 | | 心跳服务 | 不支持 | 支持 | | 聚合服务 | 不支持 | 支持 | | 分布式加载 | 不支持 | 支持 | | 跨节点连接 | 不支持 | 支持 | | 事件服务 | 不支持 | 支持 | 如对商业版openSCA感兴趣,可发邮件至victor@onetek.net进行咨询。 ## 工具支持 介方同时提供SDR集成开发环境和平台监控软件jLab_Monitor。
  SDR集成开发环境为用户提供模型驱动支撑,支持波形建模、节点建模、模型库管理、波形算法开发等功能,
用户可通过此工具生成平台包并一键导入至jLab实验平台运行。
[![IDE](/IDE.png)](gitee.com/opensca/openSCA/master/IDE.png)
  jLab_Monitor为平台监控软件,提供波形的加载、卸载、属性配置与查询、启动与停止波形等功能。
[![jMonitor](/jMonitor.png)](https://gitee.com/opensca/openSCA/master/jMonitor.png) 如对上述工具感兴趣,可发邮件至victor@onetek.net进行咨询。