申小白
码龄10年
  • 431,972
    被访问
  • 68
    原创
  • 6,728
    排名
  • 199
    粉丝
关注
提问 私信
  • 加入CSDN时间: 2012-05-06
博客简介:

申小白

博客描述:
小白工作室
查看详细资料
  • 4
    领奖
    总分 709 当月 44
个人成就
  • 获得254次点赞
  • 内容获得32次评论
  • 获得1,296次收藏
创作历程
  • 2篇
    2022年
  • 5篇
    2021年
  • 12篇
    2020年
  • 28篇
    2019年
  • 42篇
    2018年
  • 9篇
    2017年
成就勋章
TA的专栏
  • gdb
    3篇
  • arm
    1篇
  • IC
    3篇
  • FPGA
  • OS
    1篇
  • SD学习
    11篇
  • ACPI
  • NvMe
    1篇
  • git教程
    3篇
  • pci-express
    1篇
  • python-小项目
    6篇
  • SCSI
    1篇
  • Linux驱动
    25篇
  • EMMC和UFS
    1篇
  • AI
    1篇
  • MCU
    3篇
  • USB
    14篇
  • C51
    4篇
  • gcc
    1篇
  • 最近
  • 文章
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

U-boot下进行gdb 调试

1、编译选项设置添加调试选项-g 保留调试信息,否则不能使用GDB进行调试。例如,对test.c 文件进行调试编译test.c :int main(){ return 0;};gcc test.c -o test -g在 u-boot 中需要在Makefile 中打开 -g 编译选项生成的debug 信息如下, 可以通过 readelf -S u-boot|grep debug来查看。其中 .debug_xxxx 存放的就是调试信息, .rela.debug_xxxx 是记
原创
发布博客 2022.05.13 ·
69 阅读 ·
0 点赞 ·
0 评论

UAC协议讲解

一、简介UAC是USB Audio Class的缩写,有时也叫UAD,UAD是USB Audio Device的缩写。UAC/UAD定义了在USB规范下实现音频的设备的实现和控制功能,这些功能包括不仅音频数字部分的,也包括模拟部分。这些音频数据(模拟和数字)和用于直接控制音频环境的功能,如音量和音调控制。这个音频设备类不包括操作与音频数据的复制,如磁带传输机制或CD-ROM驱动器控制。UAC 目前的发展已经经历了1.0 ,2.0 到现在的3.0.win10目前只支持到UAC2.0注意:UAC3.0
原创
发布博客 2022.02.17 ·
1987 阅读 ·
0 点赞 ·
0 评论

FAT32详解

FAT32详解1. FAT32文件系统由DBR及其保留扇区,FAT1,FAT2和DATA四个部分组成, 如下图所示DBR及其保留扇区:DBR的含义是DOS引导记录,也称为操作系统引导记录,在DBR之后往往会有一些保留扇区。FAT1:FAT的含义是文件分配表,FAT32一般有两份FAT,FAT1是第一份,也是主FAT。FAT2:FAT2是FAT32的第二份文件分配表,也是FAT1的备份。DATA:DATA也就是数据区,是FAT32文件系统的主要区域,其中包含目录区域。1-1. FAT32文
原创
发布博客 2021.09.24 ·
3669 阅读 ·
1 点赞 ·
0 评论

BOT 协议解析

简介USB Mass storage Device协议即海量存储设备协议适用于硬盘,U盘等大容量存储设备。协议使用的接口端点有BulkIn、BulkOut端点。BOT 的传输流程如下:CBW指令格式CBW(Command Block Wrapper)的长度为31个字节,具体定义如下图:dCBWSignature:CBW的标识,固定值:43425355h (little endian)。dCBWTag:主机发送的一个命令块标识,设备需要原样作为dCSWTag(CSW中的一部分)再发送给Ho
原创
发布博客 2021.09.22 ·
240 阅读 ·
0 点赞 ·
0 评论

Linux 文件属性以及修改

Linux 文件属性Linux 文件或目录的属性主要包括:文件或目录的节点、种类、权限模式、链接数量、所归属的用户和用户组、最近访问或修改的时间等内容。具体情况如下:通过 ls -lih 可以知道文件属性,具体形式如下:第一列:inode第二列:文件种类和权限;第三列: 硬链接个数;第四列: 属主;第五列:所归属的组;第六列:文件或目录的大小;第七列和第八列:最后访问或修改时间;第九列:文件名或目录名inode 的值是:10227361文件类型:文件类型是d,表示这是一个是目
原创
发布博客 2021.08.23 ·
518 阅读 ·
0 点赞 ·
0 评论

安装Numpy

