- 博客(21)
- 资源 (7)
- 收藏
- 关注
原创 深入理解linux内核hung_task机制,全网最全!原创!
hung_task 是linux内核原生的一个简单的检测进程卡死的维测方案;在此篇问题开始之前我们提出以下两个问题,如果你可以快速给出以下问题的答案,那么这篇文章可能不太适合你...1)我们都清楚hung_task是通过定期遍历内核进程树来达到检测D状态进程是否卡住,那hungtask是通过什么方式来确认进程已经处于D状态超时了60s呢,要知道正常状态下,进程也是会短暂进入D状态的;2)当进程超时之后,打印如下log:338.922807120seconds.
2024-09-01 13:51:51 1044 2
原创 vscode 自用插件记录
Arm Assembly 识别arm汇编Better C++ SyntaxBracket Pair ColorizerC/C++C/C++ ThemesC++ IntellisenseChinese (Simplified) (简体中文) Language Pack for Visual Studio CodeGtags
2022-03-14 15:57:18 1430 2
原创 Linux下开发必备小技巧,提高开发效率。
在linux下做开发工作时,往往有一些重复性质很多的操作,最典型的就是cd命令的使用,工作的过程同样是满足空间局部性原理,简单说就是我们在短时间内,为了完成某项工作,会频繁的在两到三个目录间切换,例如在kernel下的driver和dts目录间切换,往往会使用 “cd ../ cd ../ cd xx ..." 一般需要两到三步,甚至更多,如果是在三四个目录间切换,情况会很恶劣,这属实是非常低效的。在算法设计中有一条很重要的原则,就是让使用频率最高的命令路径最短,本着这样...
2022-02-22 15:15:11 496 1
原创 QEMU实现gdb调试(虚拟硬件)arm64 linux内核以及arm64应用程序
目的:使用qemu模拟arm A72 soc硬件,实现可以在其上使用gdb调试自己编译的arm64 linux内核(vmlinux),以及在目标板(虚拟)上使用gdb调试arm64程序,熟悉armv8 指令集;上效果(再也不用担心跟踪内核代码流程了!!!)其中右边为模拟开发板的运行状态(状态为阻塞调试);PC系统:ubuntu16.04需要工具:gcc5.4 qemu5.0 aarch64-linux-gnu-gcc 5.4 gdb8.0 kernel4.14.0 busbox.
2021-07-04 01:18:17 2359 3
原创 安卓中单独编译c文件为可执行文件
1 ,fastboot getvar all | grep xxx 不能抓取输出,是因为fastboot getvar all &> | grep oem
2021-07-03 21:02:15 1142
原创 高通 锁定DDR频率
一个简单的需求 记录一下,要求锁定ddr频率,生成相应频率的版本包,刷机即可,流程如下;1,首先版本需要全部编译一次,生成相应的可执行文件 xbl_config.elf2,使用高通QDUTT工具生成xbl_config.elf文件,配置如图;3,点击右上角生成按钮,选择目录脚本后,点击OK,生成大约需要5分钟,后在11/compose/下会 生成xbl_config.elf文件;4,如果设备已经熔丝,需要手动进行签名pythoncommon/sectools/sectools.pyse...
2021-04-08 17:19:41 3375
原创 安卓11 init初始化以及init.rc的解析执行过程详解
最近做了一个高通平台安卓的需求,功能使得data分区在第一次启动时,自动适配emmc/ufs的实际大小,在此过程中对init的执行以及.rc文件的解析流程有了一些理解,趁热打铁!!在这里总结一下!!!这里以mtk平台为例进行说明,基于安卓11,init这块的代码mtk与高通基本是一模一样的,都是中间层的东西; 对于init在整个系统中(宏观)的执行流程想必大家都很清楚了,init进程是linux内核启动后创建的第一个进程,地位非常重要,init进程在初始化过程中会启动很...
2021-01-07 16:12:47 12974 17
原创 高通 安卓 Uefi 的理解
最近接触了高通bootloader,对UEFI有了一些理解,虽说不深入,俗话说不总结等于没学,因此还是小小总结一下; UEFI早在PC领域名声大噪,UEFI+gpt以其自身优点干翻了传统bios+mbr,UEFI也成为了未来bootloader的发展方向(迟早都得学),计算机软件界有一个名言,计算机科学领域的任何问题都可以通过增加一个间接的中间层来解决(抽象),UEFI也不例外,之所以bios不行一个重要的点就是因为他的兼容性,UEFI为固件和操作系统提供了统一的接口,打通...
2020-12-15 20:53:09 7157 3
原创 MTK平台启动流程,基于LK,mt6761 建立启动思维导图
启动流水线 : BootRom -----------> Preloader ----------->LK ----------->linux kernel这里只启动到内核,init进程到安卓系统待下次总结1 官方启动流程;Boot rom is activated when the device is powered on. ...
2020-12-03 21:47:56 1387
原创 source insight4 实用技巧,设置点击变量名后相同变量名自动高亮
同notepad++ 自带功能相同,如下图当吧鼠标放在某个局部变量上鼠标左键单击之后,所有相同字符均可以高亮(显示颜色,字体,形式可以自定义)显示,我自己的配置如下:设置如下,默认source insight4 未开启该功能,设置分为两步:1) 开启同字符串显示2)设置显示格式设置完成之后,确认,退出既可查看效果!!!!!!!!个人感觉非常实用;...
2020-11-21 12:19:29 8636 2
原创 2020-11-05 itop4412 开发板input按键驱动例程
终于要远离嵌入式应用可以转到安卓的驱动了,还是很激动的,终于可以做linux的驱动了,今天搞了一天,input子系统还是有点复杂啊,今天查找各种资料草草完成input子系统的按键输入设备例程,先记下来,再进行优化:按键驱动:/*以后写驱动可以讲头文件一股脑的加载代码前面*/#include <linux/init.h>#include <linux/module.h>#include <linux/kernel.h>#include <linux/
2020-11-06 00:01:19 299
原创 stm32F103zexx(战舰v1) 移植liteOS
刚换了工作,最近接触了一个项目,使用的是stm32低功耗系列,系统是华为的物联网 liteOS操作系统,框架为touchGFX ui框架;由于之前接触底层较多因此就想自己移植一个liteos 以及touchgfx到自己的stm32开发板上,刚好自己也有个开发板,开发板是stm32f103zet6这款是大二买的买了就凉着了,是战舰的v1版本;目的:想通过这个过程,让自己更深刻的理解项目的架构,底层与上层,以及底层代码的组织结构,操作系统的代码组织结构,底层代码如何和系统交互,底层如何跟框架衔接,如何跟
2020-05-16 11:31:45 2361
原创 source insight 4 配置支持arm汇编指令(识别常量和函数可以跳转)
此教程实现st4可以识别arm汇编文件中的符号和函数名,并且可以自由跳转; 今天看uboot发现source insight4(以下简称si4)不能识别arm 汇编指令中的符号和函数名,所以不能实现函数的跳转。搜网上教程在此处添加:只有添加*.s;*.S;这样添加只是识别.s文件实际的格式还是以x86汇编语言来识别的,由于两个语言注释和符号的差别,可以发现在我们打开arm...
2020-01-29 20:58:32 3594 5
原创 linux下helloworld程序从开始编译到运行结束过程详解
本文旨在以hello world程序在ubuntu 16.04 x86_64机器上运行为例,详细讲述这个程序从编译、链接(包括动态链接和静态链接)到加载到运行这个过程中,工具链gcc,运行库glibc,内核,他们是怎么分工协作让这个程序顺利完成加载和运行的;程序编译运行的过程总体流程如下图:以hello world程序为例,使用gcc --verbose参数查看...
2020-01-09 23:04:40 4921 2
原创 gcc g++ 编译链接常用参数的意义;
这两天维护公司工程的时候,发现很多大的项目在链接编译的时候都会加上很长的一段参数:比如:-m32 -std=gnu++11 -g -Wall -Wextra -fpermissive -fextended-identifiers -Wno-unused-paramter -Wno-write-strings -D_init64=long\long -finstrument-functions ...
2019-11-30 14:22:41 1338
原创 火箭般提高github仓库的下载速度,亲测可用!!!本人为100M网,亲测下载速度为11m/s,之前下载速度为15kb左右!!
最近朋友让帮忙给他吧一些文件转换成word,手敲太麻烦,于是乎想到了照片转文字,但是windows上搜软件全都是收费的,要么就是效果不理想,于是灵光一闪想到的github,搜了一下,果然有,看来github真是未来的趋势了...但是下载了几次,就心凉了.........10kb 20kb 这个仓库120Mb.....几经辗转找了几次网上的修改hosts的方法最多也就20KB,我都要放...
2019-11-19 01:11:12 421 1
原创 error: conflicts with new declaration with 'C' linkage 的根因深入深入深入剖析
这种错误伴随着还有一种未定义的错误,但是在c文件中函数确实定义了; 最近在维护公司一个框架的时候发现,新添加的cpp代码编译后有的会报这样的错误,因此花了一点时间深入分析了一下这个问题的根本原因: 这两个问题的根本原因是由于cpp文件和c文件分别被gcc(使用gcc编译c和cpp文件效果是一样的,只是最终链接成可执行文件必须要使用g++,因为gcc没...
2019-11-16 12:10:18 6011
原创 LDD3 SCULL驱动的测试程序,字符驱动模型的理解
这两天闲暇,突然想再把LDD3书上的例子细过一遍,就着手看了,说实话,这个上面SCULL驱动有点晦涩难懂,真是看了大半天。开发板被搞得现在还没起来,没办法只能在x86 ubuntu上实验驱动了。驱动其实本身并不难写尤其是很多常见的芯片,网上有很多可用的驱动程序,即便没有也可以着手芯片手册尝试写出来,而linux驱动难得地方不在于驱动本身,而在于你要知道怎么把一个驱动程序放进linux 驱动...
2019-08-26 00:06:09 456
linux内存管理-虚拟物理地址测试代码,基于proc节点
2023-01-31
stm32f103min移植liteos_重定向printf.zip
2020-05-17
Desktop.rar
2020-01-29
linux程序的编译与运行过程.vsdx
2019-12-31
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人