
嵌入式
文章平均质量分 84
yanbixing123
曾师从于:世界芯片设计前10某公司,传说中的世界500强某米,被美丽国实体清单拉黑的某AI巨头,嵌入式黄埔军校某台企;毕业于某非985,211的双一流学校;
Camera算法,HAL,Android MultiMedia Framework,StageFright,OpenMAX;
嵌入式uboot,linux驱动,Andorid底层,i.MX6 IPU专栏,GStreamer专栏^_^~
小富靠勤,大富靠命。技术是通向小富的一条现实可行的路径。祝大家顺利~~~
展开
-
从编译警告信息(Warning)中寻找原因
从编译警告信息(Warning)中寻找原因 15年5月5月5日月5日5日日08:21:37 在跟着韦老师视频学习的时候,经常发现,我就是按照韦老师的视频边看边敲的代码,到最后为什么他都能实现结果,而我的程序频繁报错,这些问题困扰我们这些新手很长一段时间,我曾经就因为不小心在if()后面不小心随手敲了一个分号,然后整整寻找了一下午才解决这个问题。还有一次因为在read函数原创 2016-08-24 15:27:11 · 11789 阅读 · 0 评论 -
数据结构---线性表的链式表示和实现(二)
数据结构---线性表的链式表示和实现(二) 16年2月27日22:02:02 这一篇是双向链表的一些操作函数,与单向链表相比,并没有太大的区别。 /** * This code is for duplex linked_list. */原创 2016-08-24 15:28:48 · 326 阅读 · 0 评论 -
linux内核中链表代码分析---list.h头文件分析(一)
linux内核中链表代码分析---list.h头文件分析(一) 16年2月27日17:13:14 在学习数据结构时,有一个重要的知识点就是链表。对于链表的一些基本操作,它的最好学习资料就是内核中的list.h头文件,内核中大量的使用链表,都是基于此文件的,下面来仔细分析它: (一) 结构体的定义 首原创 2016-08-24 15:28:50 · 1895 阅读 · 0 评论 -
内核中container_of宏的详细分析
内核中container_of宏的详细分析 16年2月28日09:00:37 内核中有一个大名鼎鼎的宏-----container_of();这个宏定义如下所示,为了表示一下敬意,我就把注释一起粘贴下来了: /** * container_of - cast a member of a stru原创 2016-08-24 15:28:53 · 817 阅读 · 0 评论 -
linux内核中链表代码分析---list.h头文件分析(二)
linux内核中链表代码分析---list.h头文件分析(二) 16年2月28日16:59:55 分析完container_of()宏以后,继续分析list.h文件: (1)list_entry 它就是一个container_of宏,都是得到ptr所指地址的这个结构体的首地原创 2016-08-24 15:28:56 · 1184 阅读 · 0 评论 -
V4L2学习记录
V4L2学习记录 这个还没有分析完,先在这放着,防止电脑坏掉丢了,以后再完善 V4L2原创 2016-08-24 15:28:59 · 4618 阅读 · 0 评论 -
顺序栈的操作
顺序栈的操作 16年2月29日18:52:02 从数据结构的角度看,栈和队列都是线性表,他们是操作受限的线性表。所以从理论上讲它们应该简单的,但是他们在实际应用中广泛应用。本节先看看顺序栈的一些操作函数: #include stdio.h> #原创 2016-08-24 15:29:02 · 382 阅读 · 0 评论 -
栈的应用之数制转换
栈的应用之数制转换 16年2月29日19:46:56 /* *============================================================================== * * Filename: 3.2.c原创 2016-08-24 15:29:05 · 678 阅读 · 0 评论 -
栈的应用之括号匹配的检验
栈的应用之括号匹配的检验 16年2月29日22:09:16 检验括号匹配的方法,就是对给定的字符串依次检验,若是左括号,入栈,若是右括号,则判断栈最上面那个元素,如果能够匹配,就继续判断,如果不匹配的话就返回错误。如果是其他字符,就不检验。检验到字符串的结尾的话,这时候要判断栈是否为空,判断是否有剩余的左括号。原创 2016-08-24 15:29:08 · 903 阅读 · 0 评论 -
栈的应用之行编辑程序
栈的应用之行编辑程序 16年3月2日15:12:53 这个程序并没有写成功,先把自己写的程序粘贴如下: /** * Error code.............I don't know why......... *原创 2016-08-24 15:29:10 · 600 阅读 · 0 评论 -
队列的链式表示和实现
队列的链式表示和实现 16年3月2日19:56:24 #include stdio.h> #include malloc.h> #include stdlib.h> typedef struct Qnode {原创 2016-08-24 15:29:13 · 953 阅读 · 0 评论 -
64位系统安装32位交叉工具链时No such file or directory的解决办法
64位系统安装32位交叉工具链时Nosuch file or directory的解决办法 在安装交叉工具链的时候,明明已经将路径添加到/etc/environment里面了,而且在命令行输入:arm-linux- 然后按tab键能够补全很多命令出来,在编译程序的时候却提示: bash:/gcc-3.4.5-glibc-2.3.6/bin/arm-linux-g原创 2016-08-24 15:29:26 · 2785 阅读 · 0 评论 -
启动根文件系统时提示WARNING: Unable to open an initial console的解决办法
启动根文件系统时提示WARNING:Unable to open an initial console的解决办法 在启动根文件系统是提示: WARNING:Unable to open an initial console 这个主要是没有建立控制台,缺少 /dev/console 和 /dev/null在建立他们之前UDEV就先使用到原创 2016-08-24 15:29:28 · 4558 阅读 · 0 评论 -
开发板设置从nfs启动
开发板设置从nfs启动 16年4月16日15:43:13 (一)设置PC的ip地址: 我采用的方法是通过一根交叉网线连接开发板与PC机,这时候需要设置PC机的ip如下所示: 此时,电脑是没法上网的。 (二)安装TFTP服务原创 2016-08-24 15:29:31 · 2465 阅读 · 0 评论 -
.vimrc配置文件备份
vimrc.txt折腾了好多天,终于将vim配置成自己想要的样子,里面附带了一些插件都是不错的。重要的是使用vundle来管理插件,现在插件都是采用github来托管了,使用vundle来管理插件的话,只需要带着这个.vimrc文件,随便换个电脑,很轻松地就将vim配置成自己熟悉的样子,简直不能再爽!!!唯一比较难配置的还是youcompleteme这个插件,另外对于括号补全,引号补全等,原来原创 2016-08-24 15:29:34 · 793 阅读 · 0 评论 -
数据结构---线性表的链式表示和实现(一)
数据结构---线性表的链式表示和实现(一) 16年2月26日19:46:29 这一块的内容就是所谓的链表操作,对于这一块的内容需要熟练的掌握,以下的源程序是单链表的一些操作,对于双链表和循环链表,以及linux内核中的链表,我们将在后面写出来,现在先分析单链表: #include stdio.h原创 2016-08-24 15:28:45 · 465 阅读 · 0 评论 -
数据结构---线性表的顺序表示和实现
点击(此处)折叠或打开 数据结构---线性表的顺序表示和实现 16年2月26日19:24:49 线性表的顺序表示,它的优点是容易实现随机存取线性表的第i个元素,但是在插入,删除的操作时,需要移动大量的元素,所以它适用于相对稳定的线性表,如职工工资表,学生学籍表等。以下是我写的源程序:原创 2016-08-24 15:28:42 · 551 阅读 · 0 评论 -
重新移植一个linux内核
从新移植linux内核 15年4月23日08:37:24 *****特别要注意的是:移植内核的时候用的交叉编译器与构建跟文件系统的时候用的,一定要是统一个版本的,要不就会出现各种错误!!深有体会啊.......******************* (一)常规方法,按照韦老师的来做(使用厂家提供的配置文件) 1)解压缩原创 2016-08-24 15:27:13 · 1185 阅读 · 0 评论 -
用busybox构建一个最小根文件系统
P { margin-bottom: 0.21cm; } 用busybox构建一个最小根文件系统 15年4月4月23月23日23日日15:11:30 (一)一个最小根文件系统包括: (1)/dev/console /dev/null (2)init => busybox (3)/etc/inittab原创 2016-08-24 15:27:23 · 3683 阅读 · 0 评论 -
Linux下应用程序的文件操作函数总结
P { margin-bottom: 0.21cm; direction: ltr; color: rgb(0, 0, 10); text-align: justify; }P.western { font-family: "Calibri",serif; font-size: 10pt; }P.cjk { font-family: "Droid Sans Fallback"; font-size原创 2016-08-24 15:27:26 · 2427 阅读 · 0 评论 -
用nfs挂载内核时出错T T T T T T T *** ERROR: Cannot umount的解决办法
P { margin-bottom: 0.21cm; } 用nfs挂载内核时出错TT T T T T T *** ERROR: Cannot umount的解决办法 15年7月23日10:27:32 用u-boot挂载内核的时候,出现: *************************我是分割线@_@*****************原创 2016-08-24 15:27:40 · 1714 阅读 · 0 评论 -
linux下比较软件meld
(1)可以通过wine来使用windows下面的bcompare。(2)linux下面有一个开源的比较软件非常好用,可以进入meld的官网http://meldmerge.org/下载源码安装,当然,对于可以在线安装软件的,直接执行apt-get install meld即可,懒人更是可以通过ubuntu软件中心鼠标点击安装~~~~~~原创 2016-08-24 15:27:43 · 1049 阅读 · 0 评论 -
linux 编译指定库、头文件的路径问题
在编译第一个项目中电子书触摸屏的应用程序时,用到了tslib库,编译安装以后,还是提示以下的错误:built-in.o: In function `TouchScreenGetInputEvent':/home/ybx/project/09.show_file_Makefile/input/touchscreen.c:65: undefined reference to `ts_read'原创 2016-08-24 15:27:49 · 3135 阅读 · 0 评论 -
VIM: C程序员插件C.vim
转自:http://blog.youkuaiyun.com/guolb57/article/details/7013076作为一个程序员,在编码时你常常有如下的重复操作: 1. 给文件或者函数说明 2. 给函数添加注释,或者添加一个注释快 3. 添加一段已有代码 (:r !cat filename) 4. 检查代码语法 5. 读函数的帮助文档 6. 注释掉一块代码,原创 2016-08-24 15:27:58 · 4217 阅读 · 0 评论 -
GNU风格 ARM 汇编指令语法总结
汇编源程序一般用于系统最基本的初始化:初始化堆栈指针、设置页表、操作 ARM的协处理器等。这些初始化工作完成后就可以跳转到C代码main函数中执行。 1、 GNU汇编语言语句格式 任何Linux汇编行都是如下结构:[:][instruction or directive or pseudo-instruction>} @comment l原创 2016-08-24 15:28:08 · 4659 阅读 · 0 评论 -
GNU的编译器和调试工具
P { margin-bottom: 0.21cm; } GNU的编译器和调试工具 一. 编译工具 1.编辑工具介绍 GNU 提供的编译工具包括汇编器as、C编译器gcc、C++编译器g++、连接器ld和二进制转换工具objcopy。基于ARM平台的工具分别为arm-linux-as、arm-linux-gcc、arm-linux-g+原创 2016-08-24 15:28:11 · 6136 阅读 · 0 评论 -
当bootdelay误设置为0时的解决办法
今天干了一件糗事,设置uboot的启动延时参数bootdelay,忘了怎么写了,于是就写了set bootdelay = 5,然后save了一下,然后,然后就悲剧了。。。。。。bootdelay参数直接设置成了0。。。。于是板子一上电就直接启动,疯狂敲空格也没用。。。进入不了uboot界面,也就没法使用nand erase params来擦除保存的环境参数了,very 悲剧,于是乎就学习了关于这一原创 2016-08-24 15:28:14 · 5130 阅读 · 3 评论 -
ARM的启动和中断向量表
这几天在看裸机中断控制系统的时候,对于中断发生后,将pc值强制设置为0x00000018(这正是异常中断向量表中IRQ的入口地址)这句话很不理解,什么是中断向量表?为什么IRQ的入口地址是0x00000018?找到的解释如下:以下转自:http://blog.youkuaiyun.com/hudieping/article/details/5202243ARM的启动和中断向量表原创 2016-08-24 15:28:17 · 4073 阅读 · 1 评论 -
自己动手写一个简单的bootloader
自己动手写一个简单的bootloader15年10月31日19:44:27(一) start.S写这一段代码前,先要清楚bootloader开始的时候都做什么了。无非就是硬件的初始化,我们想要写一个简单的bootloader,它的功能只是要能启动内核就行,因此,与uboot相比,它要做的东西很少。总结出来就是:(1)关看门狗;(2)初始化时钟,设置分频系数,让板子跑的更原创 2016-08-24 15:28:20 · 10255 阅读 · 0 评论 -
u-boot-1.1.6源码分析
P { margin-bottom: 0.21cm; }A:link { }CODE.ctl { font-family: "Lohit Hindi",monospace; } u-boot-1.1.6源码分析 15年11月1日15:22:59 想要分析一个大的程序是从哪一个文件开始执行的,首先是分析它的Makefile,当然也可以采取一个取巧的办法,将编译过的原创 2016-08-24 15:28:23 · 2169 阅读 · 0 评论 -
sublime text 3 取消自动检查更新的解决办法以及注册的方法
在使用sublime text 3的时候,有自动更新的话再打开的时候总是提醒更新,这让我这个强迫症重度患者非常难受,要取消自动检查更新,点击菜单栏“Preferences”=> "Settings-User"将里面修改为如下:{ "color_scheme": "Packages/Colorcoder/Monokai (Colorcoded).tmTheme", "font原创 2016-08-24 15:28:39 · 3461 阅读 · 3 评论 -
安装sublime text 3:ctags相关设置和配置的问题
这几天做系统从新安装了sublime text,从新安装完ctags插件,但是在文件上面右键:Ctags:Rebuild Tags的时候,提示/bin/sh:1 ctags:not found,这时候需要从新安装ctag可执行程序,直接使用sudo apt-get install ctags 命令即可。安装完以后想要通过ctrl+左键的方式跳转,ctrl+右键返回。这时候需要配置Mouse Bin原创 2016-08-24 15:29:23 · 3243 阅读 · 0 评论