- 博客(132)
- 资源 (2)
- 收藏
- 关注
原创 Firefox浏览器uBlock Origin广告屏蔽插件“在您的地区不可用“解决方法
目前只要是中国大陆IP,无论是国际版的 Firefox,还是国内定制版的火狐浏览器,已无法通过官方商店来安装 uBlock Origin、AdGuard AdBlocker、AdBlocker Ultimate、Adblock Plus 这类屏蔽广告的扩展程序。究其原因,有网友在判决文书网上找到多份判决书,显示Firefox 在中国大陆的运营公司曾多次被国内多家视频平台所起诉过,判决结果均以 Firefox 败诉且赔偿相应损失费用为案件终结。
2025-01-08 11:41:00
2851
原创 文件解压缩与DDR、CPU的关系
解压缩的全过程是 文件由硬盘读入内存,如果文件极大,那么消耗内存就很明显; cpu进行解压缩,cpu使用率取决于压缩比,压缩比越高,cpu消耗越大,仅仅是打包的压缩文件基本不消耗cpu; 解压的文件先写入内存; 由内存将文件写入硬盘。 第一步和第三步都要消耗内存,文件越大越明显,因为cpu不直接跟硬盘交互,必须先读入或者写入内存,第二步消耗cpu,压缩比越大,消耗越明显。Mei 2021/5/10...
2021-05-10 11:23:35
2257
原创 Linux C - 获取shell命令返回结果 & 对结果应用场景的处理
一、获取shell命令返回结果1. 方法一 :使用临时文件 在Linux C中,执行shell命令,使用函数system;例如:system("ls -l");## 举一个获取button gpio value的例子 ##int get_button(){ FILE *fp; int button = 1; char buf[512]; system("cat /sys/class/gpio/gpio34/value > /tmp/button_...
2021-03-05 14:20:50
1941
2
转载 [转载]实时抓取移动设备上的通信包(ADVsock2pipe+Wireshark+nc+tcpdump)
目前移动设备上的应用的通信分析,HTTP层数据包可以使用web代理工具进行抓包改包,而底层的数据包要实时并可视化的分析(非实时的可以在设备上安装tcpdump抓包),除了用移动设备去连接PC提供的共享网络进行抓包外(《mobile app 通信分析方法小议》),还有一种新的方法,这种方法其实早就存在,主要是我wireshark太不熟悉了,误以为它只能通过网络接口(网卡啥的)抓包,实在太丢脸了。下面要介绍的方法的核心原理,就是开辟一条PC与移动设备的通信管道,然后在PC上,让wireshark基于管道(P
2021-02-18 17:23:00
694
原创 linux命令:awk & sed 提取特定行和特定列
root@OpenWrt:/# cat proc/partitions | grep "mmcblk0"179 0 3866624 mmcblk0179 1 4574 mmcblk0p1179 2 21250 mmcblk0p2179 3 4096 mmcblk0p3179 4 131072 mmcblk0p4179 32 512 mmcbl...
2021-02-04 11:14:17
8958
转载 WIFI知识 - MCS简介
MCS简介802.11n 射频速率的配置通过 MCS ( Modulation and Coding Scheme ,调制与编码策略)索引值实现。 MCS 调制编码表是 802.11n 为表征 WLAN 的通讯速率而提出的一种表示形式。 MCS 将所关注的影响通讯速率的因素作为表的列,将 MCS 索引作为行,形成一张速率表。所以,每一个 MCS 索引其实对应了一组参数下的物理传输速率, 表1-4 和 表1-5 分别列举了带宽为 20MHz 和带宽为 40MHz 的 MCS 速率表(全部速率的描述可参见“
2020-11-06 10:09:43
37129
原创 一维数组与二维数组的访问方式
一维数组访问方式一维数组中 a[i] 中的 a 代表了本数组的首地址,相当于 &a[0]。因此 *a 就等于 a[0]。那么对 a 加 1,就可以访问下一位:*(a+1) 就等于 a[1]。访问一维数组首地址:a = &a[0];访问一维数组的元素:a[i] = *(a+i);输出一维数组:puts(a); //a为字符串首地址二维数组访问方式假设有 a[2][2] 这样一个二维数组,可以这么理解它:a 由 a[0],a[1],a[2] 构成,而 ...
2020-10-28 15:09:29
2754
转载 SPI 总线
SPI总线 - 书面讲述 MOTOROLA公司的SPI总线的基本信号线为3根传输线,即SI、SO、SCK。传输的速率由时钟信号SCK决定,SI为数据输入、SO为数据输出。采用SPI总线的系统如图8-27所示,它包含了一个主片和多个从片,主片通过发出片选信号-CS来控制对哪个从片进行通信,当某个从片的-CS信号有效时,能通过SI接收指令、数据,并通过SO发回数据。而未被选中的从片的SO端处于高阻状态。...
2020-09-08 13:55:30
970
转载 数字信号处理基础知识 - 模拟信号与数字信号的区别
模拟信号和数字信号一个是波形,一个是数字;一个是高低电平,一个是01010;一个是连贯的,一个是断开的;一个是自然的,一个是人工的。模拟信号是将源信号的一些特征未经编码直接通过载波的方式发出,是连续的 数字信号则是通过数学方法对原有信号进行处理,编码成二进制信号后,再通过载波的方式发送编码后的数字流,是离散的 设计一个“游戏” 考虑要通过手电筒的灯光来实现一定距离内两个人的信息传递 假定要传递的信息是英文模拟信号: 将26个字母对应26种不同的颜色 要传递时用.
2020-08-31 11:37:54
1018
原创 Uart - 学习博文汇总
1.Uart详解 详细讲述了UART的硬件链接和软件通信协议(1 bit Start + 8 bit Data + 无奇偶检验位 + 1bit 停止位)2.串行通信(com口、uart口)电平转换整理总结PC中的串口称为com口,嵌入式中的串口称为UART口 。如果想利用电脑对嵌入式系统进行调试,势必需要用到com口与uart口的电平转换。文章中主要讲述了RS232电平&TTL电平、USB电平&TTL电平之前的转换。3.MAX232和PL2303、CH340的区别..
2020-07-21 18:56:38
181
转载 示波器分析i2c读写时序图
转载自:https://blog.youkuaiyun.com/txf1984/article/details/46812091本篇博客借助示波器对2c读写时序分析的很详细,图文并茂。对于嵌入式开发的朋友来说,I2C协议实在是再熟悉不过了,有太多的器件,采用的都是通过I2C来进行相应的设置。今天,我们就随便聊聊这个I2C协议。I2C协议中最重要的一点是I2C地址。这个地址有7位和10位两种形式。7位能够表示127个地址,而在实际使用中基本上不会挂载如此多的设置,所以很多设备的地址都采用7位,所以本文接.
2020-06-08 15:47:55
7052
1
原创 ping - 参考知识合集
#1.全面详细讲述ping的原理、幕后过程、应用以及ping结果分析ping命令全解析(语法、过程、结果分析、网络故障诊断)#2.讲述ICMP协议、ping命令以及ICMP与ping的关系[网络层] ICMP协议以及ping命令#3.ping是程序,运行在应用层;ICMP是协议,运行在网络层ping运行在OSI第几层...
2020-05-31 11:05:00
481
原创 Repo下载使用记录
#1. 安装Git# ubuntu系统直接使用sudo apt-get install git-core就能完成安装。# 安装完成之后可以顺便配置一下个人信息: git config --global user.email "youremail@xxx.com" git config --global user.name "Your Name"#2. 设置环境变量...
2020-05-03 10:27:05
1621
原创 嵌入式编程知识2 - 在应用层对NAND FLASH进行操作
前言:对与NandFlash等块设备的访问操作,mtd-utils工具集中提供了非常好的支持(可以到http://www.linux-mtd.infradead.org/进行了解),要使用mtd-utils工具集首先需要搞到mtd-utils的源码,并且使用目标设备上的交叉工具编译链进行编译。关于mtd-utils工具的使用可以参考:http://www.cnblogs.com/pengdo...
2020-04-26 10:06:11
1755
1
转载 linux常用头文件
#include <linux/***.h> 是在linux-2.6.29/include/linux下面寻找源文件。#include <asm/***.h> 是在linux-2.6.29/arch/arm/include/asm下面寻找源文件。#include <mach/***.h> 是在linux-2.6.29/arch/arm/mach-s3c241...
2020-04-25 19:35:13
328
原创 嵌入式程序知识 1- uboot & kernel下操作CPU寄存器的区别(writel/readl/ioremap)
#1.在uboot中操作CPU寄存器#include <asm/io.h> reg = readl(PHY_ADDR); reg &= ~IOMUXC_REG_GPR1_ACTCS0_MASK; writel(reg, PHY_ADDR);其中PHY_ADDR是物理地址,跟踪代码发现writel操作如下:#define writel(v,a) __arch...
2020-04-25 18:39:07
1917
2
原创 shell脚本中$!、$@、$#、$$、$0、$1、$2、$*的含义
一、shell脚本中$!、$@、$#、$$、$0、$1、$2、$*的含义$! :Shell最后运行的后台Process的PID(后台运行的最后一个进程的进程ID号)$#:添加到shell当中参数的个数$$:Shell本身的PID(ProcessID,即脚本运行的当前进程ID号)$0:脚本本身的文件名$1:传到Shell当中的第一个参数$2:传到Shell当中的第二个参数...
2020-01-15 09:40:11
10152
转载 频率、波长、传输距离、传输速率之间的关系
一、波长越长,穿透能力越强;波长越短,贯穿能力越强;是的,要区分穿透和贯穿这两个概念。波长越长,绕射的能力越强,例如无限电波可以绕过高楼大厦传播、红灯的灯光比绿光和黄光更能穿透雾霭传播到远处以提醒司机;波长越短,波的能量越大,贯穿能力越强,例如X光可贯穿皮肤、骨骼,紫外线能杀死细菌、强的紫外线能引起皮肤癌、穿越电离层等;根据:波速=波长*频率(频率和波长成反比例关系),则:频率...
2020-01-07 15:28:37
32117
原创 嵌入式系统上电,程序的运行过程
一、嵌入式系统上电,程序在CPU、Flash、DDR中的运行过程CPU总线接口图首先,程序以机器码的形式,即二进制码的形式存在FLASH中;上电后,CPU通过控制器将待运行的程序从FLASH中读入内存中;代码在内存中运行时,控制器将需要计算的数据存入寄存器中;运算器从寄存器中读取数据进行运算,并将结果存入寄存器中;控制器将寄存器中的结果读入内存中;由此,形成一个...
2020-01-03 16:48:59
4857
转载 4B/5B编码
一、什么是4B/5B编码? 4B/5B编码是百兆以太网(即快速以太网)中线路层编码类型之一,就是用5bit的二进制数来表示4bit二进制数。二、为什么要进行4B/5B编码? 在通信网络中,接收端需要从接收数据中恢复时钟信息来保证同步,这就需要线路中所传输的二进制码流有足够多的跳变,即不能有过多连续的高电平或低电平,否则无法提取时钟信息。 Man...
2019-12-31 14:52:52
8603
原创 MAC和PHY基本组成与工作原理简析
一、网口的基本结构如图是网络接口结构简图。网口由CPU、MAC和PHY三部分组成.DMA控制器通常属于CPU的一部分,用虚线放在这里是为了表示DMA控制器可能会参与到网口数据传输中。对于上述的三部分,并不一定都是独立的芯片,根据组合形式,可分为下列几种类型:CPU集成MAC与PHY; CPU集成MAC,PHY采用独立芯片; CPU不集成MAC与PHY,MAC与PHY采用集成芯片...
2019-12-31 09:21:02
19459
1
转载 网卡的基本模块和工作原理
1.网卡的基本结构网卡包含7个功能模块,分别是CU(Control Unit,控制单元)、OB(Output Buffer,输出缓存)、IB(Input Buffer,输入缓存)、LC(Line Coder,线路编码器)、LD(Line Decoder,线路解码器)、TX(Transmitter,发射器)、RX(Receiver,接收器)。2.网卡信息的发送2.1 计算机的应...
2019-12-29 14:41:48
2327
原创 关于load bootloader时出现'Uncorrectable ECC Error'的问题
问题描述:u-boot> nand write 0x10000000 0 ${filesize}NAND write: device 0 offset 0x0, size 0x1e25c8Skip bad block 0x00120000Uncorrectable ECC Error: intr 0x70, addr=0x200000, blk=16,Uncorrectable...
2019-11-12 15:07:32
3960
原创 杀死一个进程的shell脚本
#!/bin/shNAME=$1echo $NAMEID=`ps -ef | grep "$NAME" | grep -v "$0" | grep -v "grep" | awk '{print $1}'`echo $IDecho "---------------"for id in $IDdokill -9 $idecho "killed $id"doneecho "-...
2019-11-12 10:40:53
590
原创 验证一个进程是否起来,没有重启的shell脚本
#!/bin/sh#buttonps -fe|grep "button" |grep -v grepif [ $? -ne 0 ]thenecho "Create button process..." button &else echo "button process has already running."fi
2019-11-12 10:36:18
211
原创 关于ONFI读取数据相关问题解决
问题描述:在本周的工作中,遇到一个问题,有一片板子Load current OS image failure。通过波形测试发现,是系统在读flash ONFI data(第80个byte)时发现有1bit error后,就停止了运行。 思考:根据flash datasheet可知,flash芯片兼容ONFI 1.0标准;而根据ONFI 1.0标准,在Read Paramete...
2019-11-12 10:23:33
831
1
转载 Linux shell字符串截取与拼接(转)
前言:之前的练习中涉及到了Linux shell脚本中的字符串操作,在网上看到这篇文章,分享给大家。一、 Linux 的字符串截取的八种方法假设有变量var=http://www.linuxidc.com/123.htm1 # 号截取,删除左边字符,保留右边字符。echo ${var#*//}其中 var 是变量名,# 号是运算符,*//表示从左边开始删除第...
2019-09-23 09:26:58
1103
原创 关于isl28022电源芯片的校准寄存器的配置问题
1.isl28022校准值的计算过程根据芯片手册:(1)Calculate the full-scale current range第一步计算全量程的电流范围,由EQ.2 = 320mv(最大电压量程) / 0.01(硬件电路上的采样电阻) = 32APs:320mv这个值根据实际项目的修改(2)Calculate the current LSB第二步计算cur...
2019-08-20 14:45:21
1070
原创 Linuc C下利用sscanf()函数和sprintf()函数实现字符串的转换
一、函数的功能举例:0xff800500 : 0xfffff437函数的功能:有上面这么一个字符串,现将0xfffff437取出来,将其转换为16进制数进行位操作后,再转换为字符串。在接下来的函数实现中,我们将能够见证Linux C下sprintf()函数和sscanf()函数的强大。二、函数的实现就以上面的举例来实现:#include <stdio....
2019-08-14 15:14:09
517
转载 Linux C字符串函数sprintf()详解
一、sprintf() 函数详解在将各种类型的数据构造成字符串时,sprintf 的强大功能很少会让你失望。由于 sprintf 跟 printf 在用法上几乎一样,只是打印的目的地不同而已,前者打印到字符串中,后者则直接在命令行上输出。这也导致 sprintf 比 printf 有用得多。所以本文着重介绍 sprintf,有时也穿插着用用 pritnf。sprintf是个变参函数,定...
2019-08-14 12:02:56
2371
转载 Linux启动脚本rcS
1. 写在前面Linux系统作为一个高级系统,其调度机理、调度链路非常复杂,仅仅是初启动阶段就非常复杂。如果要深究Linux系统的启动服务,需要理解Linux系统原理、文件管理、脚本链接等。但,如果是作为初学者,以“使用”为目的时,比如“期望在系统启动的时候自动执行指定程序”,则只需知道如何配置启动脚本即可。正比如,学开车,一开始并不需要知道发动机是如何工作的,会操控即可。2. 启动...
2019-08-12 16:02:04
1987
原创 busybox初探
一、busybox是什么?(1)busybox是Linux上的一个应用程序(application)。 (2)它整合了许多Linux上常用的工具和命, 如rm, ls, gzip, tftp等。对于这些工具和命令,busybox中的实现可能不是最全的,但却是最常用的,因此它的特点就是短小精悍,特别适合对尺寸很敏感的嵌入式系统。(3)busybox的官方网站是...
2019-08-09 15:26:14
1551
原创 2017.09版uboot启动过程分析
2017.9版本uboot启动至命令行几个重要函数为:_start,_main,board_init_f,relocate_code,board_init_r。一 、程序的入口:_start对于任何程序,入口函数是在链接时决定的,uboot的入口是由链接脚本决定的。uboot下armv7链接脚本默认目录为u-boot-2017.09\arch\arm\cpu\u-boot.lds。...
2019-08-07 16:44:49
1066
原创 关于virtualbox下Ubuntu系统无法使用apt-get install XXX命令的问题解决
今天在virtualbox下的ubuntu 16.04系统准备安装ssh的时候,发现每次使用"sudo apt-get install openssh-server"命令它都会提示"not fetch xxxx"。之后试了"apt-get install vim"发现也不行。百度问题了好久,换了/etc/apt/source.list里面的源,改了DNS地址,发现问题还是无法解决。...
2019-08-01 17:08:55
2041
原创 正则表达式简单小练
test.txthe is arathe is in a rutthe food is RottenI like root beer 以下的命令都会针对test.txt进行。 1.匹配一个r接着任何一个字符再接着一个t的所有字符串(正则表达式对大小写敏感,故最后结果中不会出现R.t的)grep r.t test.txt 2.匹配R和...
2019-07-17 18:55:24
134
转载 UBOOT引导Linux内核及向内核传递参数的方式
一直以来没有想过有什么好的办法通过寄存器向内核传递参数,直到今天读UBOOT的实现方式。 在UBOOT中,引导内核最常用的方法是bootm命令,bootm命令可以引导“UBOOT格式”的内核。先花点时间了解一下什么是“UBOOT格式”的内核吧:用UBOOT自带的mkimage命令生成的内核称为"UBOOT"格式的内核。以下面这条命令为例:mkimage -n "Kernel ...
2019-07-14 10:59:11
694
原创 uboot目录结构
1.在学习uboot之前,我们需要知道到底什么是uboot? Universal Boot Loader,普遍的引导程序。是非常常用的一个引导程序,可作为主流系统的引导程序,如OpenBSD, NetBSD, FreeBSD,4.4BSD, Linux, SVR4, Esix, Solaris等等,当然同时也支持多种常见的cpu处理器,如MIPS、 x86、ARM、NIOS、XScale等。...
2019-07-11 19:39:39
1138
原创 C语言基础知识点复习
C语言中的数据类型大小和取值范围 C语言中结构体和联合体的区别 大端字节和小端字节一、C语言中的数据类型大小和取值范围 C语言中的数据类型通常有short、int、long、float、double、char六种类型。在32位的CPU中,各个数据类型所占的字节数分别为2,4,4,4,8,1。 1.C语言中常用各数据类型及其取值范围 ...
2019-07-09 16:39:53
1829
原创 C语言——如何将字符型数组转换为int型变量(解法集合)
1.常见的解决方案知识点备注: '1' - '0' = 1具体事例分析:char str[10] = "12345";'1' - '0' = 1;1 * 10 + '2' - '0' = 12;12 * 10 + '3' - '0' = 123;123 * 10 + '4' - '0' = 1234;1234 * 10 + '5' - '0' = 12345;...
2019-07-05 19:18:21
25163
5
原创 uboot中的数据结构、内存分配
1.uboot中的数据结构 u-boot的主要功能是用于引导OS的,但是本身也提供许多强大的功能,可以通过输入命令行来完成许多操作。所以它本身也是一 个很完备的系统。u-boot的大部分操作都是围绕它自身的数据结构,这些数据结构是通用的,但是不同的板子初始化这些数据就不一样了。所以u-boot的通用代码是依赖于这些重要的数据结构的。这里说的数据结构其实就是一些全局变量。 1)gd全...
2019-07-05 16:02:24
2071
基于st02工艺库绘制的JK触发器原理图以及版图
2019-04-22
基于st02工艺库绘制的反相器原理图以及版图
2019-04-22
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人