【从零开始一步步学习VSOA开发】运行hellovsoa

news2024/9/28 9:25:36

运行hellovsoa

和所有编程技术的首个程序一样,我们先创建、编译、部署、运行一个最简单的示例程序: hellovsoa。

创建 base 工程

需要先创建一个 workspace 工作目录,然后在 workspace 里先新建 base 工程。

  1. 打开 RealEvo-IDE,在菜单栏中选择 File > New > SylixOS Base ,打开 SylixOS Base 对话框。
  2. 在 SylixOS Base 对话框中,自定义 Project name 并且 Location 保持默认,单击 Next 进入 Base 类型选择页面。
    image.png
  3. 在 Base 类型选择页面中,选择 SylixOS Standard base 工程,单击 Next 进入工程设置对话框。
  4. 此对话框中可以选择编译工具链类型、编译代码的调试级别以及 CPU Type 等。按下图配置工程,单击 Next 进入库选择对话框。
    image.png
  5. SylixOS Base 默认包含 libsylixoslibcextern(其他库文件的说明见下表)。单击 Finish,完成 SylixOS Base 工程的创建。
  6. 创建完 SylixOS Base 工程后需要对其进行编译。选中新建的 SylixOS Base 工程,单击右键选择 **Build Project **,进行工程编译。Base 工程规模较大,编译可能需要一段时间。
    image.png
    image.png

导入 SDK 工程

  1. 下载 VSOA 开发包。
    我们目标是在标准 SylixOS 下运行 VSOA,在 windows 操作系统下使用 C 语言进行开发。这里的开发条件除了需要标准SylixOS 必须的 IDE 外,还需要一个 SDK 包。SDK 为编译提供头文件,为运行提供动态库。这里提供了 sdk-vsoa-v173-x64 开发包工程,该工程是在翼辉标准云原生SDK包(这个包内容比较庞杂)基础上简化而来,只包含x64体系结构下的VSOA相关动态库、运行工具,头文件等内容。该工程直接解压导入即可使用,无需编译。如果目标x64运行平台还未部署VSOA运行环境,也可以用该工程来部署。
    sdk-vsoa-v173-x64 开发包工程下载地址:【免费】sdk-vsoa-v173-x64资源-CSDN文库
  2. 解压下载的 sdk-vsoa-v173-x64 压缩包,并拷贝至工作空间目录下。
  3. 选择菜单 File > Import ,打开 Import 对话框,如下图所示。
  4. 选中 SylixOS Projects ,单击 Next 按钮进入工程选择界面,如下图所示。。
  5. 单击 Browse 按钮,在弹出文件夹选择框中选中工程所在目录,在 Projects 列表中会列出该目录下可被导入的工程名称,选中需要导入的工程,单击 Finish 按钮完成工程导入。
    image.png
  6. 导入工程成功后,可在 Workspace 工程列表中看到新导入的工程,如下图所示。。
    image.png

创建 APP 工程

  1. 选择菜单 File > New > Project ,弹出窗口中列出了 SylixOS 支持的工程类型,如下图所示。
    image.png
  2. 在新建对话框中设置 APP 名称,存储路径,关联的 base,优化等级。最后点击** Finish **按钮完成创建。
    image.png
    image.png
  3. 创建后的 APP 工程结构如下。
    image.png
  4. 打开 hellovsoa.c 文件,并用下面的代码替换。
#include <stdio.h>
#include <vsoa_parser.h>

int main (int argc, char **argv)
{
    const char *version = vsoa_parser_version();

    while (1) {
        printf("Hello VSOA! Version %s\n", version);
        sleep(1);
    }

    return  (0);
}

