自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(51)
  • 资源 (5)
  • 收藏
  • 关注

原创 万能 makefile

DIR_BIN = .DIR_INC = ./includeDIR_SRC = ./srcDIR_OBJ = ./objDIR_LIB = ./lib#目标文件TARGET = app#目标路径CUR_PATH = .#获取所有c cpp文件DIRS = $(shell find $(CUR_PATH) -maxdepth 10 -type d)SRC = $(foreach dir, $(DIRS), $(wildcard $(dir)/*.cpp))CSRC = $(foreac

2020-11-08 16:32:51 323

原创 C语言: 函数与内存

在开始本文前提出一个问题供大家思考:函数与内存的关系是什么?两者是如何紧密相连的?程序执行流程: 1.操作系统把物理硬盘代码load到内存。 2.操作系统把C代码分成五个区 3.操作系统找到main入口函数执行每个函数都会被分配五个区,它们分别是栈区、堆区、全局区、文字常量区、代码区: 1.栈区主要存放函数的参数值、局部变量值等,由编译器自动分配释放。 2.堆区一般由程序员动态分配(malloc、calloc)使用,且必须由程序员释放,否则会造成内存...

2020-08-23 22:41:30 377

原创 深入探究:操作系统为什么要引入虚拟地址?

在进入正题前先来谈谈操作系统内存管理机制的发展历程,了解这些有利于我们更好的理解目前操作系统的内存管理机制。一 早期的内存分配机制 在早期的计算机中,要运行一个程序,会把这些程序全都装入内存,程序都是直接运行在内存上的,也就是说程序中访问的内存地址都是实际的物理内存地址。当计算机同时运行多个程序时,必须保证这些程序用到的内存总量要小于计算机实际物理内存的大小。那当程序同时运行...

2019-08-27 17:56:58 5230 3

原创 重拾信心

如何学习linux? 如何寻找方法与出路?面对一个比较迷茫的事情如何度过难关?作为一个新手,没有人指导?只有自己慢慢的摸索方向。可想而知会遇到多少难处,人有恒心不错,可是有时候在现实面前,再大的恒心也抵挡不住一个个疑难问题的折磨。没有方向,除了百度没有任何办法。总是问自己,这样学对吗?这个方向对吗?该学那些呢?该学到什么程度呢?受过太多...

2019-08-22 22:20:51 294

原创 uboot移植6

一个非常好的链接,里面可能有很多你需要的资料:点击打开链接u-boot的stage1代码通常放在cpu/xxxx/start.S文件中,他用汇编语言写成;u-boot的stage2代码通常放在lib_xxxx/board.c文件中,他用C语言写成。各个部分的流程图如下:...

2019-07-22 22:42:08 109

原创 uboot

