- 博客(13)
- 收藏
- 关注
原创 【无标题】海思SD3403平台,报错ss_mpi_vb_set_conf failed 0xa0018022
海思平台ss_mpi_vb_set_conf报错0xa0018022
2023-01-09 16:32:00
892
原创 时钟中断到设置调度标记位
这次主要从时钟tick中断响应到设置进程的调度标志位过程的分析。内核版本4.1.15。时钟的中断函数响应后最终会调用scheduler_tick函数,scheduler_tick函数函数中有句话curr->sched_class->task_tick(rq, curr, 0); 这个钩子函数的注册在kernel/sched/fair.c中。task_tick_fair最终调用的是check_preempt_tick函数。这个函数的作用就是从二叉树中找出最需要执行的进程,然后把该进程...
2022-04-14 16:01:04
203
原创 schedule函数分析
schedule函数在内核的kernel/sched/core.c位置,内核版本是4.1.15schedule函数主要完成调度的工作。在这个函数中主要关注两个函数,一个是__schedule,一个是need_resched。这篇文章主要关注__schedule。__schedule函数中分了两部分。第一部分获取cpu的id以及该cpu的进程就绪队列。第二部分获取下一个进程,需要被执行的进程。第一部分preempt_disable();cpu = smp_processor_id();rq = c
2022-04-07 14:11:46
723
原创 imx6ull 14*14 平台使用mfgtools下载代码出现UTP Waiting for device to appear错误
imx6ull 14*14 平台下载过程中遇到UTP Waiting for device to appear错误百度了一下 锁定了是.config的问题,通过在defconfig中添加两个定义解决了问题CONFIG_USB_MASS_STORAGE=yCONFIG_FSL_UTP=y
2022-04-01 11:46:45
1195
2
原创 内核如何加载驱动模块的初始化函数
分两步讲述这个问题,第一个步是注册,也是编译过程起的作用,大家熟知内核驱动的c文件中都有module_init函数。module_init函数的功能就是将初始化函数的指针固定在一个段内。第二步就是运行这些初始化函数。硬件开机上电的时候,会去这个固定的段内取函数指针,就可以加载驱动初始化函数了。同理,还有其他的初始化函数也是这样,驱动初始化函数只是其中之一。 下面这些就是用这种方式实现的初始化函数的加载的宏定义。驱动(device_initcall(fn))只是其中的一个。`#define pure_ini
2022-03-15 14:03:09
1199
1
原创 **imx8M mini安卓系统下载Trusty OS源码**
imx8M mini安卓系统下载Trusty OS源码项目场景:使用imx8M mini开发板,需要下载Trusty OS源码,根据恩智浦提供的手册(Android_User’s_Guide中的8.9章),用下面的方式可以获取mkdir bincd bincurl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo -o repochmod a+x repoexport PATH=~/bin:$PATHrepo init -u https://
2022-02-17 17:29:40
1438
原创 2021-02-24
这篇博客主要是记录过程吧。首先我遇到的问题是printf不能够打印信息。场景是a工程要调用b工程的函数,b工程的函数里带有printf函数。首先如果追踪printf代码你会发现,有一个ftable数组,我理解这个数组类似于文件句柄,我上述的背景下,两个工程的ftable的地址是不相同的,所以打印不出数据是正常。后将b工程的ftable里的数据copy到a工程的ftable里,发现还是不能打印信息。于是继续debug,追踪到最后,又发现了两个数组,stream和device,这两个的作用可以去网上查找。实
2021-02-24 09:12:29
83
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人