1)、安装Python3.4版本以上,因为这样会自带pip(包管理器的安装)检查Python版本。打开cmd,输入Python2)、去下载numpyhttps://www.lfd.uci.edu/~gohlke/pythonlibs/#numpy3)、下载后将numpy放在Python安装目录下的scripts中4)、打开控制台cmd,进入到python\Scripts目录下,5)、我们在命令窗口输入:Python -m pip install -U pip (用于更新 pip)
原创
发布博客 2021.08.04 ·
1951 阅读 ·
1 点赞 ·
0 评论

USB 协会认证简介

1、USB-IF协会认证:USB IF全称USB Implementers Forum,是由一群开发通用串行总线规范的公司创立的非营利性组织。USB-IF组织的成立旨在推广通用串行总线技术并提供相应的技术规范,以促进高质量的USB外设(设备)的开发,使符合规范的产品顺利通过兼容性测试。所以为了表明产品通过USB协会规范,必须申请USB-IF协会认证。2、简介:USB协会认证:USB-IF是一个非营利性组织,于1990年代初由一小组领先的技术公司创立。该组织现在拥有超过700家成员公司,其在相关领域的各
原创
发布博客 2021.03.31 ·
1184 阅读 ·
0 点赞 ·
0 评论

ARM 常见问题总结

1、relocation truncated to fit: R_ARM_THM_CALL against symbol 'xxx'可能的原因有几种:1、第一种就是如下文所说,超出b/bl 跳转范围,这个可以看编译出来的code 地址来确认。2、第二种可能是code 所在的section 属性有问题例如下面这段汇编:test 在 .startup section中,Test2 在 .text section中test 会调用Test2, 编译过程中会报错:relocation truncate
原创
发布博客 2020.12.30 ·
533 阅读 ·
0 点赞 ·
0 评论

存储卡的发展史

一、简介存储卡(memory card), 或称快闪存储卡、闪卡,是一种固态电子快闪存储器数据存储设备,多为卡片或者方块状。它一般是使用Flash memory(快闪存储器)芯片作为储存介质。主要用于数字相机、PDA和笔记本电脑、音乐播放器、掌上游戏机和其他电子设备。它能提供可重复读写,无需外部电源的存储形式。也有非固态的存储卡。二、历史1980年, 一个默默无闻的东芝工程师申请了一个叫做simultaneously erasable EEPROM的专利。可能连舛冈富士雄博士本人,也不清楚这个专利的
原创
发布博客 2020.11.30 ·
2731 阅读 ·
0 点赞 ·
0 评论

USB2.0 reset 的几种情况

USB2.0 reset 的几种情况1、USB2.0 ResetUSB2.0 reset, 是将D+ 和 D- 同时拉低, 进入SE0 状态。reset 时间:按照spec 规定7.1.75 正常是10-20ms, 需要注意的是如果是root hub 时间则规定为最少50ms(这50ms 可以不连续,但是如果不连续,每个reset 信号之间的间隔时间应该小于3ms)HUB 如果收到host 发送的setFeature (portreset), 可以对device发送reset 信号。2、 R
原创
发布博客 2020.10.16 ·
1846 阅读 ·
2 点赞 ·
0 评论

IC 后端仿真: process corner 和 PVT

1、工艺角(Process Corner)与双极晶体管不同,在不同的晶片之间以及在不同的批次之间,MOSFETs 参数变化很大。为了在一定程度上减轻电路设计任务的困难,工艺工程师们要保证器件的性能在某个范围内。 如果超过这个范围,就将这颗IC报废了,通过这种方式来保证IC的良率。传统上,提供给设计师的性能范围只适用于数字电路并以“工艺角”(Process Corners)的形式给出。其思想是:把NMOS和PMOS晶体管的速度波动范围限制在由四个角所确定的矩形内。这四个角分别是:快NFET和快PFET,
转载
发布博客 2020.10.09 ·
6150 阅读 ·
8 点赞 ·
0 评论

Eject U盘底层解析

Eject U盘底层解析1、插上U 盘OS 会发送SCSI PREVENT ALLOW MEDIUM REMOVAL将设置成 Volume removal shall be prevented。目的是告诉U盘, 我不同意remove 你就不可以remove。这里有人可能要奇怪了,U盘怎么会自己去remove 呢? 实际上,这个SCSI 是由OS 发下来的, 而不是由U盘的driver 发下来的,这个SCSI是OS为了防止driver 自行remove U盘而设计的。格式如下:需要关注的是PRE
原创
发布博客 2020.09.27 ·
404 阅读 ·
3 点赞 ·
0 评论

MULTIPLE CALL TO SEGMENT

