自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 收藏
  • 关注

原创 (***)Linux UART串口介绍(底层驱动相关)

空闲位:数据线在空闲状态的时候为逻辑“1”状态,也就是高电平,表示没有数据线空闲, 没有数据传输。停止位:数据传输完成标志位,停止位的位数可以选择 1 位、1.5 位或 2 位高电平,一般都 选择 1 位停止位。起始位:当要传输数据的时候先传输一个逻辑“0”,也就是将数据线拉低,表示开始数据 传输。因为收发双方是异步通信,意思就是双方没有一个基准时钟。

2024-04-24 15:11:30 879 1

原创 linux实时调度

一、进程管理基本概念在单处理器系统上,在给定时刻只有一个程序可以运行,在多处理器系统上,可以真正并行运行的进程数据,取决于物理CPU的数目;进程优先级在比较粗糙的划分中,进程分为实时进程和非实时进程;1. 硬实时进程具有严格的时间限制,某些任务必须在指定的时间内完成;2. 软实时进程是硬实时进程的一种弱化形式,尽快需要快速得到结果,但是仍然可以稍微延迟执;3. 大多数进程是没有特定时间约束的普通进程,它们可以通过重要性来分配优先级;

2024-02-04 11:21:52 438

原创 binder android

文心一言的回答Binder驱动是Android操作系统中用于进程间通信(IPC)的机制。它提供了一种高效、跨进程的数据传输方式,使得应用程序的不同组件可以在Android系统上互相通信。Binder驱动基于Linux内核,其核心组件是一个称为Binder IPC的通信协议。通过使用Binder IPC,应用程序的不同组件可以共享数据、资源和功能,从而实现更高效的应用程序运行。Binder驱动的主要特点是高效、安全和灵活。

2024-01-31 20:31:49 1834

原创 MTK及qualcomm资料浏览

MTK里有什么。

2024-01-25 17:27:50 360

原创 内核trace分析工具入门

内核进程 进程堆栈 各个核运行的进程内容。内核分析的维度比较多,所以需要一些工具分析,包括各个soc参商也有自己的工具,当然他们的分析软件需要有账号。TRACE32是由德国Lauterbach公司研制开发的一款仿真测试工具。

2024-01-16 19:30:18 427

原创 linux ops操作函数

不同模块之间调用函数最直接的逻辑就是直接调用,但是太过低效。比如一个ic的adc操作函数,多个ic调用,或者多个业务逻辑场景要调用。直接调用就会很乱。

2024-01-16 17:50:03 358

原创 linux设备树相关

字符串string/字符串数组string-list,compatible = "xxxxxxxx,xxxxxxxx"32bit unsigned integers,整形用表示,reg = binary data,十六进制用[]表示,local-mac-address = [xx xx xx xx]空,empty_property。

2024-01-12 17:19:26 412 1

原创 linux内核页

icache dcache tlb 运存 固态 内存条 机械硬盘 malloc,名目繁多。page fault主要是用户态进程建立页表的机制,但是有些页表的建立是直接建立映射,不走page fault机制。比如内核态使用的vmalloc,比如内核态用来映射设备地址空间的ioremap。

2024-01-10 19:54:32 812

原创 云空间git相关

git blame -L n,m 查看filename文件从n到m行的提交信息。云上软件配置环境都一样,好处不用操心电脑崩了重新配环境,坏处自己的小工具统统没有了。把云的同步到本地,就是把本地vscode和云同步一下 然后在提交代码。然后再git pull 更新到最新。本地电脑通过网络登陆云上空间。

2024-01-02 09:50:07 325 1

原创 linux内核-页表相关

linux进程地址抽象化,例如32位系统,进程1认为自己有2的32次方=4GB虚拟空间ttbrx用户页表及内核页表相关寄存器MMU硬件单元地址翻译页表描述AArch64页表描述符L0-L2页表项格式如果低2bit是11的话,说明是有效PTE页表的输出地址是不一样的51~63是高位域属性,11~2是低位属性,他们描述了L3页表项的一些属性数据访问权限位AP[1]表示内存可以允许通过用户权限EL0和更高的EL1来访问,在linux中使用PTE_USER。

2023-12-15 11:42:24 802

原创 kernel内核调试debug相关

先写一些片段化的,实例化的,写多了再写总结性的内核调优debug,感官上主要处理一些系统卡死,cpu运行异常(比如异常处于高负载等)的场景需要了解一些关于cpu运行的指标参数,,,需要能追踪哪个cpu运行进程数量,运行周期,,需要用到一些芯片厂商带的内核分析工具或者linux社区的工具,所以熟悉工具使用下面按照这个思路展开:在工作生活中,我们时常会遇到一些性能问题:比如手机卡顿了;

2023-12-12 17:37:09 866

原创 kernel-clock

clock相关初始化,clock初始化很多,这只是其中两个,hrtimers_init是高精度时钟初始化cat /sys/kernel/debug/clk/clk_summary 查看时钟树2,举例mtk i2c时钟配置那i2c使用的时钟是cpu的还是外部rtc的?又是怎么配置的 后面再说。

