自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(246)
  • 资源 (9)
  • 收藏
  • 关注

原创 韦东山驱动代码移植高通平台总论

将韦东山视频的代码在高通平台上移植,所有的代码参考韦东山一期驱动部分以及二期驱动,代码的扩充也是根据韦东山老师视频里的思路逐步的深入,由浅入深平台:MSM8917 32位内核版本:3.18.31操作系统:ubuntu12.04Android版本:7.1.21 驱动的编译1.a 直接编译到内核修改Makefile,在Makefile里添加(假设源文件名为foo)...

2019-04-06 13:21:46 824

转载 wifi详解(五)

最近一段时间里对wifi模块的学习,让我对wifi有了更多的了解,但这些也是不够的。对于wifi模块,需要了解的东西很多,这里只对其工作原理和工作流程以及移植过程进行了简单的阐述,还有很多方面没有概括到,如:协议层的实现方式和过程,以及数据传输中的细节和SDIO相关内容等等,这些在实际的wifi模块工作时可能都需要我们去进一步的分析和把握,虽然对wifi的理解可能不到位,但对这段时间学习做一次总结,也是大有裨益的,希望有机会可以更深入的学习wifi模块。

2023-06-05 18:15:32 382

转载 wifi详解(四)

return ret;实际上传递的就是ioctl_standard_call和ioctl_private_call两个函数,在看看wireless_process_ioctl函数,这个函数很重要,下面做重点分析:

2023-06-05 18:13:08 457

转载 wifi详解(三)

在drivers/mmc下面是mmc卡,SD卡和SDIO卡驱动部分,其中包括host驱动,card驱动和core部分,由于网络接口卡挂接在SDIO总线上,所以在此之前我们先看一下SDIO的驱动结构。其驱动在drivers/mmc目录下的结构为:|-- mmc主要关注的目录是core目录,这个目录是真个驱动的核心目录,是媒体卡的通用代码部分,包括core.c,host.c和sdio.c等。

2023-06-05 17:56:00 1190

转载 wifi详解(二)

我们都知道Wifimanager只是个服务代理,所以它会调用WifiService的setWifiEnabled()函数,而这个函数会调用 sendEnableMessage()函数,了解android消息处理机制的都知道,这个函数最终会给自己发送一个 MESSAGE_ENABLE_WIFI的消息,被WifiService里面定义的handlermessage()函数处理,会调用 setWifiEnabledBlocking()函数。然后下面的流程同上面的自动扫描,我们来分析一下手动扫描从哪里开始的。

2023-06-05 17:35:40 589

转载 【转载】wifi详解(一)

作为全球公认的局域网权威,IEEE802工作组建立的标准在过去二十年内在局域网领域独领风骚。这些协议包括了802.3Ethernet协议、802.5TokenRing协议、802.3z100BASE-T快速以太网协议。在1997年,经过了7年的工作以后,IEEE发布了802.11协议,这也是在无线局域网领域内的第一个国际上被认可的协议。

2023-06-05 17:26:24 316

转载 Win10命令提示符CMD如何安装MSI文件【详细步骤】

大家在下载安装包的过程中,也许会遇到MSI格式的安装包,而这种安装包在安装的过程,就会遇到 安装出错的情况。不过遇到这种情况,不用怕,我们可以通过 CMD命令提示符下进行安装,让我们一起来看看,该如何去安装。不是中文的全角字符,尤其是引号)通过上面的这个方法可以解决在Win10下无法安装MSI安装包的问题,其实出现2053错误主要是由于权限不足导致的,但是MSI文件右键没有以管理员身份运行选项。2、然后在命令提示符(CMD)下输入:msiexec /package "你的安装MSI文件的全路径".

2023-03-31 10:43:06 5294

转载 memtester4.3.0

为一究memtester原理,现对其每个函数均按照如下格式进行描述:以下是对每个测试项的简要描述:方法test_stuck_address函数名:基本pattern按照下图所示,j=0时,先把P1的地址值写入对应的内存位置处,然后P2取反放入对应位置处,如此反复;然后下一轮开始,即j=1,把上述步骤反过来再进行一遍即可;正在上传…重新上传取消直到16轮结束,假若发生异常就把异常的地址直接返回即可!目的(原理)为了验证是否有地址无法访问,验证的是地址线。时间花销条件:全空间1G Byte ,DDR带宽16

2022-12-05 16:07:38 917

转载 Linux::通过echo写二进制文件(16进制)

