Category: Stay hungry, Stay foolish!

ARM NEON Usage Note

简介 SIMD, 即Single Instruction Multiple Data(单指令多数据)的并行操作。CPU 在处理向量数据时有它的局限性。CPU的优势在于处理复杂多变的指令,而对于那种大数据量的重复性操作,ARM 为了增加处理效率,增加了这种并行处理模块, 即NEON(Advanced SIMD)。主要是在ARMv7 架构后的处理器使用。 NEON 的主要 components: NEON register file NEON integer execute pipeline NEON single-precision floating-point execute pipeline NEON load/store and permute pipeline NEON 指令和 floating-point 指令使用的是相同的 register file。不同于ARM core的register file。此 register file 可以以 32-bit, 64-bit, 128-bit 方式访问。 The contents of the NEON registers are vectors of
Read More »

H.264 codec Note

•       Elements of a video Sequence o    Frames o    Slices o    MBs (macroblocks) •       Frame Types o    I-, P-, B-frames o    GOP (group of picture), specifies the order in which intra– and inter-frames are arranged. o    NAL (Network Abstraction Layer) v  SPS (Sequence parameter set) v  PPS (Picture parameter  set) v  IDR (Instantaneous Decoder Refresh),
Read More »

使用 qemu 调试 linux kernel

  在 Ubuntu 中build kernel 参考如下: [Ref] https://wiki.ubuntu.com/KernelTeam/GitKernelBuild    可以直接在宿主机调试kernel, 但是当发生崩溃之后,工作环境又要重新配置。   所以考虑用 qemu,因为它有个option: -kernel, 可以直接引导kernel。比 VirtualBox 等虚拟机更快速更方便。 尝试使用 qemu 直接启动主机上的kernel  $ sudo qemu-system-x86_64 -kernel /boot/vmlinuz-`uname -r` 这会提示缺少文件系统 可以使用 debootstrap 构建一个rootfs  IMG=qemu-image.img DIR=mount-point.dir qemu-img create $IMG 1g mkfs.ext2 $IMG mkdir $DIR sudo mount -o loop $IMG $DIR sudo debootstrap --arch amd64 jessie $DIR sudo umount $DIR
Read More »

git 相关

gitosis 搭建: git 本身是一个分布式的版本管理系统,但如果要设置一个中心库方便很多开发者同步,或者像SVN 一样使用它,就需要搭建git on the server – gitosis。 详情参考: https://git-scm.com/book/en/v1/Git-on-the-Server-Gitosis ubuntu:~$ sudo apt-get install git-core openssh-server openssh-client ubuntu:~$ sudo apt-get install python-setuptools ubuntu:~$ git config --global user.name "myname" ubuntu:~$ git config --global user.email "******@gmail.com" ubuntu:~$ git clone https://github.com/res0nat0r/gitosis.git ubuntu:/tmp$ cd gitosis/ ubuntu:/tmp/gitosis$ sudo python setup.py install ubuntu:/tmp/gitosis$ sudo useradd -m git ubuntu:/tmp/gitosis$ sudo passwd
Read More »

petalinux use guide summarize

petalinux 是针对 Xilinx FPGA-based SOC designs 的 embedded linux system development kit 。 包含了: Yocto Extensible SDK Minimal downloads XSCT and tool chains PetaLinux CLI tools   详情参考 PetaLinux Tools Reference Guide。 版本: v2018.2 June 6, 2018    不支持 ubuntu1804, 手贱装了ubuntu1804, 结果 build 的时候出现 Bitbake 运行不起来,google 一遍发现这版本petalinux  还是暂时不支持 ubuntu1804 ,遂重新装回1604. 总结: petalinux 安装, 略。 BSP
Read More »

recent new tech need to analysis and learn

reverse ssh tunnel nohup ssh -NfR 2222:localhost:22 root@106.12.13.xxx -p22 expect script   strip command Some useful line editing key bindings provided by the Readline library: Ctrl-A: go to the beginning of line Ctrl-E: go to the end of line Alt-B: skip one word backward Alt-F: skip one word forward Ctrl-U: delete to the beginning of
Read More »

c/c++编译相关技巧总结帖

链接时忽略文件中未用到的函数或者对象。这在移植代码过程中很有用, 我们就不需要去删除或者注释掉那些大量没用到的对象或者不需要去链接的对象。 For GCC, this is accomplished in two stages: First compile the data but tell the compiler to separate the code into separate sections within the translation unit. This will be done for functions, classes, and external variables by using the following two compiler flags: -fdata-sections -ffunction-sections Link the translation units together using the
Read More »

网站迁移笔记

迁移参考: https://www.digitalocean.com/community/tutorials/how-to-move-an-apache-web-root-to-a-new-location-on-ubuntu-16-04 Ubuntu1604 安装php5.6 由于Ubuntu1604 默认安装的是php7。由于网站兼容性问题,需要装php5。 步骤参考:https://phpraxis.wordpress.com/2016/05/16/install-php-5-6-or-5-5-in-ubuntu-16-04-lts-xenial-xerus/ > add-apt-repository ppa:ondrej/php > apt-get update > apt-get install php5.6 php5.6-mbstring php5.6-mysql php5.6-sqlite3 > 还有这些按需要装 php5.6-cli php5.6-curl php5.6-json php5.6-mcrypt php5.6-curl php-xdebug libapache2-mod-php5.6 libapache2-mod-php7.0 mysql-server-5.7 apache2 # php 版本切换方法2 > sudo a2dismod php7.0 ; sudo a2enmod php5.6 ; sudo service apache2 restart ; echo 1 | sudo update-alternatives –config
Read More »

linux bash shell 像cmd.exe 一样的滚动补齐功能

有些情况下,比如我们遇到文件名含有一些字符不容易输入时就很着急了,这时候就需要让linux shell像windows cmd.exe 一样自动补全部的文件名,且可自动按顺序一个个滚动切换。方法如下: 在用户目录创建 ~/.inputrc (若不存在则自己创建) 文件里添加一行: 。 登出再登陆用户就可以了。 For more details see the READLINE section in man bash .

gdb 简记

常用命令如下:(详情可以用 help 命令查看) r (run, restart)  s (step into)  n (next state, step over) finish (step out)  q (quit)  p (print anything you want) l (list) b (breakpoint) #设置断点: (gdb) b fileName.c:lineNumber 或者 (gdb) b function u (until) #运行到指定行 call  #调用函数 set  #设置变量  set args #设置main 的输入参数 bt (backtrace)  #查看堆栈 x #examine memory, (gdb)/FMT ADDRESS
Read More »