自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(85)
  • 问答 (1)
  • 收藏
  • 关注

原创 为什么网络传输要采用大端序(带实例)

带实例解析

2022-11-08 20:50:48 1888

原创 数据结构术语

计算机数据结构术语数据:指所有能输入到计算机中被处理的符号的总称。数据元素:数据的基本单位,作为一个整体进行考虑和处理,可由若干个数据项组成(例如结构体),而数据项是数据的不可分割的最小单位。(俗指:某种数据类型)数据对象:性质相同的数据元素的集合,是数据的一个子集。数据结构:数据元素相互之间存在一种或多种特定关系的数据元素的集合(例线性表的一对一,树形的一对多)。数据类型:一个值的集合...

2020-03-29 13:03:09 488

原创 毕业设计笔记

共享内存问题:不能再同个进程对同一密匙的内存申请两次,会出现allocate memory error;移植ARM上对数据库进行C函数编程,无法写入:注意打开文件名不是路径,例: sqlite3_open("/Store_Monitor_SQL3.db", &db);应改为sqlite3_open(“Store_Monitor_SQL3.db”, &db);跨平台编译时,...

2020-03-19 00:13:05 240

原创 基于ISO 14443-A协议的RFID高频频段实战

认识 ISO 14443协议该协议是非接触式IC卡标准协议(Contactless card standards)。其英文介绍文档有四部分组成,分别为物理特性、频谱功率和信号接口、初始化和防冲突接口、通讯协议;只有第三本有帧格式描述注意14443只规定了框架,但没有规定具体的读写细节,需根据不同产品的手册操作。14443术语:(电子标签)接近式卡 Proximity Card (PICC...

2020-01-15 20:48:47 6234 2

原创 STM32滴答系统时钟问题:while( TimingDelay != 0 );

2020-01-14 22:51:11 708

原创 RFID射频技术基础

概念RFID,Radio Frequency Identification 缩写,又称无限射频识别,可通过无线电讯号识别特定目标并读写相关数据,而无需识别系统与特定目标之间建立机械或光学接触。一套完整的RFID硬件系统由Reader与Transponder两部分组成,其动作原理为由Reader发射一种特定频率之无限电波能量给Transponder,用以驱动Transponder电路将其内部的I...

2020-01-08 15:38:14 1170

原创 STM32的问题

一、中文乱码KEIL中文件编辑时中文乱码修改configure->Editor的Encoding解码格式为GB2312串口输出时中文乱码文件的编码格式不对,重新新建文件确定编码格式为GB2312或UTF在将内容重新导入。二、Extern的使用对于管用较完善的编译器时,一般直接Include使用跨文件变量,编译器会自动判断include的文件中的变量在该文件中是定义还是声明...

2020-01-06 19:56:28 150

原创 内核编译出错

编译iTopeet_Kernel3.0时出错:CC drivers/media/video/samsung/mali/common/mali_kernel_core.oarm-none-linux-gnueabi-gcc: ": No such file or directory:0:16: warning: missing terminating " characterdriv...

2020-01-01 20:43:42 817 1

原创 BOA服务器的中文乱码问题

CGI程序在游览器显示的时候,中文会出现乱码解决办法:在main函数中加上:printf(“Content-type: text/html;charset=utf-8\n\n”);html文件中文乱码问题html需要设置编码格式<head><meta http-equiv="Content-Type" content="text/html; charset...

2020-01-01 15:33:09 433

原创 JAVA基础

程序组成程序所属包(0/1个):package 语句类库的导入(0/多个):import 语句类的定义(1/多个):public class xxx{ }常量的定义:类型前加前缀final。(无前缀)变量中:含类型转换方法。如字符串到整型:String str; int i; i = Integer.parseInt(str);io类库:import java.io. *;终端...

2019-12-30 10:05:32 166 1

原创 数码相框项目笔记

关键代码解析1.BMP图标文件解析与应用一个完整的bmp位图文件,可以分为文件信息头、位图信息头和RGB颜色阵列三部分进行描述。注意:BITMAP位图的存储数据是从图片的左下角开始的,即位图中第一个有效数据位对应LCD的左下角第一个像素且位图中每一行的地址都向4对齐,如果要在LCD上显示需要对该数据读取位置顺序进行调整。#pragma pack(push) //将当前pack设置压栈#p...

2019-12-04 15:07:18 232

原创 电子书项目笔记

框架将程序模块化,一个功能由一个.c文件完成,并且将这些功能分层。(上)主程序main.c:完成主程序总流程,“初始化->关键变量设置->LCD显示操作”。(中)draw.c:上层匹配底层,将匹配到的底层数据赋值给关键变量,进行LCD显示(底)Display部分、Fonts部分、Encoding部分:各参数、方法的初始化 ,并且各部均用链表进行管理维护。关键代码思路一....

2019-11-30 19:56:33 408

转载 命令行选项

https://blog.csdn.net/qq_22863733/article/details/80173793

2019-11-29 20:27:03 199

原创 LCD显示JPEG图片

JPEG图片JPEG文件:经压缩,不仅空间能缩小挺多,而且图片质量损失不太明显,被广泛应用。jpeglib库配置编译:./configure --host=arm-linuxmakemake DESTDIR=$PWD/tmp install将指定的库文件和头文件拷贝到交叉编译工具对应目录下编译时需加 -ljpeg关键实现思路打开jpeg,获取其文件描述符的对应信息cinfo...

2019-11-28 22:27:17 999

原创 freetype 使用解析---矢量字体

屏幕显示字体(字体点阵):在内核中有对应的文件fontdata_8x16.c,将字体通过数组8*16来描述,0表示为空,1表示描点,通过通过各个点形成一个字体点阵显示在屏幕上,而在我们所有终端中显示的字体也可以是通过点阵进行显示的,对应的字体点阵数据在字体文件中,各字体文件均含有编码表、字体数据(不同字体对应不同的点阵)。其中编码表用于对应字符码值找到字体数据的索引,其支持编码方式不同字体文件支...

2019-11-28 12:49:24 3352 1

原创 符号编码的使用解析

字符编码的由来一开始由欧美人发明的ASCII编码表,一个字节表示一个符号,并且仅用低7位。但是后面普及后各个国家语言的差异性无法继线引用ASCII的编码表进行表示众多符号。各国家开始引入各自的编码表,我国有GB2312编码表、内地人使用GBK来表示汉字、港澳台用BIG5来表示,用两个字节表示一个汉字,但是这又引入另外一个问题就是各个地区的编码格式均不同,导致不能通用。后面引入了unicode...

2019-11-24 12:04:59 938

原创 块设备驱动

块设备驱动引入对FLASH、硬盘等读写操作进行优化,特别是针对FLASH需擦除后才能烧写情况。磁盘是通过磁头对每个磁道上的扇区进行访问,块设备驱动中将读写加入到队列中,然后进行对应排序、合并等进行优化,采用电梯调度算法elv_merge,类似于把所有上去的一次性送完在送上去的。这种做法是因为对磁盘操作的步骤开销较大,比较繁琐,扇区零散将导致读写效率低,因此对各个扇区的读写应先缓存起来,在进行优...

2019-11-23 09:30:13 176

原创 USB驱动

USB设备初识USB的接口有4条线(5V、GND、D-、D+),其中PC上的D-和D+都接有15k的下拉电阻,未接入设备时未低电平,USB设备的D-或D+接有1.5k的上拉电阻,USB设备接入PC后,就会把PC上的USB口的D-或D+拉高,通过硬件方式通知PC机有新设备接入,新接入的USB设备的默认编号为0,在未分配新编号前,PC使用0编号和它通信。USB总线驱动程序向USB设备发出命令获取US...

2019-11-22 20:51:09 397

原创 根文件系统的制作

根文件系统的启动流程打开/dev/console,并执行sys_dup(0),sys_dup(0),即将标准输入输出错误重定位到console终端,而该console也是串口0的输出。run_init_process为跳转指令,只要执行了就不再返回。若用户指定了execute_command=xxx则执行run_init_process(execute_command),一般指定为linux...

2019-11-22 14:33:54 186

原创 内核移植

内核版本选择内核官网:https://www.kernel.org/注意:本文采用内核3.14讲解。选择一个内核所支持的CPU类型和board外围配件与板子最接近的版本,较少工作量。注意:uboot和kernel不能再window共享目录下解压,因为window不支持符号链接文件,即.map文件,会导致编译不了。配置编译在编译时,对内核进行选配,在Makefile文件中指定对应编译...

2019-11-21 16:36:36 187

原创 内核调试方法

内核启动流程自解压内核 decompess (arch/arm/boot/compressed/head.S)运行内核汇编部分 head.S入口start (arch/arm/kernel/head.S) 检测合法性(CPU类型,机器类型)运行内核C部分 start_kernel (init_main.c),CPU,机器参数的安装,setup_arch,中断,定时,终端,内存等最基本的初始...

2019-11-21 12:19:51 177

原创 设备树开发

设备树设备树描述的信息包括:CPU的数量和类别、内存基地址和大小、总线和桥、外设连接、中断控制器和中断使用情况、GPIO控制器和GPIO使用情况、Clock控制器和Clock使用情况。以上信息被保存在一个ASCII文件中,类似于xml文件,在ARM Linux中,一个.dts文件对应一个ARM的machine放置在内核的arch/arm/boot/dts目录。设备树文件用于操作系统中描述硬...

2019-11-20 09:19:35 274

原创 I2C驱动框架

I2C驱动开发I2C是一种接口,数据通过该接口需遵循I2C协议,对于驱动开发者相当于I2C从设备(硬件芯片)开发。包括:cmos camera摄像头(前置、后置)ts触摸屏gsenor重力传感器eeprom存储设备HDMI高清输出接口(机顶盒与显示屏连接)。另外,主机与显示屏是通过VGA接口。接口I2C是多主控总线,所以任何一个设备都能像主控器一样工作,并控制总线。总线上每一个...

2019-11-19 18:54:59 556

原创 输入子系统框架---按键

输入子系统常见的输入设备:keyboard 键盘mouse 鼠标touchcreen 触摸屏joystick 游戏杆实现步骤简析共同点:驱动层:设备号的注册申请、创建设备节点、硬件初始化(以及其他有关硬件初始化)、实现fop、阻塞、用户交互的接口函数read、write等。应用层:通过文件io接口和指定的接收缓冲区格式(struct input_event)对设备模块.ko...

2019-11-18 22:08:42 173

原创 高级io模型

高级IO模型一般对于底层硬件的中断,一般表示有数据发生,如果要去读取该中断产生的数据值,则需要通过文件io在进程上下文中进行交互(read),文件io交互的方式由分为5种模型:非阻塞(O_NONBLOCK,一旦调用立刻执行,若没有数据则返回-EAGAIN错误码,提醒重试)阻塞(休眠加入等待队列)多路复用(select、poll、epoll)对应驱动fileoperation对象的poll...

2019-11-14 11:46:20 124

原创 设备树pinctrl系统------中断事件框架

中断解决轮询对处理器的占资源缺陷。硬件模型:中断源 ------- GIC(屏蔽、优先级、记录、区分)-------FIQ/IRQ---------A9处理器linux内核软件模型:中断号与中断处理函数Arm裸奔:中断源硬件初始化、中断号、GIC初始化、A9初始化、异常向量表、中断处理函数对于linux内核模型:中断号的获取:1.宏定义 IRQ_EINT(号码) //下图对应...

2019-11-14 11:46:00 474

原创 字符设备

字符设备设备号 = 主设备号(占高字节)+次设备号(占低字节)。在/proc/devices列举出所有已经注册的设备号。文件操作对象,提供open、write、read。框架获取并注册设备号不同linux版本对应字节数不一样,一般用内核提供的函数获取 MKDEV(ma,mi)。方式1:register_chrdev 第一个参数为0则动态注册,第一个参数非0则静态注册卸载1...

2019-11-13 10:35:40 145

原创 MAKEFILE、驱动模块传参、符号导出

Makefile代码讲解:make命令调用Makefile文件,并且对其执行两次,第一次进入ifeq语句内编译内核源码,第二次根据hello.o对其进行编译生成模块。make clean命令删除所有当前目录下的.ko文件make install命令将.ko文件拷贝到根文件系统目录下ROOTFS = /根文件系统路径ifeq ($(KERNELRELEASE), )KERNEL...

2019-11-12 16:17:07 347

原创 开发板环境的搭建

交叉编译工具将文件拷贝到linux目录下,解压设置环境变量:vim ~/.bashrc 最后添加 解压后文件内的bin文件路径export PATH=$PATH:xxx/bin更新环境变量:source ~/.bashrc开发板启动方式开发板在启动上电后会启动uboot加载内核以及加载dtb设备文件,内核加载时需根据dtb文件对相关硬件进行初始化,内核加载完毕后挂载根文件系统。u...

2019-11-12 10:58:31 556

原创 QT基础知识1

“.pro文件” 含一个项目解决方案的文件,包含当前QT版本、项目所有文件信息、调用的各模块组件QT += core gui 为基础组件,core是QT的内核,封装了C++库、图形库等,属于基础窗体;gui为一个固件,代表一个具体窗体(网页、按键等)。.pro.user 文件是当前QT编译的目录结构及环境变量,不同主机下编译的均不一样,会有差异,因此要是拿别人代码来用,首先删除该文件,QT重...

2019-11-08 17:31:11 302 1

原创 SQL3的简单操作

SQLite3使用sqlite3引擎打开一个数据库文件,不存在则在当前目录下自动创建sqlite3 文件名.sqlite关闭数据库文件:.quit创建表,查看表 “.table”create table 表名(列名1,列名2,…);//不存在则打印报错create table if not exists 表名(列名1,列名2,…);//不打印信息删除表 drop table 表名...

2019-11-06 19:12:32 1233

原创 QT初学之聊天工具的搭建项目笔记

UI图形界面Ui:图形界面的一个类头文件中:private:Ui::ChatPage *ui; //类的私有属性,表明对象无法进行修改。.cpp文件中ui(new Ui::login){ui->setupUi(this);//分配 ui 相应内存空间,该对象指向对应login类下的ui界面}显示某一类对应的图形界面ChatPage *chatPage; //对应...

2019-11-06 19:12:06 176

原创 ubuntu下生成简单部署文件

部署linux中部署类似win下快捷方式文件的设置ubuntu下的所有部署文件存放于在/usr/share/applications目录,文件后缀为.desktop一般我们可以根据里面文件内容仿制出我们需要的部署。简单设置:[Desktop Entry]Version=1.0 //版本号Encoding=UTF-8 //编码格式Name=Shotwell //显示名称Commen...

2019-11-06 14:53:06 83

原创 QT5.9.0版本解决静态编译问题

首先下载静态库链接:https://pan.baidu.com/s/1qqtD6bP-9B2oXrEN7-FHPg 提取码:comd下载opensslhttps://pan.baidu.com/s/1o8LmUy2 中的第3个文件目录存放静态库下载到QT程序目录中。openssl的存放:路径名称一定要一致静态编译设置工具->选项->Qt-versions添加我们下载的...

2019-11-06 14:27:52 1587

原创 求素数的优化算法

题目:求1~N范围中的素数。k为当前数值,j为被除数素数:一个大于1的自然数中,除了1和本身外无法整除其余数的数值。对于素数,可以忽略双数部分,因为均能被2整除,2也是素数做特殊情况,直接输出,即除去双数的可能,数据减少一半,即执行效率要提高一倍,k初始化为3,k=k+2。因为k只可能为单数,所有被除数可忽略双数,被除数 j 初始化为3,每次 j += 2。对于判断, 因为不是质数,那么...

2019-11-03 22:06:33 1243

原创 C++基础知识5(副本构造器、内联函数、容器与算法)

副本构造器首先理解深拷贝和浅拷贝的概念;假设类相同,将对象A赋值给对象B,成员中含指针1.深拷贝:A中成员指针申请了内存指向某段内存空间,A赋值给B,则B的指针也相应申请同样大小的空间,并且指向同一内存空间。2.浅拷贝,B中的指针不会申请空间,只是将A指针的值赋给了B指针,这会导致当对象A释放后,B对象将会造成访问错误。副本构造器的使用:class Myclass{public:...

2019-11-02 21:42:16 186

原创 C++基础知识4(捕获异常、动态内存、命名空间、类模板)

捕获异常捕获异常:一般用于运行时可能发生的异常,不要滥用于一般错误处理。1.try语句2.发生问题就抛出一个异常3.安排catch去捕获这个异常并进行相应处理,一个try语句必须对应catch语句,并且可以一对多,表示不同异常的处理类型4.在程序中我们可用throw保留字来抛出一个异常,在某个try语句块里执行过throw语句,它后面的所有语句(截止到这个try语句块末尾)将永远不会被执...

2019-11-02 21:30:45 119

原创 C++基础知识3(静态、虚方法、运算符重载、多继承、虚继承)

静态属性与静态方法静态属性:只能在定义的类中修改,对象无法修改写入,只能读取静态方法:静态成员是所有对象共享的,所以不能再静态方法里访问非静态的元素。所属空间不同非静态方法可以访问类的静态成员,也可以访问类的非静态成员。虚方法virtual编译器一般会对程序进行优化操作,对指针变量进行优化,会忽略掉子类中对基类行为的覆盖,为了避免编译器对对象的行为没有采取到覆盖的方法,即还是使用了...

2019-11-01 14:48:42 245

原创 C++ 有理数运算符重载

有理数运算重载要求:有理数为最简有理数,若分子与分母整除输出整数。#include <iostream>#include <string>#include <stdlib.h>class Ration{public: Ration(); Ration(int d, int m); Ration operator+(Ration d); Ra...

2019-11-01 12:43:14 1200

原创 C++基础知识2(字符串、类、静态、this、继承、访问控制、覆盖、重载、友元)

字符串std::string 字符串属于std类命名空间中的成员,代表字符串类型。定义方式:std::string str;str即为string的对象,继承相应属性与功能。对于字符串的简单常用操作有:提取字符串:str.substr(pos,len); //返回当前对象str字符串从pos开始的长度为len的子串比较字符串:可通过比较运算符进行比较(> < =...

2019-10-31 17:09:39 138

空空如也

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

TA关注的人

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