- 博客(49)
- 收藏
- 关注
原创 Linux系统下某个进程杀不掉,会自动重启
ubuntu服务器下,使用nvidia-smi查看GPU使用情况,发现一直存在一个未知的python程序在长期使用GPU,使用kill命令杀进程和关机重启都无法解决,该程序会自动重启。3、再次尝试查找其源头的父进程,即该进程的父进程的父进程,发现PPID居然是1,意味着只要开着机,就会启动这个程序。note: 关于这个程序会反复重启的原因,实际上是由于用 系统下的cron工具 写入了计划任务(会周期检查是否有要执行的任务)5、将该目录下的python程序删除后,再次结束PID,成功kill掉该程序。
2022-11-02 09:56:38
4068
2
原创 Linux的EXPORT_SYMBOL和EXPORT_SYMBOL_GPL的使用和区别
EXPORT_SYMBOL标签内定义的函数或者符号对全部内核代码公开,不用修改内核代码就可以在您的内核模块中直接调用,即使用EXPORT_SYMBOL可以将一个函数以符号的方式导出给其他模块使用。EXPORT_SYMBOL的符号,是把这些符号和对应的地址保存起来,在内核运行的过程中,可以找到这些符号对应的地址。如果在模块中引用了内核或其它模块的符号,就要EXPORT_SYMBOL这些符号,这样才能找到对应的地址连接。//这里是对函数的调用。第三、首先加载定义该函数的模块,再加载调用该函数的模块;
2022-10-24 17:16:08
288
原创 我给新加坡华人送外卖,一趟5000块
上面几乎涵盖了所有在新加坡的特色中餐,既有川湘菜、东北烤肉、冒菜、火锅串串、小尾羊这样的地方菜系,也有像“海底捞”“云海肴”“小龙坎”“杨国福麻辣烫”这样国内也随处可见的品牌,还有“康记糖葫芦”“辣妞小鲜肉”“万里挑燕”这种巷子里的当地华人特色小店。来新加坡的国人在点外卖的时候,其实有很多明显特征。这款APP几乎是新加坡最早上线的华人外卖之一,存在的主要竞争对手,包括东南亚最大的外卖平台“Grab”,新加坡的“星食客”,“HungryPanda(熊猫外卖)”以及被其收购的马来西亚的“Easy”等等。
2022-10-22 18:20:56
558
1
原创 MTK不开机问题分析
b) 无法抓取时请检查uart 口配置(\mediatek\custom\out\{project_name}\preloader\cust_bldr.mak)c) \mediatek\custom\out\{project_name}\preloader\custom_emi.c (或\out\target\。10. 如果是同样的板子, A MCP OK, B MCP fail,则请同步联系MCP Vendor。tool的log,查看BROM_DLL_V5.log中的“ FW”信息。
2022-10-21 16:54:14
315
原创 [FAQ20512]如何将默认为UFS的项目修改配置为EMMC项目
对于默认EMMC的codebase,如需要配置为UFS,请参考FAQ19892如何配置为UFS的项目。对于客户项目使用的是EMMC,但拿到的codebase是基于UFS的,导致无法下载开机情况,请参考本。检查codebase中对应文件配置,如已有配置项请将值改为如下值,没有的配置项请添加上去,不确。修改UFS 项目配置为 EMMC.
2022-10-20 16:46:12
61087
原创 FAQ22334 Android Q之后如何单独烧录system vendor odm product img
如 FAQ22312所述,Android Q之后,system vendor odm product 这种img会打包在super.img,本。这会使系统通过recovery mode这路来启动kernel,init会再启动fastbootd service。3. 烧录system/vendor/odm/product.img。方法1 通过fastboot mode 命令进fastbootd。单独烧录lk (lk需同一codebase编译生成)方法2 adb命令进fastbootd界面。
2022-10-19 15:45:00
168
原创 Unicode与UTF-8互转(C语言实现)
已知" 严"的unicode是4E25 (1001110 00100101), 根据上表, 可以发现4E25处在第三行的。填入格式中的x, 多出的位补0. 这样就得到了, " 严"的UTF-8编码是 " 11100100 10111000。范围内 (0000 0800 - 0000 FFFF), 因此" 严"的UTF-8编码需要三个字节, 即格式是。25在后, 就是Big endian方式;因此, 第一个字节在前, 就是" 大头方式" (Big endian), 第二个字节在前就是" 小头方式。
2022-10-19 15:25:26
1278
原创 Unicode与GBK互转
显然, 只需要把下载下来的映射表用一个二维数组表示即可, tab_GBK_to_UCS2[i][0]表。要实现Unicode到GBK的转换, 可以使用以上的数组表结构, 但由于GBK对应的unicode值的。一个汉字, 前面的一个字节(他称之为高字节)从0xA1用到 0xF7, 后面一个字节(低字节)但这有一个问题, 对于GBK编码并不是连续的, 有些编码目前是没有意义的, 如0x817F,突的值表示即可, 在这用的是0x0001. 这样对于任意的GBK编码值, 我们就可直接地利用。
2022-10-19 15:24:06
2490
原创 FAQ22334 Android Q之后如何单独烧录system vendor odm product img
如 FAQ22312所述,Android Q之后,system vendor odm product 这种img会打包在super.img,本。这会使系统通过recovery mode这路来启动kernel,init会再启动fastbootd service。3. 烧录system/vendor/odm/product.img。方法1 通过fastboot mode 命令进fastbootd。单独烧录lk (lk需同一codebase编译生成)方法2 adb命令进fastbootd界面。
2022-10-19 10:36:26
100
原创 FAQ22334 Android Q之后如何单独烧录system vendor odm product img
如 FAQ22312所述,Android Q之后,system vendor odm product 这种img会打包在super.img,本。这会使系统通过recovery mode这路来启动kernel,init会再启动fastbootd service。3. 烧录system/vendor/odm/product.img。方法1 通过fastboot mode 命令进fastbootd。单独烧录lk (lk需同一codebase编译生成)方法2 adb命令进fastbootd界面。
2022-10-19 10:32:46
414
原创 [FAQ22340]如何查看Super分区layout
feature, 将system/vendor/odm/product等分区会合并成一个super分区,这些分区将共享super分。Android Q之后,所有平台新project(非OTA项目)默认google会要求开启Dynamic partitions。如何查看super分区的内部布局,比如super分区大小、使用情况等信息?1. 手机开机并确认可以正常连接adb。
2022-10-19 10:24:54
882
原创 Android 启动过程详解
startSystemServer@com.android.internal.os.ZygoteInit在Zygote上fork了一个进程: com.android.server.SystemServer.于是SystemServer@(SystemServer.java)就建立了。(3)main()@com.android.internal.os.ZygoteInit//正真的Zygote。•运行:com.android.internal.os.ZygoteInit:main函数。
2022-10-18 17:32:06
173
原创 产线上NvRAM数据丢失或 modem assert的SOP
2. JB2.MP前,adb pull dev/misc出来;的原生工具SP Meta/Maui Meta等工具去check该项数据是否真的异常,check时请切记,4) 注意,如果是82平台,过程文件会生成在/data/nvram/下,不需要额外pull。第三步,请复现问题,复现后重复第一步和第二步确认,并注意抓取复现问题的完整log,3) adb pull /data/AllFile和/data/AllMap出来。3) adb pull /protect_f/和/protect_s/出来。
2022-10-18 17:18:33
590
原创 GPIO模拟I2C总线进行通信
其中,字节中每一位的传输都需要一个时钟周期,当新的SCL到来时,SCL为低电平,此时数据发送方根据当前传输的数据位控制SDA的电平信号。当SDA上的数据准备好之后,SCL由低变高,此时数据接收方将会在下一次SCL信号变低之前完成数据的接收。为"1"时,说明接收失败。I2C总线协议中规定,数据通信的第一个字节必须由主机发出,内容为此次通信的目标设备地址和数据通信的方向(读/写)。在这个字节中,第1~7位为目标设备地址,第0位为通信方向,当第0位为"1"时表示读,即后续的数据由目标设备发出主机进行接收;
2022-10-18 16:43:23
163
原创 inux静态库.a与动态库.so的生成与区别、以及.so库文件的封装与使用
如果要运行编译完成的可执行文件,必须得设置下环境变量(执行程序时会去链接这个.so库文件,如果不设置环境变量,就找不到该库文件,程序执行失败),或者把生成的.so库文件拷贝到已设置的路径下(可以查环境变量LD_LIBRARY_PATH,但移植性不高)。ar rc libtest.a test1.o test2.o test3.o//把.o文件打包成.a的库文件。如果库函数改变,整个程序需要重新编译。静态库与动态库的选取使用,请结合自己的场景进行取舍,我不知道客户要使用的频率,我选择使用动态库的形式;
2022-10-18 16:13:32
134
原创 makefile 的ifeq,filter,strip 简单使用
版权声明:本文为CSDN博主「yugang_123456」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。strip 去空字符语句,去掉字串中开头和结尾的空字符(空字符包括空格、[Tab]等不可显示字符)。filter: 过滤语句,过滤掉不符合指定的模式的内容,仅保留符合指定的模式的内容。ifeq : 判断语句,用于比较两个参数是否相等,相等则该语句通过。指定的模式为 1 2 3,多个模式之间用空格区分。看完这三个语句的说明,我们再来看最开始的。
2022-10-18 16:11:08
1136
原创 设备树 之pinctrl[通俗易懂]
设备树 之pinctrl[通俗易懂]三个重要概念bank:gpa0,gpa1,gpa31等group:以功能划分,比如uart的tx和rxstate:设备的某种状态,比如”default”,”idle”,”sleep”,也可以是其他自定义的状态,比如串口的“flow_ctrl”状态例如:bank:&pinctrl_0{/**pinb…大家好,又见面了,我是你们的朋友全栈君。
2022-10-18 11:42:41
1317
原创 Linux内核之pinctrl子系统
众所周知,ARM SoC提供了十分丰富的硬件接口,而接口物理上的表现就是一个个的pin(或者叫做pad, finger等)。为了实现丰富的硬件功能,SoC的pin需要实现复用功能,即单独的pin需要提供不同功能,例如,pin0既可以作为GPIO,可以也用于i2c的SCL,通过pin相关的复用寄存器来切换不同的功能。除此之外,软件还可以通过寄存器配置pin相关的电气特性,例如,上拉/下拉、驱动能力、开漏等。
2022-10-18 11:39:21
210
原创 如何查看Linux内核输出的调试信息
第一点需要澄清:我使用的环境是嵌入式Linux,并非桌面版Linux,查看内核输出的调试信息也是为了追踪内核子系统的运行。这可能是一个非常小的知识点,但是还是希望自己记录一些东西,以后也好拾起。构建的,我在挂载的时候提示已经挂载好了。3.按照函数搜索:这是由于debug的输出一般都会带着函数名,所以可以使用该方法。2.按照文件名搜索:这里最好指定路径,因为内核中可能具有同名的文件。,该文件会按照调试输出信息的文件和函数标识一条输出信息。在内核的配置选项中,我们可以选择。目录下,我使用的文件系统是。
2022-10-18 10:41:26
997
原创 pinctrl驱动----驱动/设备侧
这里我去掉了一些不相关或者不重要的函数,重点分析函数执行的核心流程和关键代码/***/{int ret;return 0;if (!dev->pins)}/* defualt 状态的检查: 一般都采取defualt的配置 */ret = 0;}/* init状态的检查 :一般没有该设置*/ret = pinctrl_select_state(dev->pins->p, //该函数在定义了default之后会被执行} else {
2022-10-18 10:40:32
143
原创 [FAQ11124]确定哪个APK在偷流量的方法
手机在平时的待机中,经常会看到用户并没有主动发起访问网络的操作。并记住黄色标记的那个数字,这个数字就是访问网络的那个。启动该进程的地方,方括号里的第四个参数代表的就是。的包名,从包名就可以定位到当前这个第三方的。但是查看数据流量统计,还是会看到有增长。里,搜索步骤一中黄色标记的那个数字的相关。这个时候就需要去定位当前到底是哪些。
2022-10-17 17:57:11
415
原创 [FAQ08883]修改fast dormancy的RRC releasetimer
timer,persist.radio.fd.off.counter是screen off timer, persist.radio.fd.r8.counter是R8 screen on timer,alps\build\target\product\common.mk文件中有如下语句,其中persist.radio.fd.counter是screen on。persist.radio.fd.off.r8.counter是R8 screen off timer,单位为秒,可以根据需求修改成想要的值即可。
2022-10-17 17:56:34
216
原创 [FAQ09857]号簿管家与WLAN不能并行使用
用于用户进行测试debug版本,它的名字里面是带有YJY这三个字母,这个版本的设计就是与WLAN不能共存。因此,如果当前测试的时候,使用的是debug版本,其号簿管家与WLAN不能同时使用这个应该算是正常的情况。release版本实现了WIFI和GPRS的共存,一般只有最后产品发布的时候才会用到这个版本。当前号簿管家是有两个版本,一个是debug版本,另一个是release版本。WLAN下载文件过程中,使用号簿管家,提示:联网失败....
2022-10-17 17:55:59
165
原创 [FAQ08862]为什么MTK会分成CS Network Type 和PS Network Type
客户常有疑问,在Android原始代碼GsmStateServiceTracker中, 并沒有定义cs网络类型:mNewRilRadioTechnology及ps网络类型:newps_networkType 。为什么MTK会将网络类型要分cs 和 ps。由于可能会受版本升级等改动的影响,有些部分可能与此文档有所差异,具体请参考各个版本的最新代码。[SOLUTION]cs 和 ps本身就是有区分的,这个是spec规定的,并不是MTK 分成cs和ps。cs 和 ps定义:cs: 是circuit s
2022-10-17 17:55:05
364
原创 [FAQ10926][USB serial number客制化][系列5]:如何实现可以通过pc工具来修改serialnumber?
adb devices, Serial number, 手机序列号, USB serialno, usb序列号, sn, pc工。4.通过工具去修改这个属性persist.serialno来实现。如何实现可以通过pc工具来修改serial number?1.新增一个可写的属性,如persist.serialno。2.修改system\core\init\init.c。3.下载完需重启手机生效。
2022-10-17 17:54:00
452
原创 [FAQ10927][USB serial number客制化][系列6]:能否实现adb devices的序列号,usb serialnumber, cts device ID,SN一致?
adb devices, Serial number, 手机序列号, USB serialno, usb序列号, sn, cts。adb devices的序列号 : 为sys/class/android_usb/android0/iSerial结点值,在开。能否实现adb devices的序列号,usb serial number, cts device ID,SN一致?综上,adb devices的序列号,usb serial number, cts device ID是一致的,但是。
2022-10-17 17:52:55
432
原创 0929【非常好】 库仑计计算电量 Fuel Gauge 锂离子电池及电池电量计介绍
荷电状态:电量计回报的荷电状态完全充电容量:完全充电容量在测试完成后是透过电流对时间来积分计算出来的荷电状态误差:计算的荷电状态和理想的荷电状态之间的差异。造成库伦计量法准确度偏差的第二主要因素是完全充电容量(FCC)误差,它是由电池设计容量的值和电池真正的完全充电容量的差异。此法是根据电池电压和电池的开路电压之间的差值,来估计荷电状态的递增量或递减量。若要提高荷电状态的精确度,动态电压算法需要用实际的装置,根据它在完全充电和完全放电的情况下,由实际的电池电压曲线来调整出一优化的算法的参数。
2022-10-17 17:51:07
713
原创 [FAQ21282]分区表中分区配置的大小与MTxxxx_Android_scatter.txt中不一致
device/mediatek/build/build/tools/ptgen/MTxxxx/ptgen.pl中搜索”align”,确认。客制化路径一般如:/device/mediateksample//BoardConfig.mk。build生成的MTxxxx_Android_scatter.txt中部分分区大小与分区表中对应分区大小不一致。2. 分区表与scatter文件中某分区虽然不一致,但差异较小。比如system分区,可以搜索:BOARD_MTK_
2022-10-17 17:50:07
415
原创 [FAQ21281]android P分区表中odmdtbo与dtbo分区的说明
1. 对于需要OTA(O to P)升级到P版本的Project,分区layout必须与O版本完全一致,因此,请配置。虽然android P分区表中可以同时看到odmdtbo与dtbo分区,但实际上,ptgen在build生成的。Android O版本odmdtbo.img,在Android P版本改名成dtbo.img。此时build会生成odmdtbo.img,对应下载到odmdtbo分区。此时build会生成dtbo.img,对应下载到dtbo分区。
2022-10-17 17:49:16
600
原创 [FAQ21153]MT6761/MT6762/MT6765平台搭配LPDDR4 注意事项
MT6762/MT6765平台需申请并合入patch,patch id: ALPS04101614。MT6762/MT6765平台需申请并合入patch,patch id: ALPS04101614。MT6761平台需申请并合入patch, patch id: ALPS03974462。MT6761平台需申请并合入patch, patch id: ALPS03974462。除Hynix、三星、Micron这三家之外的LPDDR4物料),需要限。定最高速率到2400Mbps档。
2022-10-17 17:45:20
309
原创 mtk RF配置步骤三
/make.sh "LENTK6753_65C_L1(LWG_DSDS).mak" new (联通的LTE-TDD LTE-FDD + WCDMA + GSM)./make.sh "LENTK6753_65C_L1(LTTG_DSDS).mak" new (移动的LTE TDD + TDSCDMA + GSM)
2022-08-22 10:19:53
193
原创 mtk RF配置步骤二
一.c2k(CDMA)配置之band class configuration cust/hwd/MT6735_Phone/c2k_custom_rf.h 注意:看原理图,我们这里只支持BC0,就是BAND_A,所以配置如下; 我们这里是BAND_CLASS_0 二.c2k(CDMA)配置之band RX ,TX Port configuration 注意:这里输入输出的端口都是有固定的,和这个图一致,我们不要修改,直接和图上的一致。 三.c2k(CDMA)配
2022-08-22 10:18:47
374
原创 mtk RF配置步骤一
硬件工程师用META工具调试射频时,调试B38/B40/B41正常模式下,需要先把Bypass的RF配置关闭,否则信号一直从Bypass出来,影响调试。硬件上Band41的频率包含了Band38,B38必须与B41采用相同的RF配置,所以两者的相关配置(PA/ASM/SEL/PORT)都一样。这里只有一个ASM,一个PA,所以ASM0和AMS1的USID一样,PA0与PA1的USID一样。这里只是PA的USID改动。一共32行,没4行一个单元,每行4个数据,每行的4个数据一样,和4G一样,隔三个取一个。
2022-08-22 10:17:54
467
原创 恢复出厂设置 卡住10分钟问题
恢复出厂设置 卡住10分钟问题1. 信息初步收集1.1 现象描述1.2 问题概率以及实验情况确认2. 分析过程2.1 确认recovery log信息情况2.2 log分析2.2.1 recovery 重启2.2.2 recovery 清除操作2.2.2.1 block 进入逻辑:2.2.2.2 中间调度逻辑:2.2.2.3 block 退出逻辑3. 问题原因以及处理3.1 原因3.2 处理3.3 记录4. 涉及模块4.1 mmc子系统架构4.2 调度策略处理1. 信息
2022-06-09 16:38:28
880
原创 rk3588 android 11 root
1. 需要编译userdebug版本2. 关闭selinuxdevice/rockchip/commondiff --git a/BoardConfig.mk b/BoardConfig.mkindex 3706d7b7..8099919f 100755--- a/BoardConfig.mk+++ b/BoardConfig.mk@@ -59,7 +59,7 @@ BOARD_BOOT_HEADER_VERSION ?= 2BOARD_MKBOOTIMG_ARGS :=
2022-06-09 16:34:03
685
原创 ILI9881C-0D调试总结
要点亮一块驱动ic为ILI9881C的屏幕,看了soc的屏幕配置目录,发现有带该ic的屏幕配置,估计一两个小时就能完成移植。配置了相应的复位脚,上电脚后,发现在uboot阶段读不了id。当然,可以先在读id函数中直接返回0,先发屏幕配置,看能不点亮屏幕,点亮屏幕后,再来解决id问题。发现在uboot阶段没有点亮屏幕,但进内核后,能概率性的点亮屏幕(通过input keyevent 26,模拟电源键,重新初始化屏幕)。能想到的,应该是时序不满足要求,导致发配置失败。找相应的规格书看下https://dow
2021-12-17 15:23:07
1236
原创 C++ “::” 作用域符 双冒号
一、:: 是作用域符,是运算符中等级最高的,它分为三种:1)global scope(全局作用域符),用法(::name)2)class scope(类作用域符),用法(class::name)3)namespace scope(命名空间作用域符),用法(namespace::name)他们都是左关联(left-associativity),他们的作用都是为了更明确的调用你想要的变量:1.如在程序中的某一处你想调用全局变量a,那么就写成::a;(也可以是全局函数)2.如果想调用class
2021-12-01 18:34:00
118
原创 c++中“箭头(->)”和“点(.)”的区别
如果定义如下:A *p则使用:p->play(); 左边是结构指针。A p 则使用:p.paly(); 左边是结构变量。总结:箭头(->):左边必须为指针;点号(.):左边必须为实体。1、A.B则A为对象或者结构体;2、A->B则A为指针,->是成员提取,A->B是提取A中的成员B,A只能是指向类、结构、联合的指针;3、::是作用域运算符,A::B表示作用域A中的名称B,A可以是名字空间、类、结构;4、:一般用来表示继承;——————————
2021-11-25 17:06:38
2085
1
原创 人到中年,是否”有钱“,拉开人际交往的距离
人生就像爬山,每个人都想爬得越高,看得更远。当一个人有钱,爬山的速度也会增长,人生的阅历会增厚,生活的风光也会尽收眼底。莎士比亚曾经说过:“金钱是个好兵士,有了它就能够使人勇气百倍。” 一个人一旦有了钱,连说话都会变得有底气,那些能用钱解决的事情,对他来说都不是事情。谈钱虽然很庸俗,但是没有钱就只能做一个庸人。穷人与富人,因为层次不同,每天接触到的事物也不同,对世界的认知也天差地别。 人到中年,有没有钱决定了你待的圈子是什么样子的。当你所处的圈子都是一些有钱人的时候,你就能了解到在普通的圈子里永远也
2021-11-05 18:04:16
215
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人