自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

guoweilkd的博客

我不是码农,我是有情怀的画家

  • 博客(126)
  • 资源 (20)
  • 收藏
  • 关注

原创 C语言零散知识点总结----钻石段位篇

C语言零散知识点总结-钻石段位篇我们总需要走走停停,回头看看。下面是笔者重温C语言时对以前笔记的一些整理和总结。学会了它们,不一定能成为大神,但不会它们,我们必定是小白。下面的每个选项卡都是一个超链接。超链接里是此知识点的详细介绍。C语言钻石段位测试题链接https://blog.csdn.net/qq_23274715/article/details/106302128C语言的发展简介基础知识自动转换原则大小端字节对齐数值表示与后缀ASCII码与转义字符结构体使用小技巧获取

2020-05-23 22:31:49 1566

原创 C语言钻石段位测试题

C语言钻石段位测试题满分100分的测试题,你能做多少分?答案见链接。常数123ul,123.45l中的ul、l代表什么含义?(2分)C语言中,数值16用十六进制表示为0x10,哪用二进制如何表示?(2分)举例谈谈#define Mul(x,y) x*y这个带参宏的缺点?(2分)谈谈#undef预处理命令的应用。(2分)谈谈#if,#ifdef,#ifndef的使用区别。(2分)如果编译时,不满足某些条件,用户如何向编译器抛出警告或者错误。(2分)谈谈函数指针的用途

2020-05-23 16:27:06 650 1

原创 中小型项目工程的makefile模板及例程

# author:theboynoName# 一个适用于中小型项目工程的makefile模板# 1. 工程支持多个目录# 2. 编译产生的文件会存放到OBJPATH所在的目录# 3. 修改头文件时也会自动更新目标。# Project SettingsTOP_DIR := .BIN := mainOBJPATH := $(TOP_DIR)/buildCSRCS =INCLUDE =VPATH :=CC := gccWARNINGS := -Werror -WallLDFLAGS

2021-07-11 21:13:00 365

原创 git合并多个commit的方法总结

git合并多个commit的方法总结当我们向开源社区提交代码时,一般都会要求简化commit。即多个commit合并为一个commit再提交。合并多个commit分两种情况,下面一一讲解。要合并的所有commit都还没有push到远程仓库。有些commit已经push到了远程仓库。1. 要合并的commit还没有push到远程仓库这种情况下有三种命令可以实现要求:第一种(推荐):使用git reset方式(因为比较好理解,也是笔者推荐的方式)。步骤如下:git log查看要合并的com

2021-01-20 21:28:56 20028

原创 git常用命令总结

git常用命令总结git配置相关命令配置相关的命令都使用git config开始。详细请参看git config --help.常用到的git配置命令如下:查看git所有配置项git config -l或git config --list直接修改配置文件git config -e --global:此命令会调出配置文件。邮箱和用户名配置配置全局的邮箱和用户名git config --global user.name "user name"git config --glo

2021-01-20 17:43:53 726

原创 make使用总结(9)-Makefile编写

make使用总结(9)-Makefile编写但是,很多项目工程为了裁剪简单,一般都在每个源文件的文件夹下编写一个用来获取源文件的文件,一般命名为make.defs.如下面的这个工程。工程源码链接:工程目录:顶层的Makefile文件源码:# 文件说明# 适用于中小型项目。# 源文件的获取由每个文件夹下的make.defs获取BIN := mainOBJPATH := objSRCS :=SRCS += main.cTOP_DIR:= .CFLAGS := -O3 -g0 -I

2020-12-23 19:09:22 1458

原创 make使用总结(8)-Makefile编写

make使用总结(8)-Makefile编写中小型项目Makefile模板相比较前两次编写的Makefile,这节的Makefile将表现的更加出色。具体特点如下生成的.d,.o等中间文件存放在$(OBJPATH)目录下.如 OBJPATH := obj 表明存放在obj目录下.c文件可以存放在$(SRCPATH)指定的多个目录下。如 SRCPATH := ./ src1/表明源文件可以存放在当前目录、src1目录。存放在$(SRCPATH)目录下的源文件会被自动添加到项目gcc编译时需要的头

