移植cJSON到SylixOS上

2024-01-31 02:50
文章标签 移植 cjson sylixos

本文主要是介绍移植cJSON到SylixOS上,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

        为了方便将第三方软件移植到 SylixOS 上,除了直接使用 RealEvo-IDE 工程构建外,对于复杂项目,采用其原有构建方式更为简洁高效。因为cJSON支持CMake编译,所以这里介绍 CMake 构建环境的搭建、MSYS2交叉编译环境 搭建和cJSON移植。

一、MSYS2环境搭建

下载地址:https://repo.msys2.org/distrib/x86_64/

MSYS2 是一个完整的软件分发平台,旨在为 Windows 用户提供一个现代化的开发环境,使用户能够轻松地使用类似于 Unix/Linux 的工具和库进行开发。

1、安装MSYS2

2、配置MSYS2环境变量

2.1、打开 msys2 安装目录,找到 msys2.ini 文件

打开msys2.ini文件,修改MSYS2_PATH_TYPE=inherit,如图所示,把注释打开并保存文件。

2.2、双击目录下的 msys2.exe,启动 msys2 程序。

在$的后面输入echo $PATH命令,查看环境变量是否生效。如果出现类似下图所示,则说明环境变量配置完成。

3、配置 MSYS2 软件源为国内源

3.1、进入 msys2 安装目录 etc\pacman.d 

找到 mirrorlist.msys、mirrorlist.mingw64、mirrorlist.mingw32 三个文件,将下列代码块中的所有内容,分别复制到对应文件中并保存。注意是追加。

  • mirrorlist.msys
#### MSYS2 repository mirrorlist##
## Primary## msys2.org
Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/msys/$arch
Server = http://mirrors.ustc.edu.cn/msys2/msys/$arch/
Server = http://repo.msys2.org/msys/$arch
Server = http://downloads.sourceforge.net/project/msys2/REPOS/MSYS2/$arch
Server = http://www2.futureware.at/~nickoe/msys2-mirror/msys/$arch/
  • mirrorlist.mingw64
#### 64-bit Mingw-w64 repository mirrorlist##
## Primary## msys2.org
Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/mingw/x86_64
Server = http://mirrors.ustc.edu.cn/msys2/mingw/x86_64/
Server = http://repo.msys2.org/mingw/x86_64
Server = http://downloads.sourceforge.net/project/msys2/REPOS/MINGW/x86_64
Server = http://www2.futureware.at/~nickoe/msys2-mirror/x86_64/
Server = http://mirror.bit.edu.cn/msys2/REPOS/
  • mirrorlist.mingw32
#### 32-bit Mingw-w64 repository mirrorlist##
## Primary## msys2.org
Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/mingw/i686
Server = http://mirrors.ustc.edu.cn/msys2/mingw/i686/
Server = http://repo.msys2.org/mingw/i686
Server = http://downloads.sourceforge.net/project/msys2/REPOS/MINGW/i686
Server = http://www2.futureware.at/~nickoe/msys2-mirror/i686/

3.2、在 MSYS2 终端输入 pacman -Sy 命令,出现以下界面表示配置源可用

3.3、确定源可用之后,在 MSYS2 终端输入 pacman -Su 命令,更新核心软件

4、安装编译相关环境

​​​​​​​4.1、在 MSYS2 终端输入以下命令安装编译相关环境

pacman -S mingw-w64-x86_64-toolchain mingw-w64-i686-toolchain base-devel gcc make base-devel

遇到询问全部按默认安装(default),时间比较长。

二、CMake 环境搭建

1、安装CMake

​​​​​​​1.1、下载 CMake

 进入 cmake 下载网站,Download CMake,找到以 msi 为拓展名的软件包镜像并下载

1.2、下载完成后,双击软件包安装

安装路径最好自定义,方便后面查找。所有选择完成之后,一直点 NEXT,直到安装完成。

2、配置 CMake

安装 CMake 后,还需要对 CMake 进行配置,以便 CMake 可支持 SylixOS。

添加文件之前,需要先打开文件的拓展名显示,因为添加的文件会涉及修改文件拓展名。

2.1、​​​​​​​找到 cmake 安装目录下的 share/cmake-3.xx/Modules/Platform 文件夹

在该文件夹下创建 SylixOS.cmakeSylixOS-GNU.cmakeSylixOS-GNU-C.cmakeSylixOS-GNU-CXX.cmakeSylixOS-GNU-Fortran.cmake 总共 5 个文件。

