- 博客(161)
- 资源 (1)
- 收藏
- 关注
原创 如何利用github pages创建个人blog
https://www.smashingmagazine.com/2014/08/build-blog-jekyll-github-pages/
2020-05-07 16:13:19
466
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
1412
原创 usb休眠唤醒相关
usb 休眠唤醒包括两种:1. system suspend/resume 系统休眠唤醒 如果不支持usb remote wakeup, 则usb控制器, phy都可以进入休眠状态。 关闭相关clock时钟, 甚至断电。 如果需要支持usb remote wakeup, 则不能完全断电, 需要留下部分底电流, 当usb外设发出request wakeup请求后, 能...
2020-04-30 13:41:13
18892
原创 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
1975
原创 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
284
原创 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
372
原创 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
297
原创 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
2427
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
2029
转载 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
281
原创 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
242
原创 vim 的一些 小tick(如%, !, $等 )
1. :$直接敲$, 是当前行的末尾$ or <End> To the end of the line. When a count is given also go ...
2020-01-11 14:17:11
1070
原创 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
532
原创 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
148
原创 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
298
原创 spin_lock相关
spin_lock - 自旋锁编程时, 经常需要考虑的问题是同步问题。谁和谁之间同步呢?? 看你的关键代码段和共享数据区的访问/读写者。有可能会很多, 很乱...比如:线程和线程,线程和中断,中断和中断,此核和彼核...应用, 内核等都有很多锁, 互斥, 原子等机制...内核中,比如1. 原子变量2. 自旋锁 spin_lock3. 互...
2020-01-02 16:46:12
259
原创 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
231
原创 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
410
1
原创 VirtualBox 虚拟机一些ticks
好记性不如烂笔头, 虚拟机安装ubuntu有些ticks记录下。Q. 全屏快捷键A: host + f <-> host + cQ. 如何支持全屏?A: 需要安装增强功能, 注意IDE光盘的设置, 需要将安装ubuntu的iso取消, 变成空盘。 或另外新增盘片。 安装时有报错, 需安装build-essential (包含了...
2020-01-01 21:40:57
163
原创 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
863
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
166
原创 mmu页表机制
给个链接https://www.cnblogs.com/arnoldlu/p/8087022.html1. 段, 大页, 小页, 极小页的划分 4种映射长度:段(1MB)、大页(64KB)、小页(4KB)、极小页(1KB)。ok, 以这个为前提, 我们设计mmu 两级页表的方式。假设, 需要寻址 0x12345678这个虚拟地址。已知它对应的页是0x56789...
2019-12-28 20:41:56
1569
1
原创 关于mmu使用多级页表为什么省空间的分析
Q: 为什么使用多级页表能省内存?A:首先考虑一级页表的情况。内存虚拟空间是0~4G按4K一页的方式分页。那么需要总共1024 * 1024个页表项, 即1M个页表项其中每个页表项为32位整数。为什么??想想里面需要存放什么???最主要的其实就是映射的页表基地址。假设0x12345678的虚拟地址, 映射的物理地址是0x56789678。那我们页表项主...
2019-12-28 19:48:04
1936
1
原创 记录些等待队列(wait_queue)的使用
贴几篇文章先...https://blog.youkuaiyun.com/hs794502825/article/details/8959459https://blog.youkuaiyun.com/lizuobin2/article/details/51785812记录些概念和接口。1. 什么是睡眠?cpu调度 有 按时间片轮转, 抢占式基于优先级, 实时调度等很多方式。不同场景使用不同调度方式...
2019-12-28 16:47:58
1017
原创 vivi驱动中的等待队列wait_queue
内核有很多队列, 如等待队列, 工作队列等等。所有的队列都是利用list机制做成一个双向链表/队列。和内核种的一些模块自己使用的队列其实大同小异。如usb的端点队列, v4l2中vb2_buffer使用的queued_list和done_list。以vivi.c驱动为例, 记录些等待队列的实现及应用。* 相关结构体和函数1.DECLARE_WAIT_QUEUE_...
2019-12-28 15:52:58
323
原创 关于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
1104
1
原创 为什么YUV全为0的图像是绿色的
Q: 为什么YUV 全为0 的图像是绿色的A: 图像中常见的颜色编码有两种方式。 1. YUV - 灰度(亮度)+ 色差分量 2. RGB - 红绿蓝 三色分量通常电视, 视频等都采用yuv编码方式, 由于人类对灰度/亮度比较敏感, 而对色差分量不是很敏感。所以通过yuv编码方式, 可以减少U, V 也即Cb, Cr分量的数量。故yuv编码方式常见有...
2019-12-27 16:24:23
8839
1
原创 关于vb2_buffer_done
直接贴代码, 907 void vb2_buffer_done(struct vb2_buffer *vb, enum vb2_buffer_state state) ...
2019-12-26 21:26:25
1469
原创 内核中的list相关
linux内核有很多优秀的代码...比如list这是一个双向链表。先贴个好文章...https://myao0730.blogspot.com/2016/12/linux.html先看下list_head的结构体,/* ...
2019-12-26 20:43:45
353
1
原创 关于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
1804
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
1109
原创 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
483
原创 Linux 内存管理
关于Linux内存管理...挖个坑...相关概念1. 用户态堆, 栈, 静态数据区, mmap映射区函数 - malloc, free, brk, mmap2. 内核态内核堆, 栈, 静态数据区, dma内存等相关函数 - kmalloc, vmalloc,ioremap, dma_allcoc_coherent, __get_free_pages.....
2019-12-24 11:28:18
107
原创 图像编解码 - 熵编码
关于熵编码 - 如jpeg中使用的霍夫曼编码, h264中使用的指数哥伦布编码等。挖个坑...贴个好文https://www.jianshu.com/p/c4e3c6ae8a36
2019-12-18 20:43:49
806
原创 国内半导体行业 记录
简单记录些半导体公司...Soc设计:1. 海思 - 手机,安防, 车载等芯片2. 展讯, 紫光, 锐迪科 - 紫光展锐 - 手机, 单片机等3. allwinner(全志科技) - 珠海 - 平板, 多媒体, 智能音箱等4. amlogic(晶晨半导体) - 上海 - 小米电视芯片5. rockchip(瑞芯微) - 福建 - 商用显示器(广告屏) (南京的欣威视讯...
2019-12-18 16:29:36
404
原创 如何判断链表有环
假设存在环, 环前共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
355
原创 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
3852
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人