2020-12-22 15:39:48 350

原创 make使用总结(7)-Makefile编写

make使用总结(6)-Makefile编写上篇文章编写了最简单的Makefile文件。但它不够完美。首先当.h文件发生变化时,需要先make clean,再make.这种方式在编译大型项目时会变得很慢,因为它需要先删除之前生成的所有中间文件,再重新创建中间文件。而理论上make只需要重新编译此.h文件涉及到的相关源文件。然后链接程序就可以了。这节就是要解决这个问题。优化make时的头文件依赖问题例程源码链接:<>.工程目录如下:其中,文件common.c和main.c中引用了com

2020-12-22 13:11:20 268

原创 make使用总结(6)-Makefile编写

make使用总结(6)-Makefile编写有了前面的知识基础我们就可以编写Makefile文件了。首先编写一个最简单的Makefile文件。文件需要遵循如下要求:所有的文件都在同级目录下。包括.h文件,.c文件,以及生成的.o文件。源文件需要手动的添加到Makefile文件中。当.h文件发生变化时,需要先make clean,再make.例程源码链接:<>.工程目录如下:Makefile文件如下:# 文件说明# 所有的文件都在同级目录下。包括`.h`文件,`.c`文件

2020-12-22 11:55:46 210

原创 make使用总结(5)-Makefile语法

make使用总结(5)-Makefile语法通配符为了方便字符串的处理,make也支持一些通配符。在规则中通配符会被自动展开,但在变量定义和函数引用时,通配符将会失效。此时如果需要使用通配符就要使用wildcard函数。详见此函数。*:匹配任意长度的任意字符.(注意:匹配文件名,无法匹配 makefile 文件中的规则等字段)?:匹配单个任意字符。[...]:匹配括号中指定的任意一个字符。~:代表当前用户目录。使用例程如下,变量定义在变量定义时使用通配符*.c获取当前目录下所有后缀名为.c

2020-12-21 16:44:31 400

原创 make使用总结(4)-Makefile语法

make使用总结(4)-Makefile语法函数为了方便Makefile的编写,make已经为我们定义了多个常用函数。make函数的调用格式与变量引用相似,基本格式如下:$(function arguments) 或 ${function arguments}.arguments为函数的参数,参数以,进行分割。函数处理参数时,若参数中存在其它变量或函数的引用,则先展开参数再进行函数处理,展开顺序与参数的先后顺序一致。函数中的参数不能直接出现逗号和空格,前导空格会被忽略,若需要使用逗号和空格则需要将它们赋

2020-12-21 16:25:54 463

原创 make使用总结(3)-Makefile语法

make使用总结(3)-Makefile语法变量Makefile中的变量主要是用来保存、处理字符串。变量名区分大小写.引用变量时使用$(variableName)的格式,如$(BIN).由于$有特殊含义,所以当遇到真实的$时用$$来表示。可以使用$$$$打印当前进程id。Makefile中变量的使用如下BIN := mainSRCPATH = src1SRCPATH += src2OBJPATH ?= objSRCS := $(wildcard *.c);变量赋值可以分为两种:立

2020-12-21 15:36:36 340

原创 make使用总结(2)-Makefile介绍

make使用总结(2)-Makefile介绍之前已经提到了,make使用Makefile文件来描述工程中文件的组织关系以及gcc编译时的依赖关系。因此我们需要为工程项目编写一个或多个Makefile文件。下面就介绍Makefile相关的语法。Makefile主要由显式规则、隐晦规则、变量定义、指示命令和注释五个部分组成。下面将一一介绍。注释makefile使用#作为注释符号。显式规则与隐式规则规则是make的核心。make规则的格式如下:[目标] : [依赖][tab键] [shell命令]

2020-12-21 15:32:14 236

原创 make使用总结(1)-make介绍

