其他
Linux工程移植笔记-基于arping案例
1. arping简介 arp(Address Resultion Protocol)地址解析协议,是通过解析网络层地址来找寻数据链路层地址。 ...
在 SylixOS INT8 类型是否带有符号
Q:在 SylixOS INT8 类型是否带有符号 INT8 类型在 BSP 中定义, SylixOS 要求 INT8 型为有符号 8 位整形, 有些编译器默认 char 为无符号数, 所以在 BSP 中定要将 INT8 定义为 signed char 型. (int8_t 类型由 INT8 定义, C99 中要求 int8_t 为有符号数)INT8 类型在 BSP 中定义, SylixOS 要求 INT8 型为有符号 8 位整形, 有些编译器默认 char 为无符号数, 所以在 ...
怎样裁剪 libsylixos 第三方软件库
Q: 怎样裁剪 libsylixos 第三方软件库. 起初 sylixos 加入第三方软件库是为了测试 sylixos 系统的稳定性与兼容性,后期作者觉得这些库非常有用于是就保留了下来。 几乎所有第三方软件库源码都在 SylixOS/appl 目录存放。当不需要这些组件时,只需要手动将代码移除即可,同时删除appl.h 中引用的相关头文件。
使用 polarSSL 库时, 有时出现线程崩溃
Q: 使用 polarSSL 库时, 有时莫名奇妙的出现线程崩溃. polarSSL 库源于著名的 xySSL 库。是专为嵌入式系统设计的加密算法库(比 openSSL 小很多)。 polarSSL 的一些函数, 对堆栈的使用相当大, 有时会达到 50KBytes 以上, 所以建议将需要加密运算的功能放在一个堆栈很大的线程中执行。
为什么有些文件系统中不能建立链接文件
Q: 为什么有些文件系统中不能建立链接文件? 当使用新的 SylixOS 分级目录管理时, SylixOS 提供了部分的链接文件支持(不支持硬链接, 仅支持 unix 符号链接), 但是仅仅是在根文件系统(root fs)所属的目录中, 目前 SylixOS 的其他文件系统还不支持链接文件, 所以链接文件(symbol path) 必须在 root fs 管辖的目录中(可以满足绝大多数的应用!). 例如: 可以调用 symlink("/yaffs2/n0/etc", "/etc"); 或者执行 ...
FTP 传输大批量文件是,PASV模式无法连接或崩溃?
Q: FTP 在传输大批量文件时(成百上千个), PASV 模式有时无法建立, 同时有可能崩溃? FTP 客户端工具在传输大批量文件传输时, 一般会建立多条访问链接, 造成 TCP 控制块不足, 从而导致 PASV 无法建立. 可在编译操作系统时, 加大 TCP 控制块的数量.。但这并不是导致 FTP 服务器崩溃的原因, 导致崩溃极有可能是 FTP 服务器堆栈不足. FTP 堆栈默认为 12KBytes。不应该减小此堆栈的大小。
使用xx.txt文件生成块设备节点并挂载文件系统?
Q:如何使用txt文件生成块设备节点并挂载文件系统? a.复制内核里 ramdisk 代码 b.修改 ramdisk 函数实现,open 函数中使用 open 打开一个空文件,将空文件按照内存方式操作 c.ramdisk read 和 write 函数中原有的内存操作全部替换成 leek/read/write操作文件 c.申请块设备句柄,并创建一个文件盘 d.使用 API_OemDiskMount 进行挂载,此时挂载会失败,但是已经能够在/dev/blk下生成文件盘设备句柄 ...
如何为ramdisk创建块设备节点?
Q:如何为ramdisk创建块设备描述符? a.申请块设备句柄 b.API_RamDiskCreate 创建 ramdisk 设备 c.API_OemDiskMount 进行挂载,mount_point 为挂载点,由于此片内存尚未格式化会挂载失败,但此时已经在/dev/blk中创建好了块设备 d.可以对块设备描述符进行fdisk remount mkfs static PLW_BLK_DEV* pRamBlkDev; pRamBlkDev = ...
SylixOS 实验配套教程(赠视频)
SylixOS 是目前国内功能最为完善的实时嵌入式操作系统,符合 IEEE1003 (ISO/IEC9945)、POSIX 1003.1b(ISO/IEC 9945-1)操作系统规范,同时支持 IEEE1003.1b 针对于实时操作系统的扩展标准,其内核满足 GJB7718-2012 《军用嵌入式操作系统技术要求》和 GJB7714-2012《军用嵌入式实时操作系统应用编程接口》的规定。 满足 GJB7706-2012《军用嵌入式操作系统测评要求》 兼容 VxWorks API ...
添加FTP权限功能
Q:添加FTP权限功能 有些客户对 ftp 有权限的需求,比如,只限定某些目录可见,标准的 BASE 的 FTPD 并不具备这个能力,但是可以通过小修改 BASE 的FTPD,并配合添加用户 、改 root 密码 来达到这个目的。 1. 添加一个 FTP 组 gadd ftp 500 注意:组 ID 不能与现有组重复 2. 添加一个FTP 用户 uadd ftp 123456 1 100 500 ftp_comment /home/ftp 注意:用户 ID ...
基于 ACOEGC_T3(PF) 搭建 JLink 调试环境
本文主要介绍全志 T3 JLink 调试环境搭建,基于 ACOEGC_T3(PF) 硬件板卡,系统架构使用裸核 * 3 + SylixOS 的 AMP 模式。调试环境可通过 RealEvo-IDE 和 JLink V9 同时对 T3 的 4 个核进行调试。 一、搭建调试环境 1、安装 JLink 软件,这里安装的是 V645a; 2、修改安装目录下的 JLinkDevices.xml 文件,这里的路径为: D:\Program Files ...
VMware 中搭建 SylixOS 环境
1、制作 x86 平台 U 盘启动盘 详细步骤见《RealEvo-IDE 使用手册》第八章。制作成功后插入 U 盘。 2、创建 VMware 虚拟机设备 打开 VMware(这里使用版本为 15.5.6),点击“创建新的虚拟机”,按如下步骤创建虚拟机: 点击完成创建虚拟机设备 3、配置虚拟机 插入 U 盘启动盘,点击“编辑虚拟机设置”,先改内存为 1 G。然后添加 100M 虚拟硬盘用于存放系统镜像: ...
LTS 版 Base 如何创建
问:长期支持版(如 1.12.13 LTS版本)Base 如何创建? 目前以 1.12.9 为基础的 LTS 长期维护支持版本有 1.12.13,用户可根据自己实际需求确认长期支持版本号,并联系销售获取对应版本的插件安装即可。 注:目前 LTS 版本的插件必须在 4.0.0 版本的 IDE 基础上安装。 具体组件安装流程如下: 安装 RealEvo_SylixOS_LTS 组件之前要安装 RealEvo-IDE 工具,安装完 RealEvo-IDE 后双击 ...
不同容器(ECS)间使用信号量同步方案
1、概述 在 SylixOS 容器版本中由于容器间存在命名空间隔离的问题因此无法直接使用信号量进行同步操作,这在某些场合下可能无法完成实际需求,如共享内存通信时。本文介绍一种在容器间实现信号量同步功能的解决方案。 2、解决方案 此解决方案思路是在 SylixOS 标准信号量的基础上封装一层字符设备,在内核层创建信号量并提供相关接口使容器内的 APP 可以通过字符设备接口获取内核信号量句柄,再通过标准信号量 API 进行操作。实现不同容器间的 APP ...
SylixOS 下 openssh sshd 使用
1、编译 openssh 库地址:http://10.7.100.21:8000/middleware/openssh 编译工程 openssh,部署生成的相关文件(依赖 openssl) 2、增加 sshd 用户 使用 gadd、uadd 命令增加用户组 sshd、用户 sshd 3、生成秘钥文件 # cd /apps/openssh79P/ # ./ssh-keygen -A 执行结束后生成如下文件 注意生成的文件的权限,这里需要使用 TpsFs 文件系统,若使用 FatFs 请参考第 7 ...
SylixOS 防火墙相关命令使用
Q:SylixOS 防火墙相关命令使用 1、添加防火墙规则 格式: npfruleadd [netifname] [rule] [input | output] [allow | deny] [args...] eg: npfruleadd en1 mac input deny 11:22:33:44:55:66 npfruleadd en1 ip input allow 192.168.0.5 192.168.0.10 npfruleadd lo0 udp input ...
在 Module 中使用硬件浮点方法
1、在 BSP 中更改启动参数,打开内核FPU 2、修改内核配置 libsylixos/SylixOS/config/kernel/kernel_cfg.h 3、修改内核模块配置 由于内核模块默认不能配置硬件浮点,因此首先需要将内核模块工程改为专家模式 在mk文件的编译选项栏加入硬件浮点配置项,以T3为例(T3的FPU为VFPv4)
SylixOS 容器版本(ECS)添加 syscall 方式
1、配置 IDE 环境 这里配置的是 3.9.11 版本的 IDE,3.9.11 以后的版本中可能会集成此功能。 将下面两个插件拷贝到目录 ACOINFO\RealEvo\ide\plugins com.sylixos.realevo.devicemgr_3.0.0.jar com.sylixos.realevo.container_3.0.0.jar 将 syscallgen.rar 解压得到的 syscallgen 目录拷贝到 ACOINFO\RealEvo\tools 目录下,重启 IDE ...
如何在 vmware 虚拟机中安装启动 SylixOS
Q: 如何在 vmware 虚拟机中安装启动 sylixos。 首先需要安装 VMware 软件,并准备好 VMware 所需 SylixOS 的 x86 启动文件(在 IDE 原始安装包中有 VMware 文件) 启动流程: 将压缩包解压到本地; 打开 VMware 软件,在 VMware 选项卡选择 “文件” —> ‘’打开‘’; 在弹出窗口中选择解压后的 vmx 文件并点击确定,文件位置:“SylixOS VMware\SylixOS x86\SylixOS ...
SylixOS任务优先级设置原则与系统任务优先级划分说明
Q:SylixOS任务优先级设置原则与系统任务优先级划分说明 SylixOS属于实时操作系统,任务管理原则是小数字的任务优先级为高优先级任务,高优先级任务一旦激活,即会抢占低优先级任务获得运行。任务设计的时候,高优先的任务应该是紧急要处理的任务。 系统任务包含种类如下: 异常接管类:该类任务优先级为0,也是最高,不允许用户调整 系统定时服务类:任务优先级为20,主要为系统提供软定时,该任务执行时间很短,为了保障用户在使用系统定时服务的精准性,该优先级不建议调整。除非有更紧急的任务需要响应。 ...
物理内存的使用率如何获取?
Q:我们需要物理内存的使用率这个指标,定时上送。free命令看是虚拟内存,怎么获取这个值?有函数吗? API_VmmPhysicalKernelDesc 另: API_VmmPhysicalKernelDesc 是针对 VMM 物理内存使用情况的统计; API_RegionShow 显示指定的内存池信息; API_KernelHeapInfo 是系统内存堆使用情况的统计; 命令 free ...
如何更新 SylixOS 内核版本
问: 如何更新 SylixOS 内核版本? (1) 使用 tftp 工具或者IDE中的 tftp 工具将 boot 中旧版本的镜像文件替换为新版本的镜像文件,完成后使用 sync 命令刷新到硬盘。 (2)reboot 重启设备,即完成SylixOS 内核更新。
SylixOS 中 如何获取磁盘序列号和 CPU ID
Q:SylixOS 中 如何获取磁盘序列号和 CPU ID ? 获取硬盘 ID 的函数,可以通过 open 打开磁盘设备,然后通过 ioctl 使用 LW_BLKD_CTRL_INFO 参数获取磁盘信息,磁盘信息里面就包含有磁盘 ID、CPU ID 可以通过 LW_CPU_GET_CUR_ID获取。 如果需要在应用程序里面 ioctl 使用 LW_BLKD_CTRL_INFO 参数获取磁盘信息,需要定义 LW_BLK_INFO ...
SylixOS lite 版—基于 STM32F767 资源使用情况
1、基本概念 代码段(text):顾名思义,代码存放的位置,在 STM32 中代码段一般存放于内置 FLASH 中; 已初始化数据段(data):已初始化数据段会分别体现在 FlASH 中和 RAM 中。因为是全局变量,运行过程中需要进行读写操作,因此占用一段 RAM 空间。又因为有初始值,其初始值需要占用 FlASH 空间。 未初始化的数据段(bss):bss 与 data 相同的地方时它也是全局变量,运行过程中需要进行读写操作,因此占用一段 RAM ...