- 博客(303)
- 资源 (11)
- 收藏
- 关注
原创 开发板终端显示中文文件名(by liukun321咕唧咕唧)
以前做GSM中文短信时就想彻底解决字符编码转换的问题,结果一直拖到现在。这两天在我实现开发板终端显示中文文件名时,又遇到了字符编码转换,也碰到了很多问题,由于时间紧迫,我分条列出(比较杂乱,我是想到哪写到哪,“时间紧”),就不在拘泥于格式了。希望对碰到同样问题的朋友有些许帮助。(1)安装convmv工具可 改变文件名的编码格式,iconv 是改变文件内容编码的工具。convmv的具体用法: c
2011-11-19 18:46:54 3748
转载 结构体在内存中的对齐规则
一个结构体变量定义完之后,其在内存中的存储并不等于其所包含元素的宽度之和。例一: #include using namespace std; struct
2011-11-15 19:32:04 30981 24
原创 浅析为何要内存对齐(by liukun321咕唧咕唧)
在分析内存对其之前,先简要简要介绍一下ARM处理器是如何进行数据操作的: ARM是32位处理器,armv4能高效的处理8,16,32位的数据,但是大多数arm处理器直接操作的是32位的数据。地址跳变基数为4字节即4.一次存取数据量为32位。(硬件角度),我们一次取到的32位数据不一定是一个完整的数据构,可能是两个数据结构,也可能是某个数据结构的一部分,(而编译器帮助我们将一条对
2011-11-15 19:29:54 3228
转载 关于热插拔usb hotplug /proc/sys/kernel mdev udev busybox
这篇文章说的很好http://blog.chinaunix.net/u1/38994/showart_2022040.html:如何使用busybox精简版本udev程序--mdev动态创建插入的u盘和鼠标等设备busybox的mdev是一个精简了的udev管理程序,它可以间接的以hotplug方式被内核调用,进而在arm平台上/dev目录下动态创建设备节点,因为hotplug会被
2011-11-09 19:23:06 2043
转载 Linux下的IO端口和IO内存
Linux下的IO端口和IO内存CPU对外设端口物理地址的编址方式有两种:一种是IO映射方式,另一种是内存映射方式。 Linux将基于IO映射方式的和内存映射方式的IO端口统称为IO区域(IO region)。 IO region仍然是一种IO资源,因此它仍然可以用resource结构类型来描述。 Linux管理IO region: 1) request_region
2011-11-07 19:37:14 1174
转载 IO寄存器操作的边际效应
第一种说法: side effect(译为边际效应或副作用):是指读取某个地址时可能导致该地址内容发生变化,比如,有些设备的中断状态寄存器只要一读取,便自动清零。I/O 寄存器的操作具有side effect,因此,不能对其操作不能使用cpu缓存。 原文网址: http://qinbh.blog.sohu.com/62733495.html第二种说法: 说一下
2011-11-07 18:58:42 3359 1
原创 浅谈LINUX 内存分页机制(by liukun321咕唧咕唧)
以前看过《深入理解linux内核》一书对有关内存管理的分析,但是当时对linux所知甚少,弄了个云里雾里,就那么草草过去了。今天看LDD3的时候在分配内存这章貌似又看见了它的影子,再结合前面看的《深入理解linux内核》,好像对它有了些重新的认识。下面就浅要分析一下内存分页机制: 每个进程都拥有4G(2的32次方)的虚拟地址空间。在实际编程过程中,指针中存放的地址也都是32位的线性地址(
2011-11-06 20:55:03 2054
原创 字符驱动 poll方法小记(by liukun321咕唧咕唧)
被poll方法卡了一天,只因对内核源码了解太少啊。 看LDD3的poll的时候,就被书上所讲的搞得云里雾里,确实把握不了她的脉络,,当时想:不就是个poll吗,无非就是调个poll_wait嘛。。。SO,我就那么草草的从那章飘过了。 可是poll一用起来,我汗了。搞了一天,进程只要睡过去就醒不过来。应用代码实现的功能很简单,怎么就醒不过来呢?显然,驱动有问题。可是p
2011-11-03 19:57:13 1468
转载 warning: control reaches end of non-void function
用gcc编译一个程序的时候出现这样的警告:warning: control reaches end of non-void function它的意思是:控制到达非void函数的结尾。就是说你的一些本应带有返回值的函数到达结尾后可能并没有返回任何值。这时候,最好检查一下是否每个控制流都会有返回值。
2011-10-30 11:14:30 34122
原创 杀不死进程怎么办(by liukun321咕唧咕唧)
做linux开发的很多人都会遇到这个问题吧,上篇blog也提到过,原因主要有两个:一是进程已经成为僵死进程,当它的父进程将它回收或将它的父进程kill掉即可在ps输出看不到了;二是进程正处在内核状态中,Linux进程运行时分内核和用户两种状态,当进程进入内核状态后,会屏蔽所有信号,包括SIGKIL,所以这个时候kill -9也变得无效了。 下面就第二方面举个例子,进程处在内核态杀不
2011-10-30 10:40:04 3081 1
转载 进程kill 失败
做过Linux开发的人通常遇到过一个进程不能kill掉的情况,即使使用的是kill -9方式,而一般的教课书都只说kill -9能杀死任何进程,遇到这种情况时就会感觉到很矛盾,其它这也是正常的,通常有两种情况是不能kill掉的:一是进程已经成为僵死进程,当它的父进程将它回收或将它的父进程kill掉即可在ps输出看不到了;二是进程正处在内核状态中,Linux进程运行时分内核和用户两种状态,当
2011-10-30 10:02:16 9256
转载 在Linux下改变进程的优先级
作者:曾宏安,华清远见嵌入式学院讲师。作为多任务的操作系统,Linux内核为每个创建的进程分配时间片并根据其优先级进行调度。当进程被创建时,其对应的task_struct里包含了四个优先级:struct task_struct {……int prio, static_prio, normal_prio;unsigned int rt_priority;…… };
2011-10-29 17:17:13 4490
原创 在目标板上移植动态库(-/bin/sh: XXX: not found 问题的解决)(by liukun321咕唧咕唧)
动态库的搜索路径先后顺序:1、编译目标代码时指定的动态库搜索路径:在编译的时候,可以指定-Wl,-rpath=你的路径2、环境变量LD_LIBRARY_PATH指定的动态库搜索路径;3、配置文件/etc/ld.so.conf中指定的动态库搜索路径(我移植的根文件系统,ld.so.conf在/etc目录下的,而且指定搜索路径位/lib)4、默认的动态库搜索路径/lib5、默认的动
2011-10-28 21:00:31 6485
转载 Makefile‘混和的隐含和普通规则’错误的解决
工作环境: fedora14目标平台:s3c2440开发包内核源码目录:/home/linux-2.6.24-5801开发包内核版本:2.6.24交叉编译工具:gcc-3.4.1用gcc-3.4.6交叉编译3210内核,执行make命令,会提示"*** 混和的隐含和普通规则。 停止。"的错误。这是由于fedora14的Make工具对低版本内核Makefile一些旧的规则兼容不是
2011-10-28 20:22:14 6625 1
转载 关于Linux静态库和动态库的分析
1.什么是库在windows平台和linux平台下都大量存在着库。本质上来说库是一种可执行代码的二进制形式,可以被操作系统载入内存执行。由于windows和linux的本质不同,因此二者库的二进制是不兼容的。本文仅限于介绍linux下的库。2.库的种类linux下的库有两种:静态库和共享库(动态库)。二者的不同点在于代码被载入的时刻不同。静态库的代码在编译过程中已经
2011-10-27 20:47:51 1533
原创 ldconfig提示is not a symbolic link警告的去除方法
错误提示:ldconfig ldconfig: /usr/local/lib/gliethttp/libxerces-c-3.0.so is not a symbolic link问题分析:因为libxerces-c-3.0.so正常情况下应该是一个符号链接,而不是实体文集件,修改其为符号链接即可解决方法:mv libxerces-c-3.0.so libxerces-c.
2011-10-26 21:25:48 59192
转载 ldconfig详解
ldconfig是一个动态链接库管理命令,为了让动态链接库为系统所共享,还需运行动态链接库的管理命令--ldconfigldconfig 命令的用途,主要是在默认搜寻目录(/lib和/usr/lib)以及动态库配置文件/etc/ld.so.conf内所列的目录下,搜索出可共享的动态链接库(格式如前介绍,lib*.so*),进而创建出动态装入程序(ld.so)所需的连接和缓存文件.缓存文件默认为 /
2011-10-26 19:37:20 1728
原创 关于Linux的线程休眠函数sleep/usleep/nanosleep/select
sleep:单位为秒,1秒usleep:单位为微秒,1/1000 秒 select:单位为微秒,1/1000 000 秒nanosleep:单位为毫微秒,也就是纳秒,1/1000 000 000 秒
2011-10-26 17:02:41 9089 1
转载 驱动模块Makefile解析
驱动模块Makefile解析作者:王劲南,华清远见嵌入式学院讲师。先看一下代码ifeq ($(KERNELRELEASE),) KERNELDIR ?= /home/linux/linux-2.6.22.6 PWD := $(shell pwd) modules: $(MAKE) -C $(KERN
2011-10-24 19:56:58 1315
原创 U-Boot环境变量的解释说明
U-Boot环境变量的解释说明环 境 变 量解 释 说 明bootdelay定义执行自动启动的等候秒数baudrate定义串口控制台的波特率netmask定义以太网接口的掩码ethaddr定义以太网接口的MAC地址boo
2011-10-24 19:34:48 2508
原创 linux 设备在合适申请内存比较恰当
总觉的在驱动的read,write,ioctl里面进行大的内存申请会有问题。我看到的一些别人的驱动都不是这么做的。都是在probe的时候,定义个结构体,申请个足够大的内存,和其中有指针和设备有关系。这样你在read。write,ioctl的时候,都可以通过文件标识符得到设备,设备通过和结构体的关系得到结构体指针,从而得到申请的内存指针,你就可以使用已经申请好的内存,而不是在read
2011-10-24 17:32:17 1077
原创 linux 设备驱动中对结构体成员赋值的常用格式
struct super_operation new_super{ .read=new_read; .write=new_write; // 更多的这样的语句};另外还有一种语法是下面这个样子的:struct super_operation new_super{ read: new_read; write: new_write; // 更
2011-10-24 17:23:51 1945
转载 fread与read的区别
f是ANSI的C标准库。而后者的是UNIX下的系统调用。fread带有缓冲,是read的衍生,或者说fread是通过read实现的要想直接和硬件打交道,必须用readfopen/fread是C标准的库函数,操作的对象是: file streamopen/read是和操作系统有关的系统调用。操作的对象是: “file descriptor”fread返回的是一
2011-10-24 17:16:54 3539
原创 linux 设备模型简析
file_operations 不可能被抛弃。它是字符设备的基础结构,各种设备模型或者说总线,只是对字符设备进行了包装。 驱动一定是内核模块 内核模块不一定是驱动 设备模型的初衷 是省电 建立一条 挂有 所有设备的树 全局设备树 与用户空间的通信:设备间的通信 都是通过 sysfs文件系统实现的 把设备模型的接口以文件的形式 暴露给用户可以通过 读写文件的方式 配置设备
2011-10-23 18:22:30 1245
原创 rmmod:No such file or directory 问题的解决
作者:liukun321(咕唧咕唧)原文出处:http://blog.csdn.net/liukun321 我们在卸载内核模块时常常遇到rmmod: No such file or directory这个错误. 原因是我们没将内核模块放在文件系统指
2011-10-15 14:03:57 4000 3
原创 KERNELRELEASE 的定义
Linux内核是一种单体内核(宏内核),但是通过动态加载模块的方式,使它的开发非常灵活 方便。那么,它是如何编译内核的呢?我们可以通过分析它的Makefile入手。以下是 一个简单的hello内核模块的Makefile.编译内核模块最简单的Makefileifneq ($
2011-10-14 19:50:59 3326
转载 如何修改Linux命令提示符
如何修改Linux命令提示符 2011-02-10 14:01:23 www.hackbase.com 来源:互联网 Linux修改环境变量PS1(命令行提示符),可以使用vi编辑/etc/profile文件,在最后加上:export PS1=’[u@h W]$ ‘即可
2011-10-09 20:00:19 2223
转载 C语言中的__attribute__机制
C语言中的__attribute__机制 来源: ChinaUnix博客 日期: 2008.09.25 15:52 (共有0条评论) 我要评论 GNU C的一大特色(却不被初学者所知)就是__attribute__机制。__attribute__可以
2011-10-09 19:22:15 3291
原创 /home/lufee/mydiraver//globalmem.c:193:2: 错误:隐式声明函数‘kmalloc’ [-Werror=implicit-function-declaration]
/home/lufee/mydiraver//globalmem.c:193:2: 错误:隐式声明函数‘kmalloc’ [-Werror=implicit-function-declaration]/home/lufee/mydiraver//globalmem.c:210
2011-09-17 18:57:06 14711 1
转载 class_create(),class_device_create()或device_create()自动创建设备文件结点
class_create(),class_device_create()或device_create()自动创建设备文件结点 2011-03-14 15:40 85人阅读 评论(0)收藏 举报 从linux内核2.6的某个版本之后,devfs不复
2011-09-17 18:51:51 1817
转载 class_create(),device_create自动创建设备文件结点
class_create(),device_create自动创建设备文件结点从linux 内核2.6的某个版本之后,devfs不复存在,udev成为devfs的替代。相比devfs,udev有很多优势,在此就不罗嗦了,提醒一点,udev是应用层的东东,不要试图在内
2011-09-17 18:32:31 1342
转载 THIS_MODULE 为何物?
一直都在耿耿于怀,这个THIS_MODULE到底是个什么玩意,linux内核中无处不在的东西。今天上网搜了一下,算是基本明白了。网上牛人写的已经比较详细,另外目前暂时没有时间往更深层次分析,所以直接贴过来得了。。。转帖网址:http://blog.csdn.net/a95
2011-09-17 18:29:18 1163
转载 一个rcS初始化脚本的说明
一个rcS初始化脚本的说明 #!/bin/shexport PATH=/sbin:/bin:/usr/sbin:/usr/binmount -t proc proc /procmount -t sysfs sysfs /sysmount -t tmp
2011-09-16 19:11:23 3174
原创 在 fedora 15 上安装 博通 BCM4313 无线网卡驱动
在 fedora 15 上安装 博通 BCM4313 无线网卡驱动,开始几步可按以下步骤进行。本段来源于 Linux公社网站(www.linuxidc.com) 原文链接:http://www.linuxidc.com/Linux/2011-04/34696.htm
2011-09-07 21:37:50 5646 2
原创 linux移植杂项
作者:liukun321(咕唧咕唧)原文出处:http://blog.csdn.net/liukun321关于linux移植出现了几个小问题,在此记录:1、下载yaffs2源码,给内核打完补丁后,编译出错。解决方法,下载与内核版本相匹配的yaffs2文件系统源码或下载
2011-08-07 17:57:15 1889
原创 关于connect: network is unreachable 问题的解决
由于发现原创文章,在未署名作者及出处的情况下被转载。在以后所有的原创文章开头我都会写明作者和出处。希望朋友们以后在转载本博客原创博文时注意标明文章作者及出处。作者:liukun321(咕唧咕唧)原文出处:http://blog.csdn.net/liukun321
2011-08-05 14:31:55 558727 11
原创 Uncompressing Linux..... done, booting the kernel.
内核启动卡在Uncompressing Linux..... done, booting the kernel.这好像是个老生常谈的问题了。成因在网上也罗列了很多种,可这次我碰到的,却没百度出解决方法,纠结了我很久才解决。我先把造成Uncompressing Linux...
2011-08-03 22:23:26 30184 6
原创 MACH_FRIENDLY_ARM
不知道大家是否遇到过找不到MACH_FRIENDLY_ARM定义的问题,反正我遇到了,在我前两次移植linux内核时我都碰到了这个问题,而且迟迟到今天才把这个问题解决。老样子首先分析为什么找不到MACH_FRIENDLY_ARM。原因:还是我功底太薄,对kconfig文件和M
2011-08-02 20:29:42 1483
原创 实现linux 程序开机自启动
有时我们设计的程序是需要开机自启动的,如何实现开机自启动呢?这个过程仅需一步。一般只要在/etc/init.d/rcS中加入你的程序或者脚本命令就可以实现开机自动运行。
2011-07-31 23:07:03 1814
原创 制作 micro2440开机logo for linux
制作 micro2440开机logo 第一步需要我们做的是完善linux的LCD驱动,这部分网上的资料很多,而且可以参考友善的手册,这里就不再赘述了。下面我们需要做的是制作logo根据友善提供的资料方法一:开机图片, 它对应的文件其实就是linux-2.6.2
2011-07-31 23:00:16 1927
Android Ublox GPS 驱动
2013-05-02
Android Gps HAL
2013-05-01
tiny210-u-boot-version4.0
2013-01-31
u-boot for tiny210 ver3.1
2012-04-08
tiny210-u-boot-version3.0
2012-04-02
u-boot-for-tiny210-patch-ver2.2
2012-03-18
u-boot for tiny210 ver2.2
2012-03-18
u-boot for tiny210 ver2.1
2012-03-10
u-boot for tiny210 version2
2012-03-03
u-boot for tiny210
2012-02-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人