xxd // xxd 命令用于用二或十六进制显示文件的内容-r // 把xxd的十六进制输出内容转换回原文件的二进制内容-ps // 以 postscript的连续十六进制转储输出,这也叫做纯十六进制转储。

2022-10-27 19:12:19 2715

转载 typecheck(type,x) 作用

在kernel 2.6.30 的typecheck.h源码中有如下定义。如果它们不是同样类型的指针比较,比如a不是unsigned long,它生成一个unsigned long类型的变量__dummy,然后利用typeof生成和a同样类型的变量__dummy2,第一个是一个类型,比如unsigned long,这时候编译器会有一个警告,让你注意到这个问题。比较__dummy和__dummy2的地址。typecheck宏有两个参数,第二个是一个变量,比如a。

2022-10-11 10:50:12 279

转载 mtd-utils 工具的使用

也可以使用diff命令来比较。#./mtd_debug erase /dev/mtd0 0x0 0x40000 // 擦出/dev/mtd0 分区上 从0x0开始的 , 128K*2 大小的数据。#./mtd_debug erase /dev/mtd0 0x0 0x40000 // 擦出/dev/mtd0 分区上 从0x0开始的 , 128K*2 大小的数据。#./nanddump -p /dev/mtd1 //dump出nand flash /dev/mtd1数据,可以看到现在的数据不再是全ff。

2022-09-30 19:39:00 2292

转载 有符号数与无符号数比较-详解

回想一下前面我们所说的知识,因为length是unsigned类型,所以所有的运算都被隐式地被强制转换为unsigned类型,所以length-1(即0-1 = -1),-1对应的无符号类型的值为UMax,所以for循环将会循环UMax次,数组也会越界,发生错误。数据类型只有在高层的应用程序才有意义,也就是说,同样的储存表示对于应用程序而言可能对应着不同的数据,例如1111,1111,1111,1111对于有符号数而言它表示-1,但对于无符号数而言,它表示UMax,但是它们的底层存储都是一样的。

2022-09-30 19:30:52 5076

转载 解决genymotion模拟器无法联网的正确方法100%成功

解决genymotion模拟器因为联网设置不能开机的问题

2022-07-03 10:13:54 1392

转载 kernel里__printf(a, b)说明

FROM:__attribute__ ((format (printf, 2, 3)));_陈嘉怡的专栏-CSDN博客这句主要作用是提示编译器,对这个函数的调用需要像printf一样,用对应的format字符串来check可变参数的数据类型。例如:extern int myprintf (void *other, const char *fmt, ...)__attribute__ ((format (printf, 2, 3)));format (printf, 2, 3)告诉编译器,fm

2021-12-22 17:59:37 1423

转载 DDR4 Bank Groups in Embedded Applications

FROM:https://www.synopsys.com/designware-ip/technical-bulletin/ddr4-bank-groups.html#:~:text=Prefetch%20is%20the%20term%20describing%20how%20many%20words,parallel%20and%20then%20serializing%20it%20out%20the%20interface.DDR4 represents the most complex DR

2021-11-26 15:10:08 635

转载 initramfs实作

FROM:https://www.cnblogs.com/pied/archive/2013/01/29/2880718.html这个是翻译来的,原文地址:http://www.landley.net/writing/rootfs-howto.html怎样使用initramfs工作过程简述在2.6kernel启动时,它把rootfs作为它的第一个文件系统挂载(注意:这里的rootfs是真名!!!不是root filesystem的缩写)。rootfs是一个特殊的tmpfs,这个不能.

2021-06-04 19:35:09 637

转载 华为软件编程规范和范例

FROM:http://blog.csdn.net/jwbecalm/archive/2005/12/14/552403.aspx目录 1排版 6 2注释 11 3标识符命名 18 4可读性 20 5变量、结构 22 6函数、过程 28 ...

2021-04-08 17:30:11 293

转载 MIPI-DSI 三种 Video Mode 理解

D- PHY的物理层支持HS(High Speed)和LP(Low Power)两种工作模式HS模式:低压查分信号 功耗大 高速率(80M -1Gbps) 信号幅值(100mv-300mv)LP模式:单端信号 功耗小,速率低(< 10Mbps) 信号幅值(0-1.2V)在高速模式下,通道状态是差分的0或1,定义P比N高时定义为1,P比N低时定义为0,此时线上典型电压为差分200mv在LP模式下,只用lane0传输数据和时钟,双向数据传输。链路层的模式分为: Command模式 和 Vi

2020-12-25 19:48:16 3328 1

