- 博客(30)
- 资源 (4)
- 收藏
- 关注

原创 【图解】Linux下C程序进程地址空间布局
作者:沧海猎人 出处:http://blog.youkuaiyun.com/embedded_hunter 转载请注明出处 嵌入式技术交流QQ群:179012822我们在学习C程序开发时经常会遇到一些概念:代码段、数据段、BSS段(Block Started by Symbol) 、堆(heap)和栈(stack)。先看一张教材上的示意图(来源,《UNIX环境高级编程》一书),显示了进程地址空间
2011-10-22 23:37:41
31214
11

原创 “手把手教你学linux驱动开发”OK6410系列之03---LED字符设备驱动
上一篇文章我们介绍了字符设备驱动程序的框架,本篇文章我们将操作真实的硬件---LED。 作者:沧海猎人 出处:http://blog.youkuaiyun.com/embedded_hunter 转载请注明出处 嵌入式技术交流QQ群:179012822 一
2011-10-14 16:06:04
12518
2

原创 “手把手教你学linux驱动开发”OK6410系列之02---虚拟字符设备
上一篇文章我们介绍了如何在linux下编写一个模块,并加载到内核空间。通过实验我们了解了大体的流程以及模块的工作原理。本篇文章我们将介绍如何编写一个虚拟的字符设备驱动程序。 之所以称之为虚拟字符设备驱动程序,主要原因是该驱动程序并没有真正操作外部设备,只是一个字符
2011-10-14 14:23:19
6704

