- 博客(45)
- 收藏
- 关注
原创 深入理解计算机系统阅读笔记-第十三章
应用级并行的作用:1、在多处理器上进行并行计算:在只有一个cpu的单处理器上,并发流是交替的,同一时间,只有一个流在CPU上实际执行。多CPU的机器上,可以真正的同时执行多个流,运行速度很快,对大规模数据库和科学应用尤为重要。2、访问慢速I/O设备:当一个应用正在等待来自慢速I/O设备的数据时,内核会运行其他进程,提高CPU使用率。3、与人交互:和计算机交互的人要求计算机同时执行多个任务的能力。现代窗口系统利用并发性来提供这种能力。
2025-01-17 14:20:28
722
原创 深入理解计算机系统阅读笔记-第十二章
每个网络应用都是基于客户端-服务器模型的。根据这个模型,一个应用时由一个服务器进程和一个或者多个客户端进程组成。服务器管理某种资源,并且通过操作这种资源来为它的客户端提供某种服务。例如,一个Web服务器管理了一组磁盘文件,它会代表客户端进行检索和执行。一个FTP服务器就管理了一组磁盘文件,它会为客户端进行存储和检索。相似地,一个电子邮件服务器管理了一些文件,它为客户端进行读和更新。
2025-01-13 17:48:47
790
原创 深入理解计算机系统阅读笔记-第十一章
输入/输出(I/O)是主存和外部设备之间拷贝数据的过程。所有编程语言的运行时系统都提供执行I/O的高级别工具。例如,ANSI C的标准I/O库,包含像printf和scanf这样执行带缓冲的I/O函数。C++用重载操作符<<(输入)和>>(输出)。在Unix系统中,是通过使用内核提供的系统级Unix I/O函数来实现这些高级别的I/O函数的。大多数时候,高级别I/O函数工作良好,没有必要直接使用Unix I/O。但学习Unix I/O有以下益处:1、了解Unix I/O有助于理解其他的系统概念。
2024-10-22 15:07:42
790
原创 深入理解计算机系统阅读笔记-第十章
虚拟存储器是硬件异常、硬件地址翻译、主存、磁盘文件和内核软件的完美交互,它为每个进程提供了一个大的、一致的、私有地址空间。通过一个很清晰的机制,虚拟存储器 提供了三个重要能力:1、它将主存看成是一个存储在磁盘上的地址空间的高速缓存,在主存中只保存活动区域,并根据需要在磁盘和主存之间来回传递数据,通过这种方式,它高效地使用了主存;2、它为每个进程提供了一致的地址空间,从而简化了存储器管理;3、它保护了每个进程的地址空间不被其他进程破坏。
2024-10-18 13:25:14
781
原创 深入理解计算机系统阅读笔记-第九章
计算机有一个外部计时器,它周期性地向处理器发送中断信号,操作系统调度程序可以选择继续执行当前进程,或者切换到另一个进程。典型的周期时1~10ms。
2024-10-16 17:52:49
1038
原创 深入理解计算机系统阅读笔记-第八章
后面父进程和子进程对x的改变都是独立的,不会反映到另一个进程的存储器中。在任何时刻,一种类型之多只会有一个待处理信号,如果一个进程有一个类型为k的待处理信号,那么任何接下来发送到这个进程的类型为k的信号都不会排队等待,它们会被丢弃。当父进程回收已经终止的子进程时,内核将子进程的退出状态传递给父进程,然后抛弃已经 终止的进程,此后,该进程就不存在了。例如,进程15213是调用进程,那么setpgid(0,0)会创建一个新的进程组,其进程组ID是15213,并且把进程15213加入到这个新的进程组 中。
2024-10-14 17:10:49
886
原创 深入理解计算机系统阅读笔记-第七章
在编译时,编译器输出每个全局符号给汇编器,汇编器会把这个信息隐含地编码在可重定位目标文件的符号表里。函数和已初始化的全局变量是强符号未初始化的全局变量是弱符号Unix链接器使用下面规则来处理多定义的符号:1、不允许有多个强符号2、如果有一个强符号和多个弱符号,选择强符号3、如果有多个弱符号,则从这些弱符号中任意选择一个比如编译和链接下面两个C模块,编译器会报错,因为强符号mian被定义了多次int main()return 0;
2024-10-11 16:34:24
1182
原创 深入理解计算机系统阅读笔记-第六章
每个行由B个大小为2^b字节的数据块(block)组成,一个有效位(valid bit)指明这个行包含的数据是否有意义,还有t=m-(b+s)个标记位(tag bit)(是当前块的存储器地址 的位子集),它们唯一地标识存储在这个高速缓存行中的块。一个区中的每个磁道都有相同数量的扇区,这个扇区的数量是由该区中最里面的磁道所包含的扇区数确定的。如下图所示:第k+1层被划分成16个固定大小的块,第k层被分成4个块,块的大小和k+1层的大小一样,它包含的是k+1层中编号为4,9,14,3的块的拷贝。
2024-10-09 16:26:33
905
原创 深入理解计算机系统阅读笔记-第五章
程序效率最重要的两点:1、算法和数据结构2、编译器可以高效优化的源代码对于第二点,理解优化编译器的能力和局限性非常重要。程序的小变动都会引起编译器优化方式很大的变化。通常,程序员要在程序源码简单易懂和实际运行速度之间做权衡。本章只考虑后者。编译器分为与机器无关和与机器有关两类。
2024-09-27 17:52:36
1196
原创 深入理解计算机系统阅读笔记-第四章
一个处理器支持的指令和指令的字节级编码称为它的ISA(instruction-set architecture,指令集体系结构)。不同家族处理器有不同的ISA。ISA在编译器编写者和处理器设计人员之间提供了一个概念抽象层,编译器编写者只需要知道允许哪些指令,以及他们是如何编码的;而处理器设计者,必须建造出执行这些指令的处理器。ISA模型看上去是顺序执行的,实际上同时处理多条指令的不同部分,可以提升性能。本章自定义设计一个Y86处理器,它的指令集称为Y86指令集。
2024-09-06 17:11:52
1159
原创 深入理解计算机系统阅读笔记-第二章
大多数计算机用字节byte作为最小的可寻址的存储单位,程序将存储器视为一个byte数组,称为虚拟存储器(virtual memory),存储器的每一个字节都有唯一的地址来标识,所有地址的集合称为虚拟地址空间(virtual address space)。以8为位宽为例,-1的int型编码为0xFF,经过强制类型转换后,不会改变其编码形式,只会使用新的类型重新表示,所以得到的值是正的0xFF。相同的c程序在不同的机器上的机器码是不同的,二进制代码很少可以在不同的机器和操作系统上移植。实际使用的也比较少。
2024-08-26 15:15:21
963
原创 SNMP入门笔记
SNMP是英文"Simple Network Management Protocol"的缩写,中文意思是"简单网络管理协议"。SNMP是一种简单网络管理协议,它属于TCP/IP五层协议中的应用层协议,用于网络管理的协议。SNMP主要用于网络设备的管理。由于SNMP协议简单可靠 ,受到了众多厂商的欢迎,成为了目前最为广泛的网管协议。
2024-08-21 15:42:29
461
原创 OpenWRT 学习
把源文件hello_world.c拷贝到OpenWRT源码交叉编译工具目录。加粗字体根据平台不同可能不一样,不在交叉编译目录编译可能会有依赖报错。最好放tmp目录,~/目录找不到。
2024-08-16 14:38:32
525
原创 常见编译报错解决方法
错误信息中说的很清楚,在automake文件中的第4160行中有一个左大括号(left brace)是非法的,这个括号删掉就行了。这个是一类问题,需要向上查具体原因,本人是根据下面文章查找,发现是。unescaped left brace报错,然后解决的。屏蔽掉 #include
2024-08-12 17:37:54
448
原创 MIPI总线介绍
MIPI的硬件也就是物理层,目前有D-PHY,M-PHY,C-PHY,A-PHY四种2007年出现了D-PHY。2008年提出了M-PHY。数据传输量最大,但在实际应用案例几乎没有。主要原因是和camera的应用发展有关,camera在达到20M的像素之后并没有像MIPI组织的预期一样继续大幅往上更高像素数方面发展。而M-PHY设备开发过于复杂,没有设备商支持,所以仍使用D-PHY协议。2013年提出了C-PHY协议。相比M-PHY 传输速度低,但是和D-PHY更容易兼容,且设备开发成本较低。
2024-08-07 17:53:23
5480
原创 i2s总线介绍
I2S总线一般由1根系统时钟线和3根信号线组成:MCLK:称为主时钟,也叫系统时钟(Sys Clock),一般为了使系统间能够更好地同步时增加MCLK信号,MCLK的频率 = 128或者256或者512 * 采样频率;SCLK(BCLK):串行时钟SCLK,也叫位时钟(BCLK),即对应数字音频的每一位数据,SCLK都有1个脉冲。SCK的频率 = 声道数 * 采样频率 * 采样位数;LRCK:帧时钟LRCK,(也称WS),用于切换左右声道的数据。
2024-08-01 15:18:33
2125
原创 如何在代码中关闭selinux
system/core/init/selinux.c中isEnforcing()函数直接返回false。在dts的启动参数中添加 androidboot.selinux=permissive。只关闭userdebug版本。
2024-07-31 16:15:47
205
原创 uart总线介绍
以RS232为例,串口引脚有9脚和25脚两种,25脚主要用于早期设备,现已逐渐淘汰;实际使用中,一般只需三根线(发送、接收和接地)就能实现数据收发,讲设备的TXD/RXD与计算机的RXD/TXD连在一起,就能实现全双工传输。从表中也能看出,没有时钟线,所以UART是异步传输的。在收集资料的时候,看到一篇关于引脚说明的文章,讲的比较详细,感兴趣的可以去看看。设备监控技术详解。
2024-07-17 15:16:55
2610
原创 SPI总线介绍
SPI需要至少4根线,单向传输时3根线,它们是MISO(主设备数据输入)、MOSI(主设备数据输出)、SCLK(时钟)和CS/SS(片选)SCLK(Serial Clock):传输时钟信号,用于主从设备的同步MOSI(Master Out Slave In):主设备 ==》从设备(主设备发送,从设备接收)MISO(Master In Slave Out):从设备 ==》主设备(主设备接收,从设备发送)
2024-07-15 16:55:08
1416
原创 I2C总线介绍
I2C(也常写作IIC,I2C),全称为Inter-Integrated Circuit(“互连集成电路”),用于在集成电路之间进行短距离数据传输。是由SCL和SDA两根线组成的半双工同步串行总线。I2C的地址位有7bit和10bit两种。对于7bit地址,最多支持寻址127设备(实际情况要考虑负载容值,总容值不允许超过400PF)。对于10bit地址,最多支持1023个设备。SCL高电平是对SDA进行数据采样, 如果此时SDA发生电平变化,则是起始终止条件。
2024-07-05 17:23:35
1152
原创 UMS521T Android11 SIM卡热插拔调试
ProductionParam -> 选择sim_hot_plug_cfg 修改值为 0x003 -> 点击保存项目(需要确定有新的bin文件生成 没有生成可以单独点击file -> save Image)file -> open project -> 选择以下文件。2.KB01插卡时检测脚低电平 未插卡时高电平。1.开发板插卡时检测脚高电平 未插卡时低电平。一.确定是热插拔原因导致的不读卡。一.确定是热插拔原因导致的不读卡。2.修改为插入后电平为低电平。3.替换掉之前的bin文件。
2024-05-24 14:02:52
442
原创 展锐平台关闭sensor hub功能
修改如下内容1 BoardConfig.mk路径/device/sprd/sharkl***/${customer_product}/BoardConfig.mk去掉如下sensorhub配置如下:USE_SPRD_SENSOR_HUB := true# Config Sensor driverSENSOR_HUB_ACCELEROMETER := icm20600SENSOR_HUB_GYROSCOPE := icm20600SENSOR_HUB_LIGHT := ltr553a
2024-05-24 13:57:02
786
原创 展锐android修改开机logo
ums512_1h10.ini有很多上面的关键字,可以根据编译pac包的名字来确定用哪个标签中的。硬件:展锐sharkl5Pro->ums512_1h10。Android版本:11。
2024-05-13 19:41:52
884
1
原创 展锐平台regulator配置
驱动通过regulator_desc结构描述一个regulator内核中int id;int irq;u-boot中不同的ic有不同的定义,以sc2730为例int type;2:dcdc)*/
2024-03-01 18:01:49
723
原创 展锐平台pin脚功能配置
pinmap.c 文件中对 BB 每个 PAD 的配置都分为两行,第一行配置 PAD 的“Central 寄存器”,第二行配置PAD 的“Side Band(MISC)寄存器”。下面以 DSI_TE 为例,对关键字段进行解释说明。A:PAD 脚的“Central 寄存器”名称。“DSI_TE”为 PAD 的 Ball Name。B:“Central 寄存器”的控制内容,控制 PAD 的功能。AF0~3 对应 BB 芯片规格书和 GPIO SPEC 中的 Function 0~3。
2024-03-01 16:21:47
2437
1
原创 Android wifi 网络连接受限问题分析记录
硬件:rk3588软件:Android 12问题描述:系统时间不正确时,wifi连接异常,提示网络连接受限。无法上网。
2024-02-21 16:51:44
2699
原创 Android system property的添加和使用
将上面文件拷贝替换system/sepolicy/prebuilts/api/32.0/private/property_contexts,保持这两个文件一致。system/sepolicy/prebuilts/api/下面有很多不同的api版本,如果不知道使用的是哪个,在上一步添加完成后,编译会有报错提示。java中使用要导入相关库。
2024-02-06 13:28:45
624
原创 Android系统时间获取分析
Android系统时间来源有三个:系统编译时间,硬件rtc时钟,互联网时间。之后比较系统时间和编译时间,将比较新的时间设置为系统时间。开机后先将rtc时间设置为系统时间。当接入互联网,更新时间。
2024-02-05 17:50:16
1086
原创 【转载】添加hdr feature
ChiFeature2PortDescriptor 结构体描述了Feature的ports, 包括session的info、pipeline、port index、port direction、port type 和 Feature port 到 Target 的映射。ChiFeature2Descriptor 结构体描述Feature Id、Feature name、Feature里stages的个数,并且指向session descriptor table。
2023-12-12 13:18:24
181
原创 高通camx-chi主要数据结构
代表一个打开的设备,通过上面的open函数获取,第一个成员必须是hw_device_t。每个硬件模块抽象出的设备必须实现,第一个成员必须是hw_module_t。描述camera信息,通过get_camera_info获取。process_capture_request()主要参数。process_capture_result()主要参数。camera_module_t的camx实例在后面。configure_streams()重要参数。包含close和hw_module_t。notify()参数。
2023-12-01 13:09:16
713
原创 高通camx-chi架构
代表了某个特定的图像采集场景,比如人像场景,后置拍照场景等等,在初始化的时候通过根据上层传入的一些具体信息来进行创建,这个过程中,一方面实例化了特定的。,这个实例是用来管理整个场景的所有资源,同时也负责了其中的业务处理逻辑,另一方面,获取了定义在。对应着一个特定的功能,如果场景中并不需要任何特定的功能,则也完全可以不使用也不创建任何。之间的连接也就越错综复杂,比如后置人像预览虚化效果的实现就是将拿到的主副双摄的图像通过。的起始端开始输入的时候,便可以按照这种定义好的轨迹在一个一个。
2023-12-01 10:55:38
298
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人