自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(80)
  • 资源 (3)
  • 收藏
  • 关注

转载 Repo学习

目录 1. 概要2. 工作原理 2.1 项目清单库(.repo/manifests)2.2 repo脚本库(.repo/repo)2.3 仓库目录和工作目录 3. 使用介绍 3.1 init3.2 sync3.3 upload3.4 download3.5 forall3.6 prune3.7 start3.8 status 4. 使用实践 4.1 对项目清单文件进行定制4.2 解决无法下载Android源码4.3 更快更省的下载远程代码4.4 避免在匿名分支上工作4.5 使用up

2021-06-17 14:00:30 1162

转载 Linux图形化界面发展历程

图形化界面背景:  虽然在商业方面存在竞争,GNOME与KDE两大阵营的开发者关系并没有变得更糟,相反他们都意识到支持对方的重要性:如果KDE和GNOME无法实现应用程序的共享,那不仅是巨大的资源浪费,而且将导致Linux出现根本上的分裂。  KDE与GNOME是目前Linux/UNIX系统最流行的图形操作环境。从上个世纪九十年代中期至今,KDE和GNOME都经历了将近十年的漫漫历程,两者也都从最初的设计粗糙、功能简陋发展到相对完善的阶段,可用性逼近Windows系统。图形环境的成熟也为Linux的推广

2021-06-16 10:54:20 866

转载 POSIX介绍

POSIX表示可移植操作系统接口(Portable Operating System Interface of UNIX,缩写为 POSIX ),POSIX标准定义了操作系统应该为应用程序提供的接口标准。简单地说:完成同一功能,不同内核提供的系统调用(也就是一个函数)是不同的,例如创建进程,linux下是fork函数,windows下是creatprocess函数。好,我现在在linux下写一个程序,用到fork函数,那么这个程序该怎么往windows上移植?我需要把源代码里的fork通通改成creatp

2021-02-20 16:20:06 1850

转载 glibc和libc的关系和区别

首先C是一门语言,包含了一些规定的语法和结构,但并没有包含到我们平常所用的函数,如prinf()和scanf(),这些只是由C标准库所提供的。之所以存在C标准库,是因为这些已经编好的函数是我们平常编程经常用到的,这可以方便我们的工作。当然,你也可以自己编写方便编程、属于自己的C库。C标准仅仅是规定了接口,也就是仅规定了函数原型,或者说是头文件,而具体的实现各有不同。glibc库是其中一种对C标准的实现,由GNU完成,GNU C LIBRARY。我们平常写C程序时,为了可以用到一些规定好的函数,会在前面包含头

2021-02-19 19:10:48 1430

原创 linux rm -rf 删除后的恢复

今天在写代码的时候执行make clean ,本应该删除的是某个变量下的所有文件,结果因为我把变量名改了,此时,变量为空了,所以现在变成了删除根目录下的所有文件。真是血的教训,辛辛苦苦写了好多天的代码...

2021-02-19 16:29:06 1225 1

原创 GDB常用命令

1、运行命令file:装入需要调试的程序。run:简记为 r ,其作用是运行程序,当遇到断点后,程序会在断点处停止运行,等待用户输入下一步的命令。continue (简写c ):继续执行,到下一个断点处(或运行结束)step (简写s):单步调试如果有函数调用,则进入函数;与命令n不同,n是不进入调用的函数的next:(简写 n),单步跟踪程序,当遇到函数调用时,也不进入此函数体;此命令同 step 的主要区别是,step 遇到用户自定义的函数,将步进到函数中去运行,而 next 则直接调

2021-02-19 15:28:35 187

转载 回调函数和钩子函数的区别

回调函数回调函数是调用者将回调函数的指针传递给了调用函数,当调用函数执行完毕或者达到一定的条件后,通过函数指针来调用的函数钩子函数钩子实际上是一个处理消息的程序段,通过系统调用,把它挂入系统。每当特定的消息发出,在没有到达目的窗口前,钩子程序就先捕获该消息,亦即钩子函数先得到控制权。这时钩子函数即可以加工处理(改变)该消息,也可以不作处理而继续传递该消息,还可以强制结束消息的传递。对每种类型的钩子由系统来维护一个钩子链,最近安装的钩子放在链的开始,而最先安装的钩子放在最后,也就是后加入的先获得控制权。

