笔记
文章平均质量分 69
////M////
这个作者很懒,什么都没留下…
展开
-
oom kill行为解析
oom kill 触发一次仅杀死一个进程,如果内存仍然不足,才会触发下一次。在select_bad_process过程中选择的是得分最高的进程,在oom_kill_process中kill的时候如果主子进程不共享mm,则会杀掉子进程。所以在主进程得分最高的时候看到的现象是先杀掉了其创建的子进程,然后内存还是不足才最终杀掉主进程;1、常见的oom大多是内存泄漏导致的,或者瞬时申请的内存较大,触发了低水位的内存保护;2、打开文件资源及其他资源太多,没来得及回收,也会将内存损耗拖入低水位;原创 2022-11-06 14:53:51 · 1555 阅读 · 1 评论 -
深度学习入门篇(一):环境搭建(PyTorch+Anaconda3+CUDA+PyCharm )
PyTorch:是一个开源的Python机器学习库,基于Torch,底层由C++实现,应用于人工智能领域,如自然语言处理。它主要由Facebook的人工智能研究团队开发,并且被用于Uber的概率编程软件Pyro。PyTorch主要有两大特征:类似于NumPy的张量计算,可使用GPU加速;基于带自动微分系统的深度神经网络。它是一个核心模块,我们所应用的模型工程引用了这个库的接口,这个库实现了核心的机器学习算法。Anaconda3。原创 2022-08-21 15:58:51 · 1093 阅读 · 0 评论 -
lvgl 视频叠加图标显示
环境平台基于lvgl实现的播放视频的同时叠加图标控件。硬件平台:anyka37Elvgl版本:v7.11单fb节点 , 不具备多硬件图层叠加功能,仅有/dev/fb0基本思路采用img obj作为视频的载体,构建图标与视频的层级关系//新建一个video frame img 实例 类型为LV_IMG_CF_TRUE_COLOR_ALPHA,data地址为frame data缓存地址 lv_img_dsc_t img_lv_dec_video = { .header.always_ze原创 2021-09-09 11:26:32 · 5156 阅读 · 14 评论 -
lvgl硬件加速
基于lvgl v7.11.0一、关于硬件加速LVGL提供了一些GPU的硬件加速接口 lv_hal_disp.h可以在lv_conf.h 中将宏打开。#define LV_USE_GPU 1 /*Only enables `gpu_fill_cb` and `gpu_blend_cb` in the disp. drv- */相关接口如下: /** MANDATORY: Write the internal buffer (VDB) to the displa原创 2021-09-03 14:39:49 · 5628 阅读 · 0 评论 -
minigui 的中文字体部署及支持&窗口模态、非模态
一、minigui支持ttf字体1.1 首先我们准备两个素材song-gb2312.ttf gb2312编码的中文字体库times.ttf ISO8859编码英文字符串1.2 将其添加到 MiniGUI.cfg[truetypefonts]font_number=2name0=ttf-fixed-rrncnn-0-0-GB2312-0fontfile0=/mnt/minigui_debug/res/font/song-gb2312.ttfname1=ttf-times原创 2021-08-26 10:58:21 · 638 阅读 · 0 评论 -
LVGL linux arm平台上的详细移植过程(下)
本文接着上一篇 LVGL linux arm平台上的详细移植过程 开始讲解驱动部分和main.c demo部分的移植和编写。一、显示驱动和触摸屏驱动添加驱动部分我们需要将 src\lvgl\examples\porting 底下的这几个文件 src ├── lvgl ├── examples └── porting ├── lv_port_disp_template.c ├── lv_por原创 2021-08-25 11:42:38 · 4703 阅读 · 3 评论 -
minigui重要的DC memory绘图过程
一、引言上一章 minigui相关硬件加速添加方法 介绍了从绘图到显示的整体流程,以及最终调用到的硬件加速方法。如果我们不用DC MEM的话那将是每一次FillBoxWithBitmap ,以及DrawText,settext都会是直接调用到硬件的updateRect直接画出来,可以看到icon以及字符是一个一个刷出来的,这个也可以在updaterect处加打印验证。为了避免这样的问题,我们使用DC mem可以在整个window画完后再调用updateRect将整个window更新到framebuffer原创 2021-08-23 23:11:26 · 697 阅读 · 0 评论 -
minigui相关硬件加速添加方法
一、关于硬件加速1.1 介绍以海思平台的TDE加速显示模块为例,它主要为OSD和GUI提供快速的图形绘制功能,主要有快速位图搬移,快速色彩填充,快速抗闪搬移、快速位图缩放,画点、画水平/垂直线、位图格式转换,位图alpha叠加,位图按布尔值运算、ColorKey等操作。1.2 应用如何在minigui上应用这些加速模块呢?上一章详解minigui图片加载及显示介绍了从图片解码装载到bitmap,再由bitmap刷新到fb的整个大体流程。所有图片刷新或者window刷新都离不开后面刷新到fb的流程。原创 2021-08-20 10:01:47 · 773 阅读 · 0 评论 -
repo多仓库管理简介
1.应用场景:现在App Project 有多个Module,每个Module是各自团队自己维护编写的,每个Module都有自己的git地址。 Project Main = Module A + Module B + Module C。2.问题:如果团队A想编写并测试自己的Module A,必须要三个Module都clone下来,然后自建一个project引入 Module B 和 Module C然后才能修改运行,改代码的时候必须注意哪些文件不能加入git跟踪,不然不能提交。三个团队都要这样,非常麻原创 2021-06-29 22:08:21 · 2423 阅读 · 0 评论 -
shared_ptr定制删除器
定制删除器shared_ptr的另一种形式的构造函数share_prt(Y* p, D d), 参见boost shared_ptr基本用法介绍它的第一个参数是要被管理的指针,而第二个删除器参数d则告诉shared_ptr在析构时不是使用delete来操作指针p,而是要用d来操作,即把delete p 换成 d (p)。在这里d可以是一个函数对象,也可以说一个函数指针,只要它能够像函数那样被调用,使得d ( p )成立即可。对删除器的要求是它必须可以拷贝,行为也必须也像delete那样,不能抛出异常。原创 2021-06-07 22:48:18 · 800 阅读 · 0 评论 -
boost shared_ptr基本用法介绍
一、介绍share_ptr包装了new操作符在堆上分配的动态对象,但他实现的是计数型的智能指针,share_ptr早期的名字就是counter_ptr,可以自由拷贝和赋值,在任意的地方共享它,当没有代码使用(引用计数为0时)它才删除被包装的动态分配的对象。share_ptr也可以安全地放到标准容器中,是在STL容器中存储指针最标准的解法。template<class T>class shared_ptr{ public: typedef T element_type; //原创 2021-06-06 19:00:09 · 4022 阅读 · 2 评论 -
字符设备文件的打开操作
sys_openfdo_sys_openfd = get_unused_fd_flags(flags);//获得文件描述符fb;struct file *f = do_filp_open(dfd, tmp, &op, lookup);//通过tmp==filename(/dev/filename)查找与之对应的设备文件的inode,在linux文件系统中,每个文件都有一个inode与之对应。path_openatfilp = get_empty_filp();//调用这个函数为每个打开的文原创 2021-04-11 20:21:20 · 407 阅读 · 0 评论 -
一个c写的线程安全fifo队列
git目录如下:https://github.com/rdhananjaya/thread-safe-fifo-queuefifo.h#include <stdio.h>#include <pthread.h>#include <stdlib.h>#include <string.h>#ifndef FIFO_H#define FIFO_Hstruct _node { void *data; struct _node * next;原创 2021-03-23 22:23:25 · 744 阅读 · 0 评论 -
imx6 添加配置一路i2s
1、确定具体的i2s外部引脚,如图:我添加的一路是ssi3->int-port7->ext-port5; ext-port5 这路是可以软件上修改的。也就是ext-prot是可以随意搭配的。这样就确定了管脚用的是哪些了。2、配置dtsi使其能使用对应功能的引脚。 在pinctrl_audmux: audmuxgrp 节点添加对应的管脚。对占用的管脚进行屏蔽。3、添加imx-mic1388 codec机器层对应的节点。 sound-mic { comp原创 2021-03-12 16:37:56 · 841 阅读 · 0 评论 -
stm32 SPI设置
1、问题描述由于一开始时整板还没做出来,只能拿一块stm32f103的开发板和另一块FPGA板子来调。接线使用杜邦线连接了spi的CS片选SCK clk时钟信号,MOSI/MISO数据输入输出信号,4根线,配置详情为10~15Mhz时钟,stm32为主模式。发现电平有文波。2、配置SPI_Mode_Master,spi clock polarity 时钟空闲时极性为低电平SPI_CPOL_Low即一开始电平拉低,FPGA端clk下降沿数据改变clk上升沿数据采样,故spi clock phrase设为原创 2021-03-12 14:38:37 · 653 阅读 · 0 评论