配置编译 APP 工程

  1. HelloVSOA 工程上单击右键,选择 Properties,进入工程属性配置页面。
  2. 在工程属性配置页面左侧导航栏中,单击 SylixOS Project > Compiler Setting,进入编译配置界面。
  3. 在编译配置界面上方的标签中,单击 Include Path 进入头文件配置界面。
  4. 在头文件配置界面中单击右侧的 Workspace ,选择添加 Include 路径为sdk-vsoa-v173-x64 工程的 include 目录:
    image.png
  5. 在工程属性配置页面左侧导航栏中,单击 SylixOS Project > Linker Setting,进入链接配置界面。
  6. 在链接配置界面中,单击右侧 Name 添加如下三个库名称:
  7. 在链接配置界面上方的标签中,单击 Library Path 切换至库路径配置界面。
  8. 在库路径配置界面右侧单击 Workspace 选择添加sdk-vsoa-v173-x64 工程的 library 目录作为库路径:
    image.png
  9. 编译 hellovsoa 工程,得到可执行程序。
    image.png
    image.png

部署运行 APP 程序

部署设置

  1. 右击 hellovsoa 工程,选择 Properties 打开工程属性页。

  2. 在工程属性页中选择 SylixOS Project > Device Setting,可查看和更改部署配置。单击 New Device 添加新设备。
    image.png

  3. 在添加设备对话框中,设置 Device IP 为“192.168.7.91”(实际 IP地址请在运行平台上用 ifconfig 命令查看),单击 Finish

  4. 上图中各配置项解析如下:
    | 配置项 | 说明 |
    | — | — |
    | Deivce Name | 设备名称,即设备在本 Workspace 的唯一 ID,不可重复,默认为 IP,也可以自定义 |
    | Device IP | 设备 IP 地址,使用“ifconfig”命令可获取目标系统网络信息 |
    | FTP Port | 设备 FTP 协议端口,默认 21 |
    | GDB Port | 调试应用程序时,gdbserver 端口,默认 1234 |
    | Telnet Port | 设备 telnet 协议端口,默认 23 |
    | User Name | 登录用户名,默认为“root” |
    | Password | 登录密码,默认为“root” |

  5. 设置完成后,在“Device Name”字段中出现新添加的设备,单击 Apply and Close 关闭对话框并保存设置。。

上传应用程序

SylixOS 支持 FTP 服务器,可以用 FTP 客户端上传文件到 SylixOS 目标系统中。RealEvo-IDE 自带 FTP 客户端工具,上传方法如下:

  1. 右击 hellovsoa 工程,选择 SylixOS > Upload 上传文件,或按 Atl + D 上传文件。

  1. 在 RealEvo-IDE 底部的 Upload 中可以查看上传进度。
    image.png**说明:**如果文件上传失败,会显示“Upload file failed!”字样,通常是由于网络或其他原因造成的,例如 IP 地址不正确、用户名/密码错误、防火墙拦截等。

运行应用程序

具体步骤如下:

  1. 使用 ls 命令查看 hellovsoa 执行文件是否存在。
[root@sylixos:/root]# ls /apps/
hellovsoa  test_vsoa
[root@sylixos:/root]# ls /apps/hellovsoa/
hellovsoa
[root@sylixos:/root]#
  1. 输入“ /apps/hellovsoa/hellovsoa”执行程序文件,查看运行结果。
[root@sylixos:/root]#
[root@sylixos:/root]# /apps/hellovsoa/hellovsoa
Hello VSOA! Version 1.7.0
Hello VSOA! Version 1.7.0
Hello VSOA! Version 1.7.0
Hello VSOA! Version 1.7.0
Hello VSOA! Version 1.7.0
Hello VSOA! Version 1.7.0
Hello VSOA! Version 1.7.0
Hello VSOA! Version 1.7.0
Hello VSOA! Version 1.7.0
Hello VSOA! Version 1.7.0

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1980778.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

BPM(业务流程管理):提升企业效率的关键

在现代企业中&#xff0c;业务流程管理&#xff08;BPM&#xff09;已成为提升效率和优化运营的关键工具。随着企业环境的不断变化和竞争的加剧&#xff0c;越来越多的组织开始关注如何通过有效的BPM实践来提升业务表现。本文将探讨BPM的基本概念、实施策略以及如何通过BPM实现…