2023-12-11 17:28:00 366 1

原创 linux内核存储-trace相关

ftrace是Linux内核中的一种跟踪工具,用于分析和调试内核和应用程序的性能问题。它可以帮助开发人员跟踪函数调用、系统调用、中断事件、定时器事件等各种事件,并生成相应的跟踪数据。

2023-12-07 16:58:17 1185 1

原创 其他linux内核代码函数等分析

/持锁了 需要等函数运行完,下一个调用该函数的地方才能跑。此函数用于阻塞当前进程,超时或者想要的信号来了,才会继续执行,下面函数又加了锁,意味着其他地方想调用该函数也调用不了。//挂起该线程 就是这个函数,除非ack来了(发送了指令收到回复后(硬件协议行为)),或者超时了,,,这样下一个。

2023-12-06 15:25:51 301 1

原创 Android Property

Android系统(本文以Android 4.4为准)的属性(Property)机制有点儿类似Windows系统的注册表,其中的每个属性被组织成简单的键值对(key/value)供外界使用。我们可以通过在adbshell里敲入getprop命令来获取当前系统的所有属性内容,而且,我们还可以敲入类似“getprop 属性名”的命令来获取特定属性的值。另外,设置属性值的方法也很简单,只需敲入“setprop 属性名 新值”命令即可。

2023-12-06 12:37:39 823 1

原创 github相关

蓝绿厂高通mtk内核开源。稚辉君github主页。

2023-11-28 15:58:47 373

原创 linux内核空间和用户空间的通信

学习链接结合kernel 5.10的项目实例展示。

2023-11-28 15:44:56 351

原创 git-repo相关

只用git命令也能正常拉仓库,上传代码,repo集成了一些功能?小型项目(例如3个算法(dsp+FPGA),3个bsp,2个上层)需要用git管理代码吗,或者有其他合适的工具吗kernel级项目属于大型项目repo是Google开发的用于管理Android版本库的一个工具,repo是使用Python对git进行了一定的封装,并不是用于取代git,它简化了对多个Git版本库的管理。用repo管理的版本库都需要使用git命令来进行操作。repo下载安装。

2023-11-03 19:35:50 29

原创 内核存储相关-MMU

但是现在引入了虚拟地址到物理地址的转换。MMU硬件模块的出现,就是为了解决这个性能问题。因此,几G运行内存的电脑,可以并行运行几十G的多程序,让你在听歌的同时,能够并行处理编辑文档,下载电影,收发邮件等。TLB是一个高速缓存,用于缓存虚拟地址到物理地址的转换结果。页表的查询过程是由TWU硬件自动完成的,但是页表的维护是需要操作系统实现的,页表存放在主存中。一个程序在运行之前,没有必要全部装入内存,仅需要将那些要运行的部分先装入内存,其余部分在用到时从磁盘载入,当内存不足时,再将暂时不用的部分调出到磁盘。

2023-11-01 11:41:02 32

原创 ubantu环境配置(bsp)

sudo vi /etc/ssh/sshd_config 重启ssh服务 sudo /etc/init.d/ssh restart。安装ssh客户端sudo apt install openssh-client 配置ssh客户端,去掉PasswordAuthentication yes前面的#号,保存退出 sudo vi /etc/ssh/ssh_config。git 和 repo需要下载最新的,apt-get 容易下到旧的会出问题。2,ssh配置(拉代码)

2023-06-26 17:14:08 109 1

原创 vscode-ssh 连接ubantu

nil。

2023-06-26 11:09:05 841 1

原创 日常问题处理(持续更新中。。。)

但是还有如下报错gbt回复,去掉 static说明符,暂时编译pass了。

2023-06-21 16:16:44 60 1

原创 linux相关学习链接(持续更新中。。。)

C 指针 | 菜鸟教程

2023-05-30 11:38:16 43 1

原创 关于linux-设备驱动加载卸载

linux设备驱动 devices以及driver都是在系统启动的时候加载(probe外设初始化),在关机流程里卸载(remove),在系统运行过程中,可以通过设置work驱动具体设备,比如打开了相机才去操作相关camera寄存器,退出相机,停止对camera的寄存器操作。同样的,在 /sys/firmware/devicetree/base 下设备树的一堆节点,下面是mtk平台开机部分log,各种驱动probe都发生在开机的十几秒。节点下面还有具体挂载的外设,以及该节点的compatible信息等。

2023-05-29 17:30:23 287

原创 INIT_DELAYED_WORK/schedule_delayed_work/cancel_delayed_work_sync

linux-队列

2023-03-14 20:15:30 712

原创 linux-内核通知链相关(关机、重启通知,kernel-5.10为例)

linux-关机或重启通知链的一些细节

2023-03-05 17:33:34 1625 1

空空如也

空空如也

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

TA关注的人

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