色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

RT_Smart GNU移植minizip記錄

冬至子 ? 來源:TimWcx ? 作者:TimWcx ? 2023-09-14 11:42 ? 次閱讀

由于minizip除了依賴于文件一些操作函數(shù)外并不依賴于其他庫,所以個人直接編譯運行;另外本次移植的是使用的xmake完成移植。

移植記錄

1、選擇合適的移植庫,xmake提供了一些可以跨平臺移植的庫,這里我選擇了minizip來進行移植。

2、編寫xmake.lua配置ToolChains并且引入minizip依賴

add_rules("mode.debug", "mode.release")
toolchain("aarch64-linux-musleabi")
set_kind("standalone")
set_sdkdir("$(projectdir)/../../tools/gnu_gcc/aarch64-linux-musleabi_for_x86_64-pc-linux-gnu")
on_load(function(toolchain)
os.setenv("PROJ_DIR", os.projectdir()) --For lua embed build script
toolchain:load_cross_toolchain()
toolchain:set("toolset", "cxx", "aarch64-linux-musleabi-g++")
toolchain:set("toolset", "cc", "aarch64-linux-musleabi-gcc")
-- add flags for aarch64
toolchain:add("cxflags", "-march=armv8-a -D__RTTHREAD__ -Wall -n --static -DHAVE_CCONFIG_H", {force = true})
toolchain:add("ldflags", "-march=armv8-a -D__RTTHREAD__ -Wall -n --static", {force = true})
toolchain:add("ldflags", "-T $(projectdir)/../../linker_scripts/aarch64/link.lds", {force = true})
if not is_config("pkg_searchdirs", "dropbear") then
toolchain:add("ldflags", "-L$(projectdir)/../../sdk/rt-thread/lib/aarch64/cortex-a -Wl,--whole-archive -lrtthread -Wl,--no-whole-archive", {force = true})
end
toolchain:add("includedirs", "$(projectdir)/../../sdk/rt-thread/include", {force = true})
toolchain:add("includedirs", "$(projectdir)/../../", {force = true})
toolchain:add("includedirs", "$(projectdir)", {force = true})
toolchain:add("includedirs", "$(projectdir)/../../sdk/rt-thread/components/dfs", {force = true})
toolchain:add("includedirs", "$(projectdir)/../../sdk/rt-thread/components/drivers", {force = true})
toolchain:add("includedirs", "$(projectdir)/../../sdk/rt-thread/components/finsh", {force = true})
toolchain:add("includedirs", "$(projectdir)/../../sdk/rt-thread/components/net", {force = true})
toolchain:add("linkdirs", "$(projectdir)/../../sdk/rt-thread/lib/aarch64", {force = true})
if is_config("kind", "debug") then
toolchain:add("cxflags", "-g -gdwarf-2", {force = true})
else
toolchain:add("cxflags", "-O2", {force = true})
end
end)
toolchain_end()
add_requires("minizip")
target("minizip")
set_toolchains("aarch64-linux-musleabi")
set_kind("binary")
add_files("src/minizip.c")
add_packages("minizip")
target("miniunz")
set_toolchains("aarch64-linux-musleabi")
set_kind("binary")
add_files("src/miniunz.c")
add_packages("minizip")
target("minizip_test")
set_toolchains("aarch64-linux-musleabi")
set_kind("binary")
add_files("src/main.c")
add_packages("minizip")

配置cconfig.h,這個文件如果用scons會自動生成,但是在xmake工程當(dāng)中不會自動生成,所以需要自己實現(xiàn)

#ifndef CCONFIG_H__
#define CCONFIG_H__
/* Automatically generated file; DO NOT EDIT. /
/
compiler configure file for RT-Thread in GCC/MUSL */
#define HAVE_SYS_SIGNAL_H 1
#define HAVE_SYS_SELECT_H 1
#define HAVE_PTHREAD_H 1
#define HAVE_FDSET 1
#define HAVE_SIGACTION 1
#define HAVE_SIGEVENT 1
#define HAVE_SIGINFO 1
#define HAVE_SIGVAL 1
#endif

3、編寫src/main.c程序,這里我用minizip實現(xiàn)了壓縮example.txt到example.zip

