自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

咕唧咕唧shubo.lk的专栏

不在乎我拥有多少,而是我奉献多少!

  • 博客(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

Samsung MFC(Multi Format Codec) Fireware

三星MFC固件,版本从V5-V8支持exynos4412 等高端处理器

2014-07-28

Android Ublox GPS 驱动

Android Gps HAL 修改bug ,实现GPS关键数据解析,支持凯立德,道道通等导航软件。 文档见:http://blog.csdn.net/liukun321

2013-05-02

Android Gps HAL

Android Gps HAL 根据gps_quem.c修改而来的,实现GPS关键数据解析,支持凯立德,道道通等导航软件。 文档见:http://blog.csdn.net/liukun321

2013-05-01

tiny210-u-boot-version4.0

ver4.0的基本功能: 1. SD boot,基于linaro u-boot的SPL功能实现 2. 从SD卡的FAT分区上加载文件到SDRAM 3. 将环境变量保存至SD卡 4. 添加DM9000网卡驱动,开启网络功能(例如:tftp,nfs等) 5. 添加TAB键命令自动补全功能 6.修复bug: 修复bug 1:SD卡保存环境变量出现Writing to MMC(0)... mmc_send_cmd: error during transfer: 0x00208001 mmc write failed。 修复bug 2:每次启动只能保存一次环境变量。 7.添加NandFlash驱动,开启所有Nand cmd。 8.添加Yaffs文件系统烧写支持。 9.修改在SD卡启动及nand启动时对nandflash的烧写为8bit 硬件ECC校验。 10.添加Nandflash启动。 11.添加自动识别Nand or MMC/SD启动。 +12.添加yaffs2文件系统烧写支持。 +13.添加显示Nandflash烧写进度。

2013-01-31

u-boot for tiny210 ver3.1

ver3.1的基本功能: 1. SD boot,基于linaro u-boot的SPL功能实现 2. 从SD卡的FAT分区上加载文件到SDRAM 3. 将环境变量保存至SD卡 4. 添加DM9000网卡驱动,开启网络功能(例如:tftp,nfs等) 5. 添加TAB键命令自动补全功能 6.修复bug: 修复bug 1:SD卡保存环境变量出现Writing to MMC(0)... mmc_send_cmd: error during transfer: 0x00208001 mmc write failed。 修复bug 2:每次启动只能保存一次环境变量。 7.添加NandFlash驱动,开启所有Nand cmd。 8.添加Yaffs文件系统烧写支持。 9.修改在SD卡启动及nand启动时对nandflash的烧写为8bit 硬件ECC校验。 10.添加Nandflash启动。 +11.添加自动识别Nand or MMC/SD启动。

2012-04-08

tiny210-u-boot-version3.0

ver3.0的基本功能: 1. SD boot,基于linaro u-boot的SPL功能实现 2. 从SD卡的FAT分区上加载文件到SDRAM 3. 将环境变量保存至SD卡 4. 添加DM9000网卡驱动,开启网络功能(例如:tftp,nfs等) 5. 添加TAB键命令自动补全功能 6.修复bug: 修复bug 1:SD卡保存环境变量出现Writing to MMC(0)... mmc_send_cmd: error during transfer: 0x00208001 mmc write failed。 修复bug 2:每次启动只能保存一次环境变量。 7.添加NandFlash驱动,开启所有Nand cmd。 8.添加Yaffs文件系统烧写支持。 +9.修改在SD卡启动时对nandflash的烧写为8bit 硬件ECC校验。(nand启动仍为软件ECC) +10.添加Nandflash启动。

2012-04-02

u-boot-for-tiny210-patch-ver2.2

ver2.1升级ver2.2 所需补丁文件 ver2.2的基本功能: 1. SD boot,基于linaro u-boot的SPL功能实现 2. 从SD卡的FAT分区上加载文件到SDRAM 3. 将环境变量保存至SD卡 4. 添加DM9000网卡驱动,开启网络功能(例如:tftp,nfs等) 5. 添加TAB键命令自动补全功能 6.修复bug: 修复bug 1:SD卡保存环境变量出现Writing to MMC(0)... mmc_send_cmd: error during transfer: 0x00208001 mmc write failed。 修复bug 2:每次启动只能保存一次环境变量。 +7.添加NandFlash驱动,开启所有nand cmd。 +8.添加Yaffs烧写支持。

2012-03-18

u-boot for tiny210 ver2.2

ver2.2的基本功能: 1. SD boot,基于linaro u-boot的SPL功能实现 2. 从SD卡的FAT分区上加载文件到SDRAM 3. 将环境变量保存至SD卡 4. 添加DM9000网卡驱动,开启网络功能(例如:tftp,nfs等) 5. 添加TAB键命令自动补全功能 6.修复bug: 修复bug 1:SD卡保存环境变量出现Writing to MMC(0)... mmc_send_cmd: error during transfer: 0x00208001 mmc write failed。 修复bug 2:每次启动只能保存一次环境变量。 +7.添加NandFlash驱动,开启所有nand cmd。 +8.添加Yaffs烧写支持。

2012-03-18

u-boot for tiny210 ver2.1

1. SD boot,基于linaro u-boot的SPL功能实现 2. 从SD卡的FAT分区上加载文件到SDRAM 3. 将环境变量保存至SD卡 4. 添加DM9000网卡驱动,开启网络功能(例如:tftp,nfs等) 5. 添加TAB键命令自动补全功能 +6.修复bug: 修复bug 1:SD卡保存环境变量出现Writing to MMC(0)... mmc_send_cmd: error during transfer: 0x00208001 mmc write failed。 修复bug 2:每次启动只能保存一次环境变量。

2012-03-10

u-boot for tiny210 version2

version2实现的基本功能: 1. SD boot,基于linaro u-boot的SPL功能实现 2. 从SD卡的FAT分区上加载文件到SDRAM 3. 将环境变量保存至SD卡 +4. 添加DM9000驱动,开启网络功能(例如:tftp,nfs等) +5. 添加TAB键命令自动补全功能

2012-03-03

u-boot for tiny210

基本功能: 1. SD boot,基于linaro u-boot的SPL功能实现 2. 从SD卡的FAT分区上加载文件到SDRAM 3. 将环境变量保存至SD卡 等

2012-02-18

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除