显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

wanny

一个程序员的草稿纸

 
 
 
 

有道博客搜索

 
 
 
 
 

日志分类

 
 
日志分类列表加载中...
 
 
 
 
 
 
 

ADS1.2 license 注册码

2012-6-23 10:22:40 阅读433 评论0 232012/06 June23

学习ARM,首先就要安装ADS模拟器,安装的时候很多人都会“卡”在填入注册码这个地方。解决的步骤如下:

1,在你的ADS安装目录ARM\ADSv1_2\Bin下面建立一个文件名为license.dat。
 
2,以记事本的方式打开该文件。

3,文件中贴上如下内容。

PACKAGE ads armlmd 1.200 E32F0DE5161D COMPONENTS="armasm compiler \
bats armulate axd adwu fromelf armlink codewarrior armsd"
INCREMENT ads armlmd 1.200 permanent uncounted 612C53EF47C7 \

作者  | 2012-6-23 10:22:40 | 阅读(433) |评论(0) | 阅读全文>>

ubuntu下搭建FTP服务

2012-6-2 10:22:24 阅读73 评论0 22012/06 June2

             在实验室我有两台电脑,一台安装的XP,一台安装的ubuntu,突然要从我的ubuntu上拷贝几个文件到
我的XP上。如果都是linux,可以使用SCP,但是现在一台是windows,一台是linux,于是我想到了FTP服务。
----------------------------------------------------------------------------------------------------------------------------------
1,安装FTP服务。(很简单)
      sudo apt-get install vsftpd

作者  | 2012-6-2 10:22:24 | 阅读(73) |评论(0) | 阅读全文>>

init_task

2012-5-24 19:56:58 阅读294 评论0 242012/05 May24

linux kernel 2.6.38

init_task实际上就是task_struct的一个实体。

Location:Arch/x86/kernel/init_task.c

作者  | 2012-5-24 19:56:58 | 阅读(294) |评论(0) | 阅读全文>>

task_struct

2012-5-24 19:46:47 阅读118 评论0 242012/05 May24

1,task_struct是进程描述符。操作系统通过task_struct感知进程的存在。我学习内核的入口点就是该结构体。
现在就分析分析该结构体吧。
该结构体在内核中的位置:./include/linux/sched.h
 struct task_struct {
       volatile long state;
         这个字段来描述进程的状态。这儿有个关键词volatile可是
一个熟悉的陌生人。在学C的时候一直都见过,

作者  | 2012-5-24 19:46:47 | 阅读(118) |评论(0) | 阅读全文>>

MagicMacros in linux kernel

2012-5-23 11:34:00 阅读42 评论0 232012/05 May23

1, ARRAY_SIZE
Also defined in include/linux/kernel.h ARRAY_SIZE(x) is used to get the number of elements in an array.
#define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))
divides the size of the array by the size of the first array element.
该宏比较简单,在用户态编程的时候完全可以使用该宏。

作者  | 2012-5-23 11:34:00 | 阅读(42) |评论(0) | 阅读全文>>

宏asmlinkage

2012-5-23 11:15:32 阅读120 评论0 232012/05 May23

在linux内核中所有的系统调用前面都用了一个宏asmlinkage。

在Robert Love 写的《Linux Kernel Development》一书中是这样描述的:
...note the asmlinkage modifier on the function definition .This is a bit of magic to tell compiler to look
only on the stack for the function's argument.This is a required modifier for all system calls。

在kernelnewbies/FAQ中的描述:
What is asmlinkage?

The asmlinkage

作者  | 2012-5-23 11:15:32 | 阅读(120) |评论(0) | 阅读全文>>

(转载)How to Create a Google Group

2012-5-20 11:20:00 阅读86 评论0 202012/05 May20

原文地址:http://voices.yahoo.com/how-create-google-group-342202.html?cat=35

Google Groups is a terrific tool for groups of individuals that share a similar interest to use as a communications hub. When you create a group, you can add members who will all share a single email address which is useful for managing email lists. In addition, members can post their profiles, add pages, upload files, and more.

作者  | 2012-5-20 11:20:00 | 阅读(86) |评论(0) | 阅读全文>>

linux汇编语言开发

2012-5-17 20:23:18 阅读104 评论0 172012/05 May17


一、Hello,World!
Linux 是一个运行在保护模式下的 32 位操作系统,采用 flat memory 模式,目前最常用到的是 ELF 格式的二进制代码。一个 ELF 格式的可执行程序通常划分为如下几个部分:.text、.data 和 .bss,其中 .text 是只读的代码段,.data 是可读可写的数据段,而 .bss 则是可读可写且没有初始化的数据段。代码段和数据段在 ELF 中统称为 section,根据实际需要你可以使用其它标准的 section,也可以添加自定义 section,但一个 ELF 可执行程序至少应该有一个 .text 部分。

#hello.s
.data              #数据段

作者  | 2012-5-17 20:23:18 | 阅读(104) |评论(0) | 阅读全文>>

实现自己的系统调用(两种方式)

2012-4-28 11:01:43 阅读167 评论0 282012/04 Apr28

学习linux操作系统课,有一章讲“系统调用”,其中有个内容是在linux内核中添加一个自己的系统调用。
我调试了两次终于将其调通了,第一次不知道是什么原因,编译生成的内核总是加载不上。第二次成
功了。有点小成就感.实现自己的系统调用 - wanny - wanny   我现在将其过程记录下来。分享给大家。

方式一:编译内核的方式。


我本机的内核是linux-2.6.38.1添加的内核是linux-2.6.39.1
第一步:在arch/x86/include/asm/unistd_32.h文件中添加系统调用号。

作者  | 2012-4-28 11:01:43 | 阅读(167) |评论(0) | 阅读全文>>

linux系统调用

2012-4-27 9:26:28 阅读66 评论0 272012/04 Apr27

linux系统调用 - wanny - wanny


 1,系统调用的本质就是一个中断,中断号是0x80,中断服务程序是system_call函数,在内核中该函数是汇编实现的。‘
如下是linux-2.6.38.1的内核代码中的system_call函数。

496 ENTRY(system_call)
497 RING0_INT_FRAME # can't unwind into user space anyway
498 pushl_cfi %eax # save orig_eax
499 SAVE_ALL
500 GET_THREAD_INFO(%ebp)
501 # system call tracing in operation / emulation

作者  | 2012-4-27 9:26:28 | 阅读(66) |评论(0) | 阅读全文>>

基于计算的查找--------------哈希查找

2012-4-22 12:23:25 阅读33 评论0 222012/04 Apr22

哈希查找示意图
基于计算的查找--------------哈希查找 - wanny - wanny

在linux 内核中,通过进程pid查找进程的PCB过程就是用的哈希查找。哈希查找是基于计算的查找。
内核中解决冲突的方法就是用的链地址法。当出现冲突时,通过双向链表链接在一起。

作者  | 2012-4-22 12:23:25 | 阅读(33) |评论(0) | 阅读全文>>

基于树的查找----------红黑树

2012-4-22 12:10:15 阅读44 评论0 222012/04 Apr22

红黑树示意图

基于树的查找----------红黑树 - wanny - wanny

在linux内核中,如何快速定位进程的虚存区?也就是快速定位vm_area_struct结构。
就是用的红黑树。

作者  | 2012-4-22 12:10:15 | 阅读(44) |评论(0) | 阅读全文>>

getpid()分析

2012-4-18 22:31:09 阅读60 评论0 182012/04 Apr18


1,getpid()是linux下的一个系统调用。返回的并不是进程PCB中的pid字段,而是tgid字段。
#include <stdio.h>
#include <pthread.h>

int *thread(void *arg)
{
printf("thread pid = %d\n",(int)getpid());
return NULL;
}

int main(void)
{
pthread_t thid;
pthread_create(&thid,NULL,(void *)thread,NULL);
printf("main thread pid = %d\n",(int)getpid());

作者  | 2012-4-18 22:31:09 | 阅读(60) |评论(0) | 阅读全文>>

[转载]DOS命令大全

2012-4-17 15:59:42 阅读30 评论0 172012/04 Apr17

net use \\ip\ipc$ " " /user:" " 建立IPC空链接
net use \\ip\ipc$ "密码" /user:"用户名" 建立IPC非空链接
net use h: \\ip\c$ "密码" /user:"用户名" 直接登陆后映射对方C:到本地为H:
net use h: \\ip\c$ 登陆后映射对方C:到本地为H:
net use \\ip\ipc$ /del 删除IPC链接
net use h: /del 删除映射对方到本地的为H:的映射
net user 用户名 密码 /add 建立用户
net user guest /active:yes 激活guest用户
net user 查看有哪些用户
net user 帐户名 查看帐户的属性
net localgroup administrators

作者  | 2012-4-17 15:59:42 | 阅读(30) |评论(0) | 阅读全文>>

查看所有日志>>

 
 
 
 
 
 
 
 
模块内容加载中...
 
 
 
 
 
 
 

陕西省 西安市 狮子座

 发消息  写留言

 
博客等级加载中...
今日访问加载中...
总访问量加载中...
最后登录加载中...
 
 
 
 
 
 
 
博友列表加载中...
 
 
 
 
 
 我要留言
 
 
 
留言列表加载中...
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2013

创建博客 登录  
 加关注