使用extlinux引导系统

Intro 前一阵忙的项目是在一个非常非常老的486处理器上用buildroot重新构建一个系统,以支持最新的内核和工具链。 因为本质上是PC架构,一开 ...

Jump to existing tab using fzf in Vim

fzf is a powerful console tool which can help you a lot during daily development. And what’s really awesome is it’s also integated in Vim. fzf.vim provides a set of ready-made commands and this wiki page gives basic tutorial about how to write your own fzf function in vimrc and many useful snippets. For a long time, I’m looking for a quick way to jump to one tab when opening a lot tabs in Vim. ...

我的2018总结

Intro 上一次写年度总结还是在2013年,稍微回忆一下,过去五年自己经历了挺多,从一个刚毕业出社会的牛犊,变成用我爸的话来说“走南闯北”的人。出国 ...

如何给ffmpeg添加codec

Intro ffmpeg是一个很强大的框架,包含众多的编解码器、提供很多方便的函数用于解析或生成各种媒体文件。大部分情况下,开发者使用ffmpeg开发 ...

C11标准库中的atomic原子操作

Intro C11标准也推出了很久,只是对于嵌入式编程,一方面许多嵌入式工具链版本号较低,另一方面Linux内核编译选项还是c89的标准,以至于很多便 ...

聊聊scatterlist的chain结构

最近写一个驱动,涉及DMA内存管理,不可避免的需要了解到scatterlist。网上能够搜到很多方面的资料,例如这个和这个。同时内核源码里s ...

如何计算eMMC大小

User Area 计算方法其实已经在规范中给出了,参考eMMC 5.0 spec里的段落。首先是: 7.3.12 C_SIZE [73:62] The C_SIZE parameter is used to compute the device capacity for devices up to2 GB of density. See 7.4.52, SEC_COUNT [215:212] , for details on calculatingdensities greater than 2 ...

一个awk的例子

最近公司弃用svn,全部使用git来进行版本控制,使用gitlab作为服务软件。结果在迁移以前的Android的git仓库时发现gitlab ...

MIPI CSI-2简介

概述 本文简单介绍MIPI CSI-2协议,根据MIPI联盟的官方文档MIPI Alliance Specification for Camera Serial Interface 2 (CSI-2),描述其协议层次和应用场景。 CSI (Camera Serial Interface) 是 ...

配置git diff的输出颜色

背景 最近需要大量比对之前同事对内核做的修改,用git show和git diff看各个commit之间的差异。虽然默认情况下,git配置里已经将 ...