Java并发中的死锁四大条件与避免策略

Java并发中的死锁四大条件与避免策略 1、死锁是啥&#xff1f;2、死锁的四大条件3、避免死锁的策略 &#x1f496;The Begin&#x1f496;点点关注&#xff0c;收藏不迷路&#x1f496; 1、死锁是啥&#xff1f; 死锁就像是几个朋友在聚会时&#xff0c;每个人都想和别人手里的…

你的财富正在被一个叫做通货膨胀的怪兽给吞噬掉,你却浑然不觉。

据统计&#xff0c;2024年全球总体通货膨胀率预计达到5.8%&#xff0c;这意味着&#xff1a;你的财富正在被一个叫做通货膨胀的怪兽给吞噬掉&#xff0c;你却浑然不觉。 数据来源&#xff1a;国际货币基金组织 如何跑赢通货膨胀&#xff1f; 家庭财富的积累速度&#xff0c;要…

[Git][分支管理][下]详细讲解

目录 1.合并冲突2.分支管理策略3.分支策略1.基本原则2.bug分支3.删除临时分支 1.合并冲突 在实际分⽀合并的时候&#xff0c;有时候可能会遇到代码冲突的问题&#xff0c;例如&#xff1a; dev分支在写一部分代码&#xff0c;而master分支也没闲着&#xff0c;也在写着同一份代…

MATLAB指针读数识别系统

前言 ①经过在工厂的实地测试&#xff0c;图像采集与传输装置可以正常工作&#xff0c;电脑端可以接收到清晰的图像&#xff0c;并且整个系统具有一定的的抗干扰的能力&#xff0c;在嘈杂的环境中亦可以实现其功能。 ②通过matlab可实现图片的预处理以及指针识别读数识别&…

MySQL笔记(三):修改表

##注&#xff1a;需要在cmd管理员命令行链接mysql再打开sqlyog 一、基本介绍 二、CRUD&#xff08;[create][read][update][delete]&#xff0c;增删改查)语句 1、insert语句 &#xff08;添加数据&#xff09; insert into table_name(第一项&#xff0c;第二项&#xff0…

LeetCode(力扣)数组篇 JAVA刷题详解

1 简介 是不是有许多小伙伴在刷力扣的时候感觉无从下手&#xff1f;从头按顺序开始刷的童鞋们可能会比较有感触&#xff0c;为什么才第四题就感觉很难了?没关系&#xff0c;本文将对力扣的 1-500 题中不需要会员的数据结构与算法题目(数据库与 shell 除外)进行分类&#xff0…

Linux网络编程之dpdk的环境配置详解

文章目录 一、dpdk是什么&#xff1f;二、dpdk的环境配置多队列网卡是什么&#xff1f;怎么判断是否为多队列网卡&#xff1f;怎么修改成多队列网卡&#xff1f;修改内存配置&#xff0c;使其支持hugepage(巨页)下载dpdk编译dpdk 一、dpdk是什么&#xff1f; DPDK&#xff08;…

用苹果Vision Pro隔空操控机器人,英伟达:「人机合一」也不难嘛

昨日,英伟达创始人黄仁勋在 SIGGRAPH 2024 Keynote 演讲中讲到了其人形机器人通用基础模型「Project GR00T」。该模型在功能上迎来了一系列更新。 德克萨斯大学奥斯汀分校助理教授、英伟达高级研究科学家朱玉可发推,在视频中演示了英伟达如何将通用家务机器人大规模仿真训练…

(STM32笔记)十一、通过EXTI外部中断实现 按键控制LED

我用的是正点的STM32F103来进行学习&#xff0c;板子和教程是野火的指南者。 之后的这个系列笔记开头未标明的话&#xff0c;用的也是这个板子和教程。 十一、通过EXTI外部中断实现 按键控制LED 十一、通过EXTI外部中断实现 按键控制LED1、按键模块按键原理图按键程序思路 2、中…

