linux
文章平均质量分 83
checode
android,arm,linux,gpu
展开
-
分析arm Internal error: synchronous external abort: 96000010 [#1] PREEMPT SMP
内核触发panic,出现Internal error: synchronous external abort: 96000010 [#1] PREEMPT SMP96000010 实际上是esr寄存器得值在armv8 中不同得el层 有各自得得esr寄存器,内核处于el1层,看esr_el1寄存器得值查看arm v8 手册96000010 对应得含义arm 官方已经告诉...原创 2020-07-04 14:16:52 · 8148 阅读 · 1 评论 -
通过ramdump 分析匿名页导致的TASK_UNINTERRUPTIBLE
在分配内存时长时间处于不可打断得状态,通过crash 工具解析ramdump 查找block 得原因crash> ps -u |grep UN 10457 1 7 ffffffea80bb2f40 UN 6.2 8856372 646112 provider@2.4-se 10515 673 5 ffffffeb71240000 UN 1.4 2069416 146256 azeroth-api-thrprovider 是当前正在使用得任.原创 2020-06-30 11:51:07 · 1372 阅读 · 0 评论 -
以高通camera 申请ion内存看dma-buf
1 fd 与ion buffer, file绑定 简单总结就是申请一个buffer,再创建一个dmabuf 结构体然后将,然后将dmabuf中得指针指向buffer,dmabuf 再传递给一个匿名的inode,获取到一个file,这样file和dmabuf绑定起来,也就和buffer关联上。然后再从进程中分配一个空闲的fd,将fd 和file囊绑定。这样就能通过fd 快速查找到buffer。file 是个全系统的,他和进程无关,但是fd 是每个进程都是自己独立的,所以再跨进程传输时只需要保证fd ...原创 2020-06-26 17:57:27 · 5363 阅读 · 0 评论 -
匿名页反向映射得建立
参考链接: https://www.cnblogs.com/tolimit/p/5398552.htmlhttp://www.wowotech.net/memory_management/reverse_mapping.html链接1.匿名页创建建立匿名线性区有两种情况,一种是通过mmap建立私有匿名线性区,另一种是fork时子进程克隆了父进程的匿名线性区,这两种方式有所区别,首先mmap建立私有匿名线性区时,应用层调用mmap时传入的参数fd必须为-1,即不指定映射的文件,参数flags必须有原创 2020-06-21 22:21:45 · 448 阅读 · 0 评论 -
qcom camera smmu 学习(3)
iommu_dma_alloc_iova 已经成功获取到了虚拟地址,iommu_map_sg 将把虚拟地址和物理散列表中的物理地址进行映射。 iommu_map_sg 在4.19 以后的内核这个接口已经删除了 size_t iommu_map_sg(struct iommu_domain *domain, unsigned long iova, struct scatterlist *sg, unsigned in...原创 2020-05-30 23:22:32 · 1160 阅读 · 0 评论 -
qcom camera smmu 学习(2)
上一篇中提到了cam_smmu_alloc_iova 通过从已经构建好的内存池中获取虚拟地址然后调用iommu_map_sg 去建立映射关系。 dma_buf_map_attachment 建立映射关系时也需要获取虚拟地址。虚拟地址的其实地址,大小也是在设备树中设置好的,需要一个地方从设备树中读取然后保存起来,在使用的时候从其中去分配。1.获取虚拟地址初始化的流程: of_dma_configure->arch_setup_dma_ops→arm_iommu_setup_dma_ops→原创 2020-05-30 23:19:38 · 1793 阅读 · 0 评论 -
qcom camera smmu学习(1)
camera 有很多isp 中包含了ife ipe bps 等需要使用smmu 1.分配内存并映射到smmu(1)分配内存 分配内存在内核中使用的函数是 cam_mem_mgr_alloc_and_map,主要是通过dma_buf 分配一个内存并且将获得fd 映射到smmu。分配内存使用cam_mem_util_get_dma_buf_fd 分配,主要调用一下三个函数: ion_alloc ,dma_buf_fd,dma_buf_get 第一个函数是ion 分配, 后面...原创 2020-05-30 22:42:20 · 3431 阅读 · 1 评论 -
linux 读写信号量学习
文章从《奔跑吧linux内核》中参考加上自己的理解linux 读写信号量, 奔跑吧linux 内核的作者使用 十进制来解释 count 数值的变化,发现这样非常好理解。rw_semaphore 我之前一直没有从代码理解如何实现的。只知道理论上是可以多个读者去读,如果有写者就不能去读。最近看这块代码代码实现上是在等待队列中如果有写者,把写者之前的读者唤醒,写者还是在等待队列中。如果等待队列中...原创 2019-12-31 21:48:04 · 1596 阅读 · 0 评论 -
android bionic memcpy 汇编源码解析
代码位置bionic/memcpy_base.S宏定义:#define dstin x0#define src x1#define count x2#define dst x3#define srcend x4#define dstend x5#define A_l x6#define A_lw w6#define A_h x7#define A_hw w7#de...原创 2019-12-24 16:23:33 · 1140 阅读 · 0 评论 -
arm smmu 学习(1)
文章linux 4.14 代码分析smmu 流程linux 在驱动找到对应的设备后会执行driver_probe_device 函数,具体dev和drv 匹配参考文章链接driver_probe_device->really_probe->dma_configure->of_dma_configureint of_dma_configure(struct devic...原创 2019-12-19 14:28:31 · 4611 阅读 · 0 评论 -
sylixos pci
1.pci基地址获取pci的基地址在x86平台是通过acpi获得的,acpi全称是(Advanced Configuration and Power Management Interface)高级配置和电源管理接口,在ACPI规范文档3.0中 https://download.csdn.net/download/smartzhen2003/981664可以看到如下图可以看到...原创 2019-12-14 15:51:50 · 575 阅读 · 0 评论 -
openssl在arm下的交叉编译
openssl在arm下的交叉编译一:openssl在arm下的交叉编译 (一)1../Configure linux-elf-arm -DB_ENDIAN linux:' arm-linux-gcc' shared --prefix=/usr/local/openssl2.make3.make install值得注意的是,在arm交叉编译环境中,引用库的顺序为转载 2018-01-07 10:03:49 · 5719 阅读 · 2 评论 -
linux下给qt4安装QSerialPort
qt5可以直接使用QSerialPort,但是qt4不能使用,单独安装完后qt4也可以使用,在qt的wiki上找到的安装方法,可以在qt creator上编译安装,但是我的一直报错,所以按照wiki上的命令行安装,wiki网址简单的总结下就是几句命令行:git clone git://code.qt.io/qt/qtserialport.git cd qtserialportgit原创 2018-01-07 09:27:18 · 5615 阅读 · 3 评论 -
解决linux下QtCreator无法输入中文的情况
原文链接点击打开链接 实测好用。安装了QtCreator5.3.1后无法输入中文,确切的说是无法打开输入法。以前使用iBus输入法的时候没有这个问题,现在使用sougou输入法才有的这个问题。可以查看此文 http://www.cnblogs.com/oloroso/p/5114041.html原因有问题就得找原因,搜狗输入法是基于fcitx来做的,那么可能是缺少了相关的库支持。解决办法先安装f...转载 2018-02-09 14:58:32 · 1171 阅读 · 1 评论 -
Ubuntu16.04和树莓派3B编译opencv3
首选下载opencv源码,我用的opencv3.3.1wget https://github.com/opencv/opencv/archive/3.3.1.tar.gz -O opencv3.3.1.tar.gz-o是指定了文件下载后文件的名称,如果想使用断点续传需要使用wget -C下载opencv_contrib3.3.1...原创 2018-06-27 22:22:11 · 832 阅读 · 0 评论 -
树莓派和Ubuntu16 一些软件的安装
创建热点 开源项目https://github.com/oblique/create_ap将上面代码克隆到本地在终端执行命令: git clone https://github.com/oblique/create_ap执行:cd create_ap :sudo make install安装依赖库在终端执行:sudo apt-get install util-linux procps host...原创 2018-06-27 22:23:51 · 1381 阅读 · 0 评论 -
tensorflow object detect API 使用,并修改一部分
代码放在tensorflow 提供的modles中的 /models/research/object_detection/models 中,指定的模型要提前下到文件夹,使用了opencv中从指定的ip地址视频流中截取图片,将识别结果中的第一个写到了制动文件夹中。搭建的环境是Ubuntu16.04import numpy as npimport osimport sysimport tarf...原创 2018-06-27 22:32:34 · 1296 阅读 · 0 评论 -
allwinner 全志uboot git网址 及其他相关链接
全志 uboot git 仓库 :http://git.denx.de/sunix MainLine uboot :http://linux-sunxi.org/Mainline_U-Bootnanopi allwinner 提供相关链接:http://linux-sunxi.org/FriendlyARM_NanoPi_M1 http://linux-sunxi.org/FriendlyA...原创 2018-12-05 15:19:54 · 1362 阅读 · 0 评论 -
解决方案】VMware无法从主机向虚拟机跨系统复制粘贴拖动文件/文本
转载自:https://blog.csdn.net/chichu261/article/details/82799833这两天重新装了VMware 14 Pro和Ubuntu18.04.1。在使用中,发现无法:从Windows主机向虚拟机的Ubuntu系统中 复制粘贴文字或者拖动文件。在查看了VMware的文档和其他资料,并尝试了很多方法之后,终于解决了。== 现直接贴出我的解决方案: ...转载 2019-03-07 11:01:27 · 2257 阅读 · 1 评论 -
linux应用编程--思维导图
思维导图软件是xmind 下载源文件点击打开链接原创 2017-06-09 23:30:59 · 599 阅读 · 0 评论