转载 Open-Drain&Push-Pull

FROM:https://blog.csdn.net/qq_39560607/article/details/81714120在配置GPIO(General Purpose Input Output)管脚的时候,常会见到两种模式:开漏(open-drain,漏极开路)和推挽(push-pull)。对此两种模式,有何区别和联系,下面整理了一些资料,来详细解释一下:一、Push-Pull推挽输出1、原理输出的器件是指输出脚内部集成有一对互补的MOSFET:  当Q1导通、Q2截止时输出高电平

2020-11-12 10:59:28 5655 1

转载 C 终端输出颜色

FROM:https://blog.csdn.net/aggresss/article/details/88116234?utm_medium=distribute.pc_relevant_download.none-task-blog-baidujs-1.nonecase&depth_1-utm_source=distribute.pc_relevant_download.none-task-blog-baidujs-1.nonecase从一个实例开始在终端打印绿色的 “Hello, Wo

2020-10-16 20:38:38 380

转载 PC机并口和并口打印机

FORM:https://blog.csdn.net/broadview2006/article/details/3975094C并口的寄存器本文摘自王洪辉老师的《嵌入式系统Linux内核开发实战指南(ARM平台)》一书PC上的程序通过访问并口的I/O端口寄存器来访问、控制并口的管脚信号,这些端口包括数据端口、状态端口和控制端口,其中每个端口都有自己的端口号,相当于它们的地址。程序通过端口号来访问端口寄存器。PC并口1的数据端口号为3BCH,状态端口号为3BDH,控制端口号为3BEH;PC并

2020-10-12 19:48:32 1460

转载 [转载]https://www.dazhuanlan.com/2020/01/29/5e315b3e5a8b8/

FROM:https://www.dazhuanlan.com/2020/01/29/5e315b3e5a8b8/本文主要讲述使用iozone、dd/cp/rm命令、fio、flashbench进行eMMC读写性能和稳定性测试。读写性能主要是通过iozone测试,稳定性主要是通过长时间随机读写进行测试。iozone进行读写性能测试在之前的文章中,我们介绍了iozone的使用,以及进行简单的读写测试。使用如下命令循环进行长时间读写测试: 1 while tru

2020-09-01 19:32:14 5405

转载 [转载]kbuild-DEFINE(sym, val)

FROM:https://blog.csdn.net/linglongqiongge/article/details/50008301#define DEFINE(sym, val) \ asm volatile("\n->" #sym " %0 " #val : : "i" (val))这是一个内联汇编宏,不过实际上它不会生成合法的内联汇编代码,它只是利用了内联汇编中嵌入立即数的功能。2.arch/x86/include/asm/unistd.h这个文件使用了宏控制..

2020-08-11 15:10:36 342

转载 【转载】设置vim打开文件时光标在上次退出位置

FROM:https://www.dyxmq.cn/linux/vim-setting-mouse-place.html在.vimrc文件中添加: 1 au BufReadPost * if line("'\"") > 0 | if line("'\"") <= line("$") | exe("norm '\"") | else |exe "norm $"| endif | endif 如果添加后无效,可能是~/.viminfo和~/.vi.

2020-07-27 11:44:29 899

转载 Makefile 中:= ?= += =的区别

FROM:https://www.cnblogs.com/wanqieddy/archive/2011/09/21/2184257.html在Makefile中我们经常看到 = := ?= +=这几个赋值运算符,那么他们有什么区别呢?我们来做个简单的实验新建一个Makefile,内容为:ifdef DEFINE_VRE VRE = “Hello World!”elseendififeq ($(OPT),define) VRE ?= “Hello World! First!”...

2020-07-05 10:21:58 382

转载 探索Linux内核:Kconfig/kbuild的秘密-Exploring the Linux kernel: The secrets of Kconfig/kbuild

FORM:https://www.sohu.com/a/272455844_610730英文原版FROM:深入了解Linux配置/构建系统的工作原理。自从Linux内核代码迁移到Git以来,Linux内核配置/构建系统(也称为Kconfig /kbuild)已经存在了很长时间。然而,作为支撑基础设施,它很少成为人们关注的焦点;甚至在日常工作中使用它的内核开发人员也从未真正过它。为了探索如何编译Linux内核,本文将深入研究Kconfig/kbuild内部过程,解释如何生成.config文件和

2020-07-03 20:25:35 744

转载 Linux 初始 RAM 磁盘(initrd)概述

