自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(161)
  • 资源 (1)
  • 收藏
  • 关注

原创 如何利用github pages创建个人blog

https://www.smashingmagazine.com/2014/08/build-blog-jekyll-github-pages/

2020-05-07 16:13:19 368 1

原创 多用户.gitconfig配置

经常遇到一个问题, 同一台电脑需要git pull不同账户及仓库的代码,则需要重新配置name, email等属性git config --global name "xxx"git config --global email "yyy"~/.gitconfig文件中会保存当前的配置。如何使多用户同时有效呢??以下是一个方式:[includeIf "gitdir...

2020-05-07 15:38:33 1298

原创 usb休眠唤醒相关

usb 休眠唤醒包括两种:1. system suspend/resume 系统休眠唤醒 如果不支持usb remote wakeup, 则usb控制器, phy都可以进入休眠状态。 关闭相关clock时钟, 甚至断电。 如果需要支持usb remote wakeup, 则不能完全断电, 需要留下部分底电流, 当usb外设发出request wakeup请求后, 能...

2020-04-30 13:41:13 15845

原创 systemctl如何根据pid寻找具体哪个服务

家里折腾我家云omv系统,一直有个进程2105 aria2c --conf-path=/opt/etc/aria2.conf在写emmc文件...一会就写满了...需要利用systemctl disable 该项服务, 以解决该问题...root@omv:/opt# systemctl --help | grep -i pid status [PATTERN...|...

2020-03-24 23:14:38 1680

原创 some w3c QAs

Q, 公网ip如何确认?A, 查看路由器wlan口ip地址, 再利用https://ip138.com/等网站判断, 一致即为公网ip.我这里联通运营商直接给的就是公网ip.Q, 公网ip为什么会变?每次重启路由器, 或做些路由器操作, 运营商都会从ip池中随机分配一个ip。故wlan口公网ip会发生变化。如果需要固定ip, 需向运营商阐明需求, 或者类似公司...

2020-03-22 17:42:40 251

原创 udev rules sample

touch /etc/udev/rules.d/51-blk-dev.rulesACTION=="add", KERNEL=="sd[a-z][0-9]", RUN+="/bin/mkdir -p /mnt/%k"ACTION=="add", KERNEL=="sd[a-z][0-9]", RUN+="/bin/mount /dev/%k /mnt/%k"ACTION=="add", K...

2020-03-12 19:24:27 304

原创 uboot移植简要记录

1. download 最新uboot源码2. 选取相近的平台defconfig, 修改. 主要有CONFIG_ARM(如果是ARM平台), CONFIG_SYS_ARCH="arm" CONFIG_SYS_CPU="armv8" CONFIG_SYS_SOC="river" # soc名称 CONFIG_SYS_VENDOR="riv...

2020-02-08 19:54:26 259

原创 usb协议

http://www.usbmadesimple.co.uk/index.html

2020-01-19 23:03:31 178

原创 USB3.0 detection

No, USB SS enumeration does not require D+/D- wires, technically.The priority of connect process in USB 3.0/3.1 framework is as follows: USB plug is connected; SS Tx and Rx pairs are connected to...

2020-01-14 22:21:38 2102 1

原创 jpeg header parser

根据itu-t81及其他jpeg文档, 写了个header解析。 主要从SOF0段解析出width和height。比较常见的marker及顺序如下:TLA Name Hex Size Required Special Notes SOI start of image 0xFF 0xD8 This tag doesnothave a ...

2020-01-11 22:07:33 1400

转载 Jpeg layout

The File LayoutA JPEG file is partitioned by markers. Each marker is immediately preceded by an all 1 byte (0xff). Although there are more markers, We will discuss the following markers:...

2020-01-11 21:15:55 227

原创 vim 列模式 小tick

1. 列模式下经常遇到以下问题,40 /* Restart interval termination */41 #define JPEG_MARKER_RST0› 0xd042 #define JPEG_MARKER_RST0› 0xd043 #define JPEG_MARKER_RST0› 0xd044 #define JPEG_MARKER...

2020-01-11 18:21:43 196

原创 vim 的一些 小tick(如%, !, $等 )

1. :$直接敲$, 是当前行的末尾$ or <End> To the end of the line. When a count is given also go ...

2020-01-11 14:17:11 843

原创 Linux网络端口相关

1. http server复杂的有aphache, tomcat, nginx等。 其中apache只支持html这些静态网页。 像php, cgi, jsp等动态网页需要tomcat来处理。nginx是一个反向代理服务器。 (正向代理客户端, 反向代理服务端)简单的如busybox的httpd, python组件中的SimpleHTTPServer, 其他也可以自己简单写个htt...

2020-01-08 10:13:03 376

原创 Linux调度器

https://www.cnblogs.com/tolimit/p/4303052.htmlhttps://mp.weixin.qq.com/s/W68WIT4AGdS7xJSecnHYcQhttps://mp.weixin.qq.com/s/V8ZONUdTeoALQuiy53uN_w挖坑...

2020-01-02 19:30:44 117

原创 spin_lock 相关 -- 原子上下文

在前面文章描述spin_lock的时候, 要求spin_lock/unlock中间的代码不能有主动放弃cpu, 进入睡眠的函数。 (如sleep, schedule()等)下面提一个问题?Q: 那在spin_lock/unlock中间代码段执行时, 时间片到了怎么办?A: spin_lock和spin_unlock中间代码是原子上下文。 故时间片轮转到了, 也不会调度。。。...

2020-01-02 19:25:54 249

原创 抢占(PREEMPTION)是如何发生的

http://linuxperf.com/?p=211挖坑...

2020-01-02 16:46:45 274

原创 spin_lock相关

spin_lock - 自旋锁编程时, 经常需要考虑的问题是同步问题。谁和谁之间同步呢?? 看你的关键代码段和共享数据区的访问/读写者。有可能会很多, 很乱...比如:线程和线程,线程和中断,中断和中断,此核和彼核...应用, 内核等都有很多锁, 互斥, 原子等机制...内核中,比如1. 原子变量2. 自旋锁 spin_lock3. 互...

2020-01-02 16:46:12 189

原创 关于yuv的色彩

https://multimedia.cx/eggs/yuv-and-rgb/挖坑...

2020-01-02 15:45:51 141

原创 vivi驱动编写(三)

第二篇vivi驱动, demo效果只是静止的绿色图像。。。所以稍微改良下... 代码如下:#include <linux/module.h>#include <linux/kernel.h>#include <linux/printk.h>#include <linux/platform_device.h>#include <...

2020-01-02 14:41:56 182

原创 vivi驱动编写(二)

实现vivi - Virtual Video驱动。以下显示一个全绿屏界面。#include <linux/module.h>#include <linux/kernel.h>#include <linux/printk.h>#include <linux/platform_device.h>#include <linux/vi...

2020-01-02 12:48:53 352 1

原创 VirtualBox 虚拟机一些ticks

好记性不如烂笔头, 虚拟机安装ubuntu有些ticks记录下。Q. 全屏快捷键A: host + f <-> host + cQ. 如何支持全屏?A: 需要安装增强功能, 注意IDE光盘的设置, 需要将安装ubuntu的iso取消, 变成空盘。 或另外新增盘片。 安装时有报错, 需安装build-essential (包含了...

2020-01-01 21:40:57 119

原创 vivi驱动编写(一)

vivi 驱动, 即Virtual Video驱动。基于v4l2驱动框架。最新版本支持例如capture(类似摄像头, 采集, 解码等) - 最终通过/dev/videoX设备获得yuv图像数据。看协议描述:Video capture devices sample an analog video signal and store the digitized images in m...

2020-01-01 14:27:28 758 1

原创 记录些有用的git命令

贴两个不错的教程.https://github.com/pcottle/learnGitBranchinghttps://learngitbranching.js.org/图解:https://segmentfault.com/a/11900000182729021. git reset # 复位对仓库进行操作git reset HEAD...

2019-12-30 16:09:10 131

原创 mmu页表机制

给个链接https://www.cnblogs.com/arnoldlu/p/8087022.html1. 段, 大页, 小页, 极小页的划分 4种映射长度:段(1MB)、大页(64KB)、小页(4KB)、极小页(1KB)。ok, 以这个为前提, 我们设计mmu 两级页表的方式。假设, 需要寻址 0x12345678这个虚拟地址。已知它对应的页是0x56789...

2019-12-28 20:41:56 1436 1

原创 关于mmu使用多级页表为什么省空间的分析

Q: 为什么使用多级页表能省内存?A:首先考虑一级页表的情况。内存虚拟空间是0~4G按4K一页的方式分页。那么需要总共1024 * 1024个页表项, 即1M个页表项其中每个页表项为32位整数。为什么??想想里面需要存放什么???最主要的其实就是映射的页表基地址。假设0x12345678的虚拟地址, 映射的物理地址是0x56789678。那我们页表项主...

2019-12-28 19:48:04 1786 1

原创 记录些等待队列(wait_queue)的使用

贴几篇文章先...https://blog.csdn.net/hs794502825/article/details/8959459https://blog.csdn.net/lizuobin2/article/details/51785812记录些概念和接口。1. 什么是睡眠?cpu调度 有 按时间片轮转, 抢占式基于优先级, 实时调度等很多方式。不同场景使用不同调度方式...

2019-12-28 16:47:58 961

原创 vivi驱动中的等待队列wait_queue

内核有很多队列, 如等待队列, 工作队列等等。所有的队列都是利用list机制做成一个双向链表/队列。和内核种的一些模块自己使用的队列其实大同小异。如usb的端点队列, v4l2中vb2_buffer使用的queued_list和done_list。以vivi.c驱动为例, 记录些等待队列的实现及应用。* 相关结构体和函数1.DECLARE_WAIT_QUEUE_...

2019-12-28 15:52:58 250

原创 关于ioctl的cmd值如何解析...

遇到ioctl内核中未定义,打印log[ 739.108300] No such IOCTL, cmd is -1071625723cmd is -1071625723这个cmd如何解释呢...?ioctl原型SYNOPSIS #include <sys/ioctl.h> int ioctl(int d, int req...

2019-12-28 11:28:36 983 1

原创 为什么YUV全为0的图像是绿色的

Q: 为什么YUV 全为0 的图像是绿色的A: 图像中常见的颜色编码有两种方式。 1. YUV - 灰度(亮度)+ 色差分量 2. RGB - 红绿蓝 三色分量通常电视, 视频等都采用yuv编码方式, 由于人类对灰度/亮度比较敏感, 而对色差分量不是很敏感。所以通过yuv编码方式, 可以减少U, V 也即Cb, Cr分量的数量。故yuv编码方式常见有...

2019-12-27 16:24:23 7763 1

原创 关于vb2_buffer_done

直接贴代码, 907 void vb2_buffer_done(struct vb2_buffer *vb, enum vb2_buffer_state state) ...

2019-12-26 21:26:25 1290

原创 内核中的list相关

linux内核有很多优秀的代码...比如list这是一个双向链表。先贴个好文章...https://myao0730.blogspot.com/2016/12/linux.html先看下list_head的结构体,/* ...

2019-12-26 20:43:45 292

原创 关于vb2_buffer的操作描述

以vivi驱动为例,vb2_buffer为vivi设备内部使用的帧缓存描述, (用户态用v4l2_buffer来描述)在vb2_queue队列中, 有两个队列, 分别为queued_list和done_list,前者用于存放用户enqueue的buffer, 后者用于存放处理好等待dequeue的buffer。Q: 贴段代码... 875 static void b...

2019-12-26 19:38:09 1593 1

原创 v4l2 vivi驱动分析

v4l2驱动框架相对还是挺复杂的,最好的参考例子有v4l2-pci-skeleton.c和vivi (Virtual Video)其中vivi在最新的Linux 4.xx版本也变得非常复杂。所以采用Linux-3.16.74版本作为学习...1. 该版本没有使用platform_driver框架, 故模块初始化入口函数vivi_init直接进行video设备的注册...

2019-12-26 15:52:58 986

原创 Linux v4l2框架相关

记录下linux v4l2相关知识。1. v4l2 - Video For Linux 2 version.即内核中关于视频(audio, radio其实也可以用) 处理的驱动框架。常见如摄像头采集, 编解码器等 都可以用v4l2框架。2. 用户态编程网络上有很多相关文档。和大部分linux设备驱动一样, 用户态主要操作有open, close, read, wr...

2019-12-26 14:33:39 416

原创 Linux 内存管理

关于Linux内存管理...挖个坑...相关概念1. 用户态堆, 栈, 静态数据区, mmap映射区函数 - malloc, free, brk, mmap2. 内核态内核堆, 栈, 静态数据区, dma内存等相关函数 - kmalloc, vmalloc,ioremap, dma_allcoc_coherent, __get_free_pages.....

2019-12-24 11:28:18 82

原创 图像编解码 - 熵编码

关于熵编码 - 如jpeg中使用的霍夫曼编码, h264中使用的指数哥伦布编码等。挖个坑...贴个好文https://www.jianshu.com/p/c4e3c6ae8a36

2019-12-18 20:43:49 685

原创 国内半导体行业 记录

简单记录些半导体公司...Soc设计:1. 海思 - 手机,安防, 车载等芯片2. 展讯, 紫光, 锐迪科 - 紫光展锐 - 手机, 单片机等3. allwinner(全志科技) - 珠海 - 平板, 多媒体, 智能音箱等4. amlogic(晶晨半导体) - 上海 - 小米电视芯片5. rockchip(瑞芯微) - 福建 - 商用显示器(广告屏) (南京的欣威视讯...

2019-12-18 16:29:36 351

原创 如何判断链表有环

假设存在环, 环前共L个节点, 环中共C个节点.设一个慢指针起始位置为a, 速度为1, 快指针起始位置为b, 速度为2.t时间后, 二者相遇, 可列方程:(a+t-L)mod C == (b+2*t-L)mod C即t=a-b(mod C), 该模线性方程必定有解.所以无论a, b的起始位置如何, 二者总是会相遇的.Struct Node{...

2019-12-18 15:32:44 339

原创 AMBA总线介绍

AMBA - Arm Microcontroller Bus Architecturearm提供的soc片内总线协议。从1995年的AMBA1开始, 已经经历了很多版本。1995 - AMBA1.0 定义了APB外设总线以及ASB系统总线1999 - AMBA2.0 定义了AHB - Advanced High-performance Bus, APB总线升级为同步总线200...

2019-12-18 15:31:12 3711

OK6410 datasheet & PCB layout

OK6410 datasheet & PCB layout

2016-04-19

空空如也

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

TA关注的人

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