自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(39)
  • 资源 (114)
  • 收藏
  • 关注

转载 x86 linux内核栈溢出一则

这是前一段时间遇到的一个问题,先看这段代码:struct result{     unsigned int a;    unsigned int b;    unsigned int c;};int func(){    struct result temp[512];    memset(temp,0,sizeof(struct res

2016-11-30 23:17:22 1112

转载 内核堆栈溢出

Linux内核的堆栈一般是8K,所以在写内核程序的时候一定要小心,防止函数递归的出现,递归可能导致内核堆栈溢出。1. 查看Linux内核线程堆栈,源代码里一般定义为 #define THREAD_SIZE (2*PAGE_SIZE)2. 如果怀疑有堆栈溢出的情况,可以在代码里面加入如下的代码来检查当前内核堆栈。uint32 mystack_used (void) {

2016-11-30 23:15:12 2703

转载 Linux内核Crash分析

在工作中经常会遇到一些内核crash的情况,本文就是根据内核出现crash后的打印信息,对其进行了分析,使用的内核版本为:Linux2.6.32。每一个进程的生命周期内,其生命周期的范围为几毫秒到几个月。一般都是和内核有交互,例如用户空间程序使用系统调用进入内核空间。这时使用的不再是用户空间的栈空间,使用对应的内核栈空间。对每一个进程来说,Linux内核都会把两个不同的数据结构紧凑的存放在

2016-11-29 22:38:17 655

原创 Allwinner SPI 驱动的使用和调试方法

常见问题5.1【现象】:启动过程中 SPI 总线驱动有错误信息提示:sunxi_spi_request_gpio()1238 - SPI0 pinctrl_lookup_state() failed! return ffffffedsunxi_spi_hw_init()1336 - [spi-0] Request GPIO failed!【原因分析】:1)首先确认 pinctrl 模块的初始化

2016-11-21 23:23:21 3924 1

转载 Atitit.linux 内核 新特性 新功能

1.  Linux 3.2内核新特性 2012-02-12 22:41:4711.1. EXT4:支持更大的块21.2. BTRFS:更快的数据清理、tree roots自动备份、详细的错误消息、元数据手动检查21.3. 进程带宽控制器21.4. 新架构:Hexagon21.5. Device Mapper中的自动精简配置和递归快照21.6. I/O

2016-11-21 22:20:30 735

转载 使用buildroot搭建linux文件系统

(文件系统搭建,强烈建议直接用buildroot,官网上有使用教程非常详细buildroot官网) 文件系统通常要包含很多第三方软件,比如busybox,tslib,qt,vim,交叉编译工具等,为了避免繁杂的移植工作。buildroot应运而生。通过menuconfig配置我们需要的功能,不需要的功能去掉,再执行make指令编译,buildroot就会自动从指定的服务器上下载源码包,自动编译

2016-11-19 23:42:14 3476 1

原创 linux busybox 1.25.x

config BR2_PACKAGE_BUSYBOX    bool "BusyBox"    default y    help      The Swiss Army Knife of embedded Linux.  It slices, it dices, it      makes Julian Fries.      http://busybox.net/

2016-11-19 23:22:27 1484

原创 arm-linux-gcc4.4.3编译busybox-1.25.1

系统环境:1、操作系统:Ubuntu12.042、交叉编译工具链:arm-linux-gcc4.4.33、busybox源码包:busybox-1.25.1 一、修改Makefile配置首先解压源码包:tar -jxvf busybox-1.25.1.tar.bz2进入busybox-1.25.0目录,修改Makefile文件如下:ARCH ?= armCR

2016-11-19 23:17:53 3615

原创 linux buildroot 配置

## Automatically generated make config: don't edit# Buildroot 2011.02-dirty Configuration# Tue Jun 28 10:07:00 2016#BR2_HAVE_DOT_CONFIG=yBR2_arm=y# BR2_armeb is not set# BR2_avr32 is n

2016-11-19 21:54:38 5034

转载 视音频数据处理入门:RGB、YUV像素数据处理

=====================================================视音频数据处理入门系列文章:视音频数据处理入门:RGB、YUV像素数据处理视音频数据处理入门:PCM音频采样数据处理视音频数据处理入门:H.264视频码流解析视音频数据处理入门:AAC音频码流解析视音频数据处理入门:FLV封装格式解析视音

2016-11-19 18:51:26 671

转载 Buildroot构建指南--Overview

使用Buildroot,让嵌入式Linux系统构建更加便捷。本文以Buildroot-2016.05的版本为基础来讲解,不同版本之间有细节差异,需要根据读者使用的版本自行调整。Buildroot是什么Buildroot是Linux平台上一个开源的嵌入式Linux系统自动构建框架。整个Buildroot是由Makefile脚本和Kconfig配置文件构成的。你可以和编译Linux内核

2016-11-19 00:16:28 1245

原创 Linux /Android ARM 64 bit/32 bit 编程移植

32bit user @ 64 bit kernell Usecompat_ioctl( ) but not onlyunlock_ioctl() in kernel driverlcompat_ioctl( ) :支持64bit的driver必须要实现的ioctl,当有32bit的userspace application call 64bit kernel的IOCT

2016-11-17 23:52:30 3770

转载 sina33打开spi0dev0.0、spi1dev1.0的步骤.txt(全志a33下生成设备节点/dev/spi0dev0.0、/dev/spi1dev1.0)

sina33打开spi0dev0.0/spi1dev1.0的步骤.txtsina33打开spi0dev0.0、spi1dev1.0的步骤.txt(全志a33下生成设备节点/dev/spi0dev0.0、/dev/spi1dev1.0)0、S:\lichee\tools\pack\chips\sun8iw5p1\configs\default\env.cfgboo

2016-11-16 23:19:04 1444

转载 sina33打开spidev0.0的步骤.txt(全志a33下生成设备节点/dev/spidev0.0)

sina33打开spidev0.0的步骤.txt(全志a33下生成设备节点/dev/spidev0.0)0、S:\lichee\tools\pack\chips\sun8iw5p1\configs\default\env.cfgbootdelay=0修改为bootdelay=3方便按 enter 进u-boot,进行调试。1、rootroot@rootroot-

2016-11-16 23:16:23 1326

原创 Android/Linux 全志平台摄像头sensor调试记录(一)

1 .摄像头模组型号OV2710 + XC7021( ISP)   +H5,电压需求 ISP:          OV2710:senor 的电压AVDD 和 DOVDD 电压为3.3V,DVDD 1.5V 。ISP 控制sensor PWDN       XC7021 I2C 地址为0x36, OV2710地址为0x6C       #define I2C_ADDRBP

2016-11-16 22:56:31 7822

原创 ARM Linux 交叉编译

编译选项-I  //指定头文件的目录默认的头文件目录是工具链里的include目录

2016-11-15 23:05:33 3319

原创 linux spi 测试程序

/**spidev_test.c * SPI testing utility (using spidev driver) * * Copyright (c) 2007  MontaVista Software, Inc. * Copyright (c) 2007  Anton Vorontsov  * * This program is free software; y

2016-11-15 00:16:31 5857

转载 cubieboard 之SPI的使用

折腾了将近一个月的SPI通信(如果是大神的话估计早搞出来了,但是收获还是蛮大,至少差不多搞懂了SPI子系统),总算小出成效了,Cubieboard上的SPI口,也算是打通了,在此要感谢hipboi等等网络上的大神对我的帮助,感谢CCTV。    首先,跟SPI通信相关的,主要有三个代码文件,spi_sunxi.c,spi.c,spidev.c。spi_sunxi.c主要是全志A10的s

2016-11-14 23:39:38 1485 3

转载 linux基础之spi驱动程序理解

1.1     重要的数据结构1.  spi_device虽然用户空间不需要直接用到spi_device结构体,但是这个结构体和用户空间的程序有密切的关系,理解它的成员有助于理解SPI设备节点的IOCTL命令,所以首先来介绍它。在内核中,每个spi_device代表一个物理的SPI设备。它的成员如程序清单 1.1所示。程序清单 1.1 spi_device[cp

2016-11-14 23:22:28 1254

转载 如何基于FFMPEG和SDL写一个少于1000行代码的视频播放器

FFMPEG是一个很好的库,可以用来创建视频应用或者生成特定的工具。FFMPEG几乎为你把所有的繁重工作都做了,比如解码、编码、复用和解复用。这使得多媒体应用程序变得容易编写。它是一个简单的,用C编写的,快速的并且能够解码几乎所有你能用到的格式,当然也包括编码多种格式。唯一的问题是它的文档基本上是没有的。有一个单独的指导讲了它的基本原理另外还有一个使用doxygen生成的文档。这就是为什么

2016-11-13 23:18:20 688

原创 FFMPEG 数据结构分析

typedef struct AVPacket {    /**     * A reference to the reference-counted buffer where the packet data is     * stored.     * May be NULL, then the packet data is not reference-counted.   

2016-11-13 22:42:00 324

转载 ffplay.c函数结构简单分析(画图)

最近重温了一下FFplay的源代码。FFplay是FFmpeg项目提供的播放器示例。尽管FFplay只是一个简单的播放器示例,它的源代码的量也是不少的。之前看代码,主要是集中于某一个“点”进行研究,而没有从总体结构上进行分析。本文就打算弥补之前学习的不足,从总体结构上分析一下FFplay的源代码,画图理一下它的结构。其中还有诸多不足,以后有机会慢慢完善。说明一下自己画的结构图的规则:图中仅画出

2016-11-13 15:01:38 522

原创 解决linux(ubuntu12.04) ffmpeg编译后ffplay没有生成的问题

从官网下载最新版SDL2-2.0.5.tar.gz的源码,解压后cd进目录,依次执行:./autogen./configuremakesudu make install一切顺利的话SDL2.0就安装编译好了。库文件在 /usr/local/lib中头文件在 /usr/local/include/SDL2 中。1、确认Makef

2016-11-13 14:13:55 3756 1

转载 静态链接和动态链接

引言即使是最简单的HelloWorld的程序,它也要依赖于别人已经写好的成熟的软件库,这就是引出了一个问题,我们写的代码怎么和别人写的库集成在一起,也就是链接所要解决的问题。首先看HelloWorld这个例子:[cpp] view plain copy// main.c    1 #include     2 

2016-11-13 14:05:57 360

转载 ffmpeg教程

cffishappy的专栏目录视图摘要视图订阅移动信息安全的漏洞和逆向原理      程序员11月书讯,评论得书啦      Get IT技能知识库,50个领域一键直达关闭ffmpeg教程标签: audiovideodelaystreambuffercodec

2016-11-12 23:53:38 598

原创 Ubuntu 12.04安装最新版VLC2.0.2

最新版VLC2.0.2改进高清播放支持,字幕检测和Qt界面调整。Ubuntu 12.04下安装VLC2.0.2:sudo add-apt-repository ppa:videolan/stable-daily sudo apt-get update  sudo apt-get install vlc 播放使用命令行  vlc test.mp4(注意不要

2016-11-12 23:49:57 457

原创 ffmpeg 编译环境搭建(ffmpeg-3.2)

1.软件环境           a.ffmpeg-3.2.tar.bz2;  .ffmpeg下载地址: http://www.ffmpeg.org/download.html           b.ubuntu12.04           c.安装过程需要root权限2.解压    $ tar -jxvf       ffmpeg-3.2.tar.bz2

2016-11-12 22:22:14 4134

原创 linux camera isp

名词解释: 【edr】边缘增强处理算法一般调整YCbCr空间的Y值不会 明显影响到图像的色彩,也就不会出现色彩失衡的情况。【saturation】饱和度增强处理的主要作用是使图像色彩更加丰富,通常是通过对颜色分量 Cb和Cr各乘上一个增益值完成彩色饱和度增强。自动曝光控制通过调节CIS中像素单元的曝光时间和前端模拟 电路中数字可编程增益放大器的增益而使图像亮度达到用户自定义

2016-11-10 23:19:58 2737 1

转载 C++ vector 类学习笔记

vector简介       vector是STL中最常见的容器,它是一种顺序容器,支持随机访问。vector是一块连续分配的内存,从数据安排的角度来讲,和数组极其相似,不同的地方就是:数组是静态分配空间,一旦分配了空间的大小,就不可再改变了;而vector是动态分配空间,随着元素的不断插入,它会按照自身的一套机制不断扩充自身的容量。        vector的扩充机制:按照容器现在容量的一倍进

2016-11-08 23:54:47 405

转载 C++ list 类学习笔记

双向循环链表list        list是双向循环链表,,每一个元素都知道前面一个元素和后面一个元素。在STL中,list和vector一样,是两个常被使用的容器。和vector不一样的是,list不支持对元素的任意存取。list中提供的成员函数与vector类似,不过list提供对表首元素的操作push_front、pop_front,这是vector不具备的。和vector另一点不

2016-11-08 23:53:00 360

原创 设计模式---观察者模式(C++实现)

#include "stdafx.h"#include #include #include #include using namespace std;//////  Generated by StarUML(tm) C++ Add-In////  @ Project : Untitled//  @ File Name : INotifier.h//

2016-11-08 23:34:44 294

转载 UML类图新手入门级介绍

举一个简单的例子,来看这样一副图,其中就包括了UML类图中的基本图示法。 首先,看动物矩形框,它代表一个类(Class)。类图分三层,第一层显示类的名称,如果是抽象类,则就用斜体显示。第二层是类的特性,通常就是字段和属性。第三层是类的操作,通常是方法或行为。前面的符号,+ 表示public,- 表示private,# 表示protected。右下角的飞翔,它表示一个接口图,

2016-11-08 22:22:44 337

转载 <监听器模式>在C++ 与 Java 之间实现的差异

前言:        关于各种语言孰优孰劣的讨论在软件界就是个没完没了的话题,今天我决定也来掺和下。不过我想探讨的不是哪种语言的性能如何,钱途如何,而是站在语言本身特性的基础上中肯地比较探讨。因为现在工作用的是C/C++, 以前接触过Java,于是我就以这两门语言作为我的对比语言。本文目的:        我就以监听器的实现为例演示各自的实现代码,认识下Java与C++

2016-11-06 22:25:20 1318

转载 StarUML使用说明-指导手册

1、综述(What)StarUML是一种生成类图和其他类型的UML图表的工具。本文是一个使用StarUML创建类图(Java语言描述)的简明手册。StarUML(简称SU),是一种创建UML类图,并能够自动生成Java的“stub code” 的工具。SU也可以做JAVA逆向工程,以产生相应的UML图表。在本教程中,我们将使用SU设计一个pizza饼。执行后续步骤,可以

2016-11-06 20:10:24 3870

原创 C++中string 函数的使用

一、 erase函数的原型如下:(1)string& erase ( size_t pos = 0, size_t n = npos );(2)iterator erase ( iterator position );(3)iterator erase ( iterator first, iterator last );也就是说有三种用法:(1)erase(pos,n); 删除从pos开

2016-11-05 14:40:53 428

转载 最常用的设计模式---观察者模式(C++实现)

监听者对大家来说可能并不陌生,所谓监听者就是用来监听自已感兴趣的事件的,当收到自已感兴趣的事件时会做出相应的反映。    它的应用是非常广的,比如win32的消息机制,它跟监听者模式就异曲同工,操作系统将产生的各种事件包装成消息(msg),该消息结构包装了发生的事件的描述信息,比如消息值,屏幕坐标等,然后将它投递到相应的进程中,当该进程收到该消息时会查看该msg结构中的信息,也就知道了发生了什

2016-11-04 23:27:17 1631

转载 监听者模式(listener)(c++实现)

监听者对大家来说可能并不陌生,所谓监听者就是用来监听自已感兴趣的事件的,当收到自已感兴趣的事件时会做出相应的反映。    它的应用是非常广的,比如win32的消息机制,它跟监听者模式就异曲同工,操作系统将产生的各种事件包装成消息(msg),该消息结构包装了发生的事件的描述信息,比如消息值,屏幕坐标等,然后将它投递到相应的进程中,当该进程收到该消息时会查看该msg结构中的信息,也就知道了发生了什

2016-11-04 23:21:27 2515

转载 c++多线程编程

一直对多线程编程这一块很陌生,决定花一点时间整理一下。os:ubuntu 10.04  c++1.最基础,进程同时创建5个线程,各自调用同一个函数[html] view plain copy #include iostream>  #include pthread.h> //多线程相关操作头文件,可移植众多平台    using namespace std;

2016-11-04 21:14:39 288

转载 ap与sta共存

1:wifi的concurrent mode所谓wifi的共存模式,有以下几种:station mode + station modestation mode + ap modestation mode + p2p modep2p mode + ap mode目前Android自从JB version后,就开始支持station + p2p的共存,但其他的共存模式目前在

2016-11-04 13:44:56 3337

jerry-libm-internal 数学库文件,计算三角函数,开方运算等,极高精度

jerry-lib 数学库文件,计算三角函数,开方运算等,极高精度

2024-07-24

mcu flash编程算法文件

mcu flash编程算法文件

2023-05-27

iap-vs-app ymodem VS2010实现

iap_vs_app ymodem VS2010实现

2023-05-05

Ymodem PC c语言实现

Ymodem PC c语言实现

2023-05-05

Ymodem文件传输更新APP程序

MCU Ymodem文件传输更新APP程序

2023-05-05

pyOCD-0.8.1a1.tar

pyOCD-0.8.1a1

2023-03-26

C# 串口通信编程代码和资料

C# 串口通信编程代码和资料 du洋

2023-02-23

C# 串口通讯零基础到精通

C#串口通讯C#开发

2023-02-19

C# 串口通信Winform 界面编程

C# 串口通信Winform 界面编程

2023-02-19

RISC-V 体系结构原理与编程资料

# Bumblebee_Core_Doc The directory to save Bumblebee core's documentsMCU. iscv-mcu # Looking for Nuclei RISC-V Core ISA

2022-10-23

FatFs 文件系统在nor flash 移植

FatFs Module Source Files R0.12 FILES 00readme.txt This file. history.txt Revision history. ffconf.h Configuration file for FatFs module. ff.h Common include file for FatFs and application module. ff.c FatFs module. diskio.h Common include file for FatFs and disk I/O module. diskio.c An example of glue function to attach existing disk I/O module to FatFs. integer.h Integer type definitions for FatFs. option Optional external functions.

2022-09-03

CmBacktrace: ARM Cortex-M series MCU error tracking library

CmBacktrace: ARM Cortex-M series MCU error tracking library

2022-08-28

stm32-iap-uart-app-master

stm32-iap-uart-app-master

2022-07-11

stm32-iap-uart-app_lite-master

stm32-iap-uart-app_lite-master

2022-07-11

STM32 IAP升级 & 串口升级

STM32 IAP升级 & 串口升级

2022-07-11

STM32F030参考手册中文cn

STM32F030参考手册中文cn

2022-07-01

rt-thread-3.1.0

rt-thread-3.1.0 支持I2C 等驱动

2022-05-15

stm32f103zet6_rtthread-main

stm32f103zet6_rtthread-main rtthread

2022-05-12

en.stsw-stm32054_v3-6-0_en.stm32cubef1

en.stsw-stm32054_v3-6-0 en.stm32cubef1 STM32 demo STM32 HAL 库 和 函数库

2022-05-06

GD32F10x_Demo_Suites_V2.1.1

GD32F10x_Demo_Suites_V2.1.1 sdk GD32F103xx_Datasheet_Rev2.9

2022-05-05

GD32E23x_Demo_Suites_V1.1.0 GD32X中文用户指南

GD32E23x_Demo_Suites_V1.1.0 GD32X中文用户指南,SDK开发手册

2022-05-05

图像阴影检测与去除算法 Shadow Detection and Removal

Shadow Detection and Removal 代码,图像阴影检测与去除算法效果优秀

2022-04-26

STM32F103中文教程及参考手册

STM32F103中文教程及参考手册

2022-04-13

基于Ymodem协议串口升级程序的实现过程

在实现了简单的串口更新代码之后,便开始考虑到了传输的数据的完整性、正确性和安全性,因此想到了在数据传输中添加通信协议,最常用的通信传输协议有:XModem、YModem、ZModem等,此次选用的协议是YModem协议。当然我们也可以自定义协议,只是自定义协议也需要我们自定义发送端。 一、YModem协议简介 YModem协议是XModem的改进协议,它最常用于调制解调器之间的文件传输的协议,具有快速,稳定传输的优点。它的传输速度比XModem快,这是由于它可以一次传输1024字节的信息块,同时它还支持传输多个文件,也就是常说的批文件传输。 YModem分成YModem-1K与YModem-g。 YModem-1K用1024字节信息块传输取代标准的128字节传输,数据使用CRC校验,保证数据传输的正确性。它每传输一个信息块数据时,就会等待接收端回应ACK信号,接收到回应后,才会继续传输下一个信息块,保证数据已经全部接收。 YModem-g传输形式与YModem-1K差不多,只是它去掉了数据的CRC校验码,同时在发送完一个数据块信息后,它不会等待接收端的ACK信号,而直接传输下一个数据块

2022-04-07

lv_pc_simulator1

lv_pc_simulator1

2022-03-22

LittlevGL_Application-master

LittlevGL_Application-master VS2019 编译

2022-03-22

LittlevGL_Application-master 综合应用

LittlevGL_Application-master 综合应用

2022-03-19

lv_port_win_visual_studio lv drivers

lv_port_win_visual_studio-master lv drivers

2022-03-19

lvgl freetype

lvgl freetype

2022-03-19

基于vs2019的lvgl模拟器lv_sim_visual_studio_sdl

基于vs2019的lvgl模拟器lv_sim_visual_studio_sdl lv_sim_visual_studio_sdl(lv_port_win_visual_studio) 需要依赖于:lvgl、lv_drivers、freetype。 (1)lv_port_win_visual_studio-master.zip (2)freetype-946e1353eaa34872d0b138a13820fc03a782c545.zip (3)lv_drivers-1bd4368e71df5cafd68d1ad0a37ce0f92b8f6b88.zip (4)lvgl-9fcefe5a49a024054a3cee08d273b8fe5cf8840e.zip

2022-03-19

LittlevGL_Demo-master.zip

LittlevGL_Demo-master

2021-09-26

LittlevGL综合应用程序

LittlevGL 综合demo

2021-09-26

littleVGL文档PDF汇总.7z

littleVGL文档PDF汇总

2021-09-26

littleVGL离线文档.7z

littleVGL离线文档

2021-09-26

littevgl ChineseFont.zip

littevgl ChineseFont 显示文件

2021-09-26

LvglFontTool_V0.3_littevgl

LvglFontTool更新V0.3 V0.3 1、增加AWESOME图标的支持。 2、增加导入文本文件。 3、修复使用XBF外部FLASH字体出错的BUG。 4、去除字模上下空白内容,节省了空间。 Awesome使用说明: 1、鼠标选中图标,双击添加到右测,或选中后使用下方添加选中图标按钮。 2、删除图标可以直接在右测编辑删除。 3、最终转换的是右测添加的图标。 4、Awesome版本更新时可以更换awesome目录下的2个文件即可更新。 5、调用方法是直接用图标对应的编码,如 "\uF000","ABC\uF001","中\uF003国"。

2021-09-26

pc_simulator_win_codeblocks_lvgl700-master.zip

pc_simulator_win_codeblocks_lvgl700

2021-09-18

LittleVGL模拟器环境a(CodeBlocks).rar

包含 codeblocks-17.12mingw-setup.exe 、SDL2-devel-2.0.10-mingw.tar.gz、lv_pc_simulator.zip 。使用请参考:https://blog.csdn.net/lbaihao/article/details/120338015

2021-09-18

darknet-master开源深度学习框架

darknet是一个较为轻型的完全基于C与CUDA的开源深度学习框架,其主要特点就是容易安装,没有任何依赖项(OpenCV都可以不用),移植性非常好,支持CPU与GPU两种计算方式。

2021-05-29

UGUI-master.7z

µGUI v0.3 简单开源的 嵌入式小Gui ,本文档简单介绍了UGUI的使用方法和可以移植到任何嵌入式系统中,可以方便编写TFT 显示屏。Open Source GUI modulefor embedded systemsGUI是一个用于嵌入式系统的免费开源图形库。它是平台无关的,可以很容易地移植到几乎任何微控制器系统。只要显示器能够显示图形,GUI就不局限于某种显示技术。因此支持LCD、TFT、E-Paper、LED、OLED等显示技术。整个模块包括两个文件:ugui.c和ugui.h。

2021-04-23

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除