自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 资源 (10)
  • 收藏
  • 关注

原创 定点数优化提升运算性能

【代码】定点数优化提升运算性能。

2024-05-20 10:34:50 317 1

原创 多种曲线插值方法

三次插值法是最简单的方法,它能提供线段之间真正的连续性。因此,它不仅需要线段的两个端点,还需要其两侧的两个点。因此,在下面的代码中,该函数需要 4 个点,分别标记为 y0、y1、y2 和 y3。常见的解决方法是在序列的起点和终点多创建两个点,新点的斜率等于起点或终点的斜率。线性插值是获取值的最简单方法 在数据点之间的位置。Paul Breeuwsma 提出了以下系数用于更平滑的插值曲线,它使用上一点与下一点之间的斜率作为当前点的导数。所以需要更平滑的插值函数,也许是最简单的是余弦插值。

2023-12-11 10:41:55 352

转载 一个“蝇量级”C语言协程库

协程(coroutine)顾名思义就是“协作的例程”(co-operative routines)。跟具有操作系统概念的线程不一样,协程是在用户空间利用程序语言的语法语义就能实现逻辑上类似多任务的编程技巧。实际上协程的概念比线程还要早,按照 Knuth 的说法,一个子例程就是一次子函数调用,那么实际上协程就是类函数一样的程序组件,你可以在一个线程里面轻松创建数十万个协程,就像数十万次函数调用一样。

2023-11-14 09:48:50 101

转载 C语言字符串操作总结大全

将源串strSource开始的count个字符复制到目标串strDestination所指定的位置. 如果count值小于或等于strSource串的长度, 不会自动添加NULL结束符目标串中, 而count大于strSource串的长度时, 则将strSource用NULL结束符填充补齐count个字符, 复制到目标串中. 不能处理源串与目标串重叠的情况.函数返回strDestination值.注意:在定义字符数组1的长度时应该考虑字符数组2的长度,因为连接后新字符串的长度为两个字符串长度之和。

2023-11-14 08:49:05 242

原创 C语言的复合字面量

使用复合字面量可以直接创建匿名的结构体或数组对象,而不需要单独定义变量。需要注意的是,复合字面量创建的对象生命周期是临时的,通常要立即复制给其他变量使用,否则会被销毁。总体来说,复合字面量增强了C语言直接创建和初始化自定义对象的能力,可以编写出更简洁高效的代码。- 复合字面量可以创建结构体、数组等复合类型的匿名对象复合字面量的主要优点:- 简化创建临时对象的代码,无需定义中间变量并且可以在创建时直接初始化对象成员。复合字面量与普通字面量的区别:- 普通字面量是原始数据类型,如字符串、整型等。

2023-11-08 15:32:08 179

原创 C语言的数学和几何图形处理函数的优化

这些数学函数与标准math库相比,更注重计算效率,函数使用了一些计算机图形学常见的技巧,例如快速逼近、位操作、查表等,数学计算上做了优化,比通用的math库能获得更高的计算性能。更注重易用性,提供了更直接简单的函数接口,如nk_inv_sqrt直接返回平方根的倒数,而不是像标准库那样需要组合多个函数调用。更具特定性nk中的函数更针对图形界面开发的特定需求,提供了math库中没有的一些专门函数,如nk_rect系列。3. nk_round_up_pow2 - 计算不小于指定值的2的幂。

2023-09-27 08:54:16 48

原创 贝塞尔曲线的C语言实现

经验证在200M主频的单片机下计算2000个点,可以耗时2ms内。

2023-08-30 09:40:33 541

原创 C语言中关于realloc()的思考

就是申请更大的内存地址,把原有的数据拷贝过去,销毁原有的。那么,看到realloc的特性之后,realloc总是会首先试图追加内存空间,这就避免复制销毁的开销提高了性能。1. 如果size比原来的内存块大,则为内存块分配一个新的、更大的内存空间,并将原来内存块中的数据拷贝到新的空间中,最后返回新内存块的指针。- ptr: 要调整大小的内存块指针,该指针必须是由之前的malloc/calloc等分配得到。2. 如果size比原内存块小,则直接缩小内存块的大小,并返回同样的内存块指针。还是需要自己维护的。

2023-08-26 14:47:08 80

原创 C语言的链式调用

这里append()方法会返回StringBuilder对象本身,所以可以继续调用append()方法,形成链式调用的效果。在C语言中,可以通过返回对象指针来实现链式调用,主要思路是:- 每个方法执行操作后,返回对象本身的指针。所以链式调用是一种编程技巧,可以让代码更加可读和优雅,在C语言中也可以通过返回指针来实现。它的主要思想是,把多个方法调用链式连接起来,一个方法的返回值可以当作下一个方法的参数。MyObject_print() 打印num关键是每个方法在执行操作后,都返回对象本身的指针。