从前一篇u-boot.lds文件分析知,整个代码段放在最前面的是start.o,而入口函数是_start,那么我们就来分析下start.S文件:/**************************************************************************** Jump vector table as in table 3.1 in [1]****...

2019-07-20 08:00:59 204

原创 struct 、union的使用以及字节对齐机制、补齐机制

题目1:struct test{ char a; 1+3 int b; 4 } Test;sizeof(Test) = 8;题目2:struct test{ char a; 1+3 int b; 4 char c; 1+3(补齐)}Test;s...

2019-04-28 06:58:49 546

原创 ubuntu中如何挂载NTFS格式的移动硬盘

root@ubuntu:/etc# sudo apt-get install ntfs-config正在读取软件包列表... 完成正在分析软件包的依赖关系树正在读取状态信息... 完成将会安装下列额外的软件包: menu下列【新】软件包将被安装: menu ntfs-config共升级了 0 个软件包,新安装了 2 个软件包,要卸载 0 个软件包,有 1...

2019-03-14 23:51:33 7878

原创 单片机 编程

1.结构体、位域、联合的综合使用typedef union{    struct{        MDLINT8U fault0:    1;        MDLINT8U fault1:    1;        MDLINT8U fault2:    1;        MDLINT8U fault3:    1;        MDLINT8U fault4:    1;...

2018-08-27 13:16:24 688

原创 STM32向量表-串口1中断

DCD指令:用于分配一片连续的字存储单元(32bit),并将表达式的值初始化给该字存储单元,类似于C中定义数组并初始化。比如: DCD 0 的意思是:分配一个字存储单元,并将该单元初始化为0。EXPORT指令:伪指令,用于在程序中声明一个全局标号,该标号可以在其他文件中使用一、STM32的启动文件分析https://blog.csdn.net/weicao1990/article/de...

2018-08-19 11:47:22 1257

原创 ucos2-延时注意事项

1.ucos2的任务调度是在时钟节拍中断函数产生2.ucos2使用延时函数(非ucos2专用),由于ucos是通过systic做时钟,如果使用systic做延时,会影响ucos的任务调度,产生硬件错误3.使用ucos2专用的延时函数OSTimeDlyHMSM()、OSTimeDly()。任务进入等待状态知道延时结束4.可使用OSTimeDlyResume(),使得延时中的任务结束等待,进入就绪有待...

2018-07-04 09:12:16 1568

原创 单片机易忘点总结

/**********************************************************************************************************************************************1.static:有两个作用,规定作用域和存储方式,对于局部变量,static规定其为静态方式存储,每次调用的...

2018-05-25 08:48:27 395

原创 ALIYUN

http://www.cnblogs.com/yangfengwu/p/8758733.htmlhttp://www.cnblogs.com/yangfengwu/p/7764667.html

2018-05-22 19:21:27 286

转载 机械臂——D-H参数标定

最近重新学习机器人方面的知识,想到一年以前在学校选修《机器人学技术基础》这门课的时候,老师虽然讲机器人的各个方面的知识都讲到了,但只是浮光绿影的的提到,并没有真正讲到深处,我的理解也没有更加深入,导致总是知道有这个知识点,但总是用起来不顺手,有时候还会完全迷惑。最近重新看了Graig的《机器人学导论》导论的中文版,里面对D-H参数的讲解比较详细,更重要的是举出了详细的案例。  其实D—H参数是有两...

2018-05-21 14:12:39 29259 4

原创 c++构造函数

构造函数:普通方法(静态方法除外)是归对象所有的,那对象是怎么来的呢,就是通过构造函数构造出来的。打个形象的比方:构造函数造一个主人,只有主人才能使用这些具体的功能(普通方法)。其实你在写这句话:Person person=new Person()的时候就调用了构造方法,构造方法有分为无参和带参,具体选择哪种构造方法,可视情况而定普通方法归对象所有,对象由构造函数建立:例子:class per...

2018-05-18 18:06:31 161

原创 单片机通信方式

USART,RS232,RS485,IIC,SPI基本概念:串口、COM口是指的物理接口形式(硬件)。而TTL、RS-232、RS-485是指的电平标准(电信号)TTL:TTL电平信号之所以被广泛使用,原因是:通常我们采用二进制来表示数据。而且规定,+5V等价于逻辑“1”,0V等价于逻辑“0”。这样的数据通信及电平规定方式,被称做TTL(晶体管-晶体管逻辑电平)信号系统。UART,是通用异步收发传...

2018-05-17 13:48:48 16615 1

原创 矩阵的初等变换

矩阵初等变换:1.交换矩阵的两行2.以数K不等于0乘以矩阵某一行3.把矩阵某一行的K倍添加到某一行上

2018-05-17 10:13:33 20612 2

原创 定时器与延时函数

STM32定时器包含基本定时器、通用定时器和高级定时器,其中TIM6和TIM7是STM32当中的基本定时器,作为初学者,先从最基本的学起最容易,下面我们用这个定时器实现毫秒延时函数来入门STM32定时器的应用。学习单片机,就是学习使用它的寄存器。即便你用库函数,寄存器也是必须要学习的。TIM6 TIM7的寄存器如下所示:先略览一下寄存器,CR1和CR1是控制寄存器,SR是状态寄存器,ARR就是溢出...

2018-05-05 09:29:12 20476 2

原创 机械臂D-H坐标系的建立

正解与逆解的求解需要相应的机器人运动方程,其中关键的就是DH参数表 DH参数表用来描述机器人各关节坐标系之间的关系,有了DH参数表就可以在机器人各关节之间进行坐标转换 求解正解就是从关节1到关节5的坐标转换 基本知识 :关节:连接2个杆件的部分 连杆长度 :2个相邻关节轴线之间的距离 连杆扭角 :2个相邻关节轴线之间的角度 连杆偏距 :2个关节坐标系的X轴之间的距离  关节角度...

2018-05-03 12:25:33 33152 4

原创 智能家居探索

    兴趣,兴趣,兴趣,个人就是感兴趣,没办法。感觉自己感兴趣的事情太多了,这也想干,那也想做,不过没办法。工作还是要干,生活还是要过,纵使你想追求辉煌,但还是要一步一个脚印。谨记!智能家居项目规划如下:技能要求1:无线通信    WiFi通信,ZigBee通信二选一技能要求2:各种传感器应用技能要去3:安卓app理论永远赶不上实践,去动手做些东西吧少年,一步一个脚印。             ...

2018-04-19 18:16:08 243 2

原创 欧拉角与旋转矩阵之间的相互转换

欧拉角和旋转矩阵可同样表示刚体在三维空间的旋转,下面分享这两者互相转换的方法和核心代码欧拉角转旋转矩阵 欧拉角通过将刚体绕过原点的轴(i,j,k)旋转θ,分解成三步,如下图(蓝色是起始坐标系,而红色的是旋转之后的坐标系)  如果将每一个角度用旋转矩阵表示如下:  所以,容易得到,欧拉角转旋转矩阵如下: 旋转矩阵转欧拉角 将旋转矩阵表示如下:  则可以如下表示欧拉角: ...

2018-04-19 16:12:49 3585 3

原创 6轴机械臂:求机械臂末端位姿

给出加工工件上的各个点以及各个点所对应的位姿,如何转换为机械臂识别的末端位姿?首先第一步,我们选定一个球形的工件第二步,确定开始时机械臂末端姿态:六轴末端面垂直向下第一步:ry的讨论我们知道,机械臂末端状态有六个,分别是x,y,z,rx,ry,rz。下面先以ry为基础进行讨论,ry顾名思义,就是机械臂末端绕y轴旋转的角度,我们通过右手定则可以确定旋转的正负方向。上图求出的x即是我们想要的结果,有图...

2018-04-18 11:17:35 17740 1

原创 步进电机

1.步进电机使用的几个概念:电机转动一圈的脉冲数=(步进电机)一圈的脉冲数 =细分数*每转脉冲数*减速比。                                 =(无刷伺服电机)一圈的脉冲数 = 编码器线数 *4 / 电子齿轮*减速比。:电机转动一圈的脉冲数即是转动360度所需脉冲,一般步进电机会与步进电机驱动器配合使用,这就需要明确细分数、步距角、减数比这三个概念。(1)细分数:步进...

2018-04-17 21:24:18 4703

原创 MFC读取.CSV文件

最近做些小算法,需要将数据导入MFC程序,这里就该方法做简单说明。其实过程也不是很难,来看第一步:下面是数据导入函数,具体不多说,看代码解释!/**************************从文件中导入csv数据**************************/int LoadFileList(CStringArray &saData, int &...

2018-04-16 12:16:49 7417 3

原创 机械臂探索——齐次变换

首先我们先来介绍一下什么是齐次变换?为什么要了解齐次变换?齐次坐标就是将一个原本是n维的向量用一个n+1维向量来表示。百度百科上说的太笼统,不靠谱!不过我们可以用一种简单的方式理解它。先来介绍一下本文齐次变换的用途:是为了确定机械臂的位置和姿态的。机器人运动学也就是研究手臂末端执行器位置和姿态与关键转动角度之间的关系。•丹纳维特(Denavit)和哈顿贝格(Hartenberg)于1955年提出了...

2018-03-23 15:44:40 6490 1

原创 ucos2历程——SysTick寄存器

SysTick寄存器一共由四个控制与状态寄存器:SysTick_CTRL重装值寄存器:SysTick_LOAD当前值寄存器:SysTick_VAL校准寄存器:SysTick_CALRB简单的延时只用到两个寄存器SysTick_CTRL、SysTick_LOAD。1.控制状态寄存器:SysTick_CTRL其中第16位为状态标志,当从上次重装开始减到0,则该位被置1,且被读取后自动清零。CLKSOU...

2018-03-14 22:57:30 762

原创 ucos2——之路:动态内存管理

动态内存管理1.内存控制块ucos2对内存进行两级管理,即把一个连续的内存管理分为若干个分区,把每个分区又分为若干个大小相等的内存块。操作系统以分区为单位来管理动态内存,而任务以内存块为单位来获得或者释放动态内存,内存分区以及内存块的使用情况由内存控制块来记录。1.1内存块:ucos2以内存块为单位向应用程序提供动态内存,内存块的大小可由用户定制。1.2内存分区:大小相等的多个内存块可以组成一个内...

2018-03-12 09:38:55 731

转载 ucos历程总括

第一篇 UCOS介绍第一篇 UCOS介绍 这个大家都知道。呵呵。考虑到咱们学习的完整性还是在这里唠叨一下。让大家再熟悉一下。高手们忍耐一下吧! uC/OS II(Micro Control Operation System Two)是一个可以基于ROM运行的、可裁减的、抢占式、实时多任务内核,具有高度可移植性,特别适合于微处理器和控制器,是和很多商业操作系统性能相当的实时操作系统(RTOS)。为了...

2018-03-09 15:07:48 604

原创 ucos2z之路——信号量

信号量在讲信号量之前呢,必须首先说一说另外一个概念——事件! ucos2使用信号量、邮箱、消息队列这些中间环节来实现任务之间的通信。这些中间环节都统一叫作“事件”。信号量就是一类事件,使用信号量最初的目的是为了给共享资源设立一个标志,该标志表示着共享资源被占用的情况。所以在访问该共享资源之前,可以先对这个标志进行查询。根据查询结果决定自己下一步的行为。信号量比较简单,可以说只是对共享资源做可一个标...

2018-03-08 23:03:52 171

原创 ucos2之路——消息队列

消息队列        消息队列 就是邮箱的升级版,邮箱可以实现从 一个任务向另一个任务发送一个指针变量,消息队列可以实现从一个任务向另外一个任务发送多个指针变量。而且每个指针指向的数据结构变量也有所不同。        消息队列由三部分组成:事件控制快、消息队列、消息。仔细分析下面这张图:接下来分析事件控制块,消息队列,消息着三者之间的关系,上图是消息队列的数据结构,即包括了以上三部分。当事件控...

2018-03-08 23:01:18 1245

原创 ucos2历程——信号量集

信号量集信号量集由两部分组成:标识组和等待任务列表;标识组由三部分组成:1.OSFlagType——识别是否为信号量集的标志                                2.OSFlagWaitList——指向等待任务列表的指针                                3.OSFlagFlags——信号量表1.OSFlagType被固定为OS_EVENT_T...

2018-03-06 23:00:00 945

原创 我的嵌入式生涯

先大概介绍一下写这篇博客的背景吧,我是冯某某,今年24岁。17年6月大学毕业,至今有半年多的时间了吧。17年三月份离开学校踏上了北漂的路,当时自己也算一时冲动吧,糊里糊涂的就来到了北京(其中很大一部分原因是因为我对象在这)。然后呢,17年4月7号,我找到了第一份工作。是一家做智能卡的公司,我进去主要协助一个比较有经验的工程师做读卡器产品。这份工作没什么好说的,自己充其量也就算个技术支持,为...

2018-03-01 18:45:15 495 2

原创 USB驱动解析

前面学习了USB驱动的一些基础概念与重要的数据结构,那么究竟如何编写一个USB 驱动程序呢?编写与一个USB设备驱动程序的方法和其他总线驱动方式类似,驱动程序把驱动程序对象注册到USB子系统中,稍后再使用制造商和设备标识来判断是否安装了硬件。当然,这些制造商和设备标识需要我们编写进USB 驱动程序中。USB 驱动程序依然遵循设备模型 —— 总线、设备、驱动。和I2C 总线设备驱动编写一样,...

2018-02-07 10:46:32 568

转载 linux驱动头文件说明

#include                      //是在linux-2.6.29/include/linux下面寻找源文件。#include                      //是在linux-2.6.29/arch/arm/include/asm下面寻找源文件。#include                    //是在linux-2.6.29/arch/arm

2018-02-07 10:46:19 213

转载 linux驱动开发内核模块编译——Makefile入门

一、模块的编译       我们在前面内核编译中驱动移植那块,讲到驱动编译分为静态编译和动态编译;静态编译即为将驱动直接编译进内核,动态编译即为将驱动编译成模块。而动态编译又分为两种:a -- 内部编译       在内核源码目录内编译b -- 外部编译       在内核源码的目录外编译二、具体编译过程分析           注:本次编译是外部编译,使用

2018-02-07 10:46:05 606

转载 linux字符设备驱动结构(一):cdev结构体,设备号相关知识解析

一、字符设备基础知识1、设备驱动分类      linux系统将设备分为3类:字符设备、块设备、网络设备。使用驱动程序:字符设备:是指只能一个字节一个字节读写的设备,不能随机读取设备内存中的某一数据,读取数据需要按照先后数据。字符设备是面向流的设备,常见的字符设备有鼠标、键盘、串口、控制台和LED设备等。块设备:是指可以从设备的任意位置读取一定长度数据的设备。块

2018-02-07 10:45:48 290

转载 linux字符设备驱动 file ,inode ,chardevs数组分析

前面我们学习了字符设备结构体cdev ,下面继续学习字符设备另外几个重要的数据结构。    先看下面这张图,这是Linux 中虚拟文件系统、一般的设备文件与设备驱动程序值间的函数调用关系;        上面这张图展现了一个应用程序调用字符设备驱动的过程, 在设备驱动程序的设计中,一般而言,会关心 file 和 inode 这两个结构体        用户空间使用

2018-02-07 10:45:30 619

转载 linux设备驱动——ioremap函数解析

一、 ioremap() 函数基础概念       几乎每一种外设都是通过读写设备上的寄存器来进行的,通常包括控制寄存器、状态寄存器和数据寄存器三大类,外设的寄存器通常被连续地编址。根据CPU体系结构的不同,CPU对IO端口的编址方式有两种:a -- I/O 映射方式(I/O-mapped)       典型地,如X86处理器为外设专门实现了一个单独的地址空间,称为"I/O地址空间"或

2018-02-07 10:34:01 1123

原创 linux设备驱动——ioctl函数分析

一个字符设备驱动通常会实现常规的打开、关闭、读、写等功能,但在一些细分的情境下,如果需要扩展新的功能,通常以增设ioctl()命令的方式实现,其作用类似于“拾遗补漏”。在文件I/O中,ioctl扮演着重要角色,本文将以驱动开发为侧重点,从用户空间到内核空间纵向分析ioctl函数。用户空间的ioctl()#include int ioctl(int fd, int cmd, ...

2018-02-06 18:59:02 711

原创 linux设备驱动之I/O通道解析

I/O控制方式主要有程序查询方式、中断方式、DMA方式、IO通道方式。1、程序查询方式  程序查询方式也称为程序轮询方式,该方式采用用户程序直接控制主机与外部设备之间输入/输出操作。CPU必须不停地循环测试I/O设备的状态端口,当发现设备处于准备好(Ready)状态时,CPU就可以与I/O设备进行数据存取操作。这种方式下的CPU与I/O设备是串行工作的,输入/输出一般以字节或字为单位进

2018-02-06 18:20:37 1712

thread_ci.tar.xz

C语言手写线程池源码,下载直接可用,通用Makefile编程模板。实现线程池任务管理,线程自动创建与销毁等,不调库,纯手写,使用学习两不误。

2020-08-09

MFC读取.csv文件

最近在做一个小算法,需要从外部导入数据,通过将Excel文档保存为.CSV文件完成数据导入以及使用,另将生成的结果导出成txt文件。没积分了留下邮箱!

2018-04-16

串口调试助手+TCP/IP通信+源码

本资源属于一个将串口调试助手与TCP/IP通信上位机软件设计到了一起,由于我自己在做一个物联网方面的实验,需要用到TCP/IP使得手机和电脑可以通信,然后再通过串口控制开发板,从而达到手机无线控制开发板的目的!希望对大家有所帮助!辛苦之作,赚点积分!

2018-03-17

数字文字加密程序+源码

这是一个用于加密数字和文字的小程序,加密的后的信息也可以通过该软件进行解密!

2018-03-17

安卓蓝牙app源码

本资源数据安卓蓝牙源码,简单介绍了打开蓝牙,关闭蓝牙,使能蓝牙可见,以及搜索周围设备等功能(注:并没有写蓝牙通讯方面的功能)

2018-02-01

空空如也

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

TA关注的人

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