make使用总结(1)-make介绍参考资料如下:Make官网文档: http://www.gnu.org/software/make/manual/make.htmlmake学习参考: https://blog.csdn.net/oxuzhenyi/article/details/77922773在学习make之前首先需要了解如下知识:gcc:编译工具链。用于将我们的源程序编译成最后可执行的二进制文件。shell命令:我们在使用make时会用到一些常见的shell命令。什么是make

2020-12-21 12:40:47 716

原创 linux 的调度策略与优先级

linux 的调度策略与优先级参考资料如下:man手册man 7 sched内核文档 Documentation/scheduler。首先需要说明,我们常说的进程调度器是传统的说法,但是实际上进程是资源管理的单位,线程才是调度的单位.有时也会说任务调度等。linux的调度机制由调度策略(policies)和优先级(priority)两个属性共同决定.其中调度策略又可以分为实时调度策略和通用调度策略(非实时)。其中通用调度策略的优先级值为0.而实时调度策略的优先级取值范围为1~99.可以看出,实

2020-12-09 21:44:31 2018

原创 linux线程特有数据(key)与线程局部存储(__thread)

线程特有数据(key)与线程局部存储(__thread)要了解线程特有数据与局部存储的特性。首先需要了解什么是线程安全函数,什么是非线程安全函数。线程安全函数:函数可同时供多个线程安全调用.即可重入,函数重入时不会造成函数的逻辑混乱。非线程安全函数:如果不是线程安全函数,那么他就是非线程安全函数。导致非安全的主要原因是函数使用了全局变量,内存分配等,在多线程并行访问此函数时,会造成此函数的逻辑错误。将一个非线程安全函数转换为线程安全函数的方法很多,如:使用互斥量。对函数中的共享资源进行保护,

2020-12-06 19:12:18 366

原创 linux线程的创建与删除