【数据结构】mapset详解

&#x1f341;1. Set系列集合 Set接口是一种不包含重复元素的集合。它继承自Collection接口&#xff0c;所以可以使用Collection所拥有的方法&#xff0c;Set接口的实现类主要有HashSet、LinkedHashSet、TreeSet等&#xff0c;它们各自以不同的方式存储元素&#xff0c;但都遵…

Linux常用得操作命令

1.查看ip地址------ifconfig 2.在终端中输入该命令&#xff0c;可以查看当前所在位置------pwd 3.man和–help man命令 1.man命令可以查看某个命令得具体用法 2.man命令怎么翻页 空格 3.man命令按q退出 help命令------help&#xff0c;也可以查看一个命令的帮助&#xff0c…

JavaWeb基础2:XML/Tomcat/Servlet

JavaWeb基础2&#xff1a;XML/Tomcat/Servlet (qq.com)

vim编辑器的使用【vim常用指令介绍】

1.1 vim 简介 vim 编辑器最初是 vi 编辑器&#xff0c;vi 编辑器是 Unix 系统最初的编辑器。允许查看文件内容和在文件中移动、插入、编辑和替换文本。后来开发人员对它做了一些改进。并重命名为 vim。 1.2 学习 vim 的理由 因为几乎任何一个发行版都有 vi/vim 编辑器&#xf…

从手动到自动:WMS系统带来的仓储革命

仓库管理系统&#xff08;WMS&#xff0c;Warehouse Management System&#xff09;在仓储业的发展中扮演了至关重要的角色。它的演变从手动管理到自动化管理&#xff0c;不仅大提升了仓储效率&#xff0c;还改变了企业的运营模式。 一、手动管理阶段 在WMS系统普及之前&#…

nginx负载均衡及软件平滑升级!!!

一、负载均衡 早期的网站流量和业务功能都比较简单&#xff0c;单台服务器足以满足基本的需求&#xff0c;但是随着互联网的发展&#xff0c;业务流量越来越大并且业务逻辑也跟着越来越复杂&#xff0c;单台服务器的性能及单点故障问题就凸显出来了&#xff0c;因此需要多台服…

【Visual Studio Code】源代码管理 传入/传出 更改配置开关

July 2024 (version 1.92)版本更新的Visual Studio Code 增加了 【源代码管理 - 传入/传出】的可视化视图。 但是目前发现也会导致加载变慢 占用页面的影响&#xff0c;如果希望关闭该视图&#xff0c; 可以在设置里搜索 scm.showHistoryGraph 关闭即可

计网:从输入URL到网页显示期间发生了什么

1、URL包含的信息 我们输入的url中包含着一些信息&#xff1a; http&#xff1a;表示的此次我们使用的什么协议/www.baidu.com&#xff1a;表示的是我们想要访问的服务器名称&#xff0c;也就是域名dir3/home.html&#xff1a;表示我们所要访问的资源 2、通过DNS解析URL获得I…

JAVA中的JMM(Java 内存模型)详解

1.JMM概念 Java 内存模型&#xff08;Java Memory Model 简称JMM&#xff09;是一种抽象的概念&#xff0c;并不真实存在&#xff0c;指一组规则或规范&#xff0c;通过这组规范定义了程序中各个变量的访问方式。 因为在不同的硬件生产商和不同的操作系统下&#xff0c;内存的访…

嵌入式安全:Provencore Secure os

嵌入式安全有何独特之处? 嵌入式安全领域的领导者 ProvenRun 宣布,其旗舰产品 ProvenCore for ARM™ Cortex-A 最近获得了 通用标准 (CC) EAL7 认证。这是全球首创,因为没有其他操作系统或可信执行环境 (TEE) 达到该安全级别。相比之下,移动安全市场上第二安全的 TEE(对于…