原创 “手把手教你学linux驱动开发”OK6410系列之01---模块编程
一、实验环境 开发机环境 操作系统:ubuntu 9.10 交叉编译环境:arm-linux-gcc 4.2.2 ,安装位置 /usr/local/arm/4.3.2/ 6410板子内核源码路径:/work/l
2011-10-11 22:17:36
8171
5
原创 为什么对目录不能使用硬链接
如果引入了对目录的硬连接就有可能在目录中引入循环,那么在目录遍历的时候系统就会陷入无限循环当中。也许您会说,符号连接不也可以引入循环吗,那么为什么不限制目录的符号连接呢?原因就在于在linux系统中,每个文件(目录也是文件)都对应着一个inode结构,其中inode数据结构中包含了文件类型(目录,普通文件,符号连接文件等等)的信息,也就是说操作系统在遍历目录时可以判断出符号连接,既然可以判断出符号
2012-08-17 22:45:12
3780
原创 NDK旧版本下载地址
可以手动指定链接地址例如:http://dl.google.com/android/ndk/android-ndk-r7c-linux-x86.tar.bz2http://dl.google.com/android/ndk/android-ndk-r5b-linux-x86.tar.bz2
2012-07-23 13:34:38
3387
原创 Linux下查找包含字符串的文件命令
# find -type f -name "*.c" | xargs grep ""是你要找的文件夹;如果是当前文件夹可以省略-type f 说明,只找文件-name "*.c" 表示只找C语言写的代码,从而避免去查binary;也可以不写,表示找所有文件是你要找的某个字符串
2012-07-23 12:54:58
1943
原创 如果dev下没有自动创建设备节点
可以 cat /sys/class/*****/****/dev 查看主次设备号 启动脚本中有 echo /sbin/mdev > /proc/sys/kernel/hotplug 可以使得 mdev支持热插拔
2012-07-03 16:23:15
3792
原创 Linux下删除一个文件夹命令
Linux下大家经常要删除一些文件。直接使用rm即可,但是当要删除一个文件夹时,首先想到rmdir,但是如果文件夹非空,则非常麻烦。下面的命令可以帮助删除一个非空的文件夹#rm -rf 文件夹名称
2012-01-26 13:42:58
13499
原创 ubuntu10.10下使用vim+ctags阅读Linux内核源代码
第一步:安装软件vim、ctags、cscope #apt-get install vim exuberant-ctags 第二步:下载Linux内核源代码,并释放到一个工作目录中。第三步:在源码根目录下执行以下命令 #ctags -R第四步:
2012-01-04 22:03:58
234
原创 Ubuntu10.10安装adb进行Android开发
所需软件:Android Platform-tools http://dl-ssl.google.com/android/repository/platform-tools_r03-linux.zip1、下载上面的软件并解压 #unzip platform-tools_r03-linux.zip2、将路径增加到PATH变量中 #vim ~/.bashrc #sour
2012-01-04 16:21:26
2455
原创 Android环境下直接测试驱动程序的方法(Android_OK6410)
之前我们在Linux环境下可以通过编写一个C语言来测试驱动程序,那么在Android环境下,我们是否也可一采用相同的方法呢?上一篇文章我们介绍了如何将驱动程序编译进内核的方法http://blog.youkuaiyun.com/embedded_hunter/article/details/7166757之前我写过一篇文章,介绍了驱动程序和测试程序的编写步骤。http://blog.youkuaiyun.com/
2011-12-31 09:44:35
4617
原创 【入门教程】Linux下静态库和共享库的制作方法
在Linux环境下编写程序时,经常会调用glibc库中的API。这些库是如何实现的的呢?很多初学者对此一直很困惑,接下来就与大家一起动手练习一下静态库和共享库的制作方法。 作者:沧海猎人 出处:http://blog.youkuaiyun.com/embedded_hunter 转载请注明出处 嵌入式技术交流QQ群:179012822 首先,我们编写代码来实现“输入半径求
2011-11-14 21:05:28
4423
原创 arm-hello文件运行错误分析
首先程序语法没问题,目前遇到的不能运行的原因如下: 1 没有使用交叉编译器 错误信息:段错误或语法错误等 # file hello 看一下目标代码的指令集 2 glibc库的版本不符 错误信息: -sh:./hello:not found # file hello 查看一下墓边文件
2011-11-05 21:46:21
800
原创 Linux下网络配置总结
配置eth0的IP地址, 同时激活该设备#ifconfig eth0 192.168.1.110 netmask 255.255.255.0 up添加默认网关。 #route add default gw 192.168.1.1设置DNS,设置文件/etc/resolv.conf nameserver xxx.xxx.xxx.xxx名字解析器 /et
2011-11-05 21:15:53
947
原创 Linux下防火墙关闭方法
在Fedora等系统下:chkconfig iptables off 重起后生效service iptables stop 及时生效或/etc/init.d/iptables stop Ubuntu下:iptables -P INPUT ACCEPTiptables -P OUTPUT ACCEPT
2011-11-05 20:59:38
1417
原创 Linux内核网站已经恢复了
http://www.kernel.org/ 是Linux内核官方网站。前段时间一直上不去,据说被黑客入侵了。Linux基金网站也因为黑客入侵而被迫下线。今天发现已经可以访问了。
2011-10-15 08:43:29
1144
原创 ok6410裸机开发_裸机编程_烧写工具
很多朋友想做裸机实验,网上也有很多方法,比如将程序烧写到SD卡上运行,操作步骤相对多一些。为此,我写了一个小程序可以直接用来烧写裸机程序到SD。已经在2G SD卡,OK6410板子上测试通过。 附件是烧写工具以及测试程序。请大家参考。 下载地址:http://115.com/file/dnrjgo4xhttp://blog.youkuaiyun.com/embedded
2011-10-14 08:45:41
4608
1
原创 探讨6410的启动过程
一直想在 6410上写个启动代码。由于板子上没有nor flash。所以只能通过SD卡启动或nand flash启动,在这里要注意,我们虽然说是从sd或nand启动,实际上在他之前,还有一段代码固化到了芯片的内部rom(irom)中了,这段代码是先运行的,这段代码会将SD卡或nand flash上程序加载到内部ram中(Stepping Stone(8kb)),然后从那里继续运行。
2011-10-11 15:01:49
3281
原创 你了解C语言中的关键字volatile吗?
我们在学习C语言的32个关键字时,大家都不太注意volatile这个关键字,volatile是一个类型修饰符。volatile的中文意思是“易变的”。那么在程序中我们在什么情况下才使用他呢?我们在分析内核时经常看到这个关键字的使用。举例如下:struct task_struc
2011-10-10 19:54:59
5626
1
原创 OK6410开发板裸板程序实验-LED
本人想写一个简单的Bootloader,以前在2410上写过一个。因此现在想在6410上也写一个,方便理解启动过程。但是发现刚一起步就遇到了困惑。以前玩ARM7、ARM9、PowerPC板子时,都有烧写器或下载器可以将一段汇编代码放到nor flash中运行。 但现在发现目前市面上很多6410的开发板不太容易这么做,很多都是没有nor flash,要通过u-boot将程序下载到Nand
2011-10-09 16:01:09
7145
1
原创 关于Linux下驱动程序的编译方法
驱动程序源文件名称:/work/driver/test.c 驱动程序目标文件名称:test.ko 内核源码目录:/work/linux2.6.30 这个目录是板子源码根目录 第一步:在内核源码下(/work/linux2.6.30)输入:
2011-10-07 19:44:01
4700
1
原创 Linux下删除非空目录
很多时候不知道如何删除一个目录,以下这个命令可以完成 # rm -rf 目录名 【声明】由于本人水平有限,如果文章内容描述有误,欢迎指正。email: embed001@gmail.com QQ技术交流群:179011723 转载请标明出处ht
2011-10-06 18:05:16
1175
原创 diff和patch使用
hello-1.0 和hello-1.1两个目录,其中hello-1.1为hello-1.0的更新 # diff -ruNa hello-1.0 hello-1.1 >hello-1.1.patch 注意:提交制作内核patch时,需要把生成的
2011-10-06 18:00:58
885
原创 Linux初学者需要掌握的几个基本命令
cd pwd ls mkdir rmdir cp rm mv find chmod chown cat echo 【声明】由于本人水平有限,如果文章内容描述有误
2011-09-30 22:40:42
801
原创 VI基础及常用技巧
1、 新建文件 # vim filename2、VI中的基本模式 插入模式 i a命令模式 ESC键 尾行模式 在命令模式下输入: 保存退出:wq 不保存退出:q! 保存:w 另存:w filename 在命令模式下: 复制 nyy n为数字,代表
2011-09-30 21:12:20
1055
1
原创 Linux环境下C语言编程实践_03
实验3:输入半径求出圆的面积和周长文件:MyPrograme.c#include#includeint main(){double r;printf("请输入圆半径:\n");scanf("%lf",&r);printf("圆的周长为:\n")
2011-09-30 20:43:01
1040
原创 Linux环境下C语言编程实践_02
实验2:输入半径求出圆的面积和周长#include#define PI 3.141592653double get_perimeter(double r);double get_area(double r);int main(){ doubl
2011-09-30 20:27:49
1160
原创 Linux环境下C语言编程实践_01
实验1:输入半径求出圆的面积和周长#include#define PI 3.141592653int main(){ double r; printf("请输入圆半径:\n"); scanf("%lf",&r); print
2011-09-30 20:19:03
1638
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人