- 博客(54)
- 资源 (1)
- 收藏
- 关注
原创 程序在内存中分布
contens内存分布图各段说明堆与栈的区别内存分布图各段说明.代码段(.text):也称文本段,存放着程序的机器码和只读数据,可执行命令就是从这里取得。这个段在内存中一般被标记为只读,任何对该区的写操作都会导致段错误(Segmentation Fault)数据段:包括已初始化的数据段(.data)和未初始化的数据(.bss),前者用来存放保存全局和静态的已初始化变量,后者用来保存全局和静态的未初始化变脸。数据段在编译时分配。堆栈段:包括堆和栈空间堆(Heap):用来存储程序运行时分配的变
2021-11-30 18:20:53
1182
原创 汇编基础知识
contents汇编语言寄存器内存模型CPU指令ARM汇编与C语言编程汇编语言作为低级语言,直接描述/控制CPU的运行,学习汇编的意义就是为了理解CUP的运行情况已经高级代码的运行步骤汇编语言 来历 最早的时候,编写程序就是手写二进制指令,然后通过各种开关输入计算机,比如要做加法,就按一下加法开关。后来发明了纸袋打孔法,通过在纸袋上打孔,将二进制指令自动输入计算机。 &
2021-09-28 18:57:30
720
原创 SD/eMMC调试和性能优化
ContentseMMC分析eMMC存储器的调试、关于协议规范的总结以及MMC驱动分析eMMC分析 简单来说,eMMC = Nand Flash闪存 + controller闪存控制器 + 标准封装接口;而eMMC设备和主机系统的连接通常由三部分组成:主机(一般是嵌入式SOC)、eMMC设备、eMMC控制器(Host)。...
2021-09-26 22:04:51
11857
2
原创 操作系统基础知识
contents进程和线程面试基础知识巩固进程和线程进程与线程的典型例子:打开微信软件,属于一个进程启用;在微信中进行聊天、刷朋友圈等各种操作,这些操作就是线程可以说"进程"包含"线程","线程"是"进程"的子集 什么是进程?什么是线程? 进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配基本单元,是操作系统结构的基础。在当代面向线程设计的计算机结构中,进程时线
2021-09-24 17:32:16
258
原创 Uboot基础知识
contentsubootuboot与内核面试基础知识巩固uboot 什么是bootloader?bootloader是一段启动程序,Linux系统的启动必须要一个bootloader程序,在芯片上电后运行。bootloader会初始化时钟、看门狗、中断、SDRAM等外设。将Linux内核从Flash(NAND、 NOR、SD、MMC、UFS等)拷贝到SDRAM中,最后启动内核。简述就是bootloader是一段程序,它在系统上电后开始执行,
2021-09-24 15:35:56
453
原创 常用Linux指令
Contens常用Linux指令的基础知识点常用gcc命令常用GDB调试指令常用驱动开发指令面试基础知识巩固常用Linux指令的基础知识点 ls命令执行什么功能?可以带哪些参数?#功能:列出指定目录中的目录和文件#参数: ls -a #显示所有的文件和目录(包括.开头的隐藏文件) ls -l #除文件名称外,将文件形态、权限、拥有者、文件大小等信息详细列出 ls -r #将文件以相反的顺序显示(原定依英文字母次序) ls -t #将文件依建
2021-09-24 14:58:02
260
原创 Linux 嵌入式开发环境
ContentsUbuntu桌面系统VIM操作VIM自定义配置编译运行gccUbuntu桌面系统安装编程环境:sudo apt-get install build-essential 桌面系统快捷键: linux shell基本命令: 其他命令:对于不常用命令可用man查询VIM操作 Vim学习教程:输
2021-09-22 16:42:48
324
原创 UFS 3.1协议分析(第六章) -- UFS电气信号
ContentsUFS信号UFS信号 UFS有三个供电电压,分别是VCC、VCCQ、VCCQ2。分别给UFS设备模块供电。UFS设备主要包括三部分:前端UFS接口(M-PHY),UFS控制器和闪存介质(图中的Memory模块)。VCC给闪存介质供电VCCQ给ufs控制器和闪存输入输出接口供电VCCQ2一般给M-PHY或其它一些低电压模块供电 ufs3.1中规定的电压值范围为: &nbs
2021-09-22 16:41:19
10220
原创 Linux shell编程学习 -- 基础篇 - Linux文件系统
ContentsLinux的安全性/etc/passwd文件/etc/shadow文件用户添加和删除用户修改学习目标:从认识Linux命令行基础开始,一直到写出自己的shell脚本Linux的安全性 Linux安全系统的核心是用户账户。每个能进入Linux系统的用户都会被分配唯一的用户账户。用户对系统中各种对象的访问权限取决于登录系统时用的账户。用户权限是通过创建用户时分配的用户ID(UID)来追踪。UID是数值,每个用户都有唯一的UID,但在登录
2021-09-18 18:15:15
595
原创 Linux shell编程学习 -- 基础篇 - shell与环境
Contents理解shellshell的类型shell的父子关系学习目标:从认识Linux命令行基础开始,一直到写出自己的shell脚本理解shell 要想理解shell,需要先理解CLI。shell不单单是一种CLI,它是一个时刻都在运行的复杂式交互程序。shell的类型 系统启动什么样的shell程序取决于用户个人ID的配置,在/etc/passwd文件中。此处以bash shell为例,bash
2021-09-18 14:50:07
611
原创 Linux shell编程学习 -- 基础篇 - bash shell
Contentsbash学习目标:从认识Linux命令行基础开始,一直到写出自己的shell脚本bash 大多数Linux发行版的默认shell都是GNU bash shell,它能提供对LInux系统的交互式访问。 用户登录时系统启动的shell依赖于用户账户的配置,/etc/passwd文件包含了所有系统用户账户列表以及每个用户的基本配置信息。...
2021-09-17 18:31:29
355
原创 UFS 3.1协议分析(第五章) -- UFS协议栈
ContentsUFS顶层架构应用层UFS命令集UFS 设备管理器UFS任务管理器传输层互连层UFS顶层架构 UFS基于SCSI SAM架构模型定义了一个完整的协议栈,从上到下依次为应用层、传输层、数据链路层、物理层。UFS使用MIPI联盟的UniPro作为数据链路层和MIPI的M-PHY作为物理层,两者合起来称之为互连层(UFS InterConnect Layer)应用层 应用层包括UFS命令集、设备管
2021-09-16 18:28:56
6251
1
原创 UFS 3.1协议分析(第一至四章) -- UFS概述
Contents协议规范规范参考术语和定义简单概述通用特性接口特性功能特性协议规范 UFS3.1协议规定了UFS电气接口和存储器件的特性以及系统架构。特性:低功耗、高数据吞吐量、低电磁干扰、大容量存储器子系统效率的优化电气接口:使用基于MIPI M-PHY的高级差分接口;M-PHY作为物理层,MIPI UniPro作为链路层,二者结合形成UFS接口的互联。架构模型:参考 INCITS T10(SCSI) SAM 标准,命令协议基于 INCITS T1
2021-09-16 16:22:55
11577
原创 UFS 安全机制
ContentsUFS安全特性安全模式数据擦除EraseDiscardPurgeWipebSecureRemovalTypeParameter写保护UFS安全特性 UFS 协议中强制定义了几种安全特性:重放保护内存块(RPMB)、安全模式和不同类型的逻辑单元写保护。安全模式 在安全模式下,所有导致设备上数据删除或停用的操作都将以安全的方式进行,即操作的对象为存储介质,数据将彻底从设备上删除。安全模式应用于逻辑
2021-08-12 18:46:02
2392
原创 Linux shell编程学习 -- 基础篇 - 初识Linux Shell
什么是Linux 一个linux系统可以划分为以下四部分:Linux内核GNU工具图形化桌面环境应用软件Linux内核 Linux内核控制着计算机系统上的所有硬件和软件,有必要时分配硬件,并根据需要执行软件。内核主要负责以下四种功能:系统内存管理:包括管理物理内存、创建和管理虚拟内存。 内核通过不断地在交换空间和实际的物理空间之间反复交换虚拟
2021-08-12 16:30:50
385
原创 UFS Host基础特性分析 -- 硬件部分
ContentsUFS总体架构MPHYUniProUFSHCIUFS Host ControllerUFS系统框图UFS controller wrapperUFS总体架构 UFS总体架构主要包含了UFS Host Controller部分和UFS device部分,UFS协议对应的也分为两部分:UFS Host Controller Interface协议和UFS协议。 无论是UFS Host Contr
2021-08-12 14:08:24
3760
1
原创 Linux电源管理 -- RPM机制
ContentsRPM框架 计算机系统的运行是依靠电能运行的,而能量的获取是有成本的,因此如果能在保证系统运转的基础上,尽量节省对能量的消耗,就会大大提升该系统的生存竞争力。这方面,大自然已经做的很好了,如植物的落叶,如动物的冬眠,等等。而在计算机的世界里(这里以运行Linux OS的嵌入式系统为例),称作电源管理(Power Management)。 电源管理(Power Management)在Linux
2021-07-28 09:31:20
1703
原创 UFS Host Controller工作流程
contentsUFS架构图HCI接口架构传输请求接口(Transfer Request Interface)UFS 主机控制器寄存器接口(host controller Interface)UTP 层数据传输Host Software与Host Controller的交互Host Controller初始化配置与控制CRYPTOCFG 配置过程该文档描述了UFS Host Controller的主要运作流程以及在开源内核代码hisi平台中的host controller的接口函数设计文档大部分内容参
2021-07-26 11:37:56
9191
1
原创 UFS电源管理
contentsUFS电气特性UIC statusHost and MemoryUFS电气特性 三个供电电压,VCC,VCCQ和VCCQ2,分别给UFS设备模块供电。 UFS设备主要包括三部分:前端UFS接口(M-PHY): VCCQ2一般给M-PHY或其它一些低电压模块供电。UFS控制器 : VCCQ一般给闪存输入输出接口和UFS控制器供电。闪存介质(图中的Memory模块): VCC给闪存介质供电
2021-07-23 15:47:50
4176
原创 UFS Host基础特性分析 -- 软件部分
ContentsUFS子系统软件架构kernel版本:4.9平台:Arm64UFS子系统软件架构 UFS子系统实际就是SCSI系统的底层,也就是UFS控制器的驱动。
2021-07-13 19:16:53
2367
原创 Linux内核源码下载
Contents官方网站国内服务官方网站 https://www.kernel.org/ 由于网络因素,官网可能比较慢。下载方式地址HTTPhttps://www.kernel.org/pub/GIThttps://git.kernel.org/国内服务 http://ftp.sjtu.edu.cn/sites/ftp.kernel.org/pub/linux/kerne
2021-07-12 20:29:26
269
原创 Linux下嵌入式读写寄存器
contents寄存器读写BOOT下读写寄存器sysfs文件系统读写寄存器应用层读写寄存器内核读写寄存器寄存器读写 linux下嵌入式读写寄存器一般可以有以下几种方式实现: Boot终端下使用mw\mb命令读写物理地址。在文件系统中使用sysfs接口进行操作。在应用层读写/dev/mem节点。在内核中使用ioremap映射物理地址为虚拟地址进行操作。使用内核提供的gpio接口进行读写操作。 一般进
2021-07-01 14:47:33
7136
原创 Hikey 970 GPIO控制分析
contents问题描述硬件资料Hisilicon GPIO计算方式GPIO控制Hikey970 GPIO计算问题描述 拿到一块Hikey970的开发板,需要将gpio口配置为输出模式,由于没有寄存器手册,所以无法配置设备树;也不能通过文件系统控制,只能在内核中修改。 在内核中通过gpio标准的接口函数gpio_set_direction()函数配置的话需要将gpio的硬件参数配置在dts中,所以无法实现。因
2021-07-01 11:39:42
453
原创 NAND Flash的同步与异步
同步与异步SDR与DDRSync和AsyncONFI和Toggle闪存的同步与异步SDR与DDR SDR(single data rate),写数据使用上升沿或下降沿来触发。因为只用上升沿或下降沿,对信号的准确性要求较低。 DDR(double data rate),写数据时通过MCU来控制DQS信号跳边沿来触发(即上升沿和下降沿均触发),所以对信号的准确性要求较高,(同步)可以通过增加同步时钟信号来提高信号的
2021-06-11 09:30:43
3469
原创 Nand Flash的读操作及原理
目录硬件原理读操作硬件原理引用上图的Nand Flash的硬件原理图,关于这些引脚的含义有如下解释:NAND FLASH是一个存储芯片那么: 这样的操作很合理"读地址A的数据,把数据B写到地址A" 问1. 原理图上NAND FLASH和S3C2440之间只有数据线, 怎么传输地址?答1.在DATA0~DATA7上既传输数据,又传输地址 当ALE为高电平时传输的是地址, 问2. 从NAND FLASH芯片手册可知,要操作NAND FLASH需要先发出命令 怎么传
2021-06-10 10:18:54
1443
原创 SSD《一》-- 基础知识
目录SSD工作原理SSD的写和读操作SSD的核心参数SSD容量存储介质SSD性能剖析性能指标访问模式时延指标数据可靠性剖析数据可靠性MTBFSSD工作原理 从主机PC端开始,用户从操作系统应用层面对SSD发出请求,文件系统将读写请求经drive转化为相应的符合协议的命令,SSD收到命令执行相应操作,然后输出结果。 对SSD来说,输入的是Command,输出是Data和Command Status。SSD前端(F
2021-06-07 20:22:56
3770
原创 Linux rootfs根文件系统
文章目录文件系统的概念根文件系统的概念根文件系统的重要性在内核挂载根文件系统根文件系统常用目录Linux文件系统的常用目录文件系统的概念 根文件系统是文件系统中的一种比较特殊的形式。文件系统是操作系统用于明确存储设备(常见的是磁盘,也有基于NAND Flash的固态硬盘)或分区上的文件的方法和数据结构;即在存储设备上组织文件的方法。操作系统中负责管理和存储文件信息的软件机构称为文件管理系统,简称文件系统。文件系统由三部分组成:文件系统的接口,对对象操作和管理
2021-05-28 18:04:39
1564
原创 Linux的同步机制
文章目录原子操作并发问题单处理器原子操作多处理器原子操作对策与实现对策ARM中原子操作实现原子操作并发问题 现代操作系统支持多任务的并发,并发在提高计算资源利用率的同时也带来了资源竞争的问题。例如C语言语句“count++”,在未经编译器优化时生成的汇编代码为: 当操作系统内存在多个进程同时执行这段代码时,就可能带来并发问题。 假设count变量初始化为0
2021-05-08 15:30:36
499
原创 Linux内核多线程
文章目录概述原理分析代码实现kernel_thread()kthread_create()kthread_run()kthread_stop()/kthread_should_stop()kthreadd()概述 内核经常需要在后台执行一些操作,这种任务就可以通过内核线程(kernel thread)完成,它是独立运行在内核空间的标准进程。内核线程和普通的进程间的区别在于内核线程没有独立的地址空间,mm指针被设置为NULL;它只在内核空间运行,从来不切换到用
2021-05-06 17:18:41
1922
原创 UFS入门基础
文章目录计算机组成什么是UFS?什么是eMMC?UFS原理命令处理模式UFS结构闪存知识计算机组成电脑三大件:CPU、内存和硬盘。CPU用以计算和控制,内存用以临时存储程序运行时所需的数据(掉电数据丢失),而硬盘用以长久保存数据(掉电数据不丢失)。手机其实也是一个移动的小型计算机,同样由三大件组成:CPU、内存和存储设备。其中存储设备相当于电脑的硬盘,用以保存手机上的数据,比如视频、照片、音乐、系统等数据。电脑的硬盘有机械硬盘(HDD)和固态硬盘(SDD),前者是机械存储设备,存储介质是磁盘;而后者
2021-04-27 16:50:02
10203
原创 Nand flash的基础知识
什么是Nand Flash?Nand Flash是一种非易失性随机访问存储介质,基于浮栅(Floating Gate)晶体管设计,通过浮栅来锁存电荷,电荷被存储在浮栅中,他们在无电源供应的情况下仍然可以保持。Nand Flash生产过程Nand Flash是从原始的硅材料加工出来的,硅材料被加工成晶圆(Wafer),一片晶圆可以做出几百颗Nand Flash芯片。芯片未封装前的晶粒称为Die,它是从Wafer上用激光切割而成的小片,每个Die就是一个独立的功能芯片,它由无数个晶体管电路组成,但最终可被
2021-04-26 19:43:35
14595
2
原创 盈趣科技嵌入式面试总结
时间:2021年4月6日公司:盈趣科技–嵌入式驱动开发工程师面试流程前台填写应聘基本信息表 – 5分钟技术官机试考核并问答面试 – 30分钟面试总结失败原因:招聘岗位与自我掌握知识不符合,这家公司的驱动开发工作内容更偏向于Android开发。面试问题多为Android的外围设备驱动开发以及与上层通讯交互流程的深究,在数据流程等问题须加深总结学习。面试题分析1、TP驱动开发流程?需要注意的点?以及如何调试?Android/Linux TP驱动移植调试一般包括以下几个流程:当手指接
2021-04-14 18:23:38
624
原创 C语言基础冷知识汇总
!和~的区别~:表示按位取反,1变成0,0变成1。!:表示逻辑取反,false变ture,true变false,在C语言中,逻辑取反的对象只要不是0就表示为真。//示例:!5 = 0~5 (二进制00000101,取反11111010)= -6[~表示按位取反,!表示逻辑否定]所有的不是0的数用!操作后都是0;只有当操作数为0xFFFFFFFF时,使用!和~的结果值才是一样的。* 另外可以注意* 所有正整数的按位取反是其本身+1的负数,所有负整数的按位取反是其本身+1的绝对值* 0的按
2021-04-14 18:22:14
1332
原创 创维数字--驱动开发岗位面试总结
面试流程前台填写应聘基本信息表HR了解基本情况 – 10分钟答写软件基本面试题 – 40分钟技术官问答面试面试题总结主要考察基础的C语言知识数据结构方面考察较多的是链表知识指针操作是面试重点...
2021-04-01 22:26:39
1097
2
原创 Sunxi平台图形开发
一、显示系统基础硬件术语1)layer:一个图层处理单元,可以处理一张输入图像,按支持的图像格式分为video和ui类型。2)channel:一个硬件通道,包含若干个图层处理单元,可以同时处理若干(典型4个)格式相同的图层。3)alpha:透明度,在混合时决定对应图像的透明度。4)transform:图像变换,如平移、旋转等。5)overlay:图像叠加,按顺序将图像叠加一起的效果。Z序大的靠近观察者,会把z序小的挡住。6)blending:图像混合,按alpha比例将图像合成一起的效果。7
2021-03-25 14:47:32
1396
1
原创 Vim基础操作
基础命令gg :到文首shift+g : 到文末U :撤销ctrl+r :反撤销yy :复制p :粘贴dd :删除命令模式下:VS xxx.c左右分屏;SV xxx.c上下分屏;ctrl+w+w屏幕切换shift+5 :跳转到{}+= :行对齐ctrl+n :自动补齐shift+v :行选ctrl+v :列选mkdir /opt/test/test -p :创建多级文件du -h :查看文件大小df :检查磁盘空间占用情况cal :显示日历/pattern :向
2021-03-18 10:45:15
315
原创 Linux sed命令
sed命令linux sed命令是利用脚本来处理文本文件。sed可依照脚本的指令来处理、编辑文本文件。sed主要用来自动编辑一个或多个文件、简化对文件的反复操作、编写转换程序等。语法sed [-hnV][-e<脚本>][-f<脚本文件>][文本文件]参数说明-e<脚本>或–expression=<脚本> 以选项中指定的script来处理输入的文本文件。-f<script文件>或–file=<script文件> 以选
2021-03-16 19:14:55
185
原创 Linux find命令
基本概念linux find命令是用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用find命令不设置任何参数,则find命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示。find命令相对于locate这种非实时查找的搜索命令,大大增加了我们搜索的便捷度以及准确性;并且能够方便的帮助我们对大文件、特定类型的文件查找与删除,特别是有超多小碎文件的时候。语法find path -option [ -print ] [ -exe
2021-03-10 12:08:12
155
C和指针 PDF
2019-03-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人