FROM:https://www.ibm.com/developerworks/cn/linux/l-initrd.html什么是初始 RAM 磁盘?初始 RAM 磁盘(initrd)是在实际根文件系统可用之前挂载到系统中的一个初始根文件系统。initrd 与内核绑定在一起,并作为内核引导过程的一部分进行加载。内核然后会将这个 initrd 文件作为其两阶段引导过程的一部分来加载模块,这样才能稍后使用真正的文件系统,并挂载实际的根文件系统。initrd 中包含了实现这个目标所需要的目录和可执行程

2020-06-23 19:54:22 523

转载 制作initramfs/initrd镜像

Linux kernel在自身初始化完成之后,需要能够找到并运行第一个用户程序(这个程序通常叫做“init”程序)。用户程序存在于文件系统之中,因此,内核必须找到并挂载一个文件系统才可以成功完成系统的引导过程。在grub中提供了一个选项“root=”用来指定第一个文件系统,但随着硬件的发展,很多情况下这个文件系统也许是存放在USB设备,SCSI设备等等多种多样的设备之上,如果需要正确引导,USB或者SCSI驱动模块首先需要运行起来,可是不巧的是,这些驱动程序也是存放在文件系统里,因此会形成一个悖论。

2020-06-23 19:51:04 316

转载 TI Davinci 五年七宗罪

FROM:https://www.cnblogs.com/fpga/archive/2012/09/16/2687822.html引言:芯片是产业链上游重要的一个环节,一颗小小的芯片具有极高的技术含量和价值,半导体行业每年都会有一个各大厂商营业额的排名,除去2009年,常年盘踞在前三名位置的分别是英特尔,三星半导体和德州仪器,英特尔凭借的是桌面处理器,三星半导体凭借的是其全面的存储器产品线,德州仪器则是凭借模拟器件,嵌入式处理器和无线半导体这“三驾马车”。(注:DLP应隶属于光电器...

2020-05-24 23:28:46 600 1

转载 ftrace 简介

From:https://www.ibm.com/developerworks/cn/linux/l-cn-ftrace/index.htmlftrace 简介ftrace 的作用是帮助开发人员了解 Linux 内核的运行时行为,以便进行故障调试或性能分析。最早 ftrace 是一个 function tracer,仅能够记录内核的函数调用流程。如今 ftrace 已经成为一个 fra...

2020-05-08 14:26:08 519

转载 ARM交叉编译工具链分类说明

转载整理自:http://www.veryarm.com/cross-tools从授权上,ARM交叉编译工具链分为免费授权版和付费授权版。免费版目前有三大主流工具商提供,第一是GNU(提供源码,自行编译制作),第二是Codesourcery,第三是Linora。收费版有ARM原厂提供的armcc、IAR提供的编译器等等,因为这些价格都比较昂贵,不适合学习用户使用,所以不做讲述。·...

2020-02-23 22:07:45 1078

转载 深入解析内存原理:SRAM的基本原理

FROM:https://www.cnblogs.com/lzhu/p/7069461.html1. SRAM芯片的引脚定义早期的SRAM 芯片采用了20 线双列直插(DIP:Dual Inline Package)封装技术,它们之所以具有这么多的针脚,是因为它们必须:• 每个地址信号都需要一根信号线• 一根数据输入线和一根数据输出线• 部分控制线(Write Enable, Chip...

2019-11-25 16:41:04 3597 1

转载 深入解析内存原理:DRAM的基本原理

FROM:https://www.cnblogs.com/lzhu/p/7071488.html前面我们知道了在一个简单的SRAM 芯片中进行读写操作的步骤了,然后我们来了解一下普通的DRAM 芯片的工作情况。DRAM 相对于SRAM 来说更加复杂,因为在DRAM存储数据的过程中需要对于存储的信息不停的刷新,这也是它们之间最大的不同。1. 多路寻址技术最早、最简单也是最重要的一款D...

2019-11-25 16:34:32 12855 1

转载 深入解析内存原理:RAM的基本原理

FROM:https://www.cnblogs.com/lzhu/p/7000487.html1. 寻址原理概述RAM 主要的作用就是存储代码和数据供CPU 在需要的时候调用。但是这些数据并不是像用袋子盛米那么简单,更像是图书馆中用有格子的书架存放书籍一样,不但要放进去还要能够在需要的时候准确的调用出来,虽然都是书但是每本书是不同的。对于RAM 等存储器来说也是一样的,虽然存储的都是代表0...

2019-11-25 16:32:11 10356

