android/linux源码
文章平均质量分 89
android和linux驱动相关的内容
krokodil98
bug designer
展开
-
linux内核协议栈接收数据流程(二)
linux网络接收数据第二站——内核协议栈之网络协议接口层原创 2022-10-19 20:48:05 · 701 阅读 · 1 评论 -
linux内核协议栈接收数据流程(一)
linux网络接收数据流程的第一站——网卡驱动原创 2022-10-10 16:40:16 · 1230 阅读 · 1 评论 -
操作系统启动流程
操作系统启动流程——自学知识点汇总原创 2022-04-11 15:54:17 · 2707 阅读 · 0 评论 -
linux驱动之debugfs使用
linux驱动的debugfs代码运行效果TIPS代码linux系统对系统内驱动提供一个调试功能——debugfs。debugfs是一种通过对用户空间文件进行读写操作来实现驱动和用户空间交互的调试方式。驱动需要在系统debugfs根目录下创建一个文件,再实现对该文件的读写操作函数。这样在用户空间读写文件时,会调用驱动中的操作函数,就可进行相关的驱动内部操作了,一般用于修改驱动某个变量值或是内部消息的传递。这个debugfs根目录地址是系统分配的,默认情况下,debugfs会被挂载在目录/sys/k原创 2021-08-30 16:21:26 · 3780 阅读 · 0 评论 -
container_of源码分析
container_of源码分析container_of宏定义分析BUILD_BUG_ON_MSG分析offsetof在linux/android代码中经常能看到container_of这个函数,这次抽时间去学了下它具体的实现机制。本文代码基于android10,rk3399平台代码。container_of宏定义定义位于:rk3399-android-10/kernel/include/linux/kernel.h/** * container_of - cast a member of a s原创 2021-02-20 19:27:21 · 304 阅读 · 1 评论 -
驱动与用户层通信之ioctl的使用
驱动与用户层通信之ioctl的使用一、 驱动中注册netdev二、 驱动中的处理ioctl通信的函数三、 内核中相关定义规范四、 驱动中存取ifreq中数据五、 用户层的软件代码:总结一、 驱动中注册netdev驱动中注册net_device_ops全局变量结构体:static const struct net_device_ops myNetDeviceOptions = { .ndo_open = ..., .ndo_stop原创 2021-01-28 15:23:48 · 2500 阅读 · 0 评论 -
Android10 insmod源码分析
rk3399-android-10/frameworks/opt/net/wifi/libwifi_hal/wifi_hal_common.cppstatic int insmod(const char *filename, const char *args) {int ret;int fd;fd = TEMP_FAILURE_RETRY(open(filename, O_RDONLY | O_CLOEXEC | O_NOFOLLOW));printf(“insmod filename = %s\原创 2021-01-06 15:34:13 · 2968 阅读 · 2 评论 -
分析wpa_supplicant起始函数main源码
wpa_supplicant初始化main函数wpa_supplicant的目录及文件maincheck_wifi_chip_type_stringread_wpa_param_configwpa_supplicant的目录及文件本篇blog的源码来源于安卓10,对应的wpa_supplicant版本为8。先来看下wpa_supplicant代码的目录结构源码目录:xxx@ubuntu-07:~/workspace/rk3399-android-10/external/wpa_supplicant原创 2020-12-21 19:05:56 · 871 阅读 · 0 评论 -
Android linux firmware下载——续request_firmware之fw_path_para方式
安卓10固件下载——续正文开始之前有写过一篇blog来分析安卓代码里固件下载部分的实现,链接:android8 linux内核下载固件函数request_firmware流程分析但是最近在工作中,遇到了一种情况,在安卓文件系统的同一个目录,有时自己编写的固件下载函数能够成功,有时再重新烧录一遍系统以后就不成功了,总显示打开文件失败(至今不知为何,忘有大佬能指出可能存在的问题)。在这种情况下,需要暂时使用安卓系统自带的request_firmware来下载固件,但代码自带的fw_path中的路径不包含原创 2020-12-14 20:37:52 · 1782 阅读 · 4 评论 -
linux源码中spin_lock函数分析
spin_lock代码分析spin_lockraw_spin_lock系列函数spin_lock代码位置:/kernel/include/linux/spinlock.hstatic __always_inline void spin_lock(spinlock_t *lock){ raw_spin_lock(&lock->rlock);}可见,spin_lock的实现主要是通过raw_spin_lock实现的。看一下spinlock和raw_spinlock的原创 2020-11-26 16:37:09 · 657 阅读 · 1 评论 -
android移植wifi驱动流程porting
android载入wifi驱动流程因需要将公司驱动程序移植到android 10平台,故而学习了android源码关于wifi driver 载入相关的函数流程。主要涉及到的代码位于~/android-10/frameworks/opt/net/wifi下。接下来以wifi_load_driver为起点开始分析函数调用流程。wifi_load_driverint wifi_load_driver() {#ifdef WIFI_DRIVER_MODULE_PATH char* wif原创 2020-11-23 10:48:26 · 3263 阅读 · 3 评论 -
android8 linux内核下载固件函数request_firmware流程分析
安卓8内核下载固件函数流程分析request_firmware_request_firmware_request_firmware_preparefw_get_builtin_firmwarefw_lookup_and_allocate_buffw_get_filesystem_firmwarefw_read_file_contents近期需要实现安卓驱动程序中的固件下载功能,故而研究了安卓源码相关的函数,在此总结一下学习成果。首先,要知道安卓系统对此是编写了对应的函数接口的,即request_firm原创 2020-11-16 17:43:54 · 2020 阅读 · 9 评论