2023-08-26 13:58:54 268

原创 C语言关于协程的探究

协程是一种用户级的轻量级线程,它可以在单线程里多个函数并发地执行协程,可以在主任务进行的同时,执行一些分支任务,以协助程序达到最终的效果,我们可以将协程成为用户态线程,但它与线程又有所区别。这样,通过使用函数指针和上下文结构体保存各协程的执行信息,并在scheduler中进行切换,实现了简单的协程执行效果。这个程序定义了一个上下文结构体Context表示一个协程,scheduler函数作为协程调度器,它会根据当前的cid来选择并执行一个协程函数。6. 采用抢占式协程调度,协程函数无需显式切换。

2023-06-30 10:20:24 150

原创 用C语言实现try cash --《Implementing Exceptions in C》

异常可以从函数内部的抛出,并且跳过了–i这一句,所以最终i的值为1,并且运行了FINALLY语句块后继续抛出,并被EXCEPT(e)语句块捕获,然后成功获得了异常信息。Exceptions.c文件源码。Exceptions.h文件源码。test.c测试函数。

2023-06-29 17:26:22 76

原创 用C语言实现new,delete关键字

【代码】用C语言实现new,delete关键字。

2023-06-19 16:41:07 213

原创 用c语言写一个LZ77 编码和解码的实例代码

【代码】用c语言写一个LZ77 编码和解码的实例代码。

2023-06-13 09:18:57 468

原创 C语言的泛型模板

因为第一个参数 a 是 int,所以选择 swap_int,而第一个参数 c 是 float,所以选择 swap_float。所以 _Generic 泛型宏可以支持参数类型不同的情况,它会根据第一个参数的类型来选择对应的实现。泛型宏允许根据参数类型生成不同的代码。在这个定义中,如果 a 是 int 类型,那么选择 swap_int,如果 a 是 float 类型,那么选择 swap_float,否则选择 swap_double。使用 _Generic 关键字定义的泛型宏,其参数类型是可以不同的。

2023-06-08 15:02:02 246

原创 C语言实现多态

C语言实现多态

2023-03-05 12:10:42 209

原创 IS A ,HAS A

IS A ,HAS A

2023-03-04 10:00:57 97

原创 Cortex-m的HardFault信息的本地保存

Cortex-m的HardFault信息的本地保存

2023-02-26 17:41:13 511 2

原创 《分散加载文件浅释》笔记

《分散加载文件浅释》笔记

2023-02-19 16:28:06 1321

原创 KEIL分散加载的方式实现系统软件复位后,非初始化数据的不被清零

KEIL分散加载的方式实现系统软件复位后,非初始化数据的不被清零

2023-02-19 16:09:30 450

原创 通过函数指针来实现外部程序访问