linux线程的创建与删除使用linux线程时,编译时需要包含-pthread选项。Linux通用API返回0表示成功,返回-1表示失败,并设置errno以标识错误原因。但Pthreads相关的API却与之不同,返回0 表示成功,返回正值表示失败,正值的含义与errno相同。我们可以使用pthread_create()来创建线程。创建成功后的线程可以使用如下几种方式终止:线程主函数中执行return语句并返回指定值。调用pthread_exit()函数终止线程调用pthread_cancel(

2020-12-06 12:41:18 2216

原创 linux线程间同步(互斥量与条件变量)

linux线程间同步(互斥量与条件变量)linux的线程有两个重要的同步方式。分别为互斥量(mutex)和条件变量(condition variables).其中linux下互斥量功能类似RTOS下的互斥量。用于防止多个线程同时访问同一共享资源。而条件变量在共享资源发生变化时用来通知其他线程。互斥量与条件变量结合使用时类似RTOS下的事件。互斥量(mutex)linux的互斥量机制与RTOS下的互斥量机制一样。主要用于防止多个线程同时访问同一共享资源。初始化条件变量时可以使用静态初始化和动态初始化:

2020-12-05 12:19:05 357

原创 linux进程间通信--消息队列(POSIX 版本)

linux进程间通信–消息队列(POSIX 版本)参考文件:man mq_overview。由于System V消息存在一些缺点。因此POSIX标准又重新定义了一套消息队列接口。下面将详细介绍POSIX接口下的消息队列。消息队列有如下的特点:适用于任何进程将数据交互。以消息为单位进行数据交互。可以使用异步的信号通知。POSIX消息队列的每个消息都可以设置优先级。范围为0 ~ MQ_PRIO_MAX-1。值越大优先级越高。消息队列与系统相关的一些杂项说明:系统会限制所有的消息队列最多可

2020-12-01 13:20:10 737

原创 linux进程间通信--信号量(POSIX 版本)

linux进程间通信–信号量(POSIX 版本)System V信号量是通过标识符而不是大多数UNIX I/O 和IPC所采用的文件描述符来引用的。由于这些潜在的缺点,因此POSIX标准又重新定义了信号量API。POSIX标准信号量semaphore不仅可用于同一进程下的各个线程同步,也可以用于不同进程间同步。主要用于协调进程线程对共享资源的访问。libc库实现了POSIX和System V两种接口标准的信号量API。这里主要讨论POSIX接口的信号量API.信号量的原理与使用:信号量只能进行两种操

2020-11-30 11:02:04 359

原创 linux进程间通信--共享内存(POSIX 版本)

linux进程间通信–共享内存(POSIX 版本)System V共享内存模型使用的是key和标识符,这与标准的UNIX I/O模型使用文件名和描述符的做法不一致。这种差异导致System V共享内存段需要一整套全新的系统调用和命令。由于这些潜在的缺点,因此POSIX标准又重新定义了共享内存API。共享内存的使用:共享内存被映射到进程的虚拟地址空间之后,就可以跟正常的进程空间内存一样进行各种操作了。其他说明:共享内存并未提供同步机制。所以我们通常需要用其他的机制来同步对共享内存的访问,例如信号量.

2020-11-29 22:52:20 314

原创 linux进程间通信--管道(PIPE & FIFO)

linux进程间通信–管道(PIPE & FIFO)参考资料:overview of pipes and FIFOs:man 7 pipe《The Linux Programming inTerface》管道一般分为无名管道pipe和有名管道mkfifo.都用于进程之间的通信。下面将一一介绍它们。无名管道无名管道(pipe)一般用于关联进程(如父子进程)之间的通信。它的使用类似文件,但他不是普通文件,不属于某种文件系统。我们最常见的pipe使用是shell命令,如ls | wc -l

2020-11-28 15:42:20 547

原创 http学习笔记

http学习笔记HTTP(Hyper Text Transfer Protocol)协议:超文本传输协议的缩写.基于TCP/IP通信协议来传递数据.HTTP默认端口号为80,但是你也可以改为8080或者其他端口。HTTP协议工作于客户端/服务端(C/S)架构上。浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务器发送所有请求。HTTP是明文传输的,也就意味着,介于发送端、接收端中间的任意节点都可以知道你们传输的内容是什么。这些节点可能是路由器、代理等。HTTPS:(Hyperte

2020-11-20 18:32:42 64

原创 js_Array学习

javascript 数组学习笔记数组的每一项都可以保存任何类型的数据。如字符串,数值,对象。数组的大小是可以动态调整的。创建数组的方式有如下几种://1. 使用构造函数创建var colors = new Array(20);var colors = new Array("red","blue");var colors = Array(20);//省略new//2. 使用数组字面量的方式构造var colors = ["red","blue","green"];var color

2020-11-12 15:26:13 83 1

原创 html学习笔记

html学习笔记html是用来描述网页的一种语言。HTML指的是超文本标记语言(Hyper Text Markup Language)标签HTML标签对大小写不敏感.HTML中使用注释:<!-- This is a comment -->网页标题图标:网页一般都有一个标题图标,位于根目录favicon.ico标签也叫元素。html中包含很多元素主要的目的是语义化与使用方便性。语义化好处:方便阅读,从标题就可以知道使用目的。为了搜索引擎优化搜索。元素展示到页面中的效果,应该由

2020-11-11 16:28:56 94

原创 css学习笔记

css学习笔记相关学习网站:W3C: https://www.w3school.com.cn腾讯课堂视频讲解:https://ke.qq.com/course/414780?taid=3622731900146748官方参考手册MDN:https://developer.mozilla.org/zh-CN/docs/Web/CSSCSS介绍CSS指指层叠样式表(Cascading Style Sheets)。用来渲染html中的元素。CSS的注释使用/* comment */CSS对大小

2020-11-11 15:26:30 131

原创 通过结构体成员获取结构体地址

通过结构体成员获取结构体地址我们在编程中有时会遇到想通过某个结构体成员变量的地址来获取此结构体的首地址。对于这个问题,可以分两种情况(第一种是第二种的特例)成员变量是结构体的第一个成员:我们都知道,结构体的首地址等于其第一个成员的首地址,所以对这种情况可以直接进行强转。成员变量是结构体的任意一个成员:下面会重点谈论此方法。Linux实现此功能的源码如下#define offsetof(TYPE, MEMBER) ((int) &((TYPE *)0)->MEMBER) #de

2020-07-18 22:49:35 2770

原创 github如何pull_request

如何在github上pull requestpull request在github社区中一般简称为pr。在我们向开源项目提交bug修补等情况时,会用到。下面是具体步骤。在github上fork此项目仓库(假设名称为 xxx/opensource)到自己的github上(my/opensource)。接下来的操作就和正常的git修改程序一致。clone项目到本地。修改bug.提交,推送到github的my/opensource。将my/opensource合并到xxx/opensourc

2020-07-05 17:17:14 1395

原创 ANSI转义码----让你的终端打印有颜色

ANSI转义码(ANSI escape code)参考链接:http://www.thefullwiki.org/ANSI_escape_codehttps://en.wikipedia.org/wiki/ANSI_escape_codeANSI转义序列是一种带内信号的转义序列标准,用于控制视频文本终端上的光标位置、颜色和其他选项。在文本中嵌入确定的字节序列。转义序列的控制字符转义序列使用ESC开头。其中ESC的ASCII值为27(十六进制为0x1B,把进制为033).在使用时一般表示为\0

2020-05-23 22:18:03 1303

原创 C语言钻石段位测试题答案

C语言测试题答案测试题见此链接:C语言钻石段位测试题常数123ul,123.45l中的ul、l代表什么含义?(2分)答案:这属于数值后缀的知识点。具体请参看数值常量后缀相关介绍C语言中,数值16用十六进制表示为0x10,哪用二进制如何表示?(2分)答案:0b10000.具体请参看数值常量后缀相关介绍举例谈谈#define Mul(x,y) x*y这个带参宏的缺点?(2分)答案:如果使用Mul(3+5,6).得到的结果则为3 + 5*6 = 33.和我们的预期不一致。所

2020-05-23 16:30:54 827

原创 处理器的大小端模式

处理器的大小端模式处理器的大小端是由处理器的硬件结构决定的。跟软件没有关系。我们都知道uint32_t类型的数据占四个字节的大小。那么这四个字节在内存中如何存储?(例如高位字节在高地址,还是在低地址?)这就是大小端的问题。比如定义uint32_t data = 0x87654321.存放在0x1000开始的一段内存中。那么:在小端模式下:存放顺序为[1003] = 0x87,[1002] = 0x65,[1001] = 0x43,[1000] = 0x21.在大端模式下:存放顺序为[1000] =

2020-05-23 16:17:32 583

原创 c的历史

C历史C语言最早的原型是ALGOL 60语言,1963年,剑桥大学将其发展成为CPL(Combined Programing Language)。1967年,剑桥大学的Matin Richards对CPL语言进行了简化,产生了BCPL语言。1970年,美国贝尔实验室(Bell Labs)的Ken Thompson将BCPL进行了修改,并取名叫做B语言,意思是提取CPL的精华(Boiling CPL down to its basic good features)。并用B语言写了第一个UNIX系统。1973

2020-05-22 22:31:24 578

原创 printf函数使用大全

printf函数格式详解我们在做字符串转化,字符串拼接时,通常喜欢用sprintf()函数。它的使用类似printf()函数。它的函数原型为int printf(const char *format, ...).其中format用来指定转化格式。是高效使用这类函数的基础。这篇文章的内容就是要介绍format字符串的格式。如下:format = %[flag][width][.precison][length]specifierflag字段有如下选择:-:字符串左对齐。默认是右对齐。+:正负号

2020-05-22 22:00:30 1153

原创 弱函数与回调函数在模块化编程中的使用

弱函数与回调函数弱函数和回调函数是我们模块化编程中两个很重要的概念,下面一一解析。弱函数的介绍与使用__weak关键字用来修饰函数或者变量。表示修饰的函数或变量的使用优先级较低。即如果我们定义了一个函数或变量,它与关键字__weak修饰的函数或者变量名一致。则优先使用我们定义的,而忽略__weak修饰的。但如果我们没有定义这样的函数或者变量名,则使用__weak所修饰的。我们叫这种函数为弱函数。/* test1.c */#include <stdio.h>void HelloFun

2020-05-22 11:02:50 2339

原创 C语言编程----预处理指令使用

预处理指令介绍我们使用#作为一个预处理命令的开始。编译器在预处理阶段会根据预处理命令对源文件进行转化。所以,有关预处理相关的替换调试,可以通过编译预处理后生成的文件进行对比。我们常用的预处理命令有如下:#include:用于包含我们要使用的头文件。#define :宏定义。分为下面两种情况含参宏定义:如#define MAXIS(x,y) (x > y) ? x : y。不含参宏定义:如#define LEN_MAX 1#if :条件编译,后面跟表达式。如#if 1.#

2020-05-21 21:14:06 399

原创 结构体使用小技巧

结构体使用小技巧我们编写程序(稍微大点的工程)时,使用结构体是必不可少的。下面时常见的一些使用方法。获取指定成员到结构体起始位置的偏移量size_t offsetof(type, member)描述:获取指定成员到结构体起始位置的偏移量.使用此宏需要包含stddef.htype:结构体member:结构体成员。return:偏移量。使用例程如下:#include <stdio.h>#include <stdint.h>#include <stdd

2020-05-21 15:09:50 314

原创 数值常量后缀相关介绍

数值常量后缀相关介绍在说数值后缀之前,我们先对c语言中的常数做一个简单的分类描述:c语言中的常数可以分为整型常数和浮点常数。整型常数有下面几种表示方法:十进制表示法:如16.八进制表示法:以0开头.如020.也代表16.十六进制表示法:以0x开头.如0x10.也代表16.二进制表示法:以0b开头.如0b10000.也代表16.浮点常数有下面几种表示方法:科学计数法:如1.234e2.小数点形式:如123.4.数值后缀简单介绍数值后缀有如下特点:只有数值常数

2020-05-20 15:40:37 1482

原创 volatile关键字的使用你真的了解吗?

volatile关键字的使用你真的了解吗?volatile关键字是用来防止编译器对一个变量优化,因为有时对变量优化会造成我们不期望的结果。网上很多的说法是强制访问内存中的值,而不是缓存中的。注意,这里的缓存不是指cache,而是cpu寄存器(R0~R15)。除此之外,我们必须明确,volatile行为在编译阶段,而非程序运行阶段(面试高频题)。所以我们对volatile最直观的认识可以是看汇编代码。下面会讲。那什么时候会用volatile?一般有下面几种情况:操作寄存器。一般指外设寄存器等。中断。中

2020-05-20 15:01:37 263

原创 C语言字节对齐介绍

C语言字节对齐介绍我们常提到的1字节、4字节对齐等具体是什么意思?回答:对齐指存放当前数据的地址能否被n整除(n就是对齐值,如1,4等)。比如:地址0x0004中存放int型数据。那么它满足4字节和1字节的对齐。但地址0x0003中存放int型数据,它只满足1字节对齐,不满足4字节对齐。我们先谈谈为什么会有字节对齐这个概念?回答:我们应该都听过8位、16位、32位、64位等位数的处理器。如我们最常见的STM32就是32位单片机。我们所说的n位其实指的就是地址总线的宽度,与其相关的还有数据总

2020-05-20 11:48:07 997

原创 syslog日志介绍

syslog日志介绍要使用syslog日志前,我们必须回答下面这个问题:syslog日志和我们自己定义一个日志文件,并向其写日志有何区别?回答:syslog是面向管理员、面向整个系统的。一般syslog监控的是整个系统的状态,而我们自定义的日志一般只面向我们使用的进程。如果使用自定义日志文件,可以选择开源的easyloger日志库)。为什么要使用linux自带的log日志?回答:为了维护方便,我们使用日志输出时,需要有输出级别控制、输出信息定位字段选择(如时间、函数)等功能。syslog

2020-05-15 11:53:04 7613 1

lottie2gif_tools.zip

用于将lottie动画转换为gif动画

2021-02-05

git_乌龟git_安装包_git详细使用文档.zip

资源包括: 1. git安装包Git-2.20.1-64-bit.exe。 2. 乌龟git安装包TortoiseGit-2.5.0.0-32bit.msi。为git提供了UI界面操作。 3. TortoiseGit-Language语言包,为了汉化使用。 4. 文档: 1. git学习相关的文档。包括详细介绍,常用命令,分支模型等。 2. 安装相关的文档

2021-01-20

Makefile文件例程于工程模板

包含6个Makefile工程的例程,从最简单的Makefile编写到通用模板。可以直接执行make来测试工程的编译

2020-12-23

lkdGui20200116.zip

lkdGui是一款为`单色显示屏`制作的图形化界面,lkdGui主要定位于工业控制领域,用于简单漂亮的图形界面设计。它的源代码全部使用c语言编写,符合c99标准。它包含了常用的画图函数如画点、画线、画矩形、文字显示、按钮控件、进度条控件。它使用`窗口`进行统一管理和调度,使得各个应用显示模块之间低耦合,方便应用程序的开发。

2020-03-12

ARM嵌入式系统-开发软件设计与优化+cortexA9核文档.zip

ARM嵌入式系统-开发软件设计与优化是一本对arm核的硬件资源(cache、mpu、mmu)等讲的特别详细的pdf文档。

2020-03-10

twocpu.sdk.zip

笔者的双核启动测试程序链接。环境是sdk2018.3.cpu0运行的是lwip,cpu1是打印加点灯。关于双核启动的流程请参看笔者博客https://blog.csdn.net/qq_23274715。zynq双核交互(1)之zynq双核的启动。

2019-11-29

gdb-8.1+gdbserver+移植文档.zip

资源中包含gdb-8.1.tar.gz的源码+arm板gdb调试移植+编译好的可直接使用gdbserver可执行文件. arm板上对程序在线调试,一般使用的就是gdb+gdbserver。而我们的交叉编译工具链中,都带有gdb(`arm-linux-gnueabihf-gdb`),所以我们移植的时候,只需要移植`gdbserver`就行。

2019-11-26

NFSserver1.2.43安装包_密钥.zip

windows NFS server 软件安装包。用于window下搭建NFS服务器。

2019-11-03

设备树工具链+源码+官方文档.zip

设备树官网pdf文档(devicetree-specification-v0.2.pdf) + 设备树源码(devicetree-specification-v0.2 .zip) + 设备树编译工具(dtc-1.5.0.tar.gz.

2019-10-17

axi_stream.zip

AXI-stream总线主从仿真源码+时序图.可以直接加入vivado进行仿真、测试

2019-10-11

axi_full.zip

AXI-full总线主从仿真源码+时序图.可以直接加入vivado进行仿真、测试

2019-10-11

axi_lite.zip

AXI-lite总线主从仿真源码+时序图.可以直接加入vivado进行仿真、测试

2019-10-11

keil配置之hex_bin文件的生成与迁移.zip

此脚本的作用:在keil中,生成hex、bin文件到 exeout文件夹中.这样的好处是在找.hex文件和.bin文件时特别方便。

2019-09-28

CRC程序大全

CRC 程序大全,使用C语言编写,包含各种常见的crc,比如modbus,DS18b20,等

2018-11-04

easylogger

一款超轻量级(ROM<1.6K, RAM<0.3K)、高性能的 C/C++ 日志库,非常适合对资源敏感的软件项目,例如: IoT 产品、可穿戴设备、智能家居等等。

2018-10-27

tap-windows

虚拟网卡软件、用于调试时使用。可以方便应用程序的开发

2018-10-04

STM32在线升级

有关STM32在线升级的相关资料,里面有官方程序、文档等

2018-10-04

单色屏gui_lkdGUI

lkdGui是一款为单色显示屏制作的图形化界面,lkdGui主要定位于工业控制领域,用于简单漂亮的图形界面设计。

2018-10-04

TreeCtrl树形控件.7z

TreeCtrl树形控件.7z

2016-03-19

空空如也

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

TA关注的人

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