自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 收藏
  • 关注

原创 Linux内核MMC框架

1.mmc的概念1.MMCMultiMedia Card,多媒体存储卡, 但后续泛指一个接口协定(一种卡式),能符合这接口的内存器都可称作mmc储存体,工作电压:高电压为2.7~3.6 V,低电压为1.65~1.95 V,可选.2.MMC总线mmc总线是和I2C总线、SPI总线类似的一种总线结构。卡与主控制器间串行传送,工作时钟频率范围为0~200 MHz,mmc总线上最多可识别64 K个mmc设备,在总线上不超过10个卡时,可运行到最高频率。3.mmc设备使用mmc接口规范(MCI, Mul

2024-03-03 13:39:50 1437

转载 MMC/SD/SDIO介绍

熟悉Linux kernel的人都知道,kernel使用MMC subsystem统一管理MMC、SD、SDIO等设备,为什么呢?到底什么是MMC?SD和SDIO又是什么?为什么可以用MMC统称呢?在分析Linux kernel的MMC subsystem之前,有必要先介绍一些概念,以便对MMC/SD/SDIO有一个大致的了解,这就是本文的目的。

2024-03-03 13:25:57 112

转载 eMMC——基本命令

目录1. Basic commands (class 0 and class 1)CMD0CMD1CMD2CMD3CMD4CMD5CMD6CMD7CMD8CMD9CMD10CMD12CMD13CMD14CMD15CMD192. Block-oriented read commands (class 2)CMD16CMD17CMD18CMD213. Block-oriented write commands (class 4)CMD23 (default)CMD23 (packed)CMD24CMD25CMD

2024-03-03 12:47:07 80

转载 eMMC——工作模式

在数据读写的 Command 中,Host 会将读写的地址 A 作为 Command 的参数发送给 eMMC Device,在 Byte Access Mode 下,eMMC Device 将从第 A 个 Byte 开始进行读写操作,而在 Sector Access Mode 下,eMMC Device 将会从第 A 个 Sector 开始进行读写操作,一个 Sector 的大小为 512 Bytes 或者 4 KBytes,更大的 Sector 支持更大容量的存储器访问。此值在EXT_CSD 中定义。

2024-03-03 12:43:44 138

转载 eMMC——分区管理

此分区主要是为了支持从 eMMC启动系统而设计的。该分区的数据,在 eMMC 上电后,可以通过很简单的协议就可以读取出来。同时,大部分的 SOC 都可以通过 GPIO 或者 FUSE 的配置,让 ROM 代码在上电后,将 eMMC BOOT 分区的内容加载到 SOC 内部的 SRAM 中执行。RPMB 是 Replay Protected Memory Block 的简称,它通过 HMAC SHA-256 和 Write Counter 来保证保存在 RPMB 内部的数据不被非法篡改。

2024-03-03 12:40:49 1186

转载 eMMC——系统上电

因为上电时间和电源爬升时间取决于应用参数,如总线长度和供电单元,主机必须保证电源建立起工作电平( CMD1 中规定的电平)之后再发送 CMD1。8. 从 R3 应答的参数,主机可以知道设备是高电压设备还是双电压设备。如果参数是0x80FF8000 则设置是仅高电压的,如果参数是 0x80FF8080 则设备是双电压。CLK: 时钟,是主机发往设备的信号。,参数为所要的电压范围, 0x00FF8000 或 0x00000080。10. 如果主机是低压主机,且识别到双电压设备,使 MMC 总线下电。

2024-03-03 12:38:36 148

转载 eMMC——基本通讯原理

在写数据传输中,eMMC Device 接收到 Host 发送的一个 Data Block 后,会进行 CRC 校验,如果校验成功,eMMC 会在对应的 Data Line 上向 Host 发回一个 Positive CRC status token (010),如果校验失败,则会在对应的 Data Line 上发送一个 Negative CRC status token (101)。CRC 校验简单来说,是发送方将需要传输的数据“除于”(模2除)一个约定的数,并将得到的余数附在数据上一并发送出去。

2024-03-03 12:33:41 549

转载 eMMC——基本架构

看了很多文章,上来就开始列概念,例如上面一段,接着讲原理,自己看的很含糊,不清楚自己到底看了个啥玩意儿,也不知道它长什么样、用在哪、主要干嘛用的,就讲怎么开发设计,很散没有目的。使得EMMC能够自动调整主机与从机的工作方式,没有位数限制,不需要处理其他繁杂的NAND Flash兼容性和管理问题,同时,控制器是其卡的应用和多媒体总线之间的联系介质,它能在应用程序总线和标准多媒体总线之前完成协议转换。他的通信基于先进的10个信号总线,通信协议被定义为这个标准的一部分,简称多媒体模式。【注】 I: input;

2024-03-03 12:08:47 686

转载 【无标题】

sysbench 介绍

2022-05-25 17:25:14 941 1

原创 瑞昱rtl8189fs自适应测试

主要总结下瑞昱系列的自适应测试,以rtl8189fs为例1.修改Makefile配置 51 ########################## Features ########################### 52 CONFIG_MP_INCLUDED = y 53 CONFIG_POWER_SAVING = y 54 CONFIG_IPS_MODE = default 55 CONFIG_LPS_MODE = default 56 CONFIG_USB_AUTOSUSP

2021-11-12 14:05:33 2787

原创 内核的并发和竞态

并发是指多个执行的单元同时、并行被执行,而并发的执行单元对共享资源(硬件资源和软件上的全局变量、静态变量等)的访问则很容易导致竞态。

2021-05-22 23:18:01 422 1

原创 内核模块读写文件

在移植南方硅谷的WiFi模块时需要自定义修改MAC的地址,采用在加载模块的时候读取外部文件的方式去修改MAC地址,这就涉及到在内核层去读写文件操作。主要用到了filp_open()、filp_close()、vfs_read()、vfs_write()这几个函数,这些函数在linux/fs.h文件中定义。函数介绍1.filp_open函数原型如下:struct file *filp_open(const char *filename, int flags, umode_t mode);参数说明:

2021-05-18 22:58:15 1024

原创 AP6275S移植总结

RK3308B+AP6275S移植在rk3308b平台移植rtl8821cs,rlt8821cs是wifi+bt一体的模组,主要记录下移植过程中需要注意的地方移植驱动将rtl8821cs的驱动包复制到rk的SDK内,路径如下rockchip_rk3308b_sdk/kernel/drivers/net/wireless/rockchip_wlan/,并命名为cywdhdDTS修改主要确认下wireless-bluetooth、wireless-wlan节点信息wireless-bluetooth

2021-04-22 14:50:38 6684 1

原创 RTL8821CS移植过程记录

RK3308B+RTL8821CS移植在rk3308b平台移植rtl8821cs,rlt8821cs是wifi+bt一体的模组,主要记录下移植过程中需要注意的地方移植驱动将rtl8821cs的驱动包复制到rk的SDK内,路径如下rockchip_rk3308b_sdk/kernel/drivers/net/wireless/rockchip_wlan/,并命名为rtl8821cs修改Makefile文件1、配置WIFI IC这次移植的是rtl8821cs,所以做如下配置CONFIG_RTL88

2021-04-22 12:42:44 8866 5

原创 Realtek定频(非信令)指令说明

导语RTL8821CS的定频指令我将它分为两个大部分,第一部分称为初始化,第二部分称为功能设定。初始化就是每次测试前的需要做的准备工作,功能设定那就是使模块处于某种工作状态的设定,比如TX、RX和单载波。以这两大部分分开介绍。初始化rtwpriv wlan0 mp_ctx stop #关闭mp_ctx模式rtwpriv wlan0 mp_stop #关闭mp模式rtwpriv wlan0 mp_arx stop #关闭rxrtwpriv wlan0 mp_start #开启mp模式

2021-04-21 19:59:36 4012 6

原创 WiFi6移植

目的在平台移植WiFi6,用的模组是正基AP6275S模块,该模块是wifi+bluetooth二合一的,这篇简单写下自己的移植过程。内核配置主要罗列下关于蓝牙的配置,具体如下:CONFIG_BT=yCONFIG_BT_BREDR=yCONFIG_BT_HS=yCONFIG_BT_LE=yCONFIG_BT_DEBUGFS=yCONFIG_BT_HCIUART=yCONFIG_BT_HCIUART_H4=yCONFIG_BT_RFCOMM=yONFIG_BT_RFCOMM_TTY=y

2021-04-17 18:49:32 1223

原创 Linux压力测试之memtester

Memtester介绍Memtester主要是捕获内存错误和一直处于很高或者很低的坏位, 其测试的主要项目有随机值,异或比较,减法,乘法,除法,与或运算等等. 通过给定测试内存的大小和循环次数, 可以对系统现有的内存进行项目的测试。基本用法查看下帮助信息[root@Sweep:/oem]# memtester -hmemtester version 4.3.0 (64-bit)Copyright (C) 2001-2012 Charles Cazabon.Licensed under the

2021-04-17 17:44:55 2517

原创 Linux文件解压

tar解压:tar -zxvf filename.tar.gzz:   gzip          压缩格式x:   extract         解压v:   verbose        详细信息f:   file(file=archieve)    文件扩展:z:选项对应.tar.gz文件j:解压tar.bz2J:解压tar.xzZ:解压tar.Z将-x选项改为-c选项就是压缩文件了...

2021-04-06 20:46:13 96

原创 WiFi测试规范总结

当移植好一款wifi模块后,需要到检测机构去检测各项指标,取得相关认证。这时有必要了解下WiFi测试的相关测试内容,以便更好地跟测试机构人员交流。

2021-04-06 17:22:50 18298 1

原创 LInux内核定时器

简介时间是继内存之后常用的资源之一。它用于执行几乎所有的事情:延迟工作、睡眠、调度、超时以及许多其他任务。时间有两类。内核使用绝对时间来了解具体时间,也就是一天的日期和时间,而相对时间则被内核调度程序使用。对于绝对时间,有一个称为实时时钟(RTC)的硬件芯片。为了处理相对时间,内核依赖于被称作定时器的 CPU 功能(外设),从内核的角度来看,它被称为内核定时器。内核定时器分为两种:1.标准定时器或系统定时器2.高精度定时器...

2021-04-04 20:49:40 620

原创 wpa_supplicant使用

1.wpa_supplicant简介wpa_supplicant是一个连接、配置WIFI的工具,它主要包含wpa_supplicant与wpa_cli两个程序。wpa_supplicant是服务端,wap_cli是客户端,一般情况下使用wpa_cli就可以操作WiFi。但是它不支持所有的驱动,可以浏览wpa_supplicant网站获得它所支持的驱动列表。另外,wpa_supplicant目前只能连接到那些你已经配置好SSID的无线网络,也就是使用前需要配置好wpa_supplicant的配置文件wpa_

2021-04-04 11:55:30 18389

原创 嵌入式WiFi操作

123

2021-04-03 17:18:46 945

原创 Cmake学习

Cmake简介以下为Cmake官网介绍:CMake是一个可扩展的开源系统,它在操作系统中以独立于编译器的方式管理构建过程。与许多跨平台系统不同,CMake被设计成与本地构建环境一起使用。放置在每个源目录中的简单配置文件(称为cmakellists .txt文件)用于生成标准构建文件(例如Unix上的makefile和Windows MSVC中的项目/工作空间),这些文件按常规方式使用。CMake可以生成一个本地构建环境,用于编译源代码、创建库、生成包装器和以任意组合构建可执行文件。CMake支持就地构建

2021-04-03 00:10:06 386

原创 hostapd学习

hostapd简介工作模式 作用Master(AP) 成为无线接入点提供无线接入服务Managed(STA) 作为客户端连接其他无线接入点Monitor 监听附近所有无线流量Ad-hoc 多台计算机直接相连WiFi的几种模式hostapd能够使得无线网卡切换为master模式,模拟AP(通常可以认为是路由器)功能,也就是我们说的软AP(Soft AP)。hostapd的功能就是作

2021-03-30 16:20:03 1682

原创 dnsmasq学习

dnsmasq简介dnsmasq 提供 DNS 缓存和 DHCP 服务功能。作为域名解析服务器(DNS),dnsmasq可以通过缓存 DNS 请求来提高对访问过的网址的连接速度。作为DHCP 服务器,dnsmasq 可以用于为局域网电脑分配内网ip地址和提供路由。DNS和DHCP两个功能可以同时或分别单独实现。dnsmasq的解析流程dnsmasq先去解析/etc/hosts文件, 再去解析/etc/dnsmasq.d/下的*.conf文件,这些文件的优先级要高于etc/dnsmasq.conf(dn

2021-03-30 15:38:26 601

原创 Linux压力测试之stressapptest

上一篇谈到使用stress工具进行Linux的压力测试,这篇则使用stressapptest工具进行Linux压测。1.stressapptest用法-s: number of second to run the application 测试时间 -m: number of memory copy threads to run 复制线程数 (Memory Copy) -i: number of memory invert threads to run

2021-03-13 21:35:57 4332

原创 Linux压力测试之stress

有时候更换了自己Linux系统的Flash,需要测试Flash性能,我们可以使用stress来测试,模拟系统高负荷的状态,简称压测。1.stress工具安装sudo apt install stress2.stress用法-c, --cpu N 产生 N 个进程,每个进程都反复不停的计算随机数的平方根-i, --io N 产生 N 个进程,每个进程反复调用 sync() 将内存上的内容写到硬盘上-m, --vm N

2021-03-13 20:57:03 2254

原创 Kconfig语法总结

写了些Kconfig,一直是照葫芦画瓢,没深入了解其中的语法,查到一篇文章写的比较好,特此转发:Kconfig语法总结

2021-03-10 20:56:42 155

原创 Linux控制GPIO

接到个小的需求,按开机键3s后机器开机,要实现这样的功能就需要某个GPIO输出高电平或者低电平去支持硬件电路的实现。所以,就总结下在Linux平台怎么去控制GPIO。控制GPIO可分为在内核态和用户态控制,在内核态可以写个驱动或者直接在uboot里直接控制。在用户态控制就比较简单,可以通过sysfs子系统控制GPIO,在/sys/class/gpio/下有个export文件,向export文件写入要操作的GPIO号,使得该GPIO的操作接口从内核空间暴露到用户空间,GPIO的操作接口包括direction

2021-03-10 15:24:58 2062

原创 Linux内核线程

内核线程在写一个简单的驱动时需要另开一个线程,使用了内核提供的函数kthread_create。该函数包含在linux/kthread.h文件kthread_create原型struct task_struct *kthread_create_on_node(int (*threadfn)(void *data), void *data,

2021-03-10 13:59:56 123

原创 git代码管理

设置跟踪分支一般通过git clone拉取得代码是master的分支,有时需要拉取其它的分支,在本地新建分支后还要设置跟踪分支才能顺利拉取其它分支。方法如下:1.使用git branch -a 得到所有分支:git branch -a* master remotes/origin/HEAD -> origin/master remotes/origin/evb_board remotes/origin/master查看本地分支:git branch -v* master a

2021-03-03 10:30:18 85

空空如也

空空如也

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

TA关注的人

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