自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 资源 (1)
  • 收藏
  • 关注

原创 整数开方算法

1 目的 本文阐述了常用的开方算法的原理,重点描述了整数开方算法的实现并给出实例源码,旨在提高不带FPU的处理器处理开发的效率。2 常用的开方算法2.1 逼近法 2.1.1 二分法逼近 选取一个平方值大于目标值a的值b,和一个小于目标值的值c,取中间值d=(b+c)/2的平方e与a比较,若偏大,设置b的新值为d,否则设置c的新值为d...

2019-03-27 16:18:17 6462 1

原创 椭圆生成快速算法

一、目的   文本旨在提供一种画椭圆的快速算法,使之可在不带乘法器的cpu上快速生成椭圆的点。二、定义    1. 走向:当前点的下一个点的方向    2. 主坐标:在走向上,起点到终点,变化量较大的分量坐标    3. 从坐标:在走向上,起点到终点,变化量较小的分量坐标三、 原理    1. 已知椭圆上的一点,要推算出下一点的位置,该位置的主坐标一定是沿着走向递增1个...

2018-08-09 15:03:10 2932

原创 MDK链接器的符号的使用

一、符号名与C语言变量的关系  局部变量放在栈里面,不会被其他地方引用,无需链接,故符号表里不存储局部变量;  全局变量或静态变量的变量名与符号表里的名字是一一对应的,所不同的是,符号表里记录的是变量地址,而不是变量;C语言里操作变量是直接使用变量,而不是使用地址(虽然实际上是操作变量所在地址的内容);  例如,nRecv ...

2018-07-17 16:00:46 1075

原创 可重入中断

一、目的    对于ARM9来说,进入IRQ后,会禁用IRQ,这个时候,即使有更高优先级的中断触发,也是要等该中断退出后才能响应,是不可重入的。本文旨在介绍可以被高优先级中断打断的中断程序,亦即可重入中断。二、原理    要做到可重入,必须开启被禁用的中断。但开启后要面临一个问题,就是LR是会被中断自动设置的,LR会被破坏,CPSR也是会被自动备份到CPSR_irq里面去,CPSR_irq也会被破...

2018-03-08 18:27:35 1068

原创 UCOSII任务挂起点跟踪

一、目的      一般来说ARM的IDE/调试器不提供UCOSII多任务任务调用函数调用关系的查询,本文旨在提供一种查看UCOSII任务调用堆栈的方法。二、UCOSII任务切换简介      UCOSII任务切换方式有两种,一种是通过触发软中断来切换,另一种是直接跳转(分中断里跳转和任务执行中跳转)。无论怎样切换,都是把当前执行的任务内容压入当前任务的堆栈中去,然后设置任务SP的值为优先级最高的...

2018-03-01 16:40:06 302

原创 LDR和STR对C语言变量操作时注意事项

LDR和STR指令操作C语言变量时,首先要引入变量(符号)名,如:IMPORT C_VARIABLE然后,就可以使用如下方式获取变量地址: LDR R0, =C_VARIABLE 注意,此时编译的话,有2种情况:a. C_VARIABLE的地址刚好可以通过一个8位数移位获得,该指令会被翻译为:MOV R0, <变量的地址>b. 否则,将通过当前PC的值加上一个常数获得,...

2018-02-28 16:34:16 628

原创 CRC16校验码C语言实现

一、目的 阐述CRC16的原理,并以C语言代码实现。二、 校验码的作用 校验码用于校验数据的有效性/正确性。 校验码用原数据生成,并伴随原数据一起发送/保存,使用者拿到发送/保存的数据序列后,取出原数据部分,根据校验码生成规则生成校验码,与拿到的校验码进行比较即可判断数据是否有效/正确。三、 CRC校验码生成过程 任意一个数据序列都可以用二进制表示,如整数123可以用二进制表示为1111011B。...

2018-02-09 15:26:48 4045

原创 ARMCC汇编方式