众所周知单片机的程序一般是运行在内部flash上的,然而内部一般是不允许外部访问的,当那么当你想通过单片机访问外部程序该怎么实现呢。最好的办法是通过XIP来跳转到外部flash上运行成外部程序,但是XIP需要MCU支持,所以这个方法下次讨论。不支持XIP的芯片的话,我们想到把程序搬运到RAM里面运行是否可行呢?首先我们需要规划一片区域,禁止其他程序访问,把我们需要的外部程序搬运在此位置。以便固件查找运行,那么怎么规划一片区域呢,此时我们需要用到KEIL上的一个叫(分散加载...

2022-05-20 17:05:55 344

原创 LVGL加载外部flash上图片

void loadBitmap(lv_img_dsc_t *image, uint32_t start_addr, uint32_t file_size){ uint8_t *pbuf; //读取数据缓冲区 uint8_t *pbmp; uint32_t header; int secTime = file_size/4096; int secOff = file_size%4096; int i; dbg_printf(" secTi...

2022-04-06 17:34:02 3602 7

原创 STM32 HAL库MSC 通过STM32内部Flash实现模拟U盘的功能

STM32 HAL库MSC 通过STM32内部Flash实现模拟U盘的功能。1.配置STM32Cubemx软件生成工程选择stm32F103RCTx配置好系统时钟,选择USB_DEVICE ,Mass Storage Class(大容量存储设备)2.生成工程打开

2020-12-25 16:44:13 1732 3

原创 TCP和UDP的区别

TCP是面向连接的传输控制协议,而UDP提供了无连接的数据报服务; TCP具有高可靠性,确保传输数据的正确性,不出现丢失或乱序;UDP在传输数据前不建立连接,不对数据报进行检查与修改,无须等待对方的应答,所以会出现分组丢失、重复、乱序,应用程序需要负责传输可靠性方面的所有工作; UDP具有较好的实时性,工作效率较TCP协议高; UDP段结构比TCP的段结构简单,因此网络开...

2018-08-02 11:28:01 170

转载 I/O重定向的原理和实现

 2015年03月29日 15:51:16阅读数:2192文章出处:http://www.cnblogs.com/weidagang2046/p/io-redirection.html  在Unix系统中,每个进程都有STDIN、STDOUT和STDERR这3种标准I/O,它们是程序最通用的输入输出方式。几乎所有语言都有相应的标准I/O函数,比如,C语言可以通过scanf从...

2018-07-29 10:22:37 1167

转载 select函数详解

在Linux中,我们可以使用select函数实现I/O端口的复用,传递给 select函数的参数会告诉内核:      •我们所关心的文件描述符      •对每个描述符,我们所关心的状态。(我们是要想从一个文件描述符中读或者写,还是关注一个描述符中是否出现异常)      •我们要等待多长时间。(我们可以等待无限长的时间,等待固定的一段时间,或者根本就不等待)   从 selec...

2018-07-28 10:00:03 186

原创 exec函数组的用法

exec函数组          在fork后的子进程中使用exec函数族,可以装入和运行其它程序(子进程替换原有进程,和父进程做不同的事)。        fork创建一个新的进程就产生了一个新的PID,exec启动一个新程序,替换原有的进程,因此这个新的被 exec 执行的进程的PID不会改变(和调用exec的进程的PID一样)。在Linux中,并不存在exec()函数,exec指...

2018-07-26 10:10:08 599

原创 C语言之函数

函数(Function)0.引言 算法的结构化设计 标准函数(库函数)和自定义函数 程序从main函数开始,在main函数结束 main函数可以调用其他函数,但是其他函数不能调用main函数,main函数是系统调用的。————————————————————————————————————————————————————————————————————————————————————1.有参函数和...

2018-03-07 16:53:43 108

原创 C语言之循环结构

循环结构1.三种循环语句 while 一般形式为 while(表达式) 语句 一般表达式是循环条件 ,语句是循环体 eg1: 求1-100 的和     #include<stdio.h>     int main(int argc,char *argv[])    {     int sum = 0; int i = 1; /* while(i <= 100) { ...

2018-03-07 16:48:46 614

原创 C语言之选择结构

选择结构(分支结构)1.关系运算符及其表达式 关系运算符:在程序中经常需要比较两个量的大小关系,以决定程序下一步的工作,比较两个量的运算符就称为 ~ < <= >= > 优先级高 == !=  优先级 算术运算符 > 关系运算符 > 赋值运算符 结合性 从左到右 a + b > c - d  (a + b) > (c - d)  x > 3...

2018-03-07 16:37:02 1024

原创 C语言之数据类型

1.基本数据类型    C语言中包含整型、浮点型、和字符型三种数据类型。        1)整型:十进制整数形式如 1,123,412。            从有无符号来说,整型包含无符号型(unsigned)和有符号型(signed可以省略)            从字节数来说,整型包含short型(2字节),int型(4字节),long型(4字节)        2)字符型:单引号括起来的一...

2018-03-04 10:50:25 793

padshelperv2.7.rar

转载网上所用PADS助手工具,其他的助手工具打开后有病毒,网站有病毒的工具,360识别不通过,会导致PADS直接死掉,因此上传一个用的简易工具。

2020-04-15

CubeMX中文使用指南.zip

STM32CubeMX中文使用指南

2019-09-05

21天学通C++第8版 高清完整PDF.pdf

被名字误导了的一本好教材。

2019-07-26

05.Source Insight (推荐:阅读和编辑源代码).zip

破解版Source Insight。

2019-07-26

ARM Cortex-M3与Cortex-M4权威指南.zip

ARM Cortex-M3与Cortex-M4权威指南.zip

2019-07-26

stm32笔记.zip

从汇编语言到iic,spi的stm32学习笔记。里面含有许多文档,示意图等资料。

2019-07-26

Fast通用FAT文件系统_0.09A中文手册PDF版

Fast通用FAT文件系统_0.09A中文手册PDF版

2019-04-10

CRC 计算器

CRC 计算器

2018-09-18

PDF中文编辑器

一个可用于PDF阅读的软件,可以进行PDF的编辑,可以将Pdf文档转化为其他类型文档

2018-08-21

stm32f10x中文固件库手册

该函数库是一个固件函数包,它由程序、数据结构和宏组成,包括了微控制器所有外设的性能特征。该函数库还包括每一个外设的驱动描述和应用实例。通过使用本固件函数库,无需深入掌握细节,用户也可以轻松应用每一个外设

2018-08-21

空空如也

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

TA关注的人

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