转载 Linux kernel mmc 框架说明,包括mmc_test使用方法

FROM:https://blog.csdn.net/kivy_xian/article/details/53333831请看原文,排版看得方便,转载留作记录,谢谢kivy_xian1.Linux 总线模型Linux下的任何驱动在内核中最终都抽象为bus, driver以及device三者间的相互作用。总线是处理器和一个或多个设备之间的通道,在设备模...

2019-11-08 18:40:53 1171 1

原创 高通平台dtb文件的加载过程

高通平台dtb文件的加载过程高通平台对dts的两种打包方式zImage-dtbdt.imgzImage-dtb方式zImage-dtb的编译二进制文件查看lk的加载过程代码分析dt.img方式dt.img的编译lk的加载过程新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyP...

2019-09-20 22:30:45 4969 1

原创 高通平台关机流程

使用adb输入以下命令,可以实现机器的重启,进入到recovery,或者进入到bootloader里adb rebootadb reboot recoveryadb reboot bootloader抽丝剥茧,查看reboot命令的实现system/core/reboot/reboot.c#include <errno.h>#include...

2019-09-15 23:23:42 3541

转载 Ubuntu版本介绍、U盘启动盘的制作

由于工作原因,需要安装Ubuntu系统,因此了解了一下Ubuntu系统,发现版本太多。网上查了很多资料,关于版本的介绍、关于U盘启动项的制作,资料很多,为方便以后自己再次需要安装Ubuntu,现将自己了解到的理一个思路,以便后期查阅。一、Ubuntu的版本a)Ubuntu每半年更新一次,版本号是:Ubuntu+年份+月份 。 例如,比较常用的是1...

2019-07-23 09:24:01 766

转载 DMA导致的CACHE一致性问题解决方案

FROM:http://blog.csdn.net/waterhawk/article/details/50723677转载时请标明作者 waterhawk, 原文地址:http://blog.csdn.net/waterhawk/article/details/50723677先简单说一下DMA的CACHE一致性是个啥问题。复制:CPU在访问内存时,首先判断所要访问的内容是否在...

2019-07-22 17:36:23 387

转载 DMA与cache一致性的问题

FORM:https://www.cnblogs.com/linhaostudy/archive/2018/07/18/9333430.htmlCache和DMA本身似乎是两个毫不相关的事物。Cache被用作CPU针对内存的缓存利用程序的空间局部性和时间局部性原理,达到较高的命中率,从而避免CPU每次都必须要与相对慢速的内存交互数据来提高数据的访问速率。DMA可以作为内存与外设之间传输数据的方...

2019-07-22 16:13:11 289

Life_with_Unix.pdf

里面介绍有Unix的相关历史,介绍Unix的过去,现在和未来(1994年),Unix的使用以及一些编程和实现方法。

2021-12-22

Part_1_Physical_Layer_Specification_Ver3.01_Final_100218.pdf

Part_1_Physical_Layer_Specification_Ver3.01_Final_100218,是3.01完整版(比3.00版更完善),不是SD association上直接可以下载的简单版simplified version,SD的物理层的协议,里面有完整的时序图,timing的要求,对于开发SD卡的软硬件工程师必备资料

2021-05-24

DDI0475G_corelink_nic400_network_interconnect_r1p0_trm.pdf

NIC 400的technical reference manual,corelink nic400是高度可配置,可以创建高性能,优化的,AMBA兼容的infrastructure。从AHB到AXI桥接器,最多可以接128个mater和64个slave。NIC400开发可以参考该文档。

2020-06-07

an617_differ_between_i2c_smbus_access.pdf

smbus与i2c协议的区别,ACCESS.bus与i2c协议的异同 包括电气特性的差异,时序上的差异,protocol上的差异

2020-06-07

progit_en_v2(progit第二版英文版)

progit英文版第二版,git里的圣经,学习和使用git的都建议看看。

2017-12-07

Linux程序设计 中文第4版.part1.rar

Linux程序设计 第4版 中文翻译 有目录 由于大于60m分为两个部分上传

2014-10-21

Linux程序设计 中文第4版.part2.rar

Linux程序设计 第4版 中文 由于大于60m分为两个部分上传

2014-10-21

模拟退火算法解决tsp问题

模拟退火解决tsp问题,有注释,matlab代码,可以与其他算法融合

2013-07-27

蚁群算法解决tsp(旅行商问题)

注释很详细,非常适合初学者,蚁群算法的完整过程,matlab代码

2013-07-27

空空如也

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

TA关注的人

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