将下列代码块内容,分别复制到对应文件中,并保存。

  • SylixOS.cmake
# Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.# support for SylixOS https://www.sylixos.com/# Guard against multiple inclusion, which e.g. leads to multiple calls to add_definition()
if(__SYLIXOS_CMAKE_INCLUDED)return()
endif()
set(__SYLIXOS_CMAKE_INCLUDED TRUE)set(CMAKE_SHARED_LIBRARY_C_FLAGS "&

这篇关于移植cJSON到SylixOS上的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/662353

相关文章

FreeRTOS-基本介绍和移植STM32

FreeRTOS-基本介绍和STM32移植 一、裸机开发和操作系统开发介绍二、任务调度和任务状态介绍2.1 任务调度2.1.1 抢占式调度2.1.2 时间片调度 2.2 任务状态 三、FreeRTOS源码和移植STM323.1 FreeRTOS源码3.2 FreeRTOS移植STM323.2.1 代码移植3.2.2 时钟中断配置 一、裸机开发和操作系统开发介绍 裸机:前后台系

RT-Thread(Nano版本)的快速移植(基于NUCLEO-F446RE)

目录 概述 1 RT-Thread 1.1 RT-Thread的版本  1.2 认识Nano版本 2 STM32F446U上移植RT-Thread  2.1 STM32Cube创建工程 2.2 移植RT-Thread 2.2.1 安装RT-Thread Packet  2.2.2 加载RT-Thread 2.2.3 匹配相关接口 2.2.3.1 初次编译代码  2.2.3.

SylixOS x86平台C++符号表

1.C++跨平台问题说明     在x86平台下编译C++工程过程后,运行编译好的C++共享库时出现符号表__atomic_fetch_sub_4找不到的问题,如图 1.1所示。

SylixOS pthread_join退出

1 问题描述 在移植中间件过程中,在SylixOS下调用pthread_join时,如果线程在pthread_join等待之前结束,则线程返回无效线程错误值。在Linux下这种调用会正常返回。两种实现是有差别的,实现的原理分别如下。 2 函数实现机制 2.1 实现机制 在SylixOS下调用pthread_join时,如果线程在pthread_join等待之前结束,线程返回无效线程错误标志

SylixOS write 0 字节问题

1 问题描述 在移植中间件过程中,在SylixOS调用write函数写入0字节的数据到文件中时,会导致对应的中间件测试用例失败,失败的原因是文件系统中的write函数在Linux系统和SylixOS有区别,两种实现的差别如下。 2 write函数的实现机制 2.1 SylixOS实现机制 在SylixOS下通过write 函数写数据到普通文件中时,第一步会判断写入的数据是否为0,如果是0直

SylixOS功能点介绍

1.概述     SylixOS作为一款大型的国产实时操作系统,有着众多小的功能点,本文对SylixOS功能点和部分性能点做了一个总结,具体内容如下。 2.SylixOS功能大纲     基于SylixOS的1.5.3的内核,SylixOS功能大纲如图 2.1所示。 图 2.1 SylixOS功能大纲 3.SylixOS功能大纲介绍     SylixOS

SylixOS ARM平台下内存对齐访问

1.内存对齐 1.1     内存对齐概要 现代计算机中内存空间都是按照byte划分的,从理论上讲对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定变量的时候经常在特定的内存地址访问,这就需要各类型数据按照一定的规则在空间上排列,而不是顺序的一个接一个的排放,这就是对齐。 1.2     内存对齐作用和原因 各个硬件平台对存储空间的处理上有很大的不同。一些平

基于SylixOS的Telnet退出异常

1.Telnet的定义 1.1 Telnet的定义 Telnet协议是TCP/IP协议族中的一员,是Internet远程登陆服务的标准协议和主要方式。它为用户提供了在本地计算机上完成远程主机工作的能力。在终端使用者的电脑上使用telnet程序,用它连接到服务器。

cJSON V1.4.5源码

json官网: http://www.json.orgJSON (JavaScript Object Notation) is a lightweight data-interchange format. It is easy for humans to read and write. It is easy for machines to parse and generate. It is ba

libmad音频解码库-Linux交叉编译移植

下载并解压libmad-0.15.1b.tar.gz 下载链接:https://downloads.sourceforge.net/mad/libmad-0.15.1b.tar.gz $tar -xvf libmad-0.15.1b.tar.gz$cd libmad-0.15.1b 1、先执行下面的命令:这条命令是为了适配高版本的gcc,因为高版本的gcc已经将-fforce-mem去除了: