易截截图软件、单文件、免安装、纯绿色、仅160KB

linux 2.6.24在S3C2410上的移植(1)(基于GEC2410)

1.下载linux kernel源代码
到http://www.kernel.org/下载linux内核源代码,这里我们使用2.6.24.4的内核.
解压linux-2.6.24.4.tar.bz2
[matt@localhost GEC2410]$ tar -xvjf linux-2.6.24.4.tar.bz2
[matt@localhost GEC2410]$ cd linux-2.6.24.4
2.修改Makefile,设置交叉编译器
ARCH  ?= arm
CROSS_COMPILE ?= /home/GEC2410/toolchain/arm-softfloat-linux-gnu/bin/arm-softfloat-linux-gnu-
3.设置Nand分区
修改arch/arm/plat-s3c24xx/common-smdk.c中108行的smdk_default_nand_part[]如下:
[matt@localhost linux-2.6.24.4]$ vim arch/arm/plat-s3c24xx/common-smdk.c
static struct mtd_partition smdk_default_nand_part[] = {
#if 0
[0] = {
.name = "Boot Agent",
.size = SZ_16K,
.offset = 0,
},
[1] = {
.name = "S3C2410 flash partition 1",
.offset = 0,
.size = SZ_2M,
},
[2] = {
.name = "S3C2410 flash partition 2",
.offset = SZ_4M,
.size = SZ_4M,
},
[3] = {
.name = "S3C2410 flash partition 3",
.offset = SZ_8M,
.size = SZ_2M,
},
[4] = {
.name = "S3C2410 flash partition 4",
.offset = SZ_1M * 10,
.size = SZ_4M,
},
[5] = {
.name = "S3C2410 flash partition 5",
.offset = SZ_1M * 14,
.size = SZ_1M * 10,
},
[6] = {
.name = "S3C2410 flash partition 6",
.offset = SZ_1M * 24,
.size = SZ_1M * 24,
},
[7] = {
.name = "S3C2410 flash partition 7",
.offset = SZ_1M * 48,
.size = SZ_16M,
}
#endif
[0] = {
.name = "U-Boot",
.size = SZ_1M,
.offset = 0,
},
[1] = {
.name = "Linux Kernel",
.offset = SZ_1M,
.size = SZ_1M*3,
},
[2] = {
.name = "Root",
.offset = SZ_4M,
.size = SZ_4M*10,
},
[3] = {
.name = "User",
.offset = SZ_4M*11,
.size = SZ_4M*5,
}
};
4 配置内核
4.1 支持启动时挂载devfs
为了我们的内核支持devfs以及在启动时并在/sbin/init运行之前能自动挂载/dev为devfs文件系统,修改fs/Kconfig文件
vi fs/Kconfig
找到menu "Pseudo filesystems"
添加如下语句:
config DEVFS_FS
bool "/dev file system support (OBSOLETE)"
default y
config DEVFS_MOUNT
bool "Au


相关文档:

如何共享linux与xp的文件夹

step1:
              在ubuntu里面右击要共享的文件夹,会提示安装软件,选择安装即可;
step2:
              实现xp匿名访问Ubuntu共享文件夹, 则只需修改/etc/samba/smb.co ......

linux signal函数

C语言中的抽象函数定义也就是使用了函数指针,这里用signal函数解释一下抽象函数定义的含义和规则。
signal函数定义为:
void (   * signal (int signum , void (*handler)(int)  )   )(int);
 
可以这样定义
typedef  void(* handler) (int)
handler signal(int signum,handler) ......

linux内核驱动

内核驱动分类
驱动实现功能:


打开
设置
最终目的操作硬件设备:数据传输和数据控制
硬件参考手册,内核提供的功能:操作时序,总线如何操作,内核API
 
 
 
1.字符设备(char)
2.块设备(block)
3.网络设备(net)
 
 
内核模块操作命令
make
加载:sudo modprobe ./Mo ......

c/c++ string


1.本章思维导图:



Example1:
char
*strcpy(char *target, const char *source) {
  char *t = target;

  // Copy the contents of source into target.
 
while(*source) *target++ = *source++;
  // Null-terminate the
target.
  *ta ......

Linux用Nasm巧汇编

随着Linux的普及,如何在Linux平台下进行编程,尤其是汇编成为大家关注的一个问题,但是这方面资料却很少。在遍访网站和论坛后,我把收集到的资料结合本人总结的一些经验跟大家分享一下。
Nasm介绍
Linux下的汇编编译器有多种,语法也不尽相同,其中GAS是比较基本的汇编工具。但是GAS采用的不是我们通常在DOS体系下使用 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号