嵌入式
lifengxun20121019
这个作者很懒,什么都没留下…
展开
-
Nand Flash进阶
对nandflash很纠结,我不明白,为什么容易出现坏块还有那么多人要用,现在了解了些。关键原因是成本,嵌入式系统定义里的一个原则就是这个。看完这篇文章,我对nandflash又有了新的认识。。。 原文: 在嵌入式应用中,海量存储密度正在以前所未有的速度增长。像便携式媒体播放器、蜂窝电话、数码相机、便携式导航设备、无线网卡、闪盘这样的消费产品由于需要处理越来越多的多媒体内容而要求更原创 2013-03-11 11:54:01 · 1019 阅读 · 0 评论 -
error: unknown field 'ioctl' specified in initializer问题
error: unknown field 'ioctl' specified in initializer问题是由于2.6.36内核之后 去掉了原来的ioctl,添加两个新的成员,所以会出错long (*unlocked_ioctl) (struct file *, unsigned int, unsigned long); long (*compat_ioctl) (struct fil原创 2013-12-11 22:02:59 · 781 阅读 · 0 评论 -
udev 和 mdev 总结
关于udev和mdev之间的区别与联系我发现自己现在还没有把它完整的给区分开来和联系起来. 设备文件系统有devfs,mdev,udev mdev是udev的简化版本,是busybox中所带的程序,最适合用在嵌入式系统,而udev一般用在PC上的linux中,相对mdev来说要复杂些,devfs是2.4内核引入的,而在2.6内核中却被udev所替代,他们有着共同的优点,原创 2013-12-18 21:53:59 · 8122 阅读 · 1 评论 -
windows 如何设置环境变量
如要查看或更改环境变量:右键单击“我的电脑”,然后单击“属性”。单击“高级”选项卡。单击“环境变量”。对于用户变量或系统变量,单击下面的选项之一:单击“新建”添加一个新变量名和值。单击一个已存在的变量,然后单击“编辑”以更改其名称和值。单击一个已存在的变量,然后单击“删除”以将其删除。原创 2014-01-17 11:12:36 · 641 阅读 · 0 评论 -
windows搭建Qt开发环境
1,先去下载IDE 打开网页:http://qt.nokia.com/downloads/qt-creator-binary-for-windows 下载文件:qt-creator-win-opensource-2.3.1.exe 详细连接:http://get.qt.nokia.com/qtcreator/qt-creator-win-opensource-2.3.1.exe 安装目录原创 2014-01-17 16:00:23 · 719 阅读 · 0 评论 -
tar: Exiting with failure status due to previous errors
http://www.360doc.com/content/13/0119/09/1317564_261143499.shtml原创 2014-02-27 15:48:42 · 3021 阅读 · 0 评论 -
如何找到ubuntu的回收站
http://jingyan.baidu.com/album/219f4bf726f9b1de442d382a.html原创 2014-02-18 18:04:09 · 2299 阅读 · 0 评论 -
nfs:server is not responding,still trying的解决方法
nfs:server is not responding,still trying的解决方法 方法1 :我在arm上通过NFS共享文件时出现下面的错误提示nfs:server is not responding,still trying原因分析:NFS 的默认传输协议是 UDP,而PC机与嵌入式系统通过UPD交互时就会出现严重的网卡丢包现象。解决方法:在客户端改用TCP原创 2014-02-19 15:41:02 · 1174 阅读 · 0 评论 -
TQ2440搭建Qt4.5需要修改的地方
我在做的时候出现的问题是: 编译成功后会提示:Finishedinstall Qt4.5!若编译过程中提示gmake:not found 解决方法:原创 2014-03-04 08:59:06 · 841 阅读 · 0 评论 -
Redhat系统如何找到终端啊
alt+F2打开运行对话框 输入gnome-terminal原创 2014-03-03 19:03:59 · 3877 阅读 · 0 评论 -
-/bin/sh: XXX: not found
若在嵌入式系统中执行某文件出现如下错误:-/bin/sh: XXX: not found 一般是因为缺少库文件,解决方法有2:1,文件系统的busybox编译时使用动态编译方式2,或编译该文件的源代码时使用静态编译方式,添加-static选项例如;arm-linux-gcc convchar.c -o convchar.exe -static原创 2013-12-12 00:18:45 · 939 阅读 · 0 评论 -
line 1: syntax error: "(" unexpected
在pc机上编译的程序,利用nfs共享在ok2440上执行时出现了这个错误:#./HelloWorld./HelloWorld line 1: syntax error: "(" unexpected经过查找这个错误是由于编译程序所使用的编译器是gcc,使用gcc编译的程序可以在pc机上运行而不能在开发板上运行;而要想程序在开发半上运行就需要使用编译器arm-li原创 2013-12-11 23:28:38 · 943 阅读 · 0 评论 -
make xxx Is a directory. Stop. 的原因
编译内核时候的一个错误提示make: *** arm/kernel.git/arch/arm: Is a directory. Stop.这个错误是由在Makefile的 ARCH?= $(SUBARCH)这行的后面多了一个空格造成的。所以,在编辑Makefile时候,每行结尾,一定要确认没有空格,直接是换行。原创 2013-11-26 21:28:01 · 1582 阅读 · 0 评论 -
Tiny6410内核移植
一、开发环境宿主机:Fedora9.0 或 ubuntu10.04开发板:tiny6410编译器:4.3.2二、内核移植1.下载源码ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-2.6.38.tar.bz2linux-2.6.382.解压( 进入根目录下的/home/poplar/expr4/kernel目录,原创 2013-11-27 16:52:47 · 915 阅读 · 0 评论 -
驱动程序学习(一)从“hello world”开始
终于开始写驱动程序,首先说些题外话吧。我们学习嵌入式,学习了bootloader kernel filesystem进行过内核的移植,驱动的移植,根文件系统的制作,可是这些都与编程能力无关。而我们学习的造诣,我们的能力,更多的是体现在编程能力上,所以以后的学习还要多敲代码,多看书。首先来贴一段代码:hello.c#include#includeint ins转载 2013-11-30 13:01:42 · 507 阅读 · 0 评论 -
LINUX内核符号表
1.内核导出符号用EXPORT_SYMBOL()或者EXPORT_SYMBOL_GPL()导出。2.系统内核符号导出记录在/proc/kallsyms文件中,我们可以使用cat /proc/kallsyms查看当前环境下的导出内核符号。3.示例:(1)导出符号的内核模块转载 2013-11-30 13:00:23 · 602 阅读 · 0 评论 -
device_create device_destroy 使用==mknod及通过class_create自动创建设备节点
1. device_create()文件包含: #include 函数定义: 函数位置: src/drivers/base/core.c 函数格式:extern struct device *device_create(struct class*cls, struct device *parent,dev_t devt, void*d转载 2013-12-04 02:00:55 · 3014 阅读 · 0 评论 -
如何添加或删除ubuntu用户和组
在创建用户时,需要为新建用户指定一用户组,如果不指定其用户所属的工作组,自动会生成一个与用户名同名的工作组。创建用户user1的时候指定其所属工作组users,例:useradd –g users user1一、创建用户:1、使用命令 useradd例:useradd user1——创建用户user1 useradd –e 12/30/2009 use原创 2013-12-03 23:11:11 · 524 阅读 · 0 评论 -
解决在开发板上无法卸载内核的办法
在板子运行的根文件系统的lib目录下建立modules文件夹,在新建的modules文件夹中建立名字为2.6.38的文件夹(你使用内核的版本号)原创 2013-12-04 00:26:58 · 472 阅读 · 0 评论 -
device_creat函数
device_create(…)函数在/drivers/base/core.c中实现: struct device *device_create(struct class *class, struct device *parent, dev_t devt, const char *fmt, ...) {转载 2013-12-04 01:56:14 · 874 阅读 · 0 评论 -
如何将安装好的英文版的Ubuntu系统改为中文
这篇文章小编主要来分享,如何将英文版的Ubuntu系统设置为简体中文环境和将ubuntu改为中文语言,从而避免ubuntu打开中文乱码的问题,也方便对熟悉中文的环境的朋友们,只是做一些的设置,然后自动下载一些安装包,不用重装系统,就可以让安装好的英文版的Ubuntu系统变成中文。方法步骤首先预览一下修改之前的英语版的Ubuntu系统,之后原创 2014-03-05 20:54:20 · 1139 阅读 · 0 评论 -
Linux之TQ2440通过nfs挂载根文件系统 本篇文章来源于 Linux公社网站(www.linuxidc.com) 原文链接:http://www.linuxidc.com/Linux/20
http://www.linuxidc.com/Linux/2011-09/43770.htm转载 2014-03-11 21:18:00 · 656 阅读 · 0 评论 -
ubuntu如何设置中文输入法啊
方法/步骤一次点击:系统----->首选项----->IBus设置在弹出的IBus设置对话框中,我们可以进行输入法开关、切换、添加删除输入法等很多操作点击第2步中的开关后面的“...”按钮,可以设置切换输入法的开关点击第2步中的下一输入原创 2014-03-06 11:51:50 · 1700 阅读 · 0 评论 -
Linux信号列表详解
我们运行如下命令,可看到Linux支持的信号列表:~$ kill -l1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL5) SIGTRAP 6) SIGABRT 7) SIGBUS 8) SIGFPE9) SIGKILL 10) SIGUSR1 11) SIGSEGV 12) SIGUSR213) SIGPIPE 14) SIGALRM 15)原创 2015-08-11 14:45:45 · 559 阅读 · 0 评论 -
prctl()函数应用
t prctl(int option,unsigned longarg2,unsigned long arg3,unsigned long arg4,unsigned long arg5)这个系统调用指令是为进程制定而设计的,明确的选择取决于option:PR_GET_PDEATHSIG :返回处理器信号; PR_SET_PDEATHSIG :arg2作为处理器信号pdeath被输原创 2015-08-20 16:55:10 · 605 阅读 · 0 评论 -
statfs函数
为要读取SD卡的大小和使用情况,所以用到statfs这个函数,功能类似于df命令。需要的头文件:#include int statfs(const char *path, struct statfs *buf);[cpp] view plain copy print?struct statfs { long f_type; /* 文件系原创 2017-07-20 13:59:15 · 725 阅读 · 0 评论 -
Linux内存管理之mmap详解
Linux内存管理之mmap详解一. mmap系统调用1. mmap系统调用 mmap将一个文件或者其它对象映射进内存。文件被映射到多个页上,如果文件的大小不是所有页的大小之和,最后一个页不被使用的空间将会清零。munmap执行相反的操作,删除特定地址区域的对象映射。当使用mmap映射文件到进程后,就可以直接操作这段虚拟地址进行文件的读写等操作,不必再调用re原创 2017-07-20 14:30:39 · 261 阅读 · 0 评论 -
linux stat函数
stat函数讲解表头文件: #include #include 定义函数: int stat(const char *file_name, struct stat *buf);函数说明: 通过文件名filename获取文件信息,并保存在buf所指的结构体stat中返回值: 执行成功则返回0,失败返回-1,错误代码存于er原创 2017-07-22 11:33:19 · 268 阅读 · 0 评论 -
Binutils 工具集
对于嵌入式系统开发,掌握相应的工具至关重要,它能使我们解决问题的效率大大提高。目前,可以说嵌入式系统的开发工具是GNU的天下,因为来自GNU的GCC编译器支持大量的目标处理器。除了GCC,还有一个非常重要的、同样来自于GNU的工具集(toolchain) —— binutils toolchain。这一工具集中存在的一些工具,可以说是我们开发和调试不可缺少的利器。 Binutils中的工具不少原创 2017-07-19 23:09:12 · 303 阅读 · 0 评论 -
关于Linux 线程pthread_join的用法
Linux系统pthread_join用于挂起当前线程(调用pthread_join的线程),直到thread指定的线程终止运行为止,当前线程才继续执行。案例代码:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 /************原创 2017-08-08 10:36:34 · 965 阅读 · 0 评论 -
tcflush
tcflush函数用于清空输入、输出缓冲区,原型如下:#include int tcflush(int fd, int queue_selector);fd为打开的串口描述符,queue_selector有三种取值,TCIFLUSH、TCOFLUSH和TCIOFLUSH,分别代表输入缓冲区、输出缓冲区和输入输出缓冲区。例如:摘自:http://support.sas.com/do原创 2017-07-25 15:34:30 · 1152 阅读 · 0 评论 -
ioctl() FIONREAD
函数名: ioctl 头文件:#include 功能: 控制I/O设备 ,提供了一种获得设备信息和向设备发送控制参数的手段。用于向设备发控制和配置命令,有些命令需要控制参数,这些数据是不能用read / write 读写的,称为Out-of-band数据。也就是说,read / write 读写的数据是in-band数据,是I/O操作的主体,而ioctl 命原创 2017-07-25 16:12:03 · 2669 阅读 · 0 评论 -
system()
system()—执行shell命令也就是像dos发送一条指令。相关函数:fork, execve, waitpid, popen头文件:#include 定义函数:int system(const char * string);system("pause")可以实现冻结屏幕,便于观察程序的执行结果;system("CLS")可以实现清屏操作。而调用color函数可以改变控制台的前景色和背原创 2015-08-11 14:38:16 · 558 阅读 · 0 评论 -
什么是原子操作
原子操作,就是不能被更高等级中断抢夺优先的操作。你既然提这个问题,我就说深一点。由于操作系统大部分时间处于开中断状态,所以,一个程序在执行的时候可能被优先级更高的线程中断。而有些操作是不能被中断的,不然会出现无法还原的后果,这时候,这些操作就需要原子操作。就是不能被中断的操作。原创 2015-08-10 11:24:13 · 503 阅读 · 0 评论 -
解决tq2440的QT4.5的中文字体不显示的问题
qt4.5.3不能显示中文字体,无论是qvfb中还是arm系统中,后来在网上查了一些方法终于弄好了1,下载文泉驿正黑字体qpf字体库在http://kenter1643.download.csdn.net/可以找到下载2,把下载好的字体库解压后的qpf文件放入lib/fonts中(qtX86和arm版本以及移植的文件系统中都放入此子体)编译运行的时候:在qtcreator中在R转载 2014-03-13 01:56:10 · 1168 阅读 · 0 评论 -
QT4.5编写程序在arm开发板上无法显示中文的问题
1)、天嵌公司的给的QT4.5文件系统是有中文字库的,不过我认为有缺陷,之前我说没有,现在发现在/opt/qt-4.5/lib/fonts里面有个unifont文件。调用这个字体就可以显示中文了。代码如下:int main(int argc, char *argv[]){QTextCodec::setCodecForTr(QTextCodec::codecForName("unifon转载 2014-03-15 22:41:43 · 4441 阅读 · 3 评论 -
ubuntu下编译时出现“make: arm-linux-gcc:命令
1,进入linux-2.6.32.2这个目录,从终端输入命令: cd /opt/FriendlyARM/mini2440/linux-2.6.32.2 2.执行以下命令来使用缺省配置文件 config_w35 sudo cp config_mini2440_w35 .config (注意:w35 后面有个空格,然后有个“.”开头的 config )原创 2014-03-16 18:30:30 · 3271 阅读 · 0 评论 -
加载TQ2440驱动-hello world 模块
http://blog.csdn.net/zimingjushi/article/details/6573563 http://blog.csdn.net/dg1683wen/article/details/6861044转载 2014-03-17 10:35:51 · 567 阅读 · 0 评论 -
问题解决: Makefile:10: *** 遗漏分隔符 。 停止。
我们在编写完makefile,然后在终端中$make出现“makefile:2: *** 遗漏分隔符 。 停止。”问题,原因是在编写makefile文件时:all:gcc -o helloworld helloworld.cfresh:rm -rf Makefileclean:rm -rf helloworld helloworld.oinstall:c转载 2014-03-17 21:28:38 · 3596 阅读 · 0 评论 -
drivers/input/touchscreen/eeti_ts.c:65:2: error: implicit declaration of function 'irq_to_gpio'
drivers/input/touchscreen/eeti_ts.c: In function 'eeti_ts_irq_active':drivers/input/touchscreen/eeti_ts.c:65:2: error: implicit declaration of function 'irq_to_gpio'make[3]: *** [drivers/input/tou原创 2014-07-18 13:34:29 · 1552 阅读 · 1 评论