/*

Copyright (c) 2006-2018, RT-Thread Development Team

SPDX-License-Identifier: GPL-2.0

Change Logs:
Date Author Notes
2023-05-17 wcx1024979076 The first version
*/
#include "stdio.h"
#include "zip.h"
int main()
{
// 文件名
const char *zipfile = "example.zip";
// 需要壓縮的文件
const char *file = "example.txt";
zipFile zf = zipOpen(zipfile, APPEND_STATUS_CREATE);
if(zf == NULL)
{
printf("Error creating %s n", zipfile);
return 1;
}
// 壓縮文件
int err = zipOpenNewFileInZip(zf, file, NULL, NULL, 0, NULL, 0, NULL, Z_DEFLATED, Z_BEST_COMPRESSION);
if(err != ZIP_OK)
{
printf("Error adding %s to %s n", file, zipfile);
return 1;
}
// 讀取文件并壓縮
FILE *f = fopen(file, "rb");
char buf[1024];
int len;
while((len = fread(buf, 1, sizeof(buf), f)) > 0)
{
zipWriteInFileInZip(zf, buf, len);
}
fclose(f);
zipCloseFileInZip(zf);
zipClose(zf, NULL);
printf("Successfully created %s n", zipfile);
return 0;
}
4、xmake編譯鏈接生成mininet可執(zhí)行文件,打包進入 sd.bin

這里我使用的mcopy來實現(xiàn)的(用的是Codespace來寫的代碼,無root權(quán)限,不能使用mount掛載),具體命令為

mcopy -i sd.bin /path/of/the/minizip ::

5、用qemu虛擬機運行即可

運行結(jié)果:

1.jpg

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 虛擬機
    +關(guān)注

    關(guān)注

    1

    文章

    919

    瀏覽量

    28283
  • GNU
    GNU
    +關(guān)注

    關(guān)注

    0

    文章

    143

    瀏覽量

    17514
  • RT-Thread
    +關(guān)注

    關(guān)注

    31

    文章

    1296

    瀏覽量

    40239
  • SRC算法
    +關(guān)注

    關(guān)注

    0

    文章

    5

    瀏覽量

    7441
  • for循環(huán)
    +關(guān)注

    關(guān)注

    0

    文章

    61

    瀏覽量

    2514