2021-01-15 16:32:16 412 1

转载 CPU、MPU、MCU、SOC和SOPC的区别

CPU:是一台计算机的运算核心和控制核心。CPU由运算器、控制器和寄存器及实现它们之间联系的数据、控制及状态的总线构成。差不多所有的CPU的运作原理可分为四个阶段:提取(Fetch)、解码(Decode)、执行(Execute)和写回(Writeback)。 CPU从存储器或高速缓冲存储器中取出指令,放入指令寄存器,并对指令译码,并执行指令。MPU:计算机(即电脑)分为巨型机,大型机,中型机,小型机和微型计算机5类。这5类计算机的运算核心统称为CPU,而MPU只是微型计算机(微机)的核心处理器。也就是说

2021-01-15 10:43:56 1198

转载 linux下chmod +x的含义

chmod +x 的意思给文件增加执行权限chmod +x 和 chmod u+x的区别chmod a+x 其中加号前面的字母的含义u 代表用户.g 代表用户组.o 代表其他.a 代表所有.这意味着chmod u+x somefile 只授予这个文件的所属者执行的权限而 chmod +x somefile 和 chmod a+x somefile 是一样的,都表示给所用用户赋予执行权限...

2020-12-19 17:51:26 1550 1

原创 framebuffer学习及fb绘图程序

一、了解framebuffer在Linux系统下,如果我们想对lcd屏或者其他显示器件进行画点、画线、画图案等操作,那么我们就必须要了解framebuffer(帧缓存)。对于用户来说,帧缓冲是Linux为显示设备提供的一个接口,它把一些显示设备描述成一个缓冲区,允许应用程序通过 FrameBuffer定义好的接口访问这些图形设备,从而不用去关心具体的硬件细节。对于驱动工程师来说,帧缓存是内核驱动申请的一片内存空间,然后lcd内有一片sram,cpu内部有个lcd控制器,它有个单独的dma用来将fram

2020-12-13 13:50:51 2760 5

转载 Makefile中的include命令

 关于Makefile中的include命令,网上有很多介绍,比较普遍的说法是:Makefile中的include命令与C语言中的include命令类似,命令include file.dep,即把file.dep文件在当前Makefile文件中展开,亦即把file.dep文件的内容包含进当前Makefile文件;如果Makefile中有以file.dep为目标的规则,make会先使用规则对file.dep文件进行更新,然后将更新后的file.dep文件包含进当前Makefile文件。[网上描述] 这种关于

2020-12-13 13:21:50 6420

转载 Linux下gcc的库文件及动态库搜索路径