一、目的本文分析ARMCC编译器编译出来的文件对应的汇编代码,旨在帮助C语言程序员写嵌入式代码时分析堆栈使用问题和优化C语言代码。二、材料1、工具编译器:Keil5 ARMCC反编译工具:fromelf.exe2、c语言源码struct LG_BaseLockFuncs_t;struct DynMem_Init_t{ void * pool; //point to start addre...

2018-01-09 17:59:17 4827

原创 ffmpeg模块以及播放视频调用关系

一、目的本文旨在阐述ffmpeg模块的作用以及播放视频调用的关系,方便查找使用ffmpeg播放视频时问题所在。二、模块作用以及主要数据结构module |-libavcodec: 音视频格式编解码器(audio/video encoder/decoder) |  |-AVCodecContext: 编解码上下文,如比特率、编码ID、类型(音/视)、类型特定信息(视频:算法、宽高

2018-01-09 10:54:13 611

原创 CPoint和CSize的浮点数版本

一、目的MFC提供的CPoint和CSize很好用,实现了各种构造函数和运算符,但没提供浮点数版本,这对于一些不以像素为单元的图像处理带来了很大的不便,在此,提供这两个类的浮点数版本。二、代码实现1、 代码结构:基本与CPoint和CSize一致,成员名称也一样,重载运算符,提供加减乘除法操作;2、 源码#pragma once/***********************

2018-01-08 15:07:17 1098

原创 自动释放的GDI类

一、目的win32控制台或后台程序有时需要用到一些GDI对象,为避免手动释放的麻烦或的遗漏,封装一些类,在析构函数里面释放资源。二、源码#pragma once/************************************************* Copyright: mlizhi.com Author: Juncheng Lin Date:

2018-01-08 14:55:47 283

原创 c++ 字符串分割操作

一、 目的c++标准库里std::string或std::wstring不提供字符串分割操作,本文旨在提供源码实现该操作。二、 源码实现1. 源码结构:封装到一个类CStringHelper里,类包含要分离的字符串的常量引用,类的所有操作均不影响源母串;类CStringHelper是一个模板类,其模板参数是字符串的字符元素类型;所有分离出来的结果都按顺序放到std::vec

2018-01-08 10:36:11 382

原创 buddy内存分配算法

1 普通内存分配方式的缺点以及解决方法:1.1 普通的动态内存分配方式(如c语言运行库的内存分配malloc、free):分配时,是在堆的空闲链表上,查找到第一块空闲的并且足够大的内存,然后对这块内存进行分割,分割一块足够的内存给调用者,剩余部分作为一个新的节点链接到空闲链表里面去;释放时,查找与被释放内存区域连续的节点,如有找到,则合并,如无,则作为一个新的节点放回空闲链表里面去。1.2

2017-06-23 16:45:57 3756 1

原创 共轭梯度法原理

一、共轭梯度的提出对于二次型函数,其轮廓线是椭圆,可表示为(x -x0)' * A * (x - x0) =c

2017-04-16 12:30:18 5449

原创 对称矩阵特征向量正交推导

对于对称方阵A,如有特征解λ1对应特征向量p1,特征解λ2对应特征向量p2,根据特征向量的定义,有:A * p1 =  λ1 * p1 ①A * p2 =  λ2 * p2 ②如p1和p2正交,则必有p1' * p2 = 0,欲证明此式,可构造非零表达式常数K,使得K * (p1' * p2) = 0,而因λ1和λ2是不同的特征解,即λ1 != λ2,故K式可为λ2 - λ1,下面

2017-02-25 12:15:12 12399 1

原创 泰勒展开的推导

1. 一元泰勒展开根据积分定义式,如F(x)= (亦即F‘(x)= f(x)),那么,F(x + a) = F(x) + ,也就是F(x + a) = F(x) + ;①然后,对F‘(t) (t  >= x && t ,则F(x + a) = F(x) +  = F(x + a) = F(x) + F‘(x) * a + ;然后,对F‘’(u)应用①式,对于最后一项,拆分出常数项F‘’

2017-02-19 17:26:16 5865

原创 c/c艹和汇编混合编程

在嵌入式开发里,有时候需要c、c艹和汇编混合起来编程来解决问题,本文主要介绍了混合编程的写法。首先介绍一下三种语言的优势与劣势。汇编:直接操作寄存器,可实现对芯片直接的控制,可用作优化算法、特权访问,缺点是与芯片指令相关,可移植性差。c艹,面向对象编程,比C更符合软件工程,优点是代码的高可重用性,便于实现各种设计模式,缺点是比c增加了好多内容,如果理解不透彻,很可能用错,另外,它的虚函数需要虚

2016-01-17 14:46:20 1096

ov2686芯片手册

200W像素支持YUV的DCMI接口的摄像头芯片ov2686的寄存器手册,官网上找不到的,需要的拿走。(ps:ov2640系列已停产,这个芯片是MCU的最佳性价比的选择之一)

2018-08-06

空空如也

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

TA关注的人

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