自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(33)
  • 资源 (8)
  • 收藏
  • 关注

原创 win10关闭未格式化U盘插入提示格式化弹窗

默认情况下,没有文件系统或文件系统损坏的磁盘插入windows后会提示格式化。该弹窗可以通过修改windows服务来关闭,具体如图。

2022-01-21 10:31:08 2185 1

原创 C语言宏定义的一些用法

do {...} while(0):在宏定义中合理使用do-while(0)可以更规范地使用宏定义/* 没有使用do-while(0)前 */#define Led_On() {LED_Enable; LED = 1;}int main(void){ Led_On(); // 此时,编译会报错,因为替换后是“{LED_Enable; LED = 1;};”多了个分号}/* 使用do-while(0) */#define Led_On() do{LED_Enable

2020-07-08 17:18:57 796

原创 USB通信包标识字段PID

包标识字段PID的定义格式如下图,包标识字段(PID)长度为8bit,由低4bit的类型字段和高4bit的校验字段组成。校验字段是类型字段的补码。例如,PID[3:0] = 0001B时,完整的PID字段则应该是:1110_0001B,表示令牌OUT。PID字段有如下4中类型信息包:令牌包:PID[1:0] = 01B; 握手包:PID[1:0] = 10B; 数据包:PID[1:0]...

2020-03-15 23:10:50 2946 1

原创 USB总线数据流

一、概述USB总线的数据流是USB主机和USB设备数据通信的基础。一般来说,一个完整的USB数据流包含3个阶段——令牌阶段、数据阶段、握手阶段。令牌阶段:定义了传输类型,表征数据流的开始。 数据阶段:包含了本次传输的数据。数据量大小根据端点和传输类型而定,最大为1024Byte。 握手阶段:用于数据的接收方报告此次数据传输是否成功。二、字段在USB协议中,USB数据传输数据流...

2020-03-15 22:25:52 779

原创 C语言:gets、puts、fgets、fput、gets_s函数

char *gets(char *s);int puts(const char *s);gets()函数用于读取整行输入,直到遇到换行符,然后丢弃换行符,存储其余字符,并且在这些字符后面添加一个’\0’使其成为一个C字符串。puts()函数与gets()函数配套使用,该函数用于显示字符串,并在末尾添加一个换行符。通常,gets()函数是不安全的,因为gets()函数只有一个参数s用...

2020-03-08 15:18:06 1253

原创 C语言:指针和数组

const char * p = "Hello World!";const char Array[] = "Hello World!";以上两种声明,p和Array都使用了字符串“Hello World!”的地址。在这种情况下,带双引号的字符串本身决定了预留给字符串的存储空间,但这两种形式并不是完全相同的。数组形式和指针形式有何不同呢?**数组形式(Array[])**在计算机的内存中分...

2020-03-08 10:41:39 160

原创 C语言:const关键字用法

const关键字在C语言中用于保护数据不被修改,即设置数据为只读模式。具体有以下几种用法:1. const创建变量const double PI = 3.1415926; /* const 变量 */const int days[5] = {0, 1, 2, 3, 4}; /* const 数组 */对于const变量和const数组,只能在定义的时候将其初始化,定义完成后即会变成...

2020-03-06 10:02:54 542

原创 如何上传项目到GitHub

第一步:登录自己的Github账号,创建要上传项目的存储库,并填写库名称及相应的描述,然后点击“Create repository”创建项目库:第二步:复制项目存储库链接,用于上传代码第三步:打开本地项目文件夹,创建本地仓库、添加文件、上传更改信息到本地.git仓库最后,将本地仓库上传到GitHub存储库...

2019-10-23 10:20:52 205

原创 创建本地SVN仓库

svn下载地址: https://tortoisesvn.net/downloads.html在本地创建SVN仓库的方法:1.下载安装[tortoisesvn](https://tortoisesvn.net/downloads.html),目前最新版本为1.12.02.选择一个空目录(必须为全空的,否则无法创建成功)(此次试验的路径为 F:\SVN-project)->点击右键--&...

2019-06-13 10:27:54 4100

原创 vscode 向下复制当前行(即visual studio 中的Ctrl + D)功能快捷键

 打开vscode左下角键盘快捷键设置,找到copy line down,即可查看当前默认快捷键为“shift + Alt + ↓”双击快捷键,输入自己想要的快捷组合,如Ctrl+D,然后回车即可设置自己的组合了...

2019-02-26 16:38:07 102293 4

原创 Linux设备驱动之字符设备 【1】创建字符设备

  创建一个字符设备并在/dev目录下创建节点的基本步骤:#include <linux/module.h>#include <linux/pci.h>#include <linux/kernel.h>#include <linux/delay.h>#include <linux/stddef.h>#include &l...

2019-02-24 16:03:07 516

原创 mini2440 ftp 553 Permission denied.