收藏 人收藏

    評論

    相關(guān)推薦

    ART Pi Smart基于RT-Thread Smart系統(tǒng)的LVGL移植

    ART-Pi Smart開發(fā)板為RT-Thread聯(lián)合百問科技出品,使用的是 NXP 公司的 i.MX6ULL 處理器,具備單核 ARM Cortex-A7,最高運行頻率可以達到 800MHz。
    的頭像 發(fā)表于 11-29 14:29 ?1102次閱讀
    ART Pi <b class='flag-5'>Smart</b>基于<b class='flag-5'>RT</b>-Thread <b class='flag-5'>Smart</b>系統(tǒng)的LVGL<b class='flag-5'>移植</b>

    RT-Thread Smart 入門指南

    版本工具鏈下載:Windows 版本工具鏈請根據(jù)自己的開發(fā)環(huán)境選擇對用的工具鏈下載使用。下載下來后分別解壓展開到 rt-smart/tools/gnu_gcc 目錄下,rt-smart 目錄
    發(fā)表于 03-29 06:40

    RT-Smart的資料合集

    時,需要使用 GDB 直接進行代碼調(diào)試。本文檔記錄了以 RT-Thread qemu-vexpress-a9 BSP 為例,使用 GDB 對 RT-Smart 進行代碼調(diào)試的方法。
    發(fā)表于 03-22 15:06

    [IMX6ULL]RT-Smart系統(tǒng)下的軟件移植筆記推薦

    1、RT-Smart系統(tǒng)下的LwIP移植關(guān)于 i.MX 6ULL 的啟動方式,已經(jīng)老生常談了。關(guān)于啟動過程的分析,網(wǎng)上能搜到一堆原理講解,不過不推薦把那個解釋當(dāng)作最佳答案,建議還是自行從手冊入手關(guān)于
    發(fā)表于 03-25 16:25

    如何在RT-Thread Smart下使用gcc交叉編譯工具鏈呢

    前言RT-Thread Smart的BSP rt-smartspd1-allwinner-nezha,也全志D1s的哪吒開發(fā)板,基于RISCV64平臺,需要CV64的就是交叉編譯環(huán)境RISCV64
    發(fā)表于 06-17 11:13

    開機體驗rt-smart:webserver網(wǎng)關(guān)

    webserver 網(wǎng)關(guān)簡介在 ART-Pi Smart SDK 里面提供了一個 gnu-app 示例:webserver 網(wǎng)關(guān),并作為 ART-Pi Smart 的出廠 Demo。即移植
    發(fā)表于 06-30 11:17

    ART Pi Smart基于RT-Thread Smart系統(tǒng)的LVGL移植簡介

    1、基于RT-Thread Smart系統(tǒng)的LVGL移植我申請測試申請的高級功能的,由于是有限的(本來要求測試一個月,但是板子只有不到一個月)。的,特別是RT-Thread智能系統(tǒng)還學(xué)
    發(fā)表于 08-03 16:35

    RT-Thread Smart快速上手

    的RISC-V芯片等。本是程序板程序RT-Thread Smart 移植到C100S(ARM90S-2EJ-2EJ-1000)目錄,所有的bin0S指向S指向,可運行在基于F1C10S芯片的C10S芯片支派
    發(fā)表于 10-26 14:48

    RT-Thread Smart已正式上線

    rt-smart內(nèi)核即可包含基本功能,同時也可定制裁剪。rt-smart用戶態(tài)應(yīng)用環(huán)境采用musl libc提供POSIX接口調(diào)用及C運行環(huán)境,延續(xù) RT-Thread 原有的生態(tài),使用scons
    的頭像 發(fā)表于 11-29 10:31 ?2820次閱讀

    樹莓派上rt-smart的應(yīng)用編程入門

    文章,一些介紹及樹莓派上rt-smart的應(yīng)用編程入門(更多的從應(yīng)用程序角度入手)。后續(xù)還包括在rt-smart上的不同應(yīng)用程序介紹: wget curl移植 busybox移植 sd
    的頭像 發(fā)表于 05-13 14:10 ?3196次閱讀
    樹莓派上<b class='flag-5'>rt-smart</b>的應(yīng)用編程入門

    rt-smart移植分析:從樹莓派3b入手

    移植rt-smart到最新的板子上具體需要注意哪些細(xì)節(jié),哪些才是移植rt-smart的關(guān)鍵點?本文從樹莓派3b上移植
    發(fā)表于 01-25 18:48 ?0次下載
    <b class='flag-5'>rt-smart</b><b class='flag-5'>移植</b>分析:從樹莓派3b入手

    RT-Thread Smart 上手指南

    RT-Thread Smart(簡稱rt-smart)是基于RT-Thread操作系統(tǒng)衍生的新分支,面向帶MMU,中高端應(yīng)用的芯片,例如ARM Cortex-A系列芯片,MIPS...
    發(fā)表于 01-25 20:09 ?13次下載
    <b class='flag-5'>RT</b>-Thread <b class='flag-5'>Smart</b> 上手指南

    RT-Thread文檔_RT-Thread SMP 介紹與移植

    RT-Thread文檔_RT-Thread SMP 介紹與移植
    發(fā)表于 02-22 18:31 ?9次下載
    <b class='flag-5'>RT</b>-Thread文檔_<b class='flag-5'>RT</b>-Thread SMP 介紹與<b class='flag-5'>移植</b>

    基于xmake的RT_Smart GNU移植minizip記錄

    由于minizip除了依賴于文件一些操作函數(shù)外并不依賴于其他庫,所以個人直接編譯運行;另外本次移植的是使用的xmake完成移植
    的頭像 發(fā)表于 06-07 15:42 ?861次閱讀
    基于xmake的<b class='flag-5'>RT_Smart</b> <b class='flag-5'>GNU</b><b class='flag-5'>移植</b><b class='flag-5'>minizip</b><b class='flag-5'>記錄</b>

    RT-Smart應(yīng)用開發(fā)筆記:fopen造成文件被清空問題的分析記錄

    RT-Smart 應(yīng)用(apps)開發(fā)環(huán)境,ubuntu 20.04 + win10 VS Code
    的頭像 發(fā)表于 10-20 16:01 ?636次閱讀
    <b class='flag-5'>RT-Smart</b>應(yīng)用開發(fā)筆記:fopen造成文件被清空問題的分析<b class='flag-5'>記錄</b>
    主站蜘蛛池模板: 97影院理论午夜伦不卡偷| 欧美男同gay粗大又长| 一本二卡三卡四卡乱码麻豆| 强壮的公次次弄得我高潮韩国电影| 国精产品一区二区三区有限公司 | 亚洲AV久久无码精品蜜桃| 欧美hdxxxx| 九九色精品国偷自产视频| 成人亚洲视频| 97欧美精品大香伊蕉在人线| 亚洲精品一区国产欧美| 手机毛片在线| 人淫阁| 免费果冻传媒2021视频| 精品国产品在线18年| 国产精品欧美亚洲| 成人精品视频在线观看播放| 777午夜精品久久AV蜜臀| 亚洲人成网站7777视频| 我的美女房东未删减版免费观看| 青青草国产精品| 嫩草影院在线观看网站成人| 久久天堂网| 久久爱狠狠综合网| 黑人巨大两根一起挤进欧美| 国产精品久久久久久久久齐齐| 成人免费公开视频| vagaa哇嘎黄短片| 99午夜视频| gogogo视频在线观看| 97久久久久| 99re8热视频这在线视频| 91福利国产在线观看网站| 征服艳妇后宫春色| 在线观看国产视频| 中文字幕国产在线观看| 中国欧美日韩一区二区三区| 中国拍三a级的明星女| 中文字幕精品视频在线| 456亚洲人成在线播放网站| 91久久99久91天天拍拍|