1. 头文件 gcc在编译时如何去寻找所需要的头文件: 头文件的搜索会从-I指定的目录开始;然后搜索gcc的环境变量 C_INCLUDE_PATH,CPLUS_INCLUDE_PATH,OBJC_INCLUDE_PATH 设置的目录;再搜索系统目录 /usr/include 和 /usr/local/include(centos7中该目录下是空的);最后搜索gcc的一系列自带目录(如/usr/include/c...

2020-11-30 16:54:41 593

转载 直线、圆环绘制算法

一、直线算法1、数值微分法(DDA算法)DDA算法主要是利用了增量的思想,通过同时对x和y各增加一个小增量,计算下一步的x和y值。根据上式可知△x=1时,x每递增1,y就递增k,所以只需要对x和y不断递增就可以得到下一点的函数值,这样避免了对每一个像素都使用直线方程来计算,消除了浮点数乘法运算。#include <Windows.h>#include <iostream>#include <cmath>using namespace std;const

2020-11-29 15:58:55 1338

原创 ARGB颜色格式学习

概述RGBRGB(Alpha,Red,Green,Blue)色彩模式是工业界的一种颜色标准,是通过对红®、绿(G)、蓝(B)三个颜色通道的变化以及它们相互之间的叠加来得到各式各样的颜色的,RGB即是代表红、绿、蓝三个通道的颜色,这个标准几乎包括了人类视力所能感知的所有颜色,是目前运用最广的颜色系统之一。RGB图像只使用三种颜色,就可以使它们按照不同的比例混合,在屏幕上呈现16777216(256 * 256 * 256)种颜色ARGB一种色彩模式,也就是RGB(Alpha,Red,Green,Blu

2020-11-29 13:16:51 8675

原创 bmp图片格式解析

BMP文件数据从文件头开始先后分为四个部分bmp文件头:提供文件的格式、大小等信息struct bitmap_fileheader { unsigned short type; //表示位图类型 unsigned int size; //4字节 表示文件的大小,单位是字节 unsigned short reserved1; //2字节 这个是保留的,为0 unsigned short reserved2; //2字节 这个也是保留的,为0 unsigned int off_bits; /

2020-11-05 20:47:45 483

转载 SVN安装与使用总结

SVN使用教程总结 SVN简介:  为什么要使用SVN?       程序员在编写程序的过程中,每个程序员都会生成很多不同的版本,这就需要程序员有效的管理代码,在需要的时候可以迅速,准确取出相应的版本。 Subversion是什么?    它是一个自由/开源的版本控制系统,一组文件存放在中心版本库,记录每一次文件和目录的修改,Subversion允许把数据恢复到早期版...

2020-10-30 13:49:28 197 1

原创 网络协议(TCP/IP、UDP)总结

什么是协议协议实际上就是一种约定。好比说,我们做一个石头剪刀布的游戏,我们约定好:石头>剪刀、剪刀>布、布>石头,以此作为游戏规则。我们所有人都遵循这个约定,那么就不需要任何的多余的沟通便可以完成这个游戏。而这种方式形成的约定实际上就是一种协议了。什么是协议簇一组协议的集合/相互关联的一组协议什么是协议栈协议的实现和一组协议的关系以及该组协议的层次结构,一般有清晰地up/down依赖关系和上下行交互OSI模型和TCP/IP模型及对应协议OSI七层模型对应网络协议TCP

2020-09-17 19:54:34 650

转载 无线通信中几个重要概念

信道信道是对无线通信中发送端和接收端之间的通路的一种形象比喻,对于无线电波而言,它从发送端传送到接收端,其间并没有一个有形的连接,它的传播路径也有可能不只一条,但是我们为了形象地描述发送端与接收端之间的工作,我们想象两者之间有一个看不见的道路衔接,把这条衔接通路称为信道。信道具有一定的频率带宽,正如公路有一定的宽度一样。一般可以分为物理信道、传输信道、逻辑信道三种。信道带宽在模拟通信系统或传输介质中,所说的“带宽”是指信号频率的通频范围,单位为“赫兹”。信道带宽是限定允许通过该信道的信号上限频率和.

2020-09-14 21:46:25 910

原创 QT实现员工管理系统

最近学习需要做一个员工管理系统的项目。项目要求是客户端服务器之间进行通信,注册与查询员工信息,因为学过QT就想着用QT来实现以下客户端,C来实现服务器。下面是我的客户端界面登陆界面注册界面主界面由于时间太紧,只写了登陆和注册的功能客户端服务器源码在github小伙伴可以自行下载https://github.com/a1449660223/Staff如果问题私信留言交流,相互学习共同进步...

2020-09-12 15:07:01 2796

原创 git的使用及常用命令

【1】git的安装ubuntu:sudo apt-get install gitmac :brew install git【2】git的配置git命令的帮助方法 git help 命令git config --global user.name "dzs" #配置用户名git config --global user.email "[email protected]" #配置邮箱git config --list #查看配置的【3】git的工作模式远程仓库 &lt

2020-09-08 11:53:32 396

原创 并发竞态的解决方法

有多个进程同时访问同一个驱动程序中的临界资源的时候,竞态就会产生了。竞态产生的根本原因:1.对于单核cpu,内核支持抢占。2.多核cpu,核与核之间会产生竞态3.中断和进程间也会产生竞态4.中断和中断间产生竞态(中断嵌套可以)(arm架构不支持)一、中断屏蔽(了解)中断屏蔽只适合在单核cpu。中断屏蔽保护的临界资源要尽可能的短(时间),如果屏蔽的时间较长,可能导致内核的崩溃,或者用户数据的丢失。local_irq_disable();//临界资源local_irq_enable()

2020-08-29 21:07:53 406

原创 ARM中特殊的功能寄存器

ARM7,ARM9,ARM11 有37个32-Bits长的寄存器.1 个用作PC( program counter)1个用作CPSR(current program status register)5个用作SPSR(saved program status registers)30 个通用寄存器Cortex体系结构下有40个32-Bits长的寄存器Cortex-A(ARM-v7)多出3个寄存器,Monitor 模式 r13_mon , r14_mon, spsr_mon1 个用作PC(

2020-08-28 21:23:52 1620

原创 ARM裸机开发外设不工作

在进行ARM裸机开发使用外设的时候可能会遇到无法启动 直接卡死的情况这可能是因为uboot没有进行外设的复位初始化此时就需要手动进行外设的初始化当芯片跑上操作系统的时候 就没有这种情况出现是因为内核在启动的时候对外设进行了复位,因此可以直接使用外设...

2020-08-26 11:30:27 139

原创 系统移植详解过程

系统移植linux系统移植分为四块1、环境搭建2、BootLoader移植3、linux内核的移植4、根文件系统移植系统移植具体的部署方式分为两种:开发阶段系统的部署uboot镜像(ubootpak.bin) : 下载到flash/SDlinux内核镜像(uImage) : 通过tftp下载根文件系统(rootfs) : 通过nfs挂载特点:下载调试方便,适合做开发产品阶段系统的部署uboot镜像(ubootpak.bin) : 下载到flas

2020-08-25 21:27:41 3870

原创 linux根文件系统编译和移植过程

一、概念根文件系统:系统运行所必须依赖的一些文件(比如脚本、库、配置文件、命令…),本质就是目录和文件。根文件系统镜像:将根文件系统按照某种格式进行打包压缩后生成的单个文件 rootfs-----> ramdisk.img文件系统:一种管理和访问磁盘的软件机制,不同文件系统管理和访问磁盘的机制不同二、移植根文件系统的工具 —> busybox1、短小精悍2、版本更新较快,版本之间差异不大三、如何获取busyboxhttps://busybox.net/downloads/

2020-08-25 21:05:33 3372

原创 Qt绘图之QGraphicsScene QGraphicsView QGraphicsItem详解

Graphics View提供了一个界面,它既可以管理大数量的定制2D graphical items,又可与它们交互,有一个view widget可以把这些项绘制出来,并支持旋转与缩放。这个柜架也包含一个事件传播结构,对于在scene中的这些items,它具有双精度的交互能力。Items能处理键盘事件,鼠标的按,移动、释放、双击事件,也可以跟踪鼠标移动。Graphics View使用BSP树来提供对item的快速查找,使用这种技术,它可以实时地绘制大规模场景,甚至以百万items计。Graphics Vi

2020-08-25 20:26:45 2433

原创 linux内核编译和移植过程

一、linux内核的特点1、linux内核是开源的,作者:linusgit : 版本管理工具源码由C语言和汇编实现2、linux内核支持多种硬件架构平台3、linux内核采用模块化方式编写,分层思想4、linux内核使用C和汇编代码实现,在内核中最好不要使用C++5、linux内核具有很好的移植和裁剪特性通过图形化界面的配置方式就可以完成裁剪二、linux内核源码的获取1、linux官方获取https://mirrors.edge.kernel.org/pub/linux/kern

2020-08-25 20:19:25 1295

原创 了解uboot及常用命令

一、bootloader概念boot:引导loader:加载bootloader:引导加载内核系统二、u-boot和bootloader的关系?bootloader是一些列引导内核程序的统称。u-boot属于bootloader中的一种。bootloader 种类:vivi redboot u-boot bios …嵌入式开发中都是使用的u-boot。三、u-boot的特点1、u-boot是一个开源的软件2、uboot支持多种架构,arm powerPC mips x86 …3、u

2020-08-24 21:17:17 295

原创 系统移植产品阶段的部署

产品阶段的部署uboot镜像(ubootpak.bin) : flash/SDlinux内核镜像(uImage) : flash/SD根文件系统镜像(ramdisk.img) : flash/SD1、拷贝uImage和ramdisk.img到tftpboot目录下2、启动开发板,进入uboot的交互界面3、 下载uImage镜像到EMMC中tftp 0x48000000 uImagemmc write 0x48000000 0x800 0x40004、下载r

2020-08-24 21:08:13 194

原创 系统移植开发阶段部署

开发阶段部署阶段uboot镜像(ubootpak.bin) : flash/SDlinux内核镜像(uImage) : tftp下载根文件系统(rootfs) : nfs挂载1、启动uboot,进入uboot的交互界面2、使用tftp命令下载uImage内核镜像到内存中。下载之前需要将uImage的镜像拷贝到tftpboot目录下。tftp 0x48000000 uImage3、设置uboot的自启动参数:bootargsbootargs:自启动的环境变量lin

2020-08-24 21:06:49 230

原创 linux下uboot编译和移植过程

一、获取u-boot源码1、u-boot官方获取(DENX)https://ftp.denx.de/pub/u-boot/2、从芯片厂家获取3、从开发板厂家获取4、从部门主管获取三星没有将S5p6818的硬件支持的源码开源到u-boot官方,不可以从官方获取u-boot源码,注:本次实验使用的是u-boot-2014.07版本 开发板是FS6818 芯片S5p6818二、u-boot版本的选择1、不选择太新2、不选择太旧3、选择稳定版本rc:表示测试版三、移植的准备工作获取硬件

2020-08-24 21:02:11 1512

原创 烧写uboot的三种方式

一、使用ubuntu中的sdtool工具将u-boot镜像烧写到SD卡中sdtool工具下载链接前提:必须使用读卡器,电脑自带的SD卡卡槽不可以1、拷贝sdtool工具到ubuntu中porting\系统移植资料\工具\sdtool2、sdtool工具中的文件分析s5p6818-sdmmc.sh : 将ubootpak.bin文件写到SD卡ubootpak.bin : u-boot的镜像文件后边u-boot移植目的就是得到ubootpak.bin文件。如果要测试自己的u-boot的镜

2020-08-22 21:07:38 11328 1

原创 gnu交叉编译相关的常用命令

前缀:arm-none-linux-gnueabi-ubuntu系统中x86架构的GUN命令:/usr/bin以arm阶段汇编点灯代码为例:gcc 编译命令arm-none-linux-gnueabi-gcc -c led_asm.S -o led_asm.old 链接:将所有的.o文件链接生成可执行文件(.elf)arm-none-linux-gnueabi-ld -Ttext=0x43c00000 led_asm.o -o led_asm.elf-Tmap.lds : 指定链接脚本

2020-08-22 19:57:23 548

原创 tar压缩

tar压缩选项-c: 建立压缩档案-x:解压-t:查看内容-r:向压缩归档文件末尾追加文件-u:更新原压缩包中的文件这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个。下面的参数是根据需要在压缩或解压档案时可选的。-z:有gzip属性的-j:有bz2属性的-Z:有compress属性的-v:显示所有过程-O:将文件解开到标准输出下面的参数-f是必须的-f: 使用档案名字,切记,这个参数是最后一个参数,后面只能接档案名。tar -cf all.tar

2020-08-21 11:29:48 816

转载 Makefile双冒号的使用规则

双冒号规则就是使用“::”代替普通规则的“:”得到的规则。当同一个文件作为多个规则的目标时,双冒号规则的处理和普通规则的处理过程完全不同(双冒号规则允许在多个规则中为同一个目标指定不同的重建目标的命令)。首先需要明确的是:Makefile中,一个目标可以出现在多个规则中。但是这些规则必须是同一类型的规则,要么都是普通规则,要么都是双冒号规则。而不允许一个目标同时出现在两种不同类型的规则中。双冒号规则和普通规则的处理的不同点表现在以下几个方面:1、双冒号规则中,当依赖文件比目标更新时。规则将会被执行。对于

2020-08-19 20:20:55 754

原创 配置Ubuntu静态地址

图形界面设置Ubuntu的静态ip地址右上角有一个wifi或者上下箭头的图标选择这个选项Edit Contionsipv4—>Manual(手动方式)ip :192.168.0.210netmask :255.255.255.0gatewayip:192.168.0.1DNS :8.8.8.8sudo service network-manager restart重启Ubuntu的网络管理修改为自己的ip ,注意保持网段相同命令行配置Linux网络静态i

2020-08-18 17:49:23 676

原创 【c语言】绝对定位

C语言中的关键字__attribute_____attribute__( at(绝对地址) )的作用分两个,一个是绝对定位到Flash,另个一是绝对定位到RAM。1、定位到flash中,一般用于固化的信息,如出厂设置的参数,上位机配置的参数,ID卡的ID号,flash标记等等const u16 gFlashDefValue[512] __attribute__((at(0x0800F000))) = {0x1111,0x1111,0x1111,0x0111,0x0111,0x0111};//定位在fl

2020-08-11 22:13:59 537

原创 LED闪烁(汇编)

该汇编程序是基于S5P6818X芯片(cortex-A53)的一个简单汇编程序,实现LED闪烁功能 .text .global _start_start: @ 1. 设置GPIOA28引脚为GPIO功能 @ GPIOAALTFN1[25:24] = 0b00 @ 0xC001A024 为GPIOAALTFN1寄存器的地址 ldr r0, =0xC001A024 @在寄存器r0中存入GPIO控制寄存器GPIOAALTFN1的地址 ldr r1, [r0] @加载GPIO控制寄存器G

2020-08-11 22:04:03 7034

原创 异常处理程序汇编过程分析

当程序运行过程中出现异常的时候,CPU是怎么执行的呢,下面来看一下当一个中断发生时需要响应中断,那么就要保存现场:1、保存cpsr到spsr_<mode>2、修改cpsr 1.切换到ARM状态 2.切换到对应的异常模式(在这里是SVC) 3.禁止相应的中断位(根据需要)3、保存返回地址到lr_<mode>4、跳转到相应的异常向量表以上为保存现场的过程(四大步三小步)CPU自动完成保存现场的过程异常向量表异常向量表是内存上的一块地址空间,这块空间的大小是32字节

2020-08-11 20:29:56 551

原创 ARM常用汇编指令

1、数据操作指令数据搬移指令mov:移动指令mvn:取反移动指令语法格式:{cond}{s} {Rd}, {oprand2}mov r0, #0xFF // 立即数0xFF放入寄存器r0 立即数前需要加“#”mov r1, r0 // 将寄存器r0的数据放入寄存器r1中mvn r2, #0xFF // r2 = ~0xFF(0xFFFFFF00)mov r3, #0xFFFFFF // 0xFFFFFF是有效数,写入机器码会转换成立即数#~0xFF0000

2020-08-11 17:46:09 2337

ImageWriter.rar

此工具用于Windows下将uboot镜像下载到SD卡中,内有fs6818uboot镜像,具体的下载操作步骤可以参考https://blog.csdn.net/q1449660223/article/details/108174423

2020-08-22

sdtool.rar

此工具用于Ubuntu下将uboot镜像下载到SD卡中,内有fs6818uboot镜像,具体的下载操作步骤可以参考https://blog.csdn.net/q1449660223/article/details/108174423

2020-08-22

74HC595.rar

此驱动函数 基于STM32F103 HAL库,文件开头有相对应硬件依托的引脚定义,如果需要在其他单片机运行 只需要修改文件开头定义即可。

2020-04-23

空空如也

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

TA关注的人

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