今天在Ubuntu使用mini2440 自带的ftp功能向开发板传输第一个helloWord文件,遇到以下问题:200 PORT command successful.553 hello: Permission denied.没有权限?什么鬼,我Ubuntu 使用的root用户,mini2440也是root权限,为什么会显示Permission denied.然后细致检查了一下m...

2019-02-20 22:49:21 415

原创 uboot 命令解释机制及添加新命令的方法

/****************************************************************************  * returns:  *  1  - command executed, repeatable  *  0  - command executed but not repeatable, interrupted commands a...

2019-01-29 22:11:25 748

原创 $(origin O)

        $(origin O)该形式是$(origin <variable>),origin是一个能返回<variable>定义位置的函数。$(origin O)的意思是获取变量O定义的位置。        在u-boot的Makefile中的开始位置(line69~line76),有这么一段代码:ifdef Oifeq ("$(origin O)", ...

2019-01-18 09:10:06 1714

原创 Python自带绘图库--turtle库简介

<turtle库>setup(width,height,startx,starty):设置窗体大小及位置,4个参数中后两个是可选的(默认情况在桌面中心);当需要控制窗体大小及显示位置的时候才需要用该函数。 goto(x,y):从当前位置去到点(x,y) bk(d),fb(d):后退或者前进d个单位 seth(angle),left(angle),right(angle):改变...

2019-01-03 12:33:27 1996

原创 Python字符串格式化

例子:程序:print("The total value of your change is ${0:0.2f}".format(total))结果:The total value of your change is $1.50     Format方法是Python内置的字符串方法,该方法是利用字符串作为一种模板,值作为参数插入模板中,从而形成一个新的字符串。形式如下:     ...

2019-01-03 12:25:47 224

转载 keil编译后生成的M51文件解析

原文地址:https://blog.csdn.net/liucheng5037/article/details/46934147通过*.m51文件我们可以清楚的看到单片机存储器的使用情况,以及可以看到每个变量包括局部变量的位置。之前碰到一个问题,同样的程序,在small模式下编译后运行没问题,但在large模式下可以编译,但是运行出错。最后查看m51文件,发现了问题,在一个对时序要求很严...

2018-08-09 09:09:32 3509

转载 C语言变量声明加冒号的用法

有些信息在存储时,并不需要占用一个完整的字节, 而只需占几个或一个二进制位。例如在存放一个开关量时,只有0和1 两种状态, 用一位二进位即可。为了节省存储空间,并使处理简便,C语言又提供了一种数据结构,称为“位域”或“位段”。所谓“位域”是把一个字节中的二进位划分为几 个不同的区域,并说明每个区域的位数。每个域有一个域名,允许在程序中按域名进行操作。这样就可以把几个不同的对象用一个字节的二进制位域...

2018-07-25 16:37:31 410

原创 Visual Studio 2017设置回车(enter)代码补全

在默认情况下,visual studio 2017是使用Tab进行代码补全的,对于用惯了sublime 的我来说,总觉得有点不爽,捣鼓着这么主流的IDE肯定是可以设置的,然后各种查找,发现可以通过改动主动提交成员列表为“true”来实现回车自动补全的功能,具体路径如下:工具-->选项-->文本编辑器-->C/C++-->高级-->主动提交成员列表...

2018-03-22 15:14:49 31609 21

原创 keil 编译问题之系统因素影响 hexbin 功能

keil uVision3中的hex2bin.bat批量处理文件对操作系统是有区别的32位系统中的内容为: hexbin.exe Out\Scan.hex Out\Scan.bin i64位系统中的内容为: hexbin-64.exe -p 0 Out\Scan.hex可见,在32位系统中,keil编译转换时候,调用的是hexbin.exe工具;而在64位系统中,调用的是hexbin-64.exe...

2018-03-22 09:03:50 452

原创 友善之臂mini2440 烧录uboot的方法

利用Minitools工具将uboot.bin 文件烧录进mini2440开发板的步骤:    1、用USB线将开发板和电脑相连,开发板的S2开关拨到NOR一侧,打开minitools,打开开发板电源,即可显示“已连接开发板(S3C2440 400MHz......)”    2、勾选‘Linux’--> 'linux bootloader'    3、选择uboot.bin目录    4、...

2018-03-10 15:12:41 1672

原创 关于编译uboot时出现“undefined reference to '__aeabi_unwind_cpp_pr0'”的解决方法

编译uboot的时候出现如上错误,uboot官方给出了解决办法方法如下:编辑uboot根路径下的/lib_arm/eabi_compat.c  文件在最后加入空函数__aeabi_unwind_cpp_pr0(void)即可...

2018-03-10 11:19:40 2126

原创 u-boot源码官方下载地址

ftp://ftp.denx.de/pub/u-boot/

2018-03-10 09:27:41 1074

原创 Linux内核下载地址(官方网站)

https://www.kernel.org/pub/linux/kernel/

2018-03-10 09:25:38 19994

转载 USB端点详解

__u8 bEndpointAddress; //端点地址:0~3位是端点号,第7位是方向(0-OUT,1-IN)端点地址:总共8位0,1,2,3四位表示端点号,第7位表示端点方向那么由这5位可以确定32个端点地址.其中输入端点0-15输出端点0-15Out endpoint for all omron health devices,所有Omron健康设备的输出端点地址(共8位,包括端点号,端点类...

2018-03-09 15:05:02 5743 2

原创 stm32之IO操作(基于库函数)

stm32之GPIO库函数学习笔记

2017-10-31 20:24:06 5629

原创 arm-linux-gcc的使用

1.arm-linux-gcc编译器:1)预处理:将C和汇编源程序进行预处理,生成“.i”目标文件arm-linux-gcc -E -o *.i *.c/*.S2)编译:将“.i”目标文件编译生成“.s”汇编文件arm-linux-gcc -S -o *.s *.c3) 汇编:将编译得到的“.s”汇编文件按照给定的指令集转换成符合一定格式的机器码arm-li

2017-09-20 08:54:56 2230

原创 网络编程——connect()函数用于无连接的网络服务

如果要处理一个面向连接的网络服务(SOCK_STREAM或SOCK_SEQPACKET),那么在开始交换数据以前,需要在一个请求服务的进程套接字(客户端)和提供服务进程的套接字(服务器)之间建立一个连接。使用connect函数来建立连接: #include <sys/types.h> #include <sys/socket.h> int c

2017-08-14 20:24:08 428

原创 基于socket的TCP和UDP通讯的简单建立

最近在学习Linux网络编程,写下此学习笔记。一、建立简单TCP连接的步骤:服务器端: 1.调用socket()函数定义套接字; 2.调用bind()函数绑定本地地址和端口; 3.调用listen()函数启动监听端; 4.调用accept()函数从已连接队列中提取客户链接,accept为阻塞类型函数,当连接队列为空时,阻塞等待; 5.调用IO函数与客户端通讯;

2017-08-12 17:16:52 294

原创 系统移植之uboot源代码简要分析(2)

经过上一篇系统移植之uboot源代码简要分析(1)对uboo进行分析后,我们知道BootLoader的第二阶段启动(BL2)从start_armboot处开始执行,start_armboot函数定义在“lib_arm/board.c”中 void start_armboot (void){ init_fnc_t **init_fnc_ptr; char *s; int m

2017-07-23 16:06:53 383

原创 系统移植之uboot源代码简要分析(1)

本次Linux系统移植是基于三星公司的S5PV210(又名Hummingbird)处理器的移植;采用的BootLoader为三星官方的uboot:android_uboot_smdkv210.tar.bz2 开发平台为Ubuntu12.04 交叉编译工具为arm-linux-gcc4.4.3注:s5pv210属于s5pc11x系列芯片,uboot中使用的是s5pc11x文件重要文件文件目录列表

2017-07-22 15:23:09 530

原创 arm-linux-ld: error: Source object has EABI version 5, but target u-boot has EABI version 0

在移植uboot时候,对uboot源代码进行编译,出现如下版本错误,在网上搜了很多博客文章,也没有解决。 想着,既然是arm-linux-ld交叉编译链的错误,换个版本的编译器能不能解决呢。于是,将原本Ubuntu12.04上装的交叉编译链更改为”arm-linux-gcc 4.4.3”版本。最终顺利解决, uboot1.3.4编译出错 编译步骤: make smdkv2

2017-07-21 12:47:29 1049

原创 一份Makefile的详解

指定编译器为arm-linux-gcc,链接器为arm-linux-ld,用arm-linux-objcopy 来将ELF格式的可执行文件转换为二进制文件.CC = arm-linux-gcc LD = arm-linux-ld OBJCOPY = arm-linux-objcopy OBJDUMP = arm-linux-objdump 指定库文件,”-l” 用来链接放在/lib和/usr/

2017-07-13 12:00:55 277

USB 3.2 Revision 1.0.pdf

Universal Serial Bus 3.2 Specification 最新USB 3.2协议完整版(英文),带标签,需要的同学拿去吧,

2020-03-25

SecureCRT_8.5

最新的Secure CRT_8.5免费破解版,亲测可用。

2018-09-27

keil hex2bin 转换工具

keil的代码转换工具,内有32位系统和64位系统两个版本的hex2bin.exe工具,用于解决32位系统编译和64位系统编译得到的bin文件不一致的情况。将其替换到工程文件中的即可,内有具体操作方法

2018-03-22

android_uboot_smdkv210.tar.bz2

android_uboot_smdkv210.tar.bz2

2017-07-22

ARM指令速查手册

ARM指令速查手册

2017-07-21

空空如也

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

TA关注的人

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