WARNING L15: MULTIPLE CALL TO SEGMENT1、什么是Function Multiple Call Warning关于这个问题Keil C 给出的解释如下:简单来说,某一个函数被Main 函数调用的时候,这个时候发生了中断,在中断中这个函数被再次调用,这个时候就会导致之前的传参,临时变量被替换掉。需要讲一下,C51 由于堆栈空间很小,因此它利用一种 Overlay 的机制,将函数中的变量不存放在堆栈中,而是固定在memory 空间中。这种方式好处是节省堆栈空间。坏处就是函
原创
发布博客 2020.09.14 ·
1436 阅读 ·
1 点赞 ·
0 评论

Keil C51编译/链接/优化

Keil C51编译/链接/优化一、C51编译库及代码优化技术如下图所示:可以根据优化等级的需要选择相应的库文件。通过Keil ->Target 下 Memory Model / code Rom size 来进行配置SMALL:所有变量都被定义在8051单片机的片内RAM中,对这种变量的访问速度最快。另外,堆栈也必须位于片内RAM中,而堆栈的长度是很重要的,实际栈长取决与不同函数的嵌套深度。采用SMALL编译模式与定义变量时指定data存储器类型具有相同效果。COMPACT:所有变
原创
发布博客 2020.07.08 ·
1169 阅读 ·
1 点赞 ·
0 评论

8051 code bank 原理介绍

8051 code bank 原理介绍一个标准的8051器件能寻址64KB的代码地址空间。对于超过64KB的代码,单片机系统通常采用代码分页(CODE BANKING)的方式来扩展程序空间。如何扩展:下面介绍一下一种结合硬件来实现的方法,采用特殊功能寄存器(SFR)的方式。硬件设置:硬件上通SFR 操纵port 的bit 来实现。软件设置:新建工程是需要将STARTUP.A51和L51_BANK.A51加进去,其中STARTUP.A51是新建功能是自动添加,L51_BANK.A51是手动添加
原创
发布博客 2020.06.23 ·
1731 阅读 ·
0 点赞 ·
0 评论

IC设计基础

IC设计基础1、稳压电源:LDO 和 DC-DC可以把稳压电源想象成为如下的一种情形:当试图从一个直径较大的自来水管中取出连续不断的且较小的水流时,可以采用两种策略:一种是使用一个转接阀门,并将阀门开启在较小位置,这就是线性电源的工作原理(可以将阀门看作晶体管)。线性电源的电压调整晶体管上承受着很大的“压力”(具体的表现是转换为热能的形式散耗);或者,可以改进一下,让大水管的水流到一个比较...
原创
发布博客 2020.03.18 ·
1419 阅读 ·
0 点赞 ·
0 评论

USB2.0 HUB

一、USB2.0 HUB的架构USB2.0 HUB 需要支持的功能:1、连接行为2、电源管理3、设备的连接/移除检测4、总线错误检测和恢复5、HS/FS/LS 设备的支持从结构上看,hub 主要由三个部分组成,分别是:HUB Repeater、Hub Controller、Transcation Translator。二、数据转发往Downstream 方向:Upstrea...
原创
发布博客 2020.03.18 ·
1695 阅读 ·
1 点赞 ·
0 评论

EMMC Packed Command

Packed Commands - Packed Write and Packed Read在实际应用场景中,通常会对 eMMC Device 有很多随机数据读取和写入操作,这些随机读写的目标地址往往都不是连续的,每一个随机读写都需要通过一个独立的读写流程来实现。在 eMMC 4.5 及以后的标准中,引入了 Packed Commands 机制,将多个地址不连续的数据写入请求封装到一个 Mul...
原创
发布博客 2020.02.13 ·
897 阅读 ·
0 点赞 ·
0 评论

Billboard介绍

BillBoard起源:USB-IF协会在2014年公布了Power Delivery v2.0的规格,同时也在原本的USB Class定义了新的分类Billboard Device Class v1.0。什么是Billboard?首先我们要了解一下Type-C:USB-C即USB Type-C型接口,是USB协会最新推出的接口,相比传统USB接口,USB-C具有结构纤细、支持正反插、高电...
原创
发布博客 2020.01.22 ·
8141 阅读 ·
6 点赞 ·
3 评论

Gdbinit 无法调用的问题

1、.gdbinit 文件是什么:gdb在启动的时候,会在你的当前工作目录下查找 ".gdbinit" 这个文件,并把它的内容作为gdb命令进行解释,所以如果我把脚本命名为".gdbinit",这样在启动的时候就会处理一些你常用的命令。注意:这里当前工作目录是提示 ~的目录,一般是/home/xxx。如何查看该目录:1、cd ~ 切到当前工作目录2、pwd 查看该目录的路径...
原创
发布博客 2019.11.22 ·
671 阅读 ·
0 